Skip to main content

SA0076 : Constante d'énumération manquante

Détermine si chaque constante d'énumération est utilisée ou non comme condition dans CASE déclarations et interrogé dans un CASE bifurquer.

Justification : La programmation défensive nécessite le traitement de toutes les valeurs possibles d'une énumération. Si une action n'est pas requise pour une valeur d'énumération particulière, vous devez ajouter un commentaire pour l'indiquer explicitement. Il est alors clair pour le lecteur du code que la valeur n'a pas simplement été oubliée.

Importance : faible

Exemple 83. Exemple
TYPE My_Enum :
(
    red := 1, blue := 2, green := 3, black := 4
);
END_TYPE
PROGRAM PLC_PRG
VAR
    iVar : My_Enum;
    xTemp : BOOL;
END_VAR
iVar := My_Enum.black;
CASE iVar OF
    My_Enum.red:
        xTemp := FALSE;
    My_Enum.blue, My_Enum.green:
        xTemp := TRUE;
    ELSE
        xTemp := NOT xTemp;
END_CASE

Sortie dans le messages voir:

  • sa_icon_message.png SA0076 : constante d'énumération manquante "noire" dans l'instruction CASE