GetDataTypeInfo

Leer la descripción de una variable estructurada

Esta instrucción obtiene la descripción de una variable estructurada (DUT, ARRAY) en la entrada Variable y escribe la descripción en la variable de salida adutDataTypeInfo.

Entrada

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

Dirección de inicio de la variable estructurada

Salida

adutDataTypeInfo (ANY ARRAY OF DATA_TYPE_INFO_DUT)

Dirección de inicio del array de la descripción de la variable

Observaciones

  • Los tipos válidos de la entrada Variable son datos estructurados con variables miembro de cualquier tipo simple (excepto BOOL), array de estos tipos simples y tipos de unidades de datos compuestos por esos tipos simples

  • La variable adutDataTypeInfo debe ser un array de tipo DATA_TYPE_INFO_DUT

  • El tamaño del array debe ser igual o mayor que el número de elementos de los datos de proceso.

  • La descripción de una variable se escribirá en un ARRAY OF DATA_TYPE_INFO_DUT, cuyo tamaño debe corresponder al número de elementos DUT de la variable especificada en la entrada Variable. Cada elemento de la descripción de la variable describe un elemento de la DUT

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

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

Cuerpo LD

La función se ejecuta cuando la variable bEnable se encuentra a 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

Cuerpo en ST

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

Ejemplo

DUT

En este ejemplo, la variable dutVariable es una DUT del tipo Example_2_DUT con la siguiente estructura:

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

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

Cuerpo LD

La función se ejecuta cuando la variable bEnable se encuentra a 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

Cuerpo en ST

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

Modificado el: 2023-06-16Comentarios sobre esta páginaLínea directa de Panasonic