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_VARPROGRAM PLC_PRG
VAR_OUTPUT
xVarOut1:BOOL;
xVarOut2:INT;
xVarOut3:INT;
END_VAR
VAR
iCondition : INT;
END_VARiCondition := 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_CASEUscita in Messaggi vista:
SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT2'
SA0026: SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT1'