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;



    没事,别怕,这是签名→→┃ 青山幽谷笛声扬,白鹤振羽任翱翔。往事前尘随风逝,携手云峰隐仙乡。 ┃
  • 相关阅读:
    Xtreme9.0
    Xtreme8.0
    Xtreme8.0
    Xtreme8.0
    Xtreme9.0
    Xtreme8.0
    IEEEXtreme Practice Community Xtreme9.0
    MySQL添加用户、删除用户与授权
    程序员进阶之路—如何独当一面
    PowerDesigner版本控制器设置权限
  • 原文地址:https://www.cnblogs.com/dabiao/p/2389940.html
Copyright © 2011-2022 走看看