SPS Ablaufsteuerung in FUP programmieren
Die Schrittkette in FUP ist der Klassiker. Zwar läuft der grosse Teil der Abläufe heute über S7-GRAPH — aber wer nur GRAPH kennt, steht an zwei Stellen im Regen.
Die erste: ältere Maschinen. Dort war die FUP-Kette Standard, weil GRAPH auf leistungsschwachen CPUs für zykluszeitkritische Prozesse ungeeignet war. Die zweite: die S7-1200 — sie kennt S7-GRAPH gar nicht.
Niveau mittel · Thema Ablaufsteuerung in FUP · Voraussetzung Schrittketten verstehen und planen. Du kannst direkt zum Video springen, zu den drei goldenen Regeln, zum Beispiel, zu den Sprüngen oder zur Alternativverzweigung.
Das lernst du in dieser Lektion
- die drei goldenen Regeln einer FUP-Schrittkette
- warum jeder Schritt ein eigenes SR-Glied bekommt
- warum Initial- und Endschritt Sonderfälle sind
- warum die Schrittmerker nicht remanent sein dürfen
- warum Ablauf und Zuweisung in getrennte Bausteine gehören
- wie ein Sprung zurück zum Anfang gebaut wird
- wie eine Alternativverzweigung aussieht
- wo diese Umsetzung ihre eigene Regel 1 verletzt
Die Lektion im Video
Im Video entsteht die Kette Netzwerk für Netzwerk. Darunter dasselbe zum Nachlesen.
Du kannst dir die Lektion als Video ansehen oder die Erklärung darunter Schritt für Schritt nachlesen.
Video von Vimeo
Beim Abspielen verbindet sich dein Browser mit Vimeo (USA). Vimeo erfährt dabei deine IP-Adresse und setzt Cookies.
Gilt für alle Videos · jederzeit widerrufbar über
Wie das in einem gewachsenen Projekt aussieht, zeigt der Blick auf eine vollständige Aufrufstruktur.

Eine selbst aufgebaute Schrittkette kennst du Schritt für Schritt. Schwieriger wird es, wenn du eine bestehende Anlage übernimmst und zuerst herausfinden musst, welche Bausteine beteiligt sind und von wo sie aufgerufen werden.
PLC Buddy stellt die Aufrufhierarchie eines TIA-Projekts zusammenhängend dar und unterstützt dich beim Nachvollziehen von Programmteilen in FUP, GRAPH und weiteren Siemens-Sprachen.
Die drei goldenen Regeln
Der Aufbau ist denkbar einfach: Jeder Schritt wird durch ein Setze-Rücksetze-Glied dargestellt. Ein Ablauf aus zehn Schritten braucht also zehn SR-Glieder.
Dazu kommen drei Regeln, die du dir merken solltest:
- Es darf immer nur ein Schritt zur selben Zeit aktiv sein
- Ein Schritt wird nur aktiv, wenn der vorangegangene Schritt aktiv ist und die Weiterschaltbedingung erfüllt ist
- Deaktiviert wird ein Schritt, wenn der nachfolgende aktiv geschaltet wird
Am besten prüfst du sie gleich am Beispiel nach.
Das Beispiel und die Bausteine
Programmiert wird derselbe Ablauf wie in der vorigen Lektion: von der Haustür bis ins Bett.
Im TIA Portal entstehen dafür drei Bausteine: FC Schrittkette, FC Zuweisung und ein Datenbaustein. Werden S7-Timer gebraucht, nimmst du statt der FCs Funktionsbausteine.
Sehen wir uns die drei der Reihe nach an.
Der Datenbaustein
Im Datenbaustein bekommt jeder geplante Schritt eine eigene Bool-Variable: einmal der Initialschritt und sechs weitere für die Folgeschritte.
Der Datenbaustein ist der Weg für 1200er und 1500er CPUs. Bei einer 300er oder 400er nimmst du stattdessen nicht remanente Merker. Der Grund ist derselbe wie die fehlenden Haken oben: Bleiben die Schrittmerker über einen Neustart hinweg gesetzt, startet die Anlage mitten im Ablauf. Das ist keine theoretische Gefahr.
Die Aufnahme zeigt sieben Variablen. Weiter unten kommen mit der Alternativverzweigung noch Step 5.1 und Step 5.2 dazu — die fehlen hier, weil das Bild aus einem früheren Stand stammt. Wenn du den Baustein nach dieser Aufnahme anlegst, ergänze sie später.
Der FC Schrittkette
Für jeden Schritt ein SR-Glied — also eines für den Initialschritt und sechs für die Folgeschritte, alle mit den Variablen aus dem Datenbaustein verschaltet.
Gefüllt werden sie von innen nach aussen: erst ein gewöhnlicher Schritt, dann die beiden Enden.
Schritt 1 — die Grundverschaltung
Initial- und Endschritt sind Sonderfälle. Deshalb zuerst ein ganz normaler Schritt. Nach Regel 2 braucht der Setz-Eingang eine UND-Verknüpfung: vorangegangener Schritt und Weiterschaltbedingung.
Nach Regel 3 kommt an den Rücksetz-Eingang der nachfolgende Schritt.
Damit sich die Kette leichter simulieren lässt, liegen Weiterschaltbedingungen und Aktionen hier in einem zweiten Datenbaustein E/A, geteilt in die Strukturen Eingänge und Ausgänge. Für die Logik ist das gleichgültig — ob echte Ein- und Ausgänge oder DB-Variablen macht keinen Unterschied.
Die Schritte 2 bis 5
Alle weiteren Zwischenschritte folgen genau demselben Muster.
Step 1, Bedingung Tür ist offen, Rücksetzer Step 3.Weiter zum nächsten — dieselbe Handschrift.
Und noch einmal, mit der nächsten Bedingung.
Der letzte Zwischenschritt vor dem Sonderfall am Ende.
Vier Netzwerke, ein Muster. Interessant wird es erst wieder an den beiden Enden.
Zur Kontrolle lohnt der Blick zurück auf den Ablaufplan.
Interessant wird es erst wieder an den beiden Enden.
Der letzte Schritt
Der letzte Schritt wird gesetzt wie alle anderen. Nur zurücksetzen kann ihn niemand — es gibt keinen Nachfolger. Deshalb kommt an den Rücksetz-Eingang die letzte Transition.
Bleibt der Anfang.
Der Initialschritt
Am anderen Ende dasselbe Problem umgekehrt: Es gibt keinen Vorgänger. Also braucht es ein einmaliges Ereignis, das den Schritt setzt — etwa „Steuerung ein“ oder „Vorwahl Automatik“.
Wichtig ist das Wort einmalig: Das Ereignis darf den Schritt nicht dauernd nachsetzen. Deshalb steht davor eine Flanke.
P-Baustein macht aus einem dauernden Signal ein einmaliges Ereignis.Damit steht die Kette. Ein Fall fehlt allerdings noch.
Abbruch und Betriebsartenwechsel
Jetzt ein Fall, der in der Werkstatt teuer werden kann: Die Kette ist bis Schritt 2 gelaufen, dann wechselt jemand die Betriebsart — und der Initialschritt wird erneut gesetzt. Damit sind zwei Schritte gleichzeitig aktiv. Regel 1 ist verletzt.
Eine feste Vorschrift gibt es dafür nicht, weil die Anwendungen zu verschieden sind. Ein guter Weg: Das Ereignis, das den Initialschritt setzt, negiert an den Rücksetz-Eingang aller Schritte legen.
R1 ist der Notausgang: Fällt die Vorwahl weg, ist die ganze Kette leer.So weit der Ablauf. Jetzt die Aktionen.
Der FC Zuweisung
Der schwierige Teil ist geschafft. Jetzt kommt der einfache: Jedem Schritt wird seine Aktion zugewiesen.
Die nächsten beiden folgen demselben Schema.
Und die letzten beiden ebenso.
Damit ist das Programm vollständig — bis auf eine berechtigte Rückfrage.
Warum ein eigener Baustein?
Eine berechtigte Frage: Der Ausgang liesse sich auch direkt an den Ausgang Q des SR-Glieds hängen.
In der Praxis sind Aktionen aber selten einfache Zuweisungen aus einem Schritt. Wird ein Ausgang von mehreren Schritten gesetzt und zurückgesetzt, wird der Ablauf sehr schnell unlesbar.
Genug gebaut. Sehen wir zu, ob es läuft.
Die Kette testen
Vor dem Start steht Vorwahl Automatik auf 0 — und alle Schritte sind zurückgesetzt.
Mit der positiven Flanke von Vorwahl Automatik wird der Initialschritt gesetzt.
Steht zusätzlich du stehst vor der Haustür auf 1, wird Step 1 aktiv und der Initialschritt inaktiv. Gleichzeitig setzt der Zuweisungsbaustein den Ausgang Tür öffnen.
Und im zweiten Baustein passiert dazu passend Folgendes.
So läuft die Kette bis zum Ende durch. Der letzte Schritt wird von der Transition Licht ist aus zurückgesetzt — fertig.
Sieh dir den Übergang genau an: Der neue Schritt wird gesetzt, und erst danach setzt er den alten zurück. Für genau einen SPS-Zyklus sind also zwei Schritte gleichzeitig aktiv.
Je nach Aufgabenstellung kann das ein echtes Problem werden — nämlich immer dann, wenn zwei Aktionen sich gegenseitig ausschliessen müssen. Eine Absicherung: die Ausgänge im Zuweisungsbaustein gegeneinander verriegeln. Dann kann ein Zyklus Überlappung im Ablauf niemandem mehr schaden.
Sprünge in der Ablaufkette
Ein Ablauf, der nur einmal durchläuft, ist die Ausnahme. Also muss die Kette zurück zu Schritt 1 finden — über einen zusätzlichen Schritt „Gehe zum Anfang“.
Er wird gesetzt wie jeder andere. Der Unterschied liegt woanders: Sein Nachfolger ist Schritt 1.
Gehe zum AnNfang — ein Tippfehler, der ohne Wirkung bleibt.Und Schritt 1 bekommt umgekehrt einen zweiten Vorgänger: entweder der Initialschritt oder „Gehe zum Anfang“.
Im Ablaufplan sieht derselbe Sprung so aus.
Auf dieselbe Weise lässt sich auch zwischen beliebigen Schritten springen. Nur wird ein Ablauf mit vielen Sprüngen schnell unübersichtlich.
Alternativverzweigung
Im Ursprungsbeispiel gab es nach dem Lichteinschalten eine Entscheidung: Bist du müde? Wenn ja, geht es wie bisher ins Bett. Wenn nicht, erst auf die Couch.
So etwas heisst Alternativverzweigung. Sie ist der komplizierteste Teil dieser Lektion.
ja auf die Couch. Richtig ist es umgekehrt — müde heisst ins Bett. Das Programm auf den nächsten Bildern macht es richtig.Aus dem Ablaufplan ergibt sich, was im Datenbaustein fehlt: ein zusätzlicher Ausgang ab auf die Couch sowie die Eingänge du bist müde und du bist auf der Couch.
Bisher setzt Schritt 5 den Ausgang ins Bett legen. Das soll nun nur noch geschehen, wenn du müde bist. Andernfalls braucht es einen Alternativschritt, der auf die Couch schickt.
Er wird aktiv, wenn Schritt 4 aktiv ist, das Licht an ist und du nicht müde bist.
Dazu passend die Zuweisungen.
Wichtig dabei: Schritt 4 hat jetzt einen alternativen Nachfolger. Nach Regel 3 muss auch der ihn zurücksetzen können.
Danach fehlt noch der Weg zurück: ein Schritt, der dich von der Couch ins Bett bringt, sobald du doch müde wirst.
Und die Zuweisung dazu.
Und weil der Zweig irgendwo wieder einmünden muss, bekommt Schritt 6 einen alternativen Vorgänger — Regel 2 gilt auch hier.
Ist du bist müde gesetzt, läuft die Kette wie bisher. Ist sie es nicht, bleibt Schritt 5 aus und die beiden Alternativschritte übernehmen.
Zusammenfassung
- Jeder Schritt ist ein SR-Glied mit einem eigenen Merker
- Setzen: Vorgänger UND Weiterschaltbedingung · Rücksetzen: Nachfolger
- Der Endschritt wird von der letzten Transition zurückgesetzt
- Der Initialschritt braucht ein einmaliges Ereignis — also eine Flanke
- Die Schrittmerker dürfen nicht remanent sein
- Bei 300er/400er-CPUs Merker statt Datenbaustein
- Das Startereignis negiert an alle Rücksetz-Eingänge — gegen Betriebsartenwechsel
- Ablauf und Zuweisung in getrennte Bausteine
- Ein Sprung ist nur ein zusätzlicher Vorgänger am Zielschritt
- Beim Schrittwechsel sind zwei Schritte einen Zyklus lang gleichzeitig aktiv
Fragen zur Lektion
Zu dieser Lektion gibt es zwölf Kommentare.
Ralph Wystup · 28.10.2019
Hallo, kann ich das Beispiel als lauffähiges Programm bekommen?
Viele Grüße
Ralph Wystup
René · 28.10.2019
Hallo Ralph,
die Übungen inkl. der Lösungen kannst du dir sehr gerne im letzten Teil des Videokurses downloaden.
mit freundlichen Grüßen
Rene
Vinzenz · 21.10.2020
Guten Tag, können Sie mir sagen, wie man bei Ein und ausschaltverzögerung vorgeht? Setzt man diese vor S und R vom SR?
Vielen dank
René · 22.10.2020
Hallo Vinzenz,
je nachdem was Sie machen wollen können Sie das genau so wie Sie gesagt haben umsetzen und eine Einschaltverzögerung vor dem S Befehl dran schreiben.
Wenn Sie mit einer Ausschaltverzögerung zum Beispiel einen Ausgang länger ansteuern möchten dann empfiehlt es sich diesen beim FC Zuweisung zu verschalten.
Wie gesagt kommt es halt darauf an was Sie umsetzen möchten.
Sollten Sie grundlegend noch Fragen zu den Timern haben dann kann ich Ihnen die Lektion „Timer in einer SPS – IEC Timer“ sehr empfehlen oder auch den Kurs „SPS programmieren lernen – Übungsaufgaben“ indem viele Abläufe mit und ohne Timer programmiert werden.
Ich hoffe, ich konnte Ihre Frage damit beantworten :).
mit freundlichen Grüßen
Rene Kaiser
Omar · 29.11.2020
Guten Tag,
können Sie mir sagen, wie haben Sie Datenbaustein DB mit Eingänge und Äusgänge verwendet E/A, weil bei mir es gibt nur statisk
Danke
René · 29.11.2020
Hallo Omar,
du kannst für deine Übung selbstverständlich auch direkt Ein/Ausgänge verwenden. Diese können im Programm auch ganz leicht gesteuert werden, wenn die Hardwaremodule den Bereich nicht überschreiben.
Wenn du wie ich einen DB nutzen möchtest empfehle ich dir das Video zu den Datenbausteinen anzusehen.
Hier der Link zum Video: SPS Datenbausteine
Ich hoffe ich konnte dir damit weiterhelfen.
mit freundlichen Grüßen
Rene
Phil Probst · 10.06.2021
Hallo Rene,
kannst du mir erklären, wieso du hier SR und nicht RS Bausteine verwendest? In diesem Fall mag das ja gut funktionieren, weil der Set-Eingang wieder auf 0 gesetzt wird aber ist es bei komplizierteren Programmen nicht sinnvoller Sicherheitshalber RS Bausteine zu verwenden?
So würde doch vermieden werden, dass bei einem Fehler der sich möglicherweise einschleicht, das Programm weiterläuft, mehrere Schritte aktiv sind und die goldenen Regeln verletzt.
Ich würde den Reset hier als wichtiger einstufen. Habe ich einen Denkfehler?
Liebe Grüße
Phil
René · 15.06.2021
Hallo Phil,
ob du eine SR oder RS Baustein verwendest, kommt immer ganz auf deine Anwendung an. Im Großen und Ganzen werden aufgrund der Rücksetzdominanz aber fast immer SR Bausteine verwendet.
Hier habe ich das etwas ausführlicher beschrieben: Informationen mit SR und RS Bausteinen speichern!
mit freundlichen Grüßen
Rene
SPSComander · 05.03.2023
Guten Tag. Ich habe eine Frage zum AVERZ_Q , wie kann ich das Verhalten des Ausgangs „AVERZ_Q“ mit einem IEC-Baustein nachbilden?
René · 06.03.2023
https://www.sps-tutorial.com/info-sps-grundlagenkurs/
Lektion 2.11 Timer in einer SPS – IEC Timer
Florian Bruell · 13.11.2023
Wie kann ich die Eingänge steuern?
Ich habe meine Ein & Ausgange wie im Tutorial beschrieben als Datenbausteine angelegt, diese sind jedoch in der Simulation unter TIA V17 nicht ansteuerbar, zumindest bekomme ich keine Änderungen grafisch angezeigt
René · 15.11.2023
Hallo Florian,
wenn du die Ein- und Ausgänge deiner SPS als Datenbausteine in TIA Portal V17 angelegt hast, wie im Tutorial beschrieben, kannst du sie ganz normal steuern. Wichtig ist dabei, dass du die Variablen im Datenbaustein korrekt ansprichst. Achte darauf, dass die Variablen im Datenbaustein korrekt definiert sind und nicht durch andere Programmteile ungewollt überschrieben werden.
Mit freundlichen Grüßen,
Rene
Weiter geht es mit S7-GRAPH Schrittketten — dort übernimmt die Sprache selbst, was hier von Hand verschaltet wurde.