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.
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:
SA0004 : Accès en écriture multiple sur la sortie '%QX0.0'
SA0004 : Accès en écriture multiple sur la sortie '%QW0'