READ_VAR:从 Modbus 设备读取数据

功能描述

READ_VAR 功能块从采用 Modbus 协议的外部设备中读取数据。

图形表示形式

G-RU-0010455.2.gif-high.gif

 

 

READ_VAR - 具体参数描述

输入

类型

注释

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

G-SE-0068765.1.gif-high.gif

 

 

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

示例

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

下图显示 READ_VAR 功能的声明和使用:

G-SE-0005663.2.gif-high.gif