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ボディ

変数bEnableTRUEにセットされたとき、ファンクションが実行されます。

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ボディ

変数bEnableTRUEにセットされたとき、ファンクションが実行されます。

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;

最終修正日: 2021-11-24このページに関するフィードバックお問い合わせ窓口