找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
这是一个经典的通讯判断的程序,通讯心跳M6.0 为标志位。可讲需要判断的PLC 发送一心跳位,至需要判断PLC处。
M38.7为通讯故障位。
这程序的本意就是判断M6.0标志位是否变化,如果变化则不可能触发M38.7,也就是说
如发生通讯故障,则M6.0(心跳位)不变化,那么加计数器C0的值一直为某个常数, 那么就触发定时器T102。(M38.7)那么就表示对方PLC通讯失败。
补充:
心跳位是M6.0,因为没有2套PLC 所以用M6.0代替,实际处理改问题时,可以设置需要判断故障的PLC 时钟存储区,各种脉宽的脉冲都有。(也就是010101011010)心跳信号了,如果检测不到101010信号变化那么T102不就接通报故障了吗?
重要补充:
注意第三附图,(补充清晰仿真图1)。程序断2中, move 指令 和 cmp 比较指令不能对调,这是关键!!!因为PLC程序是从下之下扫描的, 也就是先判断在赋值,如果线赋值在判断就起不到检测MW84 和 MW86是否变化的作用了。
以上解释应该比较完整清晰,希望你可以按照我给出的程序自己仿真体验下。尤其实验下先赋值在比较 和先比较在赋值的区别。整个程序的精髓也就是在这里。希望您采纳。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!