用300作主站,200做从站,通过modbus协议通讯,当用到写功能,比较困惑。问题如下:
假设想把200的M0.0写成1,那么必须把VW0导入到MW0中(因为写功能只能写VW的地址,而且最小单位为字),即V0.1-V1.7对应M0.1-M1.7。当我要写M0.0时。那么就要300发送写数据:00000000 00000001到200的VW0中,然后再将VW0导入MW0,这样M0.0才为1。但当我接着写M0.1时,即发送00000000 00000010时,就会把之前写的M0.0覆盖成0了。请问各位应怎样解决?谢谢!
我自己想了一个方法。M寄存器的每一位对应V的一个字,即M0.0对应VW0。M0.1对应VW2,这样就不怕被覆盖了。但这很浪费内存,是下策。求更高明的办法。谢谢!
最佳答案
你一个问题还要发两次呀!看你的300/400中的解答。
提问者对于答案的评价:
谢谢,为提高关注率,发了两次。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc317228.html