zoukankan      html  css  js  c++  java
  • 【Codesys】两种滤波的实现,那种更快?

    方法1
    (* 方法1 *)
    (*---------------声明部分----------------------*)
    FUNCTION_BLOCK Filter_ActLoad
    VAR_INPUT
    Act_B:REAL;
    END_VAR
    VAR_OUTPUT
    Act_F:REAL;
    END_VAR
    VAR
    arr:ARRAY[0..6] OF REAL := 7(0);
    MaxValue,MinValue:REAL := 0;
    i:INT;
    END_VAR

    (*---------------实现部分----------------------*)

    Arr[6] := Arr[5];
    Arr[5] := Arr[4];
    Arr[4] := Arr[3];
    Arr[3] := Arr[2];
    Arr[2] := Arr[1];
    Arr[1] := Arr[0];
    Arr[0] := Act_B;

    MaxValue :=Arr[0];
    MinValue :=Arr[0];

    FOR i:=0 TO 6 DO
    IF arr[i] > MaxValue THEN
    MaxValue := arr[i];
    END_IF

    IF arr[i] < MinValue THEN
    MinValue := arr[i];
    END_IF
    END_FOR

    Act_F := (Arr[0]+Arr[1]+Arr[2]+Arr[3]+Arr[4]+Arr[5]+Arr[6]-MaxValue-MinValue)/5.0;
    方法2
    (* 方法2 *)
    (*---------------声明部分----------------------*)
    FUNCTION_BLOCK Filter_ActLoad_
    VAR_INPUT
    Act_B:REAL;
    END_VAR
    VAR_OUTPUT
    Act_F:REAL;
    END_VAR
    VAR
    A1,A2,A3,A4,A5,A6,A7:REAL := 0;
    MaxValue,MinValue:REAL;
    END_VAR

    (*---------------实现部分----------------------*)

    Arr[6] := Arr[5];
    Arr[5] := Arr[4];
    Arr[4] := Arr[3];
    Arr[3] := Arr[2];
    Arr[2] := Arr[1];
    Arr[1] := Arr[0];
    Arr[0] := Act_B;

    MaxValue :=Arr[0];
    MinValue :=Arr[0];

    FOR i:=0 TO 6 DO
    IF arr[i] > MaxValue THEN
    MaxValue := arr[i];
    END_IF

    IF arr[i] < MinValue THEN
    MinValue := arr[i];
    END_IF
    END_FOR

    Act_F := (Arr[0]+Arr[1]+Arr[2]+Arr[3]+Arr[4]+Arr[5]+Arr[6]-MaxValue-MinValue)/5.0;



    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    【python cookbook学习笔记】给字典增加一个条目
    UI设计星级评价
    弱引用和循环引用
    lua数据类型
    lua虚拟机笔记
    c++对象模型笔记
    使树控件方向键无效
    实现CListCtrl自定义行高
    创建对话框时常用配置
    C++格式化输出总结
  • 原文地址:https://www.cnblogs.com/dabiao/p/2389940.html
Copyright © 2011-2022 走看看