Modbus的通讯问题

我用modbus的RTU库,程序如下:
 NETWORK 1:
   LD SM0.1
   CALL MBUS_INIT,1,1,9600,2,0,128,32,1000,&VB100,M0.1,MB10
 NETWORK 2:
   LD SM0.0
   CALL MBUS_SLAVE,M0.2,MB12
 我用的串口调试工具调试的,功能码为16,从机地址为1,主机发送报文:01 10 00 00 00 01 01 19,从机回复的报文为“01 90 02 CD C1”。
 不知道问题出在了哪里?
  返回的报文09应该是功能码01的异议回应,其他的02 CD C1不知道是怎么意思啦,寻求大家的帮助。

 上面的程序用功能码为06的报文试过,没有问题。
 

问题补充:
首先谢谢各位!
 CRC校验码是正确的,我算了四遍。而且如果校验码错误的话,从机不会返回响应。
 我查到的Mobus异常码里只有代码分别为01、02、03、04、05、06、08、0A、0B的异常码,我调试的从机返回响应中的数据域有三个十六进制数,无法对应查错。
 我现在监视MB10和MB12的值没有任何变化,都是0。
 真的是没有头绪了,希望高人指导一下,小妹先拜谢啦!

最佳答案

功能16用来写多个V存储器字,格式如下:
 站地址(字节)/10(字节)/首字地址(字)/字数(字)/字节数(字节)/数据字1(字)/……/数据字n (字)/CRC(字)
 你再看看你发送的数据:
 站地址01
 功能吗10
 首字地址00 00
 字数00 01
 字节数  ??????????
 数据字1 ?????????

提问者对于答案的评价:
非常十分以及特别地感谢LaoHuai!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:37
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论