SIEMENS西门子 WinCC V7.0服务器选项 6AV6 371-1CA07-0AX0
MB_DATA_PTR 参数 (S7-1200, S7-1500) 说明 参数 MB_DATA_PTR 是一个指针,指向将从 Modbus 服务器接收数据的数据缓冲区或指向待 发送到 Modbus 服务器的数据所在数据缓冲区的指针。作为数据缓冲区,可使用全局数据块 或存储区域 (M)。 对于存储区域 (M) 中的缓冲区,可通过以下方式使用 ANY 格式的指针:“P#位地址” “数据类 型” “长度”(例如:P#M1000.0 WORD 500)示例: • MB_MODE=104, MB_DATA_ADDR=17,834, MB_DATA_LEN=125 – MB_MODE=104 定义功能代码 04(读输入字)。 – MB_DATA_ADDR=17834 定义远程地址 17834。 – MB_DATA_LEN=125 定义待读取 125 个值。 下表列出了“MB_CLIENT”指令中输入参数 MB_MODE、MB_DATA_ADDR 和 MB_DATA_LEN 与 相关 Modbus 功能的关系。 MB_MOD E MB_DATA_AD DR MB_DATA _LEN Modbus 功能 功能和数据类型 0 1 到 9999 1 到 2000 01 在远程地址 0 到 9998 处,读取 1 到 2000 个输出位 0 10001 到 19999 1 到 2000 02 在远程地址 0 到 9998 处,读取 1 到 2000 个输入位 0 • 40001 到 49999 • 400001 到 465535 1 到 125 03 • 在远程地址 0 到 9998 处,读取 1 到 125 个保持性 寄存器 • 在远程地址 0 到 65534 处,读取 1 到 125 个保持 性寄存器 0 30001 到 39999 1 到 125 04 在远程地址 0 到 9998 处,读取 1 到 125 个输入字 1 1 到 9999 1 05 在远程地址 0 到 9998 处,写入 1 个输出位 1 • 40001 到 49999 • 400001 到 465535 1 06 • 在远程地址 0 到 9998 处,写入 1 个保持性寄存器 • 在远程地址 0 到 65534 处,写入 1 个保持性寄存器 1 1 到 9999 2 到 1968 15 在远程地址 0 到 9998 处,写入 2 到 1968 个输出位 1 • 40001 到 49999 • 400001 到 465535 2 到 123 16 • 在远程地址 0 到 9998 处,写入 2 到 123 个保持性 寄存器 • 在远程地址 0 到 65534 处,写入 2 到 123 个保持 性寄存器 2 1 到 9999 1 到 1968 15 在远程地址 0 到 9998 处,写入 1 到 1968 个输出位 2 • 40001 到 49999 • 400001 到 465535 1 到 123 16 • 在远程地址 0 到 9998 处,写入 1 到 123 个保持性 寄存器 • 在远程地址 0 到 65534 处,写入 1 到 123 个保持 性寄存器。
MB_MOD E MB_DATA_AD DR MB_DATA _LEN Modbus 功能 功能和数据类型 11 执行该功能时,不会评估 MB_DATA_ADDR 和 MB_DATA_LEN 参数。 11 读取服务器的状态字和事件计数器: • 状态字反映了处理的状态(0 - 未处理,0xFFFF - 正 在处理) • Modbus 请求成功执行时,事件计数器将递增。如 果执行 Modbus 功能时出错,则服务器将发送消 息,但不会递增事件计数器。 80 - 1 08 通过诊断代码 0x0000 检查服务器状态(返回循环测试 - 服务器发回请求): • 每次调用 1 个 WORD 81 - 1 08 通过诊断代码 0x000A 复位服务器的事件计数器: • 每次调用 1 个 WORD 101 0 到 65535 1 到 2000 01 在远程地址 0 到 65535 处,读取 1 到 2000 个输出位 102 0 到 65535 1 到 2000 02 在远程地址 0 到 65535 处,读取 1 到 2000 个输入位 103 0 到 65535 1 到 125 03 在远程地址 0 到 65535 处,读取 1 到 125 个保持性寄 存器 104 0 到 65535 1 到 125 04 在远程地址 0 到 65535 处,读取 1 到 125 个输入字 105 0 到 65535 1 05 在远程地址 0 到 65535 处,写入 1 个输出位 106 0 到 65535 1 06 在远程地址 0 到 65535 处,写入 1 个保持性寄存器 115 0 到 65535 1 到 1968 15 在远程地址 0 到 65535 处,写入 1 到 1968 个输出位 116 0 到 65535 1 到 123 16 在远程地址 0 到 65535 处,写入 1 到 123 个保持性寄 存器功能和数据类型 123 未使用 未使用 23 在一个作业中对远程设备的保持寄存器进行写入和读 取。 注:自指令版本 V6.0 起,“MB_CLIENT”支持此 Modbus 功能。为此,将使用参数 RD_MB_DATA_ADDR、RD_MB_DATA_LEN、 WR_MB_DATA_ADDR、WR_MB_DATA_LEN、 RD_MB_DATA_PTR 和 WR_MB_DATA_PTR。 请参见“Modbus 功能 23 (页 6280)” 3 到 10、 12 到 79、 82 到 100、107 到 114、 117 到 122、124 到 255 预留 说明 基于 MB TCP 的 RTU 设备的单元标识符 基于 Modbus TCP 的 RTU 设备的单元标识符,位于“MB_CLIENT”指令背景数据块的可编辑静 态变量中的“MB_Unit_ID”变量内。单元标识符用于唯一分配耦合伙伴。MB_DATA_PTR 可引用不同的数据结构,具体取决于数据缓冲区所在的存储区域: • 使用优化访问的全局数据块时,MB_DATA_PTR 可引用基本数据类型的变量或数组。支持 以下数据类型: 数据类型 长度(位) Bool 1 Byte、SInt、USInt、Char 8 Word、Int、WChar、UInt 16 DWord、DInt、UDInt、Real 32 此时,所有 Modbus 功能都可使用支持的所有数据类型。例如,MB_CLIENT 可将接收到 的字节类型变量中的某个位写入一个特定地址内,而不改变该字节中的其它位。因此,在 执行位操作功能时,无需使用位数组。 • 如果使用位存储器地址区或标准访问全局数据块作为存储区,则 MB_DATA_PTR 对基本数 据类型的使用无任何限制;此时,MB_DATA_PTR 还可引用诸如 PLC 数据类型 (UDT) 和系 统数据类型 (SDT) 等复杂数据类型。 说明 将位存储器地址区域用作数据缓冲区 如果将位存储器地址区域用作 MB_DATA_PTR 数据缓冲区,则需注意该变量的值。S7-1500- CPU 为 16 KB;S7-1200-CPU 为 8 KB。
Modbus 功能 23 (S7-1200, S7-1500) 说明 使用 Modbus 功能 23,可以在作业中执行以下操作: 1. 将数据从 CPU 传输到 Modbus 服务器,并写入一个或多个保持寄存器。 2. 从 Modbus 服务器的一个或多个保持寄存器中读取数据,然后将此数据传输到 CPU。 自指令版本 V6.0 起,“MB_CLIENT”指令支持 Modbus 功能 23。 参数 使用 Modbus 功能 23 时,MB_MODE 参数的值必须为 123。 参数 MB_DATA_ADDR、MB_DATA_LEN 和 MB_DATA_PTR 不会被使用,并且这些参数的值必 须为默认值。使用 Modbus 功能 23 时,将使用六个新参数,如下表所述。这些参数中的每一个参数都以 “RD_”或“WR_”开头,用于表明其属于读或写任务。这些参数默认处于隐藏状态。使用 Modbus 功能 23 时,这六个参数必须全部使用。 如果使用其它 Modbus 功能,则这六个参数的值必须为 0 或必须为空。否则,将返回 STATUS 值 16#818D。 参数 声明 数据类型 说明 RD_MB_DATA _ADDR Input UInt 远程设备上的起始地址,要从该地址开始读取数据。 允许值:0 到 65535 RD_MB_DATA _LEN Input UInt 要从远程设备读取的寄存器数。 允许值:1 到 125 WR_MB_DATA _ADDR Input UInt 远程设备上的起始地址,要从该地址开始写入数据。 允许值:0 到 65535 WR_MB_DATA _LEN Input UInt 要写入远程设备的寄存器数。 允许值:1 到 121 RD_MB_DATA _PTR InOut Variant 指向待从 Modbus 服务器读取的数据所在数据缓冲区的指针。 允许使用与 MB_DATA_PTR 相同的数据类型。 WR_MB_DATA _PTR InOut Variant 指向待写入 Modbus 服务器的数据所在数据缓冲区的指针。 允许使用与 MB_DATA_PTR 相同的数据类型。 STATUS 参数 STATUS 值 16#8383、8189、818A 和 818B 的含义已扩展。添加了 STATUS 值 16#818D。 请参见“参数 STATUS (页 6284)” 升级项目,升级指令 当使用 MB_CLIENT 指令(例如,指令版本 V5.2)升级现有项目(例如,使用 TIA Portal V16 创建的项目)时,程序不会自动使用新的指令版本。 要使用 Modbus 功能 23,必须手动升级指令版本。