WRITE_READ_VAR:读取和写入 Modbus 设备上的内部寄存器
此功能可读取内部寄存器(仅限 MW 类型)并写入到采用 Modbus 协议的外部设备。读取和写入操作包含在单个事务中。
先执行写入操作。WRITE_READ_VAR 功能随后可以:
o写入连续内部寄存器并立即读回这些寄存器的值以进行验证
o在同一个唯一请求中,写入某些连续内部寄存器,并读取其他寄存器
输入 |
类型 |
注释 |
---|---|---|
ObjType |
ObjType 为要写入和读取的对象类型(仅限 MW)。 |
|
FirstWriteObj |
DINT |
FirstWriteObj 为要写入的第一个对象的索引。 |
WriteQuantity |
UINT |
WriteQuantity 为要写入的对象数: o1...121:寄存器(MW 类型) |
WriteBuffer |
POINTER TO BYTE |
数组的指针地址,该数组包含应写入到目标设备的数据。数组必须等于或大于应写入的数据。必须使用 ADR 功能来传送数组的第一个字节的地址(请参阅示例中的 CFC 图)。 |
FirstReadObj |
DINT |
ReadFirstObj 为要读取的第一个对象的索引。 |
ReadQuantity |
UINT |
ReadQuantity 表示要读取的对象数: o1...125:寄存器(MW 类型) |
ReadBuffer |
POINTER TO BYTE |
数组的指针地址,该数组包含已经从目标设备读取的接收数据。数组必须等于或大于应读取的数据。必须使用 ADR 功能来传送数组的第一个字节的地址(请参阅示例中的 CFC 图)。 |
注意: 为了防止因存储器指针访问无效(在范围外)引起的非法访问,必须确保链接到输入Buffer的数组的大小等于或大于将写入到目标设备或从目标设备接收的数据。理想的做法是,将要写入或读取的数据的定义 Quantity链接到与以下示例相似的缓冲区声明。
所有 PLCCommunication 库功能块共有的输入和输出参数在其他部分中介绍。
这个示例显示结合 ADDM 功能块执行 WRITE_READ_VAR 功能块以便从地址 11 开始写入两个寄存器并且从 Modbus 从站的地址 1 开始读取两个寄存器。Modbus 从站被指定有地址 8,必须能够通过串行线路接口 1 到达。前提条件是通过串行线路接口 1 将 Modbus Manager 配置为主站。