Definition und Zweck:
UDT (User Defined Type), zu Deutsch Benutzerdefinierter Datentyp, ist ein Konzept in der SPS-Programmierung und in vielen anderen Programmiersprachen. Es ermöglicht Programmierern, eigene, komplexe Datentypen zu definieren, indem sie eine Kombination aus verschiedenen bereits existierenden Datentypen (z.B. BOOL, INT, REAL, STRING) oder anderen UDTs zu einer logischen Einheit zusammenfassen.
Ein UDT ist im Wesentlichen eine Struktur (Struct), die einmalig definiert und dann als „Typ“ für die Deklaration mehrerer Variablen verwendet werden kann. Das Hauptziel eines UDT ist es, die Organisation und Lesbarkeit des Programmcodes zu verbessern, die Datenhaltung zu vereinfachen und die Wiederverwendbarkeit von Software zu fördern.
Beispiel und Funktionsweise:
        Anstatt jede Variable für einen Motor einzeln zu deklarieren, kann ein UDT namens `Motor_Steuerung_Typ` definiert werden:
TYPE Motor_Steuerung_Typ : STRUCT
     SollDrehzahl : REAL;
     IstDrehzahl : REAL;
     Motor_EIN : BOOL;
     Motor_AUS : BOOL;
     Fehler_aktiv : BOOL;
     Fehlercode : INT;
 END_STRUCT
Anschließend können Variablen dieses Typs deklariert werden:
Motor_Linie1_M1 : Motor_Steuerung_Typ;Motor_Linie2_M5 : Motor_Steuerung_Typ;
Auf die einzelnen Elemente der UDT-Variablen wird dann über den Punkt-Operator zugegriffen (z.B. `Motor_Linie1_M1.SollDrehzahl`, `Motor_Linie2_M5.Fehler_aktiv`).
Relevanz in der SPS-Programmierung:
 UDTs sind ein unverzichtbares Werkzeug für die strukturierte und objektorientierte Programmierung in der SPS:
- Datenorganisation: Bündelung von zusammengehörigen Daten zu übersichtlichen Paketen.
- Modularität: Ermöglicht die Übergabe komplexer Daten an Funktionen oder Funktionsbausteine als ein einzelner Parameter.
- Wiederverwendbarkeit: Eine einmal definierte UDT kann für beliebig viele gleiche Objekte im Programm verwendet werden, was Entwicklungszeit spart.
- Lesbarkeit und Wartbarkeit: Der Code wird verständlicher, da die Daten in einem logischen Kontext stehen.
- Rezeptverwaltung: Rezepturen können oft als Arrays von UDTs gespeichert werden.
- Kommunikationsprotokolle: Definition von Datenstrukturen für die Kommunikation.
Moderne SPS-Engineering-Tools unterstützen die Definition und Nutzung von UDTs umfassend.
→ Siehe auch: Struct, Datentyp, Variable, Modularisierung, Objektorientierte Programmierung, SPS-Programmierung

