Oggetto: DUT Permalink

Un DUT (Data Unit Type) dichiara un tipo di dati specifico dell'utente.

Simbolo:

  • cds_icon_add_dut.png DUT

  • _cds_icon_textlist_dut.png Enumerazione con supporto per gli elenchi di testo

È possibile aggiungere questo tipo di oggetto sotto l'applicazione o nella vista POUs.

Quando l'oggetto viene creato, si apre la finestra di dialogo «Add DUT». È possibile configurare il nuovo tipo di dati e scegliere tra i costrutti (struttura, enumerazione, alias e unione).

Sintassi per la dichiarazione dei tipi di dati definiti dall'utente

TIPO <identificatore> :

<dichiarazione del tipo di dati>

END_TYPE

Costruzione del DUT

La dichiarazione di un tipo di dati definito dall'utente è posta tra le parentesi TYPE e END_TYPE.

TIPO <identificatore> :

STRUTTURA

    <dichiarazione di membro>

END_STRUCT

END_TYPE

Una struttura racchiude i suoi membri con STRUCT e END_STRUCT. È possibile dichiarare un numero qualsiasi di membri, ma almeno due.

STRUTTURA

TIPO <identificatore> :

(

    <elenco dei membri>

) <tipo di dati base> := <inizializzazione> ;

END_TYPE

Un'enumerazione è un elenco separato da virgole di nomi di membri tra parentesi tonde. Tutti i membri hanno lo stesso tipo di dati.

A un'enumerazione può essere assegnato anche un elenco di testo. Viene utilizzato per localizzare i valori dell'enumerazione. Di conseguenza, l'oggetto ha anche una vista di localizzazione.

Enumerazione

TIPO <identificatore> : <nome del tipo di dati> ;

END_TYPE

Un alias è un identificatore alternativo.

Alias

TIPO <identificatore> :

UNIONE

    <dichiarazione di membro>

FINE UNIONE

END_TYPE

Un'unione racchiude i suoi membri con UNION e END_UNION. È un tipo di dati con diversi membri che condividono la stessa posizione di memoria.

UNIONE

Esempio

Dichiarazione della struttura S_POLYGONLINE con inizializzazione parziale dei membri

TYPE S_POLYGONLINE :
STRUCT
    aiStart : ARRAY[1..2] OF INT := [-99, -99];
    aiPoint1 : ARRAY[1..2] OF INT;
    aiPoint2 : ARRAY[1..2] OF INT;
    aiPoint3 : ARRAY[1..2] OF INT;
    aiPoint4 : ARRAY[1..2] OF INT;
    aiEnd : ARRAY[1..2] OF INT := [99, 99];
END_STRUCT
END_TYPE

Dichiarazione della struttura S_PENTAGON come estensione di S_POLYGONLINE

TYPE S_PENTAGON EXTENDS S_POLYGONLINE :
STRUCT
    aiPoint5 : ARRAY[1..2] OF INT;
END_STRUCT
END_TYPE

Esempio

Dichiarazione dell'enumerazione E_TRAFFICSIGNAL

{attribute 'qualified_only'}
{attribute 'strict'}
TYPE E_TRAFFICSIGNAL :
(
    eRed,
    eYellow,
    eGreen := 10
);
END_TYPE

Enumerazione con supporto dell'elenco di testo nella vista di localizzazione

cds_enum_textlist_example_trafficsignal.png

I pulsanti _cds_img_button_textual_view.png «Textual View» e _cds_img_button_tabular_view.png «Localization View» si trovano sul bordo destro dell'editor. Fare clic sui pulsanti per passare da una visualizzazione all'altra.

Esempio

Dichiarazione di un alias

TYPE A_MESSAGE : STRING[50];
END_TYPE

Esempio

Dichiarazione di un'unione

TYPE U_DATA :
UNION
    lrA : LREAL;
    liA : LINT;
    dwA : DWORD;
END_UNION
END_TYPE