什么编程场景会用到ANY数据类型?
用在功能Function上,外部输入数据的数据类型有多种可能性,但又要功能Function兼容,这时候ANY就会用上,如下面所示。
FUNCTION FC_ANY_Test : BOOL
VAR_INPUT
anyInput : ANY;
END_VAR
在功能Function中可以引用该变量anyInput的三个属性,包括TypeClass,diSize,pValue,用户可依此计算出anyInput变量的数据类型和值,如下面所示。
VAR
diSize:DINT;
pPointer :POINTER TO BYTE;
TypeClass: __SYSTEM.TYPE_CLASS;
END_VAR
TypeClass:=anyInput.TypeClass; //anyInput的数据类型
diSize:=anyInput.diSize; //anyInput的数据长度
pPointer:=anyInput.pValue; //anyInput的起始指针
其中 __SYSTEM.TYPE_CLASS为系统枚举便利数据类型,下面列出所有类型。
TYPE_CLASS
Global Variable List __SYSTEM.TYPE_CLASS
{attribute 'qualified_only'}
TYPE TYPE_CLASS:
(
TYPE_BOOL := DWORD#0;
TYPE_BIT := DWORD#1;
TYPE_BYTE := DWORD#2;
TYPE_WORD := DWORD#3;
TYPE_DWORD := DWORD#4;
TY