SA0037 : Accès en écriture à la variable d'entrée
Détecte les variables d'entrée (VAR_INPUT
) auxquels on accède avec une autorisation d'écriture dans le POU
Justification : Selon la norme CEI 61131-3, une variable d'entrée ne doit pas être modifiée au sein d'une POU. Ce type d'accès est également source d'erreurs et rend le code peu maintenable. Ceci indique qu'une variable est utilisée à la fois comme variable d'entrée et comme variable auxiliaire. Ce type de double usage doit être évité.
Importance : Moyenne
Exemple 47. Exemple
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
Sortie dans le messages voir:
SA0037 : Accès en écriture à la variable d'entrée 'xVarIn1'