admin 发表于 2020-8-7 16:52:19

【Codesys】两种滤波的实现,那种更快?

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

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

Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Act_B;

MaxValue :=Arr;
MinValue :=Arr;

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

    IF arr < MinValue THEN
      MinValue := arr;
    END_IF
END_FOR

Act_F := (Arr+Arr+Arr+Arr+Arr+Arr+Arr-MaxValue-MinValue)/5.0;


(* 方法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 := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Arr;
Arr := Act_B;

MaxValue :=Arr;
MinValue :=Arr;

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

    IF arr < MinValue THEN
      MinValue := arr;
    END_IF
END_FOR

Act_F := (Arr+Arr+Arr+Arr+Arr+Arr+Arr-MaxValue-MinValue)/5.0;
页: [1]
查看完整版本: 【Codesys】两种滤波的实现,那种更快?