Structured Text (ST) ist die wichtigste textuelle Programmiersprache für Speicherprogrammierbare Steuerungen (SPS). Sie wurde von der Norm IEC 61131-3 definiert und erinnert stark an Pascal: Statt Strompfade zu zeichnen, schreibt der Programmierer Zuweisungen, Bedingungen und Schleifen. Seit der Ausgabe 4 des Standards (2025) ist ST die einzige rein textuelle SPS-Sprache — die frühere Instruction List (IL) wurde bereits in der Ausgabe 3 von 2013 als veraltet markiert.
Zuweisungen und Operatoren
A := B; (* Zuweisung *)
C := A AND B; (* boolesches UND *)
D := NOT E; (* Negation *)
F := X + Y * 2; (* Arithmetik *)
G := (X > 5) AND (Y <= 10); (* Vergleich *)
Verfügbar sind die logischen Operatoren AND, OR, XOR, NOT, die Vergleichsoperatoren =, <>, <, >, <=, >= sowie die arithmetischen +, -, *, / und MOD.
Kontrollstrukturen
IF start THEN
lampe := TRUE;
ELSIF notrue THEN
lampe := FALSE;
ELSE
lampe := merker;
END_IF;
CASE zustand OF
0: ausgang := 1;
1: ausgang := 2;
ELSE
ausgang := 0;
END_CASE;
FOR i := 1 TO 10 DO
summe := summe + werte[i];
END_FOR;
WHILE notrue DO
warte := warte + 1;
END_WHILE;
Funktionsbausteine aufrufen
ton_inst(IN := start, PT := T#5s); (* Einschaltverzögerung 5 s *)
fertig := ton_inst.Q;
Zeiten werden mit T# geschrieben (T#5s, T#100ms), Datentypen sind BOOL, INT, REAL, STRING und viele mehr. Kommentare stehen in (* ... *).
Praxis
ST eignet sich besonders für komplexe Logik, Analogwert-Berechnung, Regelungsalgorithmen und Datenverarbeitung — genau die Aufgaben, bei denen Kontaktplan und Funktionsbaustein-Diagramm an Grenzen stoßen. Umsetzungen von ST heißen bei Siemens SCL, bei Beckhoff (TwinCAT) und im CODESYS-Umfeld direkt Structured Text. Die Syntax ähnelt Pascal/Delphi, weshalb sich klassische Programmierer schnell zurechtfinden.