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_TYPEProgramm MAIN:
PROGRAM MAIN
VAR
eColor : E_Color;
END_VAReColor := E_Color.eRed;
eColor := eBlue;
eColor := 1; // => SA0034