两个SMART200之间MDOBUS RTU通讯,现在两个PLC通讯正常,主站PLC可以读到
从站PLC I /O状态,
1.但是1主站PLC想读取从站PLC 的VB10 VB11 VB12 VB13的值,怎么对应?
2.主站PLC写入从站VB20 VB21 VB22 VB23的值,怎么对应?
3,主站PLC需要怎么编程功能块 MBUS_MSG引脚ADDR,DATAPTR分别怎么写?
4.从站PLC 功能块MBUS_INT 引脚怎么填写?
5,如截图所示,很纠结不知道主站地址跟从站地址 怎么对应,该怎么读取,也看了官网SMART200 MODBUS链接,希望前辈可以用通俗的话 解释一下,谢谢
问题补充:
怎么实时读取从站VB数据,测试过程只能读取一次数据,如截图所示
图片说明:
最佳答案
能够建立通讯说明软件及硬件连接均正常了。
1)主站对应从站地址是需要看从站holdstart管脚的指针地址,如你写的&vb1000,那么,主站40001读取从站VW1000的数据。如果你需要读取从站VB10的4个字节,那么,从站mbus_init指令的holdstart管脚写入&VB10,或者按你的指针地址,先把VB10等字节传送到VB1000。
2)仍然根据你的程序,从站发送给主站的V区(&VB1000),那么,主站接收到从站的数据也是自这个地址开始了,假设你事先在从站将VD10传送给VD1000,那么,主站的VD1000即对应于你从站的VD10.
3)Addr是指定从站的地址,范围1~247任选,这个必须与从站的一致设置(相当于家里的门牌号码必须对应真实,否则快递无法送到货物)
4)按你自己写的是可以的,看F1帮助应该会理解了的。
5)主站Slave是读、写从站地址,从站mbus_init指令的Addr是设置从站地址,你的程序是对应的,从站地址设置为3,主站读、写,使用通讯能够正常了。
补充问题回复:
你有几个从站?
如果仅仅只有一个,那么最简单的方法是大致估算一下最长数据的读、写需要多少时间(与通讯频率、数据长度有关),然后做一个定时器循环触发读、写。
如果是几个轮询是最常用的方法,MSG指令的done位作为下一个MSG指令的触发条件,形成闭式循环轮询机制。
提问者对于答案的评价:
谢谢,几位都是经常帮我回答问题的,非常非常感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc287292.html