使用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