使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS 的值一直保持 A083 (十六进制) ?

表1是产品及其相应的Modbus块。

产品 Modbus 块
SIMATIC Modbus/TCP CP FB 108
SIMATIC Modbus/TCP PN Red FB 915, FB 917
SIMATIC Modbus/TCP CP Red FB 909, FB 907
SIMATIC Modbus/TCP PN-CPU FB 102

表1

在 CPU 的用户程序调用相关的Modbus 块。
对 Modbus 块的 ENQ_ENR 输入管脚设置为true,则其输出管脚STATUS 则保持为A083(十六进制)。

当有输入参数 ENQ 或 ENQ_ENR 为 true 触发则输出管脚 STATUS 的值为 A083(十六进制)表示有新的 Modbus 消息,尽管上一个任务还在运行。

状态值 A083(十六进制)的产生原因和补救如下:

  • Modbus 块参数化为客户端时,A083(十六进制)的值只出现在输出参数 STATUS。如果 S7 CPU 应工作在服务器时其状态值输出了 A083(十六进制),则必须在 OB100 中正确参数化 Modbus 块。
  • 触发 Modbus 消息总是终止与 DONE / DONE_NDR 或 ERROR。一个消息正在处理时不能处理新消息。
  • 如果当一个Modbus工作运行时S7 CPU 作为服务器不能访问,在重连后可能呈现状态值 A083(十六进制)。这种情况下,设置ENQ_ENR 时插入下面的条件:

    O "CONTROL DAT".DONE_NDR
    O "CONTROL DAT".ERROR
    AN "CONTROL DAT".BUSY
    S "CONTROL DAT".ENQ_ENR

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论