本人初次运用
modbus主站指令库,遇一问题还望大家指教:
我按串口调试软件测试通过的数据帧格式和通讯参数,填写在MBUS_CTRL和MSG指令里,运行时出现“3号超时错误。用串口调试软件对plc发出的请求帧做了测试,结果发现是寄存器地址出错,根本不是我所填入的40001(16#9C41),这是为什么?截获的请求数据如下:2011年01月02日19时56分47秒
01 03 00 00 00 07 04 08 (填入读16#9C41, 7个字)
01 03 00 01 00 07 55 C8 (填入读16#9C42, 7个字) 01 03 00 06 00 07 E4 09 (填入读16#9C47, 7个字) 01 03 00 0E 00 07 65 CB (填入读16#9C4F, 7个字) 01 03 00 0E 00 23 65 D0 (填入读16#9C4F, 35个字) 01 10 00 00 00 05 0A 00 00 00 00 00 00 00 00 00 00 01 F8(填入写16#9C41, 5个字) 01 06 00 00 00 00 89 CA (填入写16#9C41, 1个字) 01 06 00 01 00 00 D8 0A (填入写16#9C42, 1个字)个 (读40000或16#9C40,均出现通讯请求4错误,参数设置错误或非法值) 01 03 00 00 00 05 85 C9 (填入读40001, 5个字) 01 03 00 0E 00 01 E5 C9 (填入读40015, 1个字)
以上数据均是第三、四位寄存器地址错误,当然CRC也一样出错。
由于指令程序加密无法知道地址填入字节的长度是几位。如何解决?