Strutture

Panoramica

Per creare strutture in un progetto come oggetti DUT (Data Type Unit) utilizzare la finestra di dialogo Aggiungi oggetto.

Cominciano con le parole chiave TYPE e STRUCT e terminano con END_STRUCT ed END_TYPE.

Sintassi

TYPE <structurename>:
STRUCT
    <declaration of variables 1>
    ...
    <declaration of variables n>
END_STRUCT
END_TYPE

<nome struttura> è un tipo riconosciuto nel progetto e può essere utilizzato come tipo di dati standard.

Sono consentite strutture annidate. L'unica restrizione è l'impossibilità di assegnare variabili agli indirizzi (la dichiarazione AT non è consentita).

Esempio

Esempio di definizione di struttura chiamata Polygonline:

TYPE Polygonline:
STRUCT
    Start:ARRAY [1..2] OF INT;
    Point1:ARRAY [1..2] OF INT;
    Point2:ARRAY [1..2] OF INT;
    Point3:ARRAY [1..2] OF INT;
    Point4:ARRAY [1..2] OF INT;
    End:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE

Inizializzazione delle strutture

Esempio:

Poly_1:polygonline := ( Start:=[3,3], Point1:=[5,2], Point2:=[7,3], Point3:=[8,5], Point4:=[5,7], End:= [3,5]);

Non è possibile eseguire l'inizializzazione con le variabili. Per un esempio di inizializzazione di un array di una struttura, vedere Array.

Accesso ai componenti di una struttura

È possibile accedere ai componenti di una struttura mediante la seguente sintassi:

<nome struttura>.<nome componente>

Per l'esempio precedente della struttura Polygonline, è possibile accedere al componente Start da Poly_1.Start.

Accesso bit nelle strutture

Il tipo di dati BIT è un tipo di dati speciali che può essere definito soltanto nelle strutture. Occupa uno spazio di memoria di 1 bit e consente di indirizzare singoli bit di indirizzo di una struttura mediante il nome.

TYPE <structurename>:
STRUCT
    <bitname bit1> : BIT;
    <bitname bit2> : BIT;
    <bitname bit3> : BIT;
    ...
    <bitname bitn> : BIT;
END_STRUCT
END_TYPE

È possibile accedere al componente della struttura BIT con la seguente sintassi:

<nome struttura>.<nome bit>

NOTA: Non è possibile utilizzare riferimenti e puntatore sulle variabili BIT. Inoltre, le variabili BIT non sono ammesse negli array.