单位时间内累计次数

我想用200做一个小程序:1小时内如果某个开关量值触发10次则报警,请大神指点。

问题补充:
即第10次触发距离第一次触发不到1个小时。

最佳答案

昨天没有太多时间写,今天有时间也有PLC,写了如图的程序,并且用CPU在线进行了测试。你用时注意指针前面的 "&" 和 “*” 的用法,不要用错了。
1、网络1
利用表格做了一个队列,用于存储测试点10次上升沿的的时刻。
表格及指针初始化,表格空间 22 个字,字空间从 VW0-VW42,其中:
VW0 是表格的最大元素数。
VW2 是表格现有元素数。
VD4    是第1个沿的时刻  VD8    是第2个沿的时刻   VD12  是第3个沿的时刻
VD16  是第4个沿的时刻  VD20  是第5个沿的时刻   VD24  是第6个沿的时刻
VD28  是第7个沿的时刻  VD32  是第8个沿的时刻   VD36  是第9个沿的时刻
VD40  是第10个沿的时刻
VD100 数据指针是指向最后一次时刻应放在什么地方用的。
2、网络2
数据组织在表格中,当表格中已经有前 10 次的启始时间,则将最先到的第一次弹出,用两次先进先出 FIFO 是因为时间数据是双字型的,而标准的表格是中的元素是字类型的,一次要弹出两个字才可以将最先记录的时间弹出。
当不够10次时,只管将数据放到表格中。
3、网络3
够 10 次了,则计算第 10 次触发与第一次触发的时间间隔,并判断输出报警。报警部分可以按你的要求更改。
4、本程序实现的第11次与第2次的时差,第12次与第3次的时间差,以此类推。并且本程序经过了在线PLC测试。只是对报警部分你可按要求改动。
5、看本程序要用到下面资料
S7-200 SMART 表格指令(内附例程)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/042.html
优化定时器
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/optimizer%20timer/optimize%20timer.html
S7-200 SMART 间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/070.html

图片说明:

单位时间内累计次数  

提问者对于答案的评价:
多谢大神讲解,太细致了!

最佳答案作者回复:
您客气了,互相交流,共同提高!!!

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:39
下一篇 2021年7月5日 上午11:39

相关推荐

发表回复

登录后才能评论