Skip to main content

SA0004 : accès en écriture multiple sur la sortie

Détecte les sorties écrites à plusieurs emplacements.

Justification : La maintenabilité est dégradée lorsqu'une sortie est écrite à différents endroits dans le code. Ensuite, il est incertain quel accès en écriture est celui qui a réellement un effet sur le processus. La bonne pratique consiste à calculer les variables de sortie dans les variables auxiliaires et à attribuer la valeur calculée à un endroit à la fin du cycle.

Importance : Élevée

Règle PLCopen : CP12

Astuce

Aucune erreur n'est émise lorsqu'une variable de sortie (VAR_IN_OUT) est écrit dans différentes branches de IF et CASE déclarations.

Un pragma ne peut pas désactiver cette règle.

Exemple 17. Exemple
VAR_GLOBAL
    g_xVar AT %QX0.0 : BOOL ;
    g_iTest AT %QW0 : INT ;
END_VAR
PROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN
    g_xVar := TRUE;
    g_iTest := INT#12;
END_IF

CASE g_iCondition OF
    INT#1:
        g_xVar := FALSE;
    INT#2:
        g_iTest := INT#11;
    ELSE
        g_xVar := TRUE;
        g_iTest := INT#9;
END_CASE

Sortie dans le messages voir:

  • sa_icon_message.png SA0004 : Accès en écriture multiple sur la sortie '%QX0.0'

  • sa_icon_message.png SA0004 : Accès en écriture multiple sur la sortie '%QW0'