按照Modbus RTU协议,你这个接收字节计数应该是9个
你发送的报文是:
30 03 00 00 00 02 C0 2A
那么正确返回的报文就是:
30 03 04 12 34 56 78 A1 C4
其中假设返回的具体数据是12345678
所以RS指令中接收字节数应该为9个
还有当M8123置位时你应该先转存接收到的数据而后再复位M8123
还有这个通信处理机制最好是:
开机延时1秒后开始发送,发送完成后延时1000毫秒(给从站一个1000毫秒的最大响应时间),1000毫秒时间到或者接收完成标志位M8123置位时都默认此次发送结束,而后延时大约5毫秒时间又开始新一轮的发送,周而复始循环即可,觉得比你这么做要好!
[此贴子已经被作者于2017/11/12 20:30:50编辑过]