工控编程吧

标题: 使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS [打印本页]

作者: baikhgmv    时间: 2016-11-5 09:25
标题: 使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS
使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS 的值一直保持 A083 (十六进制)在 SIMATIC S7 中下列产品的 Modbus 块可以用于 Modbud 通讯。


表 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













欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4