运算符:__VARINFO
运算符是 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 | 数组元素的内存大小(以位为单位) 要求:变量具有数据类型 例子: |
|
|
| 关于内存区域的信息
例子: 注意:内存区域配置取决于设备。 |
|
| '' | 变量名称为 例子: |
|
| '' | 变量声明的注释 例子: |