Skip to main content

SA0034: Enumerationsvariablen mit falscher Zuweisung

Ermittelt Werte, die einer Enumerationsvariablen zugewiesen sind. Es dürfen nur definierte Enumerationskonstanten einer Enumerationsvariablen zugewiesen sein.

Begründung: Eine Variable vom Typ einer Enumeration sollte auch nur die vorgesehenen Werte haben, ansonsten funktioniert Code, der diese Variable verwendet möglicherweise nicht richtig. Wir empfehlen, Enumerationen immer mit dem Pragma {attribute 'strict'} zu verwenden. Dann prüft bereits der Compiler die korrekte Verwendung der Enumerationskomponenten.

Wichtigkeit: Hoch

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

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0034: Enumerationswert anstelle 'INT#1' verwenden