找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
昨天没有太多时间写,今天有时间也有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
我准备一个钟,一支铅笔,一张纸,一块橡皮擦。
我看见触发了,就把当时时间记录下来。写在本子上的第一行。
再看见了,再记录下来。写在本子上的第二行。
再……再记……
写到第十行的时候,算一下和第一行的时差,根据这个结果是否要喊人。
继续发生触发,就把第一行擦掉写在第一行。算一下和第二行的时差,判断是否喊人。
继续发生触发,就把第二行擦掉写在第二行。算一下和第三行的时差,判断是否喊人。
继续……三……四……
继续……四……五……
……
就这样写来写去,就写十行。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!