READ_VAR 功能块从采用 Modbus 协议的外部设备中读取数据。
输入 |
类型 |
注释 |
---|---|---|
ObjType |
ObjectType |
ObjType 是要读取的对象的类型(MW、I、IW 和 Q)。 |
FirstObj |
DINT |
FirstObj 为要读取的第一个对象的索引。 |
Quantity |
UINT |
Quantity 为要读取的对象数: o1...125:寄存器(MW 和 IW 类型) o1...2000:位(I 和 Q 类型) |
Buffer |
POINTER TO BYTE |
数组的指针地址,该数组包含已经从目标设备读取的接收数据。数组必须等于或大于应读取的数据。例如,4 个寄存器的读取需要 4 字数组,而 32 位的读取则需要 2 字(或 4 字节)数组,其中的每个位都设置为远程设备的对应值。必须使用 ADR 功能来传送数组的第一个字节的地址(请参阅示例中的 CFC 图)。 |
注意: 为了防止因存储器指针访问无效(在范围外)引起的非法访问,必须确保链接到输入Buffer的数组的大小等于或大于将从目标设备接收的数据。理想的做法是,将要读取的数据的定义 Quantity链接到与以下示例相似的缓冲区声明。
所有 PLCCommunication 库功能块共有的输入和输出参数在其他部分中介绍。
这个示例显示结合 ADDM 功能块执行 READ_VAR 功能块以便从 Modbus 从站的地址 1 开始读取两个寄存器。Modbus 从站被指定有地址 8,必须能够通过串行线路接口 1 到达。前提条件是通过串行线路接口 1 将 Modbus Manager 配置为主站。
下图显示 READ_VAR 功能的声明和使用: