Enumerationen (ENUMs)
Eine Variable eines anwenderdefinierten Datentyps Enumeration (ENUM) kann einen Wert aus einer vordefinierten Liste annehmen. Andere Variablenwerte sind nicht möglich.
Der ENUM-Wert kann entweder ein Literal oder eine lokale bzw. globale Konstante sein (lokal = in einem Datentyp-Arbeitsblatt mit einem VAR CONSTANT...END_VAR Deklarationsblock deklarierte Variable; global = Variable mit markiertem Attribut 'Konstante' in der Variablentabelle/Datenliste).
Beispiel: Die Enumeration 'PossibleColors' beinhaltet die Werte Red, Green und Blue, von denen jeder den Datentyp INTeger hat, d.h. Red = 0, Green = 1 und Blue = 2.
In ST wird die Variable 'Color' vom Datentyp ENUM auf INT = 1 gesetzt, d.h. Green, wenn Start = TRUE.
Datentypdefinition | |
Variablen-Deklaration (Variablentabelle/Datenliste) | ![]() |
Verwendung im Code | ![]() |
Hinweis
Wenn zwei oder mehr Enumerationen gleichnamige Elemente enthalten, dann können Sie vor dem Elementnamen optional den ENUM-Namen angeben, gefolgt vom Hash-Zeichen. Beispiel: Zwei Enumerationen enthalten das Element Green. TYPE EnumColor : (Red := 0, Green := 10, Blue := 20) OF INT := Green; EnumBackgound : (Red := 255, Green := 128, Blue := 0) OF INT := Green; END_TYPE Die Anweisung eColor := EnumBackgound#Green; ist im Code eindeutig. |
Enumerationen (ENUMs) initialisieren
Enumerationen können auf zwei Arten initialisiert werden:- Jedem Element kann in der Namensliste ein Wert zugewiesen werden (Blue := 5 im Beispiel unten). Ohne Initialisierung dieser Listenelemente werden sie fortlaufend nummeriert, angefangen mit 0 beim ersten Element.Der Initialisierungswert kann entweder eine Literal (fester Wert) oder eine lokale bzw. globale Konstante sein.
- Für ein Listenelement kann entweder im Datentyp-Arbeitsblatt oder in der Variablentabelle ein Anfangswert (Init) zur Initialisierung vorgegeben werden (im folgenden Beispiel ist dies der Anfangswert Green).Sie können den voreingestellten Anfangswert einer Enumeration auch mit dem 'Init-Werteeditor' definieren.
Eine Variable des Datentyps 'PossibleColors' wird mit dem Wert Green (INT#1) initialisiert.
Weitere Infos
Lesen Sie dazu auch das Thema "Anwenderdefinierte Datentypen". |