运行前几个周期正常,后来MB_MASTER的busy 位输出为1,请问怎么解决呢?
问题补充:
运行时的图片截图
图片说明:
最佳答案
Modbus 指令不使用通信中断事件来控制通信过程。 您的程序必须针对已完成的发送和接收操作轮询“MB_MASTER”指令。
调用指令:
如果可能,在循环程序 OB 中调用“MB_MASTER”指令。只能在延时或循环中断 OB 中调用指令。
不要在优先级不同的组织块中调用多个“MB_MASTER”指令。 如果“MB_MASTER”指令在更高优先级“抢先”执行,则指令可能将错误地执行。
不要在启动、诊断或时间错误 OB 中调用“MB_MASTER”指令。
传送启动后,EN 参数 (LAD/FBD) 必须保持设置为值“1”,直到指令将 DONE 或ERROR 输出参数设置为“1”为止。 指令执行过程中 REQ 参数更新调用将导致错误。 指令执行后,REQ 参数在背景数据块中的 BLOCKED_PROC_TIMEOUT 参数指定的时间内保持置位。
如果“MB_MASTER”将请求发送到从站,则确保“MB_MASTER”继续执行,直至从站返回的响应到达。
按照以上要求你的程序中EN、REQ 端连接参数需要修改
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc173623.html