SA0038 : Accès en lecture à la variable de sortie
Détecte les variables de sortie (VAR_OUTPUT
) auxquels on accède avec une autorisation de lecture dans le POU
Justification : Selon la norme CEI 61131-3, il est interdit de lire une sortie au sein d'une POU. Ceci indique que la sortie n'est pas seulement utilisée comme sortie mais aussi comme variable temporaire pour les résultats intermédiaires. Ce type de double usage doit être évité.
Importance : Faible
Exemple 48. Exemple
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
Sortie dans le messages voir:
SA0038 : Accès en lecture à la variable de sortie 'xVarOUT2'
SA0026 : SA0038 : Accès en lecture à la variable de sortie 'xVarOUT1'