Skip to main content

SA0038: Accesso in lettura alla variabile di uscita

Rileva le variabili di output (VAR_OUTPUT) a cui si accede con autorizzazione di lettura all'interno della POU

Motivazione: Secondo la norma IEC 61131-3 è vietato leggere un'uscita all'interno di una POU. Ciò indica che l'output non viene utilizzato solo come output ma anche come variabile temporanea per risultati intermedi. Questo tipo di duplice uso dovrebbe essere evitato.

Importanza: Bassa

Esempio 48. Esempio
VAR_GLOBAL
    g_xGlob AT %QX0.0 : BOOL ;
    g_iGlob AT %QW1 : INT ;
END_VAR
PROGRAM PLC_PRG
VAR_OUTPUT
    xVarOut1:BOOL;
    xVarOut2:INT;
    xVarOut3:INT;
END_VAR
VAR
    iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
    INT#1:
        xVarOut1 := g_xGlob;
        xVarOut2 := g_iGlob;
    INT#2:
        xVarOut3 := xVarOut2;    // SA0038
    ELSE
        xVarOut1 := FALSE;
        g_xGlob := xVarOut1;    // SA0038
        xVarOut2 := INT#0;
        xVarOut3 := INT#-1;
END_CASE

Uscita in Messaggi vista:

  • sa_icon_message.png SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT2'

  • sa_icon_message.png SA0026: SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT1'