GetDataTypeInfo

阅读结构化变量的描述

此指令在Variable输入处获取结构化变量(DUT、ARRAY)的变量描述并将描述写入输出变量adutDataTypeInfo中。

输入

Variable (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

结构化变量的起始地址

输出

adutDataTypeInfo (ANY ARRAY OF DATA_TYPE_INFO_DUT)

变量描述数组的起始地址

标注

  • Variable输入的有效类型包括成员变量为任何简单类型(BOOL除外)的的结构化数据类型、这些简单类型的数组以及由这些简单类型组成的数据单元类型

  • adutDataTypeInfo变量必须为DATA_TYPE_INFO_DUT的数组

  • 数组大小必须等于或大于进程数据中的元素数。

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR
		bEnable: BOOL:=FALSE;
		asSimpleVariable: ARRAY [0..2] OF STRING[32]:=[3('')];
		adutDataTypeInfo: ARRAY [0..0] OF DATA_TYPE_INFO_DUT;
	END_VAR

LD本体

当变量bStartFALSE变为TRUE时,执行此函数。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,4,1,6,3,);
B(B_F,E_GetDataTypeInfo!,,15,0,28,4,,?DEN?dVariable?AENO?cadutDataTypeInfo);
B(B_VARIN,,asSimpleVariable,13,2,15,4,);
B(B_VAROUT,,adutDataTypeInfo,28,2,30,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,15,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

if (bEnable) then
    adutDataTypeInfo := GetDataTypeInfo(asSimpleVariable);
end_if;

示例

DUT

在此示例中,变量dutVariable为具有以下结构的Example_2_DUT类型的DUT:

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR
		bEnable: BOOL:=FALSE;
		dutVariable: Example_2_DUT;
		adutDataTypeInfo: ARRAY [0..2] OF DATA_TYPE_INFO_DUT;
	END_VAR

LD本体

当变量bEnable设置为TRUE时,执行此函数。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,4,1,6,3,);
B(B_F,E_GetDataTypeInfo!,,13,0,26,4,,?DEN?dVariable?AENO?cadutDataTypeInfo);
B(B_VARIN,,dutVariable,11,2,13,4,);
B(B_VAROUT,,adutDataTypeInfo,26,2,28,4,);
L(1,0,1,5);
L(1,2,4,2);
L(6,2,13,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

if (bEnable) then
    adutDataTypeInfo := GetDataTypeInfo(dutVariable);
end_if;

最后更新日期: 此页面上的反馈松下热线