SPS-Zustandsdiagramm zeichnen — Die Maschinenzustände auf ein Blatt bringen und die nicht gezeichneten Kombinationen in einer Tabelle ergänzen
Zuletzt aktualisiert: 2026-09-24 / Kategorie: SPS-Programmierung, Steuerungslogik
Ein Zustandsdiagramm zeigt auf einem Blatt, in welchem Zustand die ganze Maschine ist und welche Taste oder Störung sie wohin bringt. Dieser Leitfaden richtet sich an den SPS-Steuerungsplaner, der Kombinationen, die in der Spezifikation fehlen, nicht dem überlassen will, der den Kontaktplan schreibt.
Start wurde während des Automatikbetriebs noch einmal gedrückt, und der Merker des ersten Schritts wurde ein zweites Mal gesetzt. Die Kombination fehlt im Normalablauf des Ablaufdiagramms, also hat der Kontaktplan-Programmierer sie vor Ort entschieden. Ein Diagramm zeigt nur die Pfeile, an die man gedacht hat. Die nicht gezeichneten Kombinationen werden Zelle für Zelle in einer Tabelle Zustand × Ereignis ergänzt.
1. Das Zustandsdiagramm enthält nur Zustände der ganzen Maschine; Schritte gehören ins Ablaufdiagramm
Das Diagramm zeigt die Zustände der ganzen Maschine. Das Beispiel hat 7 und zeigt nicht „auf Teil warten → Transport → Spannen → Entnahme“, die Schritte im Betrieb. Schritte gehören ins SPS-Ablaufdiagramm zeichnen, als Schrittnummern (10, 20, 30 …) mit der Bedingung zum Weitergehen. Kämen die Schritte hierher, bräuchte jedes Ereignis, das von überall auftreten kann, etwa Störung oder Pause, einen Pfeil je Schritt.
Die beiden Blätter sind über die Schrittnummer verbunden. Start aus der Pause setzt den unterbrochenen Schritt fort; nach der Grundstellungsfahrt beginnt es beim ersten Schritt. Nach dem Reset einer Störung, die Weitermachen erlaubt, beginnt es am Anfang des unterbrochenen Schritts.
Was in SPS-Ablaufdiagramm zeichnen „Schritt (Zustand)“ hieß, ist in diesem Artikel ein Schritt. Sobald sich die Zustände wie im Beispiel vermehren, wandern Warten auf Start und Störungshalt in dieses Diagramm; der Störungsausgang des Ablaufdiagramms braucht dann nur noch „zum Störungshalt“ zu sagen. Bei einer Maschine, an der der Bediener jedes Mal ein Teil einlegt und startet, entfällt die Bedingung mit der Zyklushalt-Marke, und am Ende jedes Schritts geht es zu Warten auf Start zurück.
2. Zustände sind Dinge, die andauern; Pfeile sind Dinge, die geschehen
- Zustände nach dem Andauernden, Pfeile nach dem Geschehenden benennen Zustandsnamen sind Bedingungen, die eine Weile andauern: „in Betrieb“, „wartet auf“. Pfeilnamen sind Augenblicke: „Start (gedrückt)“, „Störung (Zeit abgelaufen)“. Ein Zustand namens „Start“ lässt offen, ob der Moment des Drückens oder die Zeit der Bewegung gemeint ist.
- Zustände, die etwas tun, von Zuständen, die warten, trennen Das graue Referenzieren geht von selbst zu Warten auf Start, wenn seine Arbeit getan ist. Das weiße Warten auf Start wartet, bis jemand Start drückt. Referenzieren endet, wenn das Verfahren seine letzte Stufe erreicht (im Ablaufdiagramm Grundstellungsfahrt (Beispiel) die Stufe, die bHomeDone setzt).
- Einen „aus jedem Zustand“-Pfeil nur einmal, aus einem Rahmen, zeichnen Eine Störung kann aus jedem der 5 Zustände auftreten. Statt 5 Pfeilen einen aus einem Rahmen um die 5 Zustände außer Störungshalt und Not-Halt zum Störungshalt ziehen. In einem Diagramm mit allen ausgezeichneten Pfeilen fällt ein fehlender niemandem auf.
- Zeichnen, wo die Maschine nach dem Einschalten beginnt Im Beispiel führt der Pfeil vom Einschaltpunkt zu Nicht referenziert. Nach einem Stromausfall liegen Teile mitten im Zyklus und die Achspositionen sind ungewiss. Liegt die Zustandsvariable im remanenten Speicher, läuft eine Maschine, die im Betrieb den Strom verlor, wieder an, ohne dass jemand Start gedrückt hat.
- Hat ein Ereignis zwei Pfeile, die Bedingungen ausschließend formulieren Reset aus dem Störungshalt hat zwei Ziele: Warten auf Start, wenn Weitermachen erlaubt ist (E01 und E02 in der Steuerungsspezifikation schreiben), sonst Nicht referenziert. Können beide Bedingungen gleichzeitig wahr sein, entscheidet stillschweigend die Reihenfolge im Programm.
- Betriebsarten auf einer eigenen Achse führen und je Zustand festlegen, wohin ein Wechsel führt Das Beispiel zeigt die Zustände der Betriebsart Automatik. Beim Wechsel nach Hand erlauben Nicht referenziert und Störungshalt Handbewegungen wie sie sind, während Warten auf Start zu Nicht referenziert geht. Niemand weiß, was beim Rüsten bewegt wurde, also prüft eine Referenzfahrt alles neu, bevor es zurück in Automatik geht.
3. Die nicht gezeichneten Kombinationen in einer Tabelle Zustand × Ereignis ergänzen
Das Diagramm hat 14 Pfeile außer dem Einschalten. Als Tabelle sind es 7 Zustände × 10 Ereignisse, 70 Zellen, und das Abschreiben der Pfeile füllt nur 25. Die übrigen 45 erscheinen nie im Diagramm. Start gedrückt bei Nicht referenziert, Start noch einmal gedrückt im Betrieb: jede wird für sich entschieden, eine Zelle nach der anderen.
Eine Zelle enthält eines von fünf Dingen, und „nicht angenommen“ ist etwas anderes als „kann nicht vorkommen“. Eine nicht angenommene Zelle wird bei der Abnahme geprüft, indem man die Taste drückt und nichts passiert. Eine unmögliche Zelle lässt sich nicht durch Drücken prüfen; tritt sie doch ein, ist es ein Programmfehler und die Maschine geht in den Störungshalt.
- → Zustandsname — In diesen Zustand wechseln. Hängt es von einer Bedingung ab, „Bedingung → Ziel“ auflisten
- Nur Text — Im Zustand bleiben und nur das Geschriebene tun (Marke setzen, in die Historie eintragen, Meldung anzeigen)
- / — Nicht angenommen. Nichts passiert
- × — Kann nicht vorkommen
- Leer — Noch nicht entschieden. Bis zur Auslieferung keine mehr
| Ereignis \ Zustand | Nicht referenziert | Referenzieren | Warten auf Start | In Betrieb | Pause | Störungshalt | Not-Halt |
|---|---|---|---|---|---|---|---|
| Referenzieren (Taste) | → Referenzieren | / | → Referenzieren | / | / | / | / |
| Referenzieren fertig | × | → Warten auf Start | × | × | × | × | × |
| Start | „Nicht referenziert“ anzeigen | / | In Wiederanlaufposition → In Betrieb Nicht in Position → „Nicht in Wiederanlaufposition“ anzeigen | / | → In Betrieb (unterbrochenen Schritt fortsetzen) | / | / |
| Pause | / | → Nicht referenziert (Referenzieren abbrechen) | / | → Pause | / | / | / |
| Zyklushalt | / | / | / | Marke setzen | Marke setzen | / | / |
| Schrittende | × | × | × | Marke gesetzt → Warten auf Start Keine Marke → weiter auf das nächste Teil warten | × | × | × |
| Störung | → Störungshalt | → Störungshalt | → Störungshalt | → Störungshalt | → Störungshalt | Eine neu aufgetretene Störung mit anderer Nummer in die Historie eintragen (Weitermachen ist nicht mehr erlaubt) | Die neue Störung in die Historie eintragen |
| Reset | / | / | / | / | / | Ursache noch vorhanden → / Weitermachen erlaubt → Warten auf Start Sonst → Nicht referenziert | Vor dem Entriegeln → / Losgelassen und Energie wieder da → Nicht referenziert 3 s nach dem Loslassen keine Energie → „Energie fehlt“ anzeigen |
| Not-Halt | → Not-Halt | → Not-Halt | → Not-Halt | → Not-Halt | → Not-Halt | → Not-Halt | / |
| Wechsel nach Hand | Handbewegung erlaubt | → Störungshalt | → Nicht referenziert | → Störungshalt | → Störungshalt | Handbewegung erlaubt | Nur die Betriebsart wechseln |
„Schrittende“ ist eine Bedingung, die nur im Betrieb gilt, während der erste Schritt (auf Teil warten) auf das nächste Teil wartet. Start aus Warten auf Start wird nur angenommen, wenn für den ersten Schritt die Grundstellung gegeben ist oder beim Weitermachen die Bedingungen am Anfang des unterbrochenen Schritts erfüllt sind. Die Zyklushalt-Marke wird beim Eintritt in Warten auf Start, Störungshalt oder Not-Halt gelöscht. Die Zeile Störung umfasst E01 bis E04 der Störungsliste; der Not-Halt (E05) hat seine eigene Zeile.
Bei diesen Zellen zögert man am ehesten.
- Start im Betrieb ist / — Den Zustand in einer Variablen halten und Start nur bei Warten auf Start oder Pause annehmen. In einem Kontaktplan, der Schrittmerker mit SET / RST verkettet, kommt Start auch im Betrieb durch, und der Doppelstart vom Anfang passiert. In der Tabelle festgelegt, sitzt die Bedingung an einer Stelle: im Startnetzwerk
- Start bei Nicht referenziert wird mit einer Meldung abgelehnt — Passiert nichts, drückt der Bediener immer wieder Start und ruft die Instandhaltung. Start im Störungshalt bleibt /: Die Störung wird schon angezeigt und der Bildschirm erklärt, warum sich nichts bewegt
- Reset bei noch vorhandener Ursache ist / — Das Störsignal kommt immer wieder, solange die Ursache besteht. Den Reset abzulehnen hält die Störung auf dem Bildschirm und sagt dem Bediener, was zu beheben ist
- Pause beim Referenzieren führt zu Nicht referenziert — Wird festgelegt, dass ein unterbrochenes Referenzieren von vorn beginnt, muss sich niemand etwas merken. Ein Referenzieren fortzusetzen hieße, sich zu merken, wie weit jede Achse gekommen ist
Die Tabelle wird in Excel erstellt, mit Versionsnummer versehen und in die Spezifikation aufgenommen. Eine Datenüberprüfungsliste „/,ד mit abgeschalteter Fehlermeldung erlaubt trotzdem die Eingabe von „→ Warten auf Start“. Leere Zellen mit der bedingten Formatierung =ISBLANK(B2) rot färben. Kommt ein Ereignis hinzu, muss eine Zeile ergänzt und alle 7 Zellen gefüllt werden, sonst laufen Diagramm, Tabelle und Kontaktplan auseinander.
4. Zustände und Ereignisse sammeln, die normalen Pfeile zeichnen, dann die Tabelle füllen
- Die Zustände auflisten Sie stammen aus den Betriebszuständen, die auf den Leuchten des Bedienpults und auf dem Bildschirm erscheinen sollen. Ein Zustand ist etwas, das durch eine eigene Aktion betreten und verlassen wird: eine Bedienertaste, eine Störung, das Ende des Referenzierens. Transport und Spannen, die auf Sensorbedingungen weiterlaufen, sind Schritte und gehören ins Ablaufdiagramm, auch wenn der Bildschirm „Transport läuft“ zeigt.
- Die Ereignisse sammeln Aus den Tasten und Schaltern des Bedienpults, den Abschlüssen, den nur im Betrieb geprüften Bedingungen und den Störungen. Die Störungen der Störungsliste teilen sich eine Zeile; nur der Not-Halt hat eine eigene. Bedienungen, die in jedem Zustand dasselbe tun, wie Summer aus, bleiben außerhalb der Tabelle.
- Die normalen Pfeile zeichnen und das, was von überall passieren kann, einrahmen Zuerst vom Einschalten bis In Betrieb und den Weg zurück nach einem Halt. Störung und Not-Halt: je ein Pfeil aus einem Rahmen.
- Die Tabelle anlegen und die Lücken füllen Die Pfeile des Diagramms abschreiben, dann die übrigen Zellen mit /, × oder Text füllen. Zellen, die man nicht selbst entscheiden kann, leer lassen und danebenschreiben, wer es kann (Kunde, Mechanikkonstruktion, Sicherheit).
5. In der SPS den Zustand in einer Variablen halten und höchstens einmal je Zyklus wechseln
- Den Zustand als Nummer in einer Variablen halten Die Zustandsnummer in eine einzige Integer-Variable. Mit einem Merker je Zustand verhindert nichts im Entwurf, dass zwei gleichzeitig gesetzt sind. Eine nicht remanente Variable ist nach dem Einschalten 0, also bekommt Nicht referenziert die Nummer 0.
- Übergänge mit dem Zustand vom Zyklusanfang auswerten und höchstens einmal je Zyklus wechseln Gegen eine am Zyklusanfang gezogene Kopie des Zustands auswerten. Steht von oben nach unten „wenn Warten auf Start und Start, dann In Betrieb“, sieht ein tieferes Netzwerk das gerade geschriebene In Betrieb und geht noch einmal weiter. Den nächsten Zustand einmal am Ende schreiben; in einer ST-CASE-Anweisung läuft nur ein Zweig je Zyklus.
- Die „von überall“-Übergänge nach den zustandsspezifischen schreiben Reihenfolge: zustandsspezifische Übergänge → Störung → Not-Halt. Die letzte Zuweisung gewinnt, also gewinnt der Not-Halt, wenn Start und Not-Halt im selben Zyklus zusammenfallen. Jeder Rahmenpfeil des Diagramms ist auch im Programm eine Stelle.
- Eintrittsaktionen von Dauerausgängen trennen Eintrittsaktionen laufen nur im Zyklus, in dem sich die Nummer ändert. Wird die Störungsnummer beim Eintritt in den Störungshalt in jedem Zyklus in die Historie geschrieben, wächst die Historie um einen Eintrag je Zyklus. Ausgänge, die nur vom Zustand abhängen, wie Leuchten und Anzeigen, sind ein Ausdruck je Ausgang: „rot = Störungshalt oder Not-Halt“.
- Eine unmögliche Nummer führt zum Störungshalt Im ELSE-Zweig in den Störungshalt wechseln und die Nummer anzeigen. Ein leeres ELSE oder eines, das zu Warten auf Start zurückkehrt, verbirgt einen Schreibzugriff aus einem anderen Netzwerk oder einen Tippfehler. Dasselbe gilt, wenn eine ×-Zelle der Tabelle eintritt.
- Tasten sind Ereignisse im Moment des Drückens; Not-Halt und Störungen werden geprüft, solange sie anstehen Tasten nur im Zyklus der steigenden Flanke auswerten. Werden sie angenommen, solange sie EIN sind, läuft die Maschine los, sobald bei gehaltenem Start ein Teil eingelegt wird. Not-Halt und Störungen umgekehrt in jedem Zyklus prüfen, solange sie anstehen, damit auch das Einschalten mit gedrücktem Taster in den Not-Halt führt.
6. Stolpersteine: Rückmeldung zum Zyklushalt, Zählung des Wartens auf Teile, Rolle des Not-Halts
- Nach dem Drücken von Zyklushalt erscheint nichts auf dem Bildschirm — Solange die Marke gesetzt ist, „Zyklushalt angenommen“ anzeigen. Wird nur eine Marke gesetzt und bis zum Schrittende weitergefahren, weiß der Bediener nicht, ob es gerade anhält oder der Druck verloren ging
- Nicht festgelegt, ob Warten auf Teile als Betrieb zählt — Vor der Abnahme schriftlich mit dem Kunden vereinbaren, welche Zustände als Betrieb zählen. In Werken, die die Verfügbarkeit aus Zustandszeiten berechnen, ändert sich die Zahl je nachdem, wohin das Warten auf Teile fällt. Das Beispiel zählt es als In Betrieb; PackML unterscheidet Held (Gründe der Maschine selbst) und Suspended (Gründe vor- oder nachgelagert)
- Not-Halt für einen Zustand halten, in dem die SPS stoppt — Die Energie schaltet der Sicherheitskreis ab; die SPS nimmt das nur zur Kenntnis. Wer über die SPS-Zustandsmaschine stoppen will, stoppt nichts, wenn die SPS selbst stehen bleibt. Aufgabe der SPS ist es, Bewegungsausgänge und Selbsthaltungen zurückzunehmen und die Reihenfolge des Wiederanlaufs zu erzwingen (Ablaufdiagramm Wiederanlauf nach Not-Halt (Beispiel))
7. Die 58 Zellen, die nicht × sind, sind die Prüfpunkte der Abnahme
Die 58 Zellen, die nicht × sind, sind die Prüfpunkte. Bei einer →-Zelle den Zielzustand und die Eintrittsaktion prüfen; bei einer /-Zelle die Taste drücken und prüfen, dass nichts passiert. Störungen und Not-Halt aus jedem Zustand im Rahmen auslösen, nicht nur aus In Betrieb. Ein Zeitüberlauf beim Referenzieren und ein Not-Halt in der Pause sind die Kombinationen, die am häufigsten vergessen werden.
Nach den einzelnen Zellen Folgen von zwei Bedienungen testen. Zyklushalt drücken, dann Pause, dann Start: Ist die Marke noch gesetzt, und hält es am Schrittende bei Warten auf Start? Im Betrieb aus- und einschalten: Beginnt es bei Nicht referenziert, ohne dass sich etwas bewegt (oder im Not-Halt, wenn das Sicherheitsrelais manuell zu quittieren ist)? Die Tabelle Zelle für Zelle zu prüfen findet solche Reihenfolgefehler nicht.
Der Editor für das Schritt-Ablaufdiagramm
- Flowchart Editor — Zeichnet die Schritte im Betrieb (auf Teil warten, Transport, Spannen, Entnahme) als Schrittnummern mit der Bedingung zum Weitergehen. Das Zustandsdiagramm selbst zeichnet er nicht.
Ohne Installation und Registrierung, direkt im Browser.
Verwandte Artikel
- SPS-Ablaufdiagramm zeichnen
- Steuerungsspezifikation schreiben
- Zeitdiagramm zeichnen
- Ablaufdiagramm Wiederanlauf nach Not-Halt (Beispiel)
- Ablaufdiagramm Grundstellungsfahrt (Beispiel)
- JSON-Datenformat — Das Format, das die vier Editoren lesen und schreiben, mit Schema, Validierung und Beispielen
yk.builds