施耐德UNITY下使用ST程式設計計算最近一小時的均值

来自金沙江的小鱼發表於2024-11-12

昨晚學習練習了ST語言做最近60秒的分鐘均值,今天繼續做最近一小時的均值,1秒採集一次資料。在昨晚程式上增加功能,新建一個匯出的功能塊型別Average_Hour,定義下面的變數:

旗下新建一個程式段Average_Hour,使用ST程式設計

Minute1:=BCD_TO_INT(%SW51);
Minute:=mod_int(Minute1,100);
Second1:=BCD_TO_INT(%SW50);
Second:=div(second1,100);
R_TRIG_0 (CLK := %s6,
Q => Trig);
IF Trig then
hour[Minute,Second]:=PV;
SUM:=0.0;
for i:=0 to 59 do
for j:=0 to 59 do
sum:=sum+hour[i,j];
end_for;
end_for;
Average_Hour:=sum/3600.0;
end_if;

前面四行是獲取當前分鐘和秒的數值,後面程式很好理解。

做完後就可以呼叫這個功能塊了。

相關文章