Dichiarare variabili
Dichiarazione variabile: dove e come?
È possibile dichiarare le variabili nelle seguenti posizioni:
- Dichiarazione parte di un POU - Le Dichiarare variabile il dialogo ti aiuta in questo. 
- Elenchi di variabili (editor GVL, editor NVL) 
- Configurazione di mappatura I/O di un oggetto dispositivo I/O - Per ulteriori informazioni, vedere: Configurazione dei dispositivi e mappatura degli I/O 
Per ulteriori informazioni, vedere: Scorciatoie per la dichiarazione delle variabili
Sintassi
<pragma>
<scope> <type qualifier>
    <identifier> AT <address> : <data type> := <initial value> ;
END_VAR
| 
 | Opzionale ripetuto (mai, una o più volte) Pragma Un pragma è un'istruzione del compilatore (ad esempio per ottenere ottimizzazioni come requisiti di memoria o miglioramenti del runtime). | |
| 
 | Richiesto Ambito 
 | |
| 
 | Facoltativo Qualificatore di tipo 
 | |
| 
 | Richiesto Identificatore, nome della variabile Nota: le regole elencate nel capitolo «Designazione dell'identificatore» devono essere seguite senza eccezioni quando si assegna un identificatore. Inoltre, troverai consigli | |
| 
 | Facoltativo L'indirizzo è composto come segue: <area di memoria> <prefisso di dimensione opzionale> <posizione di memoria> L'area di memoria è suddivisa in area di memoria di input, area di memoria di output o area di memoria flag ( Esempio 
 | |
| 
 | Richiesto Tipo di dati 
 | |
| 
 | Facoltativo Valore iniziale; inizializzazione come valore letterale, variabile o espressione | 
Elenco globale delle variabili GVL
{attribute 'qualified_only'}
{attribute 'linkalways'}
VAR_GLOBAL CONSTANT
    g_ciMAX_A : INT := 100;
    g_ciSPECIAL : INT := g_ciMAX_A - 10;
END_VARVariabili di configurazione GVL_CONFIG
{attribute 'qualified_only'}
VAR_CONFIG
    // Generated instance path of variable at incomplete address
    PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE;
END_VARBlocco funzionale FB_DoIt
METHOD METH_Last : INT
VAR_INPUT
    iVar : INT;
END_VAR
VAR_INST
    iLast : INT := 0;
END_VAR
METH_Last := iLast;
iLast := iVar;
FUNCTION_BLOCK FB_DoIt
VAR_INPUT
    wInput AT %IW0 : WORD; (* Input variable *)
END_VAR
VAR_OUTPUT
    wOutput AT %QW0 : WORD; (* Output variable *)
END_VAR
VAR_IN_OUT
    aData_A : ARRAY[0..1] OF DATA_A; // Formal variable
END_VAR
VAR_EXTERNAL
        GVL.g_ciMAX_A : INT; // Declared in object GVL
END_VAR
VAR_STAT
    iNumberFBCalls : INT;
END_VAR
VAR
    iCounter: INT;
    xLocInput AT %I* : BOOL := TRUE; // VAR_CONFIG
END_VAR
iNumberFBCalls := iNumberFBCalls + 1;Programma IEC PLC_PRG
PROGRAM PLC_PRG
VAR
    iLoop: INT;
    iTest: INT;
    fbDoItNow : FB_DoIt;
    iTest_200: INT;
    aData_Now : ARRAY[0..1] OF DATA_A := [(iA_1 := 1, iA_2 := 10, dwA_3 := 16#00FF),(iA_1 := 2, iA_2 := 20, dwA_3 := 16#FF00)];
END_VAR
iTest := GVL.g_ciMAX_A;
iTest_200 :=  2 * GVL.g_ciMAX_A;
fbDoItNow(aData_A := aData_Now);
FOR iLoop := 0 TO GVL.g_ciSPECIAL DO
    ;
END_FOR