加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

施耐德ST语句做分钟均值计算

(2024-11-11 19:47:46)
标签:

施耐德

m580

st编程

最近一分钟均值

分类: 施耐德PLC
前段时间学习联系了西门子TIA下SCL做分钟均值计算,今晚我在施耐德Unity软件上做最近一分钟的均值计算,每秒一个数据,计算最近60秒的算术平均值。ST做一个自定义功能块,可以反复调用。
新建一个M580项目,新建一个导出的功能块类型Average_Minute,建立以下变量:
施耐德ST语句做分钟均值计算
尽量减少输入输出变量。
建立其下ST程序段Average_Minute
Second1:=BCD_TO_INT(%SW50);
Second:=div(second1,100);
R_TRIG_0 (CLK :=%s6,
          Q => Trig);
IF Trig then
Minute[Second]:=PV;
SUM:=0.0;
for i:=0 to 59 do
sum:=sum+minute[i];
end_for;
Average_Minute:=sum/60.0;
end_if;
前面两句是读取PLC系统时钟秒。
第三句是获取每秒%S6的上升沿。后面是每秒给一个数组成员赋值,然后计算这个数组所有成员的算数平均值。数组成员60个,对应最近60秒的测量值。
完成后可以在主程序调用。
施耐德ST语句做分钟均值计算
编译下载,就可以看到效果了。由于没有实际的测点,这里使用了常数做测试。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有