GetDataTypeInfo

Leggere la descrizione di una variabile strutturata

Questa istruzione ottiene la descrizione di una variabile strutturata (DUT, ARRAY) sull'ingresso Variable e scrive la descrizione nella variabile di uscita adutDataTypeInfo.

Ingresso

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

Indirizzo iniziale della variabile strutturata

Uscita

adutDataTypeInfo (ANY ARRAY OF DATA_TYPE_INFO_DUT)

Indirizzo iniziale dell'array della descrizione della variabile

Note

  • I tipi validi per l'ingresso Variable sono tipi di dati strutturati con variabili di membro di qualsiasi tipo semplice (ad eccezione di BOOL), array di tali tipi semplici e tipi di unità di dati composte da tali tipi semplici

  • La variabile adutDataTypeInfo deve essere un array di DATA_TYPE_INFO_DUT

  • La dimensione dell'array deve essere uguale o maggiore del numero di elementi nei dati di processo.

  • La descrizione della variabile verrà scritta su un ARRAY OF DATA_TYPE_INFO_DUT, la dimensione del quale deve corrispondere al numero di elementi DUT della variabile specificata all'ingresso Variable. Ogni elemento della descrizione della variabile descrive un elemento della DUT.

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

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

Corpo LD

Quando la variabile bEnable è impostata su TRUE, la funzione viene eseguita.

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

Corpo ST

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

Esempio

DUT

In questo esempio, la variabile dutVariable è una DUT del tipo Example_2_DUT avente la seguente struttura:

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

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

Corpo LD

Quando la variabile bEnable è impostata su TRUE, la funzione viene eseguita.

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

Corpo ST

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

L'ultima revisione: 2023-06-16Feedback su questa paginaPanasonic hotline