SA0034: Enumerationsvariablen mit falscher Zuweisung

Funktion

Ermittelt Werte, die einer Enumerationsvariablen zugewiesen sind. Einer Enumerationsvariablen dürfen nur definierte Enumerationskonstanten zugewiesen werden.

Begründung

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

Wichtigkeit

Hoch

Beispiel:

Enumeration E_Color:

TYPE E_Color :
(
    eRed   := 1,
    eBlue  := 2,
    eGreen := 3
);
END_TYPE

Programm MAIN:

PROGRAM MAIN
VAR
    eColor : E_Color;
END_VAR
eColor := E_Color.eRed;
eColor := eBlue;
eColor := 1;                     // => SA0034