IF run THEN relay:=1;END_IF IF run = 0 THEN relay:=0;initial:=0;END_IF // 数字滤波部分IF relay = 1 THENflow_VAL_1:=flow_VAL/36000; //采集的是M3/H 转换成 M3/S IF initial = 1 AND relay =1 THEN //初始化完成后采集 FOR i:=1 TO Filter_Length BY 1 DO
FLOW_DATA:=flow_VAL_1;
END_FOR END_IF; IF initial = 0 AND relay =1 THEN //初始流量采集 FOR i:=1 TO Array_length BY 1 DO
FLOW_DATA:=flow_VAL_1;
END_FOR initial:=1;END_IF; FLOW_DATA_MAX:=0; //最大值滤波FOR i:=1 TO Array_length BY 1 DO
IF FLOW_DATA_MAX<FLOW_DATA THEN
FLOW_DATA_MAX:=FLOW_DATA;
END_IF
END_FOR FLOW_DATA_MIN:=FLOW_DATA_MAX; //最小值滤波 FOR i:=1 TO Array_length BY 1 DO
IF FLOW_DATA_MIN>FLOW_DATA THEN
FLOW_DATA_MIN:=FLOW_DATA;
END_IF
END_FOR FLOW_DATA_SUM:=0; //数据求和求平均部分 FOR i:=1 TO Array_length BY 1 DO
FLOW_DATA_SUM:=FLOW_DATA+FLOW_DATA_SUM;
END_FOR FLOW_DATA_Average:=(FLOW_DATA_SUM-FLOW_DATA_MIN-FLOW_DATA_MAX)/(Array_length-2); //滑动滤波数据交换 FOR i:=1 TO (Array_length-Filter_Length) BY 1 DO
FLOW_DATA_1:=FLOW_DATA;
END_FOR FOR i:=1 TO (Array_length-Filter_Length) BY 1 DO