Skip to main content

Inizializzazione delle variabili

Il valore di inizializzazione standard per tutte le dichiarazioni è 0. Nella parte relativa alla dichiarazione è inoltre possibile specificare valori di inizializzazione definiti dall'utente per ogni variabile e ogni tipo di dati

L'inizializzazione definita dall'utente inizia con l'operatore di assegnazione := e consiste in qualsiasi espressione valida del linguaggio di programmazione ST (testo strutturato). Si definisce quindi il valore di inizializzazione con l'aiuto di costanti, altre variabili o funzioni. Se si utilizza una variabile, è inoltre necessario inizializzarla

Tabella 5. Valori di inizializzazione predefiniti

Tipo di dati

Inizializzazione

Qualsiasi tipo di dati numerico

0

Ogni puntatore

0

BOOL

FALSE

ARRAY OF

Il valore di inizializzazione predefinito di ogni elemento

Struttura

Se non è stato definito un valore esplicito per i singoli elementi della dichiarazione, il valore predefinito del tipo di dati è il valore di inizializzazione.



Esempio 13. Esempi
VAR
    var1:INT := 12;    //initialization value 12
    x : INT := 13 + 8;    //initalization value defined by an expression of constants
    y : INT := x + fun(4);    //initialization value defined by an expression,
                              //that contains a function call; notice the order!
    z : POINTER TO INT := ADR(y);   //not described in the standard IEC61131-3:
                                    // initialization value defined by an adress function;
                                    // Notice: In this case the pointer will not be initialized
                                    // during an Online Change *)
END_VAR


Note sull'ordine di inizializzazione

Innanzitutto le costanti

Dalla versione del compilatore 3.5.3.40, le variabili in un blocco funzione vengono inizializzate nel seguente ordine: in primo luogo, tutte le costanti secondo l'ordine delle loro dichiarazioni, quindi tutte le altre variabili secondo l'ordine delle loro dichiarazioni.

Variabili globali prima delle variabili locali

Nella versione del compilatore 3.3.2.0 e successive, le variabili degli elenchi di variabili globali vengono sempre inizializzate prima delle variabili locali di un POU.

Per ulteriori informazioni, vedere: Dichiarazione e inizializzazione delle variabili di struttura e pragma global_init_slot.