S7-200SMART MODBUS怎样取消自动识别写寄存器个数

有的设备只支持16指令,写单个寄存器时(只能操作单个的),数据格式里有字节数这个数据;而S7-200SMART MODBUS自动识别写的寄存器个数,如果寄存器个数为1,则自动变为6指令,输出的数据格式里没有字节数这个数据,与外部设备通讯格式对不上,通讯错误。请问可以怎样解决呢?

最佳答案

单个位与多个位/字写入功能 一些 Modbus 从站设备不支持试用 Modbus 功能写入单个离散输出位(Modbus 功能5)或写入单个保持寄存器(Modbus 功能6)。相反,这些设备只支持多位写入(Modbus 功能 15)或多寄存器写入(Modbus 功能 16)。如果从站设备不支持单个位/字 Modbus 功能,则 MBUS_MSG/MB_MSG2 指令返回错误代码 101。Modbus 主站协议允许用户强制 MBUS_MSG/MB_MSG2 指令使用多个位/字 Modbus 功能,而不使用单个位/字 Modbus 功能。程序执行 MBUS_CTRL/MB_CTRL2 之后,可在 Modbus 主站符号表中找到符号 mModbusForceMulti然后更改该值,以此强制执行多个位/字指令。将 mModbusForceMulti 设为TRUE,以便在写入单个位或寄存器时强制使用多个位/字功能。帮助文档里有相应资料。

提问者对于答案的评价:
非常正确!!谢谢

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

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

相关推荐

发表回复

登录后才能评论