恭喜,你发布的帖子
发布于 2017-06-19 16:21:15
10楼
用SCL编写的滤波程序就行 啊
VAR // Static Variables
DATA_STORE:ARRAY[0..9] OF REAL;
END_VAR
// Statement Section
RET_VAL_105:=SCALE(IN :=PIW_IN // IN: INT
,HI_LIM := HI_LIM_IN // IN: REAL
,LO_LIM :=LO_LIM_IN // IN: REAL
,BIPOLAR :=BIPOLAR_IN // IN: BOOL
,OUT :=SCALED_VAL // OUT: REAL
); // WORD
IF RET_VAL_105<> 0 THEN
ERR:=TRUE;
ELSE
ERR:=FALSE;
END_IF;
MAX_DATA:=DATA_STORE[0];
MIN_DATA:=DATA_STORE[0];
TOTAL:=0.0;
TOTAL_FILTERD:=0.0;
FOR LOOP_COUNT:= 0 TO 8 BY 1 DO
DATA_STORE[LOOP_COUNT]:=DATA_STORE[LOOP_COUNT+1];
END_FOR;
DATA_STORE[9]:=SCALED_VAL;
FOR LOOP_COUNT:=0 TO 9 BY 1 DO
IF MAX_DATA<DATA_STORE[LOOP_COUNT] THEN MAX_DATA:=DATA_STORE[LOOP_COUNT];
END_IF ;
IF MIN_DATA>DATA_STORE[LOOP_COUNT] THEN MIN_DATA:=DATA_STORE[LOOP_COUNT];
END_IF;
TOTAL:=TOTAL+DATA_STORE[LOOP_COUNT];
END_FOR;
TOTAL_FILTERD:=TOTAL-MIN_DATA-MAX_DATA;
SCALED_FILTED:=TOTAL_FILTERD/8.0;
END_FUNCTION_BLOCK
请填写推广理由:
分享
只看
楼主