S7-200 224XP采用MODBUS协议与智能电表通讯问题

Network 5 // 网络标题
LD     SM0.1
R      M2.0, 8
R      M4.0, 8
R      M0.0, 2
Network 6 
LD     M2.0
EU
S      M2.7, 1
Network 7 
LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   SBR1, L63.7, 9600, 0, +500, M2.0, MB1
Network 8 
LD     M2.7
O      M3.1
=      L60.0
LD     M2.7
EU
LD     M3.1
EU
OLD
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 2, 0, 30001, 16, &VB2100, M2.1, MB3
Network 9 
LD     M2.1
R      M2.7, 1
R      M3.1, 1
Network 10 
LD     M2.1
=      L60.0
LD     M2.1
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 2, 1, 2, +8, &VB2000, M2.2, MB4
Network 11 
LD     M2.2
R      M2.1, 1
Network 12 
LD     M2.2
=      L60.0
LD     M2.2
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 1, 0, 30001, 16, &VB2160, M2.3, MB5
Network 13 
LD     M2.3
R      M2.2, 1
Network 14 
LD     M2.3
=      L60.0
LD     M2.3
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 1, 1, 1, +8, &VB2000, M2.4, MB6
Network 15 
LD     M2.4
R      M2.3, 1
Network 16 
LD     M2.4
=      L60.0
LD     M2.4
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 3, 0, 30001, 16, &VB2200, M2.5, MB7
Network 17 
LD     M2.5
R      M2.4, 1
Network 18 
LD     M2.5
=      L60.0
LD     M2.5
EU
=      L63.7
LD     L60.0
CALL   SBR2, L63.7, 3, 1, 3, +8, &VB2000, M2.6, MB8
Network 19 
LD     M2.6
R      M2.5, 1
上述为我的程序,我想要实现4台电表与PLC通讯,但是我采用上述互锁嵌套方法实现三台之后第四台就实现不了了,第四台程序烧进去他只通讯一次,第二圈就停止在网络8了,想问问大神帮我分析一些到底为什么?3台电表就可以,4台却不行了?

问题补充:
我的M2.0是有MBUS_STRL置位的,所以他是长通,然后用它来触发M2.7,M2.7就是通讯的开始,开始之后第二轮的第一台机就不是M2.7了是M3.1 ,但是我第二轮就死活不转了,然后我的M3.1和M2.7复位语句是由网络8发送完成为1执行的。M3.1就是第四台的接收完成位。我在怀疑是不是语句嵌套太多了导致的?因为我再加一句读取(写3读4)指令都不行,也无法正常通讯。

图片说明:

S7-200 224XP采用MODBUS协议与智能电表通讯问题    S7-200 224XP采用MODBUS协议与智能电表通讯问题    S7-200 224XP采用MODBUS协议与智能电表通讯问题   

最佳答案

你程序中把M3.1置位的语句写到第四台后面就可以了
补充
交叉所以M3.1,看看是否其他地方在用?
另外,可以试着将M3.1改成别的地址试试,如果怀疑循环数量问题,可以M2.7直接跳到第四台设备通讯试试

提问者对于答案的评价:
感谢你的建议,我去试试

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

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

相关推荐

发表回复

登录后才能评论