226做modbus主站,向远程仪表读写数据。读数据我已经读出来了,为什么写老是报错呢。
仪表要求如下:
地址 功能码 地址 设定值 CRC校验
41H-44H 06H *XH *XH CRC 16
我的程序如下:
网络1:
LD Always_On:SM0.0
= L60.0
LD Always_On:SM0.0
= L63.7
LD L60.0
CALL MBUS_CTRL:SBR1, L63.7, 9600, 1, 1000, MBUS_CTRL_Done:M0.0, MBUS_CTRL_Error:MB1
网络2:
LD Start_MBUS_MSG:M0.1
= L60.0
LD Start_MBUS_MSG:M0.1
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 65, 1, 40257, 2, &VB1000, Read_Register_Done:M2.1, MB3
我下载后,通过改变M0.1值。MB3的代码总是显示3. 怎么回事呢。
问题补充:
是不是数据个数应该是1,不能是2呢。功能码06好像是写一个字。
图片说明:
最佳答案
06是对1个寄存器进行写操作,所以楼主已经将数量设为1,否则会报错。
提问者对于答案的评价:
3q
专家置评
Modbus 注意事项可参考 youhm 的回答。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc301761.html