【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]