GetDataTypeInfo

Lire la description d’une variable structurée

Cette instruction lit la description d’une variable structurée (DUT, ARRAY) de l’entrée Variable et écrit la description dans la variable de sortie adutDataTypeInfo.

Entrée

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

Adresse de départ de la variable structurée

Sortie

adutDataTypeInfo (ANY ARRAY OF DATA_TYPE_INFO_DUT)

Adresse de départ du tableau (array) de la description de la variable

Remarques

  • Les types de données valides pour l’entrée Variable sont des types de données structurées avec variables de type simple (sauf BOOL), des tableaux de ces types simples et des types de données structurées (DUT) composés de ces types simples.

  • La variable adutDataTypeInfo doit être un tableau (array) de DATA_TYPE_INFO_DUT.

  • La taille du tableau doit être égale ou supérieure au nombre d’éléments des données du process.

  • La description de variable est écrite dans un tableau ARRAY OF DATA_TYPE_INFO_DUT dont la taille doit correspondre au nombre d’éléments DUT de la variable spécifiée en entrée Variable. Chaque élément de la description de variable décrit un élément du DUT.

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.

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

Corps en LD

La fonction est exécutée lorsque la variable bEnable est définie sur 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

Corps en ST

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

Exemple

DUT

Dans cet exemple, la variable dutVariable est un DUT de type Example_2_DUT avec la structure suivante :

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.

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

Corps en LD

La fonction est exécutée lorsque la variable bEnable est définie sur 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

Corps en ST

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

Modifié le : 2023-06-16Commentaires sur cette pageAssistance téléphonique