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.