Skip to main content

SA0034 : Énumérations avec une affectation incorrecte

Détecte les valeurs affectées à une variable d'énumération. Seules les constantes d'énumération définies d'une variable d'énumération peuvent être affectées.

Justification : Une variable de type énumération ne doit avoir que les valeurs prévues, sinon le code qui utilise cette variable risque de ne pas fonctionner correctement. Nous recommandons de toujours utiliser les énumérations avec le pragma {attribute 'strict'}. Ensuite, le compilateur vérifie déjà la bonne utilisation des composants d'énumération.

Importance : Élevée

Exemple 46. Exemple
TYPE COLOR :
(
        Red := 0,
        Green,
        Yellow
);
END_TYPE
PROGRAM PLC_PRG
VAR
    eColor1: COLOR;
END_VAR
eColor1 := COLOR.Red;
eColor1 := 1;    // SA0034

Sortie dans le messages voir:

  • sa_icon_message.png SA0034 : Utiliser la valeur d'énumération au lieu de 'INT#1'