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
Tipo di dati | Inizializzazione |
---|---|
Qualsiasi tipo di dati numerico |
|
Ogni puntatore |
|
|
|
| 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. |
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.