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:
SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT2'
SA0026: SA0038: Accesso in lettura alla variabile di uscita 'xVarOUT1'