Function Block Diagram (FBD), auf Deutsch Funktionsbaustein-Diagramm, ist neben dem Kontaktplan (Ladder) die zweite grafische Programmiersprache der SPS-Norm IEC 61131-3. Statt Kontakten und Spulen verdrahtet man hier fertige Logik-Bausteine: Jeder Baustein hat Ein- und Ausgänge, die durch Verbindungslinien miteinander verknüpft werden — das Ergebnis ähnelt einem Signalflussplan.
Logik-Bausteine
Die grundlegenden Bausteine sind die booleschen Verknüpfungen:
Eingang A ----| AND |---- Ausgang
Eingang B ----| |
Eingang C ----| OR |---- Ausgang
Eingang D ----| |
Eingang E ----| NOT |---- Ausgang
Neben AND, OR, XOR und NOT stellt der Standard vordefinierte Funktionsbausteine bereit: TON (Einschaltverzögerung), TOF (Ausschaltverzögerung), TP (Impuls), CTU/CTD (Zähler), SR/RS (Flipflops) sowie die Flankenerkennung R_TRIG/F_TRIG.
Beispiel: Einschaltverzögerung
start ----| TON |---- fertig
PT: T#3s | |
| |---- ET (abgelaufene Zeit)
Der Baustein TON setzt den Ausgang Q erst, wenn der Eingang IN länger als die Zeit PT (hier 3 Sekunden) TRUE war. Die Ausgabe ET zeigt die bereits verstrichene Zeit.
Praxis
FBD eignet sich besonders für analoge Signalverarbeitung, Regelkreise und alles, was sich als Datenfluss beschreiben lässt — bei reiner Schützlogik ist dagegen der Kontaktplan oft anschaulicher, bei Rechenaufgaben Structured Text. Typische Werkzeuge sind CODESYS, TwinCAT, Siemens TIA Portal (dort FUP) und B&R Automation Studio. Da die Bausteine wiederverwendbar sind, lassen sich eigene Funktionsbausteine (ET-Bausteine) einmal entwickeln und in vielen Programmen einsetzen.