S7-200 的modbus主站程序,MSG指令完成后,DONE功能位M0.3置位1,同一个扫描周期内的网络8、9的M0.3是0还是1?本人的理解是MSG指令完成M0.3置位1,系统记录。因网络8的M0.3在上一扫描周期是0,复位M0.1、M0.2,网络9M0.3状态0,这个扫描周期完成后各点的状态(M0.3-1、M0.1-0、M0.2-0),下一扫描周期因M0.1、M0.2都是0,MSG指令没执行,M0.3复位0,系统记录了。网络9因M0.3状态是1,开关取反,网络10 M0.3状态1而置位M0.2,此扫描周期完成后各点的状态(M0.3-0、M0.1-0、M0.2-1)。再下一扫描周期因M0.2状态是1使MSG指令工作,不断循环。以上是我的理解,求大神指点。在一扫描内自上而下,元件运行后的状态只作存储留下一扫描周期执行,此次执行的是上一扫描周期的状态?
图片说明:
钻石用户推荐最佳答案
1、当网络7的MBUS_MSG的写从站20个保持寄存器的操作执行完的那一个扫描周期开始,M0.3是为1,并且你如果不在程序中复位它,它就会一直为1,不会改变;
2、看你的程序是只有一个MBUS_MSG指令吗?看样子是一个,如果是一个,建议你在网络8中利用M0.3为1这个扫描周期,复位M0.1、M0.2、M0.3,网络9就不要了,前提是M0.1是初始化指令MBUS_CTRL的DONE位。
3、如果不是一个MBUS_MSG指令,建议你把完成的轮循贴出。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc369035.html