统计变量 NDR_immediate 和 DR_immediate (S7-1200, S7-1500)NDR_immediate 和 DR_immediate 指令 MB_SERVER(自指令版本 V5.0起)的背景数据块中含有统计变量 NDR_immediate 和 DR_immediate。 变量 数据类型 起始值 含义NDR_immediate BOOL FALSE 与参数 NDR (New Data Ready) 含义相同。NDR_immediate 将在 MB_SERVER 进行的同一次调用中进行更 新,在该调用中还会处理 MODBUS-TCP 写请求。DR_immediate BOOL FALSE 与参数 DR (Data Read) 含义相同。 DR_immediate 将在MB_SERVER 进行的同一次调用中进行更新, 在该调用中还会处理 MODBUS-TCP 读请求。 Modbus TCP 库版本<= V3.x 和 >= V4.0 间的差异 (S7-1200, S7-1500) Modbus 指令版本 <=V3.x 和 >= V4.0 间的差异 MB_SERVER/MB_CLIENT MODBUS 指令的各个版本间存在以下差别: •地址参数 – 在版本 V3.x 及更低版本中,Modbus TCP 服务器的地址数据由输入参数“IP_x”指定。 – 而在版本V4.0 及更高版本中,则在 CONNECT 输入参数处使用 TCON_IP_V4 和 TCON_Configured系统数据类型指定。 • 如果执行期间出错,对于 Modbus 指令 V4.0 及更高版本,将提供更多可以相应评估的 STATUS报警。
有关详细信息,请参见MB_CLIENT (页 6270) 和 MB_SERVER (页 6288) 指令说明。 说明 将 ModbusTCP 库版本从 <= V3.x 更改为 >= V4.0 将 Modbus TCP 库版本从 <= V3.x 替换为>= V4.0 时,还需要替换开放式用户通信库。之后, 还需检查与程序相关的所有指令。 针对库版本 V5.0 或更高版本的冗余MODBUS (TCP) 通信 (S7-1200, S7-1500) MB_RED_CLIENT:作为 MODBUS-TCP客户端通过 PROFINET 进行冗余通信 (S7-1200, S7-1500) MB_RED_CLIENT 说明 (S7-1200,S7-1500) 说明 使用该指令可在 1200/1500 CPU 与支持 Modbus/TCP 协议的设备之间建立连接。 指令"MB_RED_CLIENT" 作为 Modbus/TCP 客户端通过 PROFINET 连接进行通信。可使用指令"MB_RED_CLIENT" 在客户端和服务器之间建立冗余连接、发送 Modbus 请求、接收响应并控 制 Modbus/TCP客户端的连接终端。 在以下 CPU 中,可使用 "MB_RED_CLIENT" 指令: “MB_RED_CLIENT”V1.0“MB_RED_CLIENT”V1.1 S7-1200 FW V4.2 及更高版本 FW V4.2 及更高版本 S7-1500 FWV2.5 及更高版本 FW V2.5 及更高版本 S7-1500R -- FW V2.6 及更高版本 S7-1500H -- FWV2.6 及更高版本 使用该指令时,无需其它任何硬件模块。 多个客户端连接 CPU 可处理多个 Modbus/TCP客户端连接。连接的Zui大数目取决于所使用的 CPU,具体请参 见相关 CPU 的技术规范。一个 CPU 的总连接数(包括Modbus/TCP 客户端和服务器的连接 数)不能超过所支持的Zui大连接数。使用各客户端连接时,请记住以下规则: •每个“MB_RED_CLIENT”连接都必须使用唯一的背景数据块。 •对于每个“MB_RED_CLIENT”连接,必须指定唯一的服务器 IP 地址。 •每个“MB_RED_CLIENT”连接都需要一个唯一的连接 ID。连接 ID 在整个 CPU 范围内必须唯 一。有关冗余设置的信息,请参见:运行和冗余 (页 6306)。 参数 下表列出了“MB_RED_CLIENT”指令的参数: 参数声明 数据类型 说明 REG_KEY (页 6314) Input STRING[17 ] 授权注册码 必须在每个 CPU上分别对 "MB_RED_CLIENT" 指令进行授权。 USE_ALL_CON N Input BOOL指定要通过其发送帧的组态连接数目 • 0:通过一个连接发送帧,只有在发生错误的情况下才能切换到下 一个连接 •1:通过所有组态连接发送帧 REQ Input BOOL 对 Modbus/TCP 服务器的 Modbus 查询 REQ参数受到等级控制。这意味着只要设置了输入 (REQ = TRUE),指 令就会发送通信请求。如果连接尚未建立,此时便会建立,且随后立即发送 Modbus 帧。 在服务器进行响应或输出错误消息之前,对输入参数的更改不会生 效。 如果在 Modbus请求期间设置了参数 REQ,此后将不会进行任何 其它传输。 DISCONNECT Input BOOL 通过该参数,可以控制与Modbus 服务器建立和终止连接: • 0:与通过 CONNECT 参数组态的连接伙伴(请参见 CONNECT 参数)建立通信连接。 • 1:断开通信连接。在终止连接的过程中,不执行任何其它功能。 成功终止连接后,STATUS_x 参数将输出值0003。 MB_MODE (页 6317) Input USINT 选择 Modbus的请求模式(读取、写入或诊断)或直接选择 Modbus 功能参数 声明 数据类型 说明 MB_DATA_ADD R(页 6317) Input UDINT Modbus 地址取决于 MB_MODE MB_DATA_LEN InputUINT 数据长度:数据访问的位数或寄存器数。 MB_DATA_PTR (页 6317) InOut VARIANT指向待从 Modbus 服务器接收的数据或待发送到 Modbus 服务器的数 据所在数据缓冲区的指针。 LICENSED(页 6314) Outpu t BOOL • 0:指令未获授权 • 1:指令已获授权 IDENT_CODE(页 6314) Outpu t STRING[18 ] 授权标识。使用此字符串申请注册码 REG_KEY。 DONEOutpu t BOOL 如果激活 Modbus 作业在至少一个连接上成功完成,则输出参数 DONE 中的该位将立即置位为“1”。BUSY Outpu t BOOL • 0:无正在进行的 Modbus 请求 • 1:正在处理 Modbus 请求在建立和终止连接期间,不会设置输出参数 BUSY。 ERROR Outpu t BOOL • 0:无错误 • 1:激活 Modbus作业在任何组态的连接上都不能成功传输。出错 原因由参数 STATUS_x 指示。 STATUS_0A (页 6320)Outpu t WORD 连接 0A 上指令的详细状态信息。 STATUS_1A (页 6320) Outpu t WORD连接 1A 上指令的详细状态信息。 STATUS_0B (页 6320) Outpu t WORD 连接 0B上指令的详细状态信息。 STATUS_1B (页 6320) Outpu t WORD 连接 1B 上指令的详细状态信息。RED_ERR_S7 (页 6320) Outpu t BOOL • 0:SIMATIC 中无冗余错误 •1:SIMATIC 中存在冗余错误 RED_ERR_DEV (页 6320) Outpu t BOOL •0:链接伙伴侧无冗余错误 • 1:链接伙伴侧存在冗余错误 TOT_COM_ERR (页 6320) Outpu t BOOL• 0:至少已建立 1 个组态连接 • 1:完全丢失通信,所有组态连接均终止。