Codesys代码代写,程序开发,软件定制,bug修改,问题咨询: TAO宝搜索店铺【林磊教育】
ANY 定义
Any内部是一个数据结构体,在定义一个Any变量时,内部会转成其结构体,定义如下
c
TYPE Any :
STRUCT
// 实际参数的类型
typeclass : __SYSTEM.TYPE_CLASS ;
// 指向实际参数的指针
pvalue : POINTER TO BYTE;
// 指针指向的数据大小
diSize : DINT;
END_STRUCT
END_TYPE
(1) __SYSTEM.TYPE_CLASS的定义
TYPE_CLASS是变量的数据类类型,对于用户自定义的数据类型或者功能块实例,其值是 TYPE_USERDEF;
(2) TYPE_CLASS的获取运算符 '_VARINFO'
'_VARINFO' 运算符是符合IEC61131-3标准的扩展,该运算符返回变量的信息 __SYSTEM.VAR_INFO
(3) __SYSTEM.VAR_INFO的定义
__SYSTEM.VAR_INFO 是一个结构体类型,其定义说明如下
名字 | 数据类型 | 描述 |
---|---|---|
ByteAddress | DWORD | 字节地址 |
ByteOffse | DWORD | 地址偏移量: 如果是全局变量,其值是相对于该区域的起始地址 ;如果是函数或方法的局部变量,其值是相对于当前堆栈,如果是功能块中的局部变量,其值是相对于功能块的起始地址 |
Area | DINT | 内存区域编号: -1 表示实例或者堆栈中变量 |
BitNr | INT | 位数;如果不是正数数据类型,其值我-1(16#FFFF) |
BitSize | INT | 变量内存的大小 (以位为单位) |
BitAddress | UDINT | 变量的位地址;该变量位必须位于输入、输出,中间存储区 |
TypeClass | Type_Class | 变量的数据类型 |
TypeName | string | 变量的数据类型(字符串显示) |
NumElements | UDINT | 数组元素的个数,变量数据类型必须是ARRAY |
BaseTypeClass | Type_Class | 数组元素变量的基本数据类型,变量数据类型必须是ARRAY |
ElemBitSize | UDINT | 数组元素变量的基本数据类型大小(以位为单位),变量数据类型必须是ARRAY |
内存区域 | MEMORY_AREA | 有关存储区的信息:MEM_GLOBAL: 全局内存区域;MEM_LOCAL: 本地内;MEM_MEMORY: 标记存储区%M;MEM_INPUT: 输入存储区%I ;MEM_OUTPUT: 输出存储区%Q;MEM_RETAIN: 保持存储区 |
Symbol | STRING(39) | 变量名:例如'iValue' |
Comment | STRING(79) | 变量注释:例如'this is nums of array' |