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.