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
Dirección de inicio de la variable estructurada
Salida
Dirección de inicio del array de la descripción de la variable
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
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
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
if (bEnable) then
adutDataTypeInfo := GetDataTypeInfo(asSimpleVariable);
end_if;
En este ejemplo, la variable dutVariable es una DUT del tipo Example_2_DUT con la siguiente estructura:
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
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
if (bEnable) then
adutDataTypeInfo := GetDataTypeInfo(dutVariable);
end_if;