该操作符是 IEC 61131-3 标准的延伸。
运算符产生变量的相关信息。您可以将信息作为数据结构保存在数据类型为__SYSTEM.VAR_INFO
的变量中。
声明中的语法:
<name of the info variable> : __SYSTEM.VAR_INFO; // Data structure for info variable
呼叫的语法:
<name of the info variable> := __VARINFO( <variable name> ); // Call of the operator
示例
FUNCTION_BLOCK FB_Velocity VAR_INPUT rVelocity: REAL := 1.2; END_VAR VAR_OUTPUT END_VAR VAR infoVelocity: __SYSTEM.VAR_INFO; //Info of Velocity END_VAR infoVelocity := __VARINFO(rVelocity); // Gets the info of Velocity locally
PROGRAM PLC_PRG VAR iCounter : INT := 0; // Counts the calls infoCounter : __SYSTEM.VAR_INFO; //Info of Counter arrA : ARRAY [1..2, 1..2, 1..2] OF INT := [0, 1, 2, 3, 4, 5, 6, 7]; // Stores the A data infoA : __SYSTEM.VAR_INFO; //Info of A fbVel : FB_Velocity; END_VAR iCounter := iCounter + 1; infoCounter := __VARINFO(iCounter); infoA := __VARINFO(arrA); fbVel();
iCounter
和arrA
变量可在应用程序代码中识别。变量信息保存在infoCounter
和infoA
变量中。此外,FB_Velocity
功能块也已实例化。
数据类型 __SYSTEM.VAR_INFO
名称 |
数据类型 |
初始化 |
说明 |
---|---|---|---|
|
|
0 |
变量地址 例如 请注意:对于位访问变量 |
|
|
0 |
变量地址的偏移量(以字节为单位)。 例如: 请注意:如果变量是全局变量,则偏移量相对于区域的起始位置。如果变量是函数或方法中的局部变量,则偏移量相对于当前堆栈帧。如果变量是功能块中的局部变量,则偏移量是相对于功能块实例而言的。 |
|
|
0 |
运行系统中的内存区域编号 示例: 请注意:内存区域取决于设备。 |
|
|
0 |
位数(以字节为单位) 例如: 请注意:如果变量不是 整数数据类型,则: |
|
|
0 |
变量的内存大小(位) 例如: |
|
|
0 |
变量的位地址 要求:变量位于输入内存区 |
|
|
|
变量的数据类型 例如 请注意:对于用户定义的数据类型或功能块实例, |
|
|
'' |
变量的日期类型名称为 请注意:对于用户定义的数据类型,将输出功能块名称或 DUT 名称。 例如 |
|
|
0 |
数组元素数 要求:变量的数据类型为 例如 |
|
|
|
数组元素的基本数据类型。 要求:变量的数据类型为 例如: |
|
|
0 |
数组元素的内存大小(位) 要求:变量的数据类型为 例如: |
|
|
|
有关内存区域的信息
例如 请注意:内存区域配置取决于设备。 |
|
|
'' |
变量名为 例如 |
|
|
'' |
变量声明的注释 例如: |