modbus通信 05功能码 出错,求解!

使用S7-200作为主站通过modbus协议库和智能仪表通信,DataPtr中的值赋值为16#FF00时,使用modbus调试软件监测到发出的数据为03 05 00 0A FF 00 AD DA,正确!但是DataPtr中的值赋值为0时监测到的数据却为03 05 00 0A 00 01 2D EA,错误!DataPtr中的值赋值为其它值时,监测到的数据也是03 05 00 0A 00 01 2D EA,求解,谢谢!!

最佳答案

modbus库不能写输入I点,能写输出Q点。
DataPtr只能是FF00,和0000。因为单个线圈只有两种状态,规定这两个值。最好上个你调用MSG的图,给大家看看。

参考MBUS_msg的Error,如果为0,说明发送和返回都没有问题。
Error:
1 = 响应校验错误 
2 = 未用 
3 = 接收超时(从站无响应) 
4 = 请求参数错误(slave address, modbus address, count, RW) 
5 = modbus/自由口未使能  
6 = modbus正在忙于其它请求 
7 = 响应错误(响应不是请求的操作) 
8 = 响应CRC校验和错误 

101 = 从站不支持请求的功能 
102 = 从站不支持数据地址 
103 = 从站不支持此种数据类型 
104 = 从站设备故障 
105 = 从站接受了信息,但是响应被延迟 
106 = 从站忙,拒绝了该信息 
107 = 从站拒绝了信息 
108 = 从站存储器奇偶错误 


当改为0000之后,PLC发送的数据帧是什么?从站返回的数据帧又是什么?请提供

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午1:00
下一篇 2021年7月5日 下午1:00

相关推荐

发表回复

登录后才能评论