WRITE_READ_VAR:读取和写入 Modbus 设备上的内部寄存器

功能描述

此功能可读取内部寄存器(仅限 MW 类型)并写入到采用 Modbus 协议的外部设备。读取和写入操作包含在单个事务中。

先执行写入操作。WRITE_READ_VAR 功能随后可以:

o写入连续内部寄存器并立即读回这些寄存器的值以进行验证

o在同一个唯一请求中,写入某些连续内部寄存器,并读取其他寄存器

图形表示形式

G-SE-0005963.1.gif-high.gif

 

 

WRITE_READ_VAR - 具体参数描述

输入

类型

注释

ObjType

ObjectType

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链接到与以下示例相似的缓冲区声明。

G-SE-0068765.1.gif-high.gif

 

 

所有 PLCCommunication 库功能块共有的输入和输出参数在其他部分中介绍

示例

这个示例显示结合 ADDM 功能块执行 WRITE_READ_VAR 功能块以便从地址 11 开始写入两个寄存器并且从 Modbus 从站的地址 1 开始读取两个寄存器。Modbus 从站被指定有地址 8,必须能够通过串行线路接口 1 到达。前提条件是通过串行线路接口 1 将 Modbus Manager 配置为主站。

G-SE-0002101.2.gif-high.gif