Definition und Zweck:
Eine Enumeration (kurz ENUM oder Aufzählungstyp) ist ein benutzerdefinierter Datentyp in der SPS-Programmierung (gemäß IEC 61131-3) und in anderen Programmiersprachen. Sie dient dazu, eine begrenzte Menge von benannten Konstanten zu definieren, die einen bestimmten Wertebereich repräsentieren. Anstatt numerische Werte zu verwenden, werden aussagekräftige Namen für die einzelnen Zustände oder Optionen vergeben.
Der Hauptzweck von Enumerationen ist es, die Lesbarkeit und Verständlichkeit des Programmcodes erheblich zu verbessern und die Wahrscheinlichkeit von Programmierfehlern zu reduzieren, die durch die Verwendung „magischer Zahlen“ entstehen könnten.
Beispiel und Funktionsweise:
Anstatt einen Motorstatus mit Zahlen zu kodieren (z.B. 0 für Aus, 1 für Bereit, 2 für Läuft, 3 für Störung), kann eine Enumeration definiert werden:
TYPE E_MotorState : (OFF, READY, RUNNING, FAULT) := OFF; END_TYPE
Im Programmcode kann man dann beispielsweise schreiben: IF Motor.Status = E_MotorState.FAULT THEN ..., was viel lesbarer und verständlicher ist als IF Motor.Status = 3 THEN ....
Intern werden den benannten Konstanten numerische Werte zugewiesen (typischerweise beginnend bei 0 oder 1, je nach Implementierung). Der Programmierer arbeitet jedoch mit den symbolischen Namen.
Vorteile in der SPS-Programmierung:
- Erhöhte Lesbarkeit und Verständlichkeit: Macht den Code selbstdokumentierend und leichter zu warten.
- Fehlervermeidung: Verhindert das Vertauschen von numerischen Werten und das Verwenden von ungültigen Zahlen. Der Compiler kann oft prüfen, ob ein gültiger ENUM-Wert zugewiesen wird.
- Bessere Wartbarkeit: Bei Änderungen an den Zuständen müssen nur die ENUM-Definition und nicht alle Verwendungen der entsprechenden Zahl im Code angepasst werden.
- Standardisierung: Fördert die Verwendung standardisierter Bezeichnungen in Projekten.
Enumerationen werden oft in Zustandsautomaten, bei der Definition von Betriebsarten, Fehlermeldungen oder Typen von Objekten verwendet.
→ Siehe auch: Datentyp, Variable, Konstante, SPS-Programmierung, Zustandsautomat, Betriebsarten

