S7-200 MODBUS向仪表写数据

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好像是写一个字。

图片说明:

S7-200 MODBUS向仪表写数据   

最佳答案

06是对1个寄存器进行写操作,所以楼主已经将数量设为1,否则会报错。

提问者对于答案的评价:
3q

专家置评

Modbus 注意事项可参考 youhm  的回答。

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:53
下一篇 2020年10月31日 下午2:53

相关推荐