SPS-Programmierung in der Praxis: die Sprachen hinter der Automatik
Von Kontaktplänen zu strukturiertem Text — so wird die Logik geschrieben, die die Anlage steuert
Einleitung
Wenn ein Automatisierungstechniker eine SPS-Steuerung aufbaut, geht es beim Kompetenzziel Nr. 5 der Ausbildung genau darum, die Programmierung mit der zugehörigen Dokumentation nach den geltenden Standards ausführen zu können. Der Standard, auf dem heute fast alle SPS-Fabrikate aufbauen, heißt IEC 61131-3. Egal ob die Anlage von einer Siemens S7, einer Allen-Bradley ControlLogix, einer Beckhoff-TwinCAT-Steuerung oder einer Omron-SPS gesteuert wird — die Grundprinzipien der Programmierung sind dieselben, und das ist eine der großen Stärken des Standards.
Von fünf Sprachen auf vier
IEC 61131-3 definierte ursprünglich fünf Programmiersprachen für SPS: Kontaktplan (LD), Funktionsbausteinsprache (FBD), Strukturierter Text (ST), Ablaufsprache (SFC) und Anweisungsliste (IL). Mit der 4. Ausgabe der Norm, veröffentlicht im Mai 2025, wurde die Anweisungsliste aus der Norm gestrichen, sodass heute offiziell vier übrig sind. IL war eine hardwarenahe Textsprache, die dem Assembler ähnelte und in der Praxis längst vom Strukturierten Text verdrängt war, bevor sie formell entfiel.
- 01Ladder Diagram (LD) — relaisähnliche Logik mit Kontakten und Spulen, gut lesbar für Leute mit Elektro-Hintergrund
- 02Function Block Diagram (FBD) — die Logik wird aus zusammengeschalteten Blöcken aufgebaut, gut geeignet für Regelung und Signalverarbeitung
- 03Structured Text (ST) — eine textbasierte Sprache mit Schleifen und Bedingungen, gut geeignet für Berechnungen und komplexe Algorithmen
- 04Sequential Function Chart (SFC) — strukturiert ein Programm in Schritte und Übergänge, gut geeignet für Batch- und Ablaufsteuerung
Wann man was verwendet
In der Praxis mischen viele Projekte die Sprachen je nach Aufgabe. Ladder Diagram ist noch immer die verbreitetste Sprache für gewöhnliche binäre Logik — Start/Stopp, Sicherheitsketten und einfache Sequenzen — weil es den Relaisplänen ähnelt, auf denen das Fach historisch aufgebaut ist. Function Block Diagram wird oft für Regelkreise verwendet, in denen fertige Bausteine (z. B. ein PID-Regler) zusammengeschaltet werden. Structured Text setzt sich durch, wenn gerechnet, Daten sortiert oder anspruchsvollere Logik gebaut werden muss, die sich in Ladder nur schwer ausdrücken lässt. Sequential Function Chart ist stark darin, die übergeordneten Betriebszustände einer Anlage zu strukturieren — etwa Anlauf, Produktion, Reinigung und Abschaltung —, die jeweils Ladder- oder ST-Logik enthalten können.
Standardisierung schafft Sicherheit und Rückverfolgbarkeit
Der Vorteil eines gemeinsamen Standards ist, dass Kompetenzen und Programme leichter zwischen Fabrikaten wandern können. Ein Techniker, der in einem System geschult ist, findet sich viel schneller in einem anderen zurecht, weil die Grundstruktur — Variablen, Funktionsbausteine, Datentypen — wiedererkennbar ist. Die Interessenorganisation PLCopen arbeitet genau für diese Konsistenz und für gemeinsame Bibliotheksstrukturen über Hersteller hinweg, damit die Wiederverwendung von Logik leichter wird.
| Sprache | Typische Verwendung |
|---|---|
| Ladder Diagram (LD) | Binäre Logik, Sicherheitsketten, Start/Stopp |
| Function Block Diagram (FBD) | Regelung, Signalverarbeitung, Zähler und Timer |
| Structured Text (ST) | Berechnungen, Datenverarbeitung, fortgeschrittene Logik |
| Sequential Function Chart (SFC) | Betriebszustände, Sequenz- und Chargensteuerung |
Dokumentation ist Teil des Programms
Ein gut geschriebenes Programm ist nicht nur eines, das funktioniert — es ist eines, das der nächste Techniker verstehen kann, ohne dich anzurufen. Dabei geht es um konsequente Benennung von Variablen, um Kommentare, die das Warum erklären (nicht nur das Was), um aktualisierte Pläne und um eine klare Versionsverwaltung, damit man immer weiß, welche Fassung des Programms tatsächlich auf der Anlage läuft. Das Kompetenzziel Nr. 9 der Ausbildung handelt genau davon, technische Dokumentation lesen, anwenden und anpassen zu können — eine Fähigkeit, die genauso wichtig ist wie das Programmieren selbst.
“Ein Programm, das du in einem Jahr selbst nicht mehr verstehst, hast du nicht fertig geschrieben — du hast es nur dazu gebracht, heute zu funktionieren.”