tt99166 发表于 2023-9-22 22:21:12

基于CODESYS平台运用ANY数据类型,获取任意变量属性

什么编程场景会用到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
页: [1]
查看完整版本: 基于CODESYS平台运用ANY数据类型,获取任意变量属性