n
描述
当使用"Modbus_Master", "Modbus_Slave" 和"Modbus_Comm_Load" 指令时,本条目的内容有助于调试和故障诊断。 "Modbus_Master"注意事项
以下注释是 STEP 7 文件的一个补充说明。n
- STATUS 16#818B: "DATA_PTR" 参数指向的是“优化的” DB 块 (与该指令在线帮助相反,STATUS 没有16#818C 的状态输出)。n
- 如果参数 "MB_ADDR" 给定不正确,即使 “REQ” 输入信号状态为"false",程序块依然会报错。n
- 如果参数"DATA_PTR" 指向的地址区太小(例如,1个字节),则输出参数如下:
DONE = true, ERROR = true, STATUS = 0n - 如果请求写或者读的区域(参数"DATA_ADDR" 和"DATA_LEN")比允许操作的工作区大,消息请求仍然会被发送到Modbus从站。
"Modbus_Slave"注意事项
本注意事项是STEP 7 文件的一个补充说明。n
- STATUS 16#818C: "MB_HOLD_REG" 参数指向的地址区太小(例如,1个字节)(STATUS值 16#8187并不会被做为错误指示而输出,这和文档中的描述不一致)。n
- 如果读或写任务超出了参数 ”MB_HOLD_REG" 定义的数据范围或超出了输入和输出区,则来自于公共静态变量的计数值 "Exception_Count"参数不会增加。
"Modbus_Comm_Load"注意事项
为了使用"Modbus_Master"和"Modbus_Slave"指令,必须使用"Modbus_Comm_Load"指令来对CM PtP 模块进行初始化。n
当插拔CM PtP模板或者模板断电导致通讯中断后,必须在"Modbus_Master"或者"Modbus_Slave"指令执行前再次调用"Modbus_Comm_Load"指令。为了保证用户程序无故障运行,必须对用户程序做如下更改。n
- 在程序中添加组织块 OB83 ("插拔模板")用来响应通信模块的插拔中断。
图. 01当S7 站点出现插拔中断时,该块总是会被执行,并且触发该OB 的模块参数也会被传递。
- 打开OB83 ("插拔模板").
在用户程序中比较 "LADDR" 参数和CM PtP模块的硬件标识符。
如果OB83 由执行 “Modbus RTU" 的CM PtP模 块触发,则必须执行重新初始化模块的指令"Modbus_Comm_Load"。 - 为了执行重新初始化的可以设一个标志位信号,例如用一个信号(此处"DB1".Call_Modbus_Comm_Load)来进行评估。
图. 02只要该标志位被设置为"TRUE",则 "Modbus_Comm_Load" 指令必须重新调用以初始化模块。
- 如果希望 "Modbus_Master" 或"Modbus_Slave" CM PtP模 块在出现插拔时发送一个确认信号,则该等待状态必须终止。在这种情况下,必须将Modbus从站背景DB 的“static”变量下的"SEND_PTP. y_state"赋值为"0"。
- 只要初始化执行正确,标志位会被再次复位。
在入口ID 68202723 的示例程序中,该评估位同样在OB 83中被检查。 - 为了防止ET 200SP 接口模块出现故障,需要在程序中添加OB86 ("机架或站点故障中断") 。
图. 03该块会在分布式IO 站出现故障时被调用(例如:掉电)。
- 打开OB86 ("机架故障中断").
在用户程序中比较 "LADDR" 参数和接口模块的硬件标识符。
如果OB 86由ET 200SP 掉站触发执行,则必须再次执行"Modbus_Comm_Load"指令用来初始化模块。 - 可设置标志位来触发重新初始化,例如(此处:"DB1".Call_Modbus_Comm_Load),可用来在程序中查询,一旦标志 位被置为“True”位,则必须再次调用"Modbus_Comm_Load"来重新初始化模块。
- 如果希望 "Modbus_Master" 或"Modbus_Slave" 模块在分布式 IO (IM 接口模块) 模块出现机架故障中断时发送一个确认信号,则该等待状态必须终止。在这种情况下,必须将 Modbus从站背景 DB 的“Static”变量下的"SEND_PTP. y_state"赋值为"0"。
- 一旦初始化执行成功,标志位会再次复位。
在入口 ID 68202723 的示例程序中,该评估位同样在OB 83中被检查。
附加信息
关于 CM PtP 模块如何使用 Modbus RTU 程序块以及例程下载请参见入口 ID 68202723.
附加关键词
Modbus_Master, Modbus RTU, Modbus_Slave, Modbus_Comm_Load
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc324941.html