step7 - 300 - 400PLC - SCL平均数 - 均值滤波 - 最大最小值

更新时间:2024-02-01 12:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

前面有网友贴出了一个输入,求五个周期平均值时更新数据块是一个个K5=K4,K4=K3,K3=K2,K2=K1这样一个个写出来的,我当时在想如果有200个数如此写出来岂不是很麻烦?为此自己写了下面的程序,利用For循环自动更新,几百个数据都是可以的,不必一个个写出来。 FUNCTION_BLOCK FB10

//十个数去最大最小值后求取平均值 // Block Parameters VAR_INPUT

// Input Parameters chin_01:REAL; END_VAR VAR_OUTPUT

// Output Parameters Chin_out:REAL; END_VAR VAR

// Static Variables No1:INT; No2:INT; Total:REAL; Chin02_Max:REAL; Chin02_Min:REAL;

Chin_02:ARRAY[0..9] OF REAL; END_VAR BEGIN

Chin02_Max:=chin_01; Chin02_Min:=chin_01; Chin_02[0]:=chin_01; Total:=0;

FOR No1:=8 TO 0 BY -1 DO

Chin_02[No1+1]:=Chin_02[No1];//更新数据块数据 END_FOR;

FOR No2:=0 TO 9 BY 1 DO

IF Chin_02[No2]>Chin02_Max THEN Chin02_Max:=Chin_02[No2];//找最大值 END_IF;

IF Chin_02[No2]

Total:=Chin_02[No2]+Total;//求和 END_FOR;

Chin_out:=(total-Chin02_Max-Chin02_min)/8;//求去最大最小值后的平均值 // Statement Section ;

END_FUNCTION_BLOCK

本文来源:https://www.bwwdw.com/article/ifdw.html

Top