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)指令都不行,也无法正常通讯。
图片说明:
最佳答案
你程序中把M3.1置位的语句写到第四台后面就可以了
补充
交叉所以M3.1,看看是否其他地方在用?
另外,可以试着将M3.1改成别的地址试试,如果怀疑循环数量问题,可以M2.7直接跳到第四台设备通讯试试
提问者对于答案的评价:
感谢你的建议,我去试试
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc364930.html