Skip to main content

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:

  • sa_icon_message.png SA0037 : Accès en écriture à la variable d'entrée 'xVarIn1'