Skip to main content

SA0037: Accesso in scrittura alla variabile di ingresso

Rileva le variabili di input (VAR_INPUT) a cui si accede con autorizzazione di scrittura all'interno della POU

Motivazione: Secondo la norma IEC 61131-3 una variabile di ingresso non può essere modificata all'interno di un POU. Questo tipo di accesso è anche causa di errori e rende il codice difficilmente gestibile. Questa è un'indicazione che una variabile viene utilizzata sia come variabile di input che come variabile ausiliaria. Questo tipo di duplice uso dovrebbe essere evitato.

Importanza: Media

Esempio 47. Esempio
VAR_GLOBAL
    g_xGlob AT %QX0.0 : BOOL;
END_VAR
PROGRAM PLC_PRG
VAR_INPUT
    xVarIn1 : BOOL;
    xVarIn2 : BOOL;
END_VAR
VAR
    iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
    INT#1:
        g_xGlob := xVarIn1;
    INT#2:
        g_xGlob := xVarIn2;
    ELSE
        g_xGlob := FALSE;
        xVarIn1 := FALSE;       // SA0037
END_CASE

Uscita in Messaggi vista:

  • sa_icon_message.png SA0037: Accesso in scrittura alla variabile di ingresso 'xVarIn1'