FBD Sequenzielle Steuerung: Tutorial zur Programmierung von Zustandsmaschinen

Ein Auszubildender fragte einmal, warum sein Füllmaschinenprogramm manchmal einen Schritt übersprang und die Flasche füllte, bevor die Flasche positioniert war. Die Antwort war kein fehlender Timer — es fehlte der Zustand. Sein Programm war ein Haufen unabhängiger Bedingungen; echte sequenzielle Maschinen sind eine Zustandsmaschine, und der Unterschied ist der Unterschied zwischen einem Programm, das auf Papier funktioniert, und einem Programm, das am Montag funktioniert.

Die sequenzielle Steuerung ist überall in der Automatisierung: eine Fülllinie, ein Drehteller, eine Stanzpresse, eine Lackierkabine. Der klassische Fehler besteht darin, jeden Ausgang als lose Bedingung zu schreiben — "wenn Sensor A und Timer B, öffne Ventil C" — und dann die unmöglichen Kombinationen um 2 Uhr morgens zu debuggen. Die Lösung besteht darin, nicht in Ausgängen zu denken, sondern in Zuständen.

Was eine Zustandsmaschine tatsächlich ist

Eine Zustandsmaschine ist eine Menge benannter Schritte und die Regeln für den Wechsel zwischen ihnen. Die Maschine befindet sich immer in genau einem Schritt: WARTEN, POSITIONIEREN, FÜLLEN, VERSIEGELN, AUSWERFEN. Jeder Schritt hat Eingangsaktionen, Ausgangsbedingungen und Wachen. Die Flasche wird nur im Schritt FÜLLEN gefüllt, und der Schritt FÜLLEN ist nur von POSITIONIEREN erreichbar, wenn der Flaschensensor die Position bestätigt. Es klingt nach Bürokratie; es verhält sich wie Ingenieurwesen.

In xLogicSofts FBD lässt sich eine Zustandsmaschine sauber auf das klassische Schieberegistermuster oder auf F-Flaggen abbilden, die als Schrittbits verwendet werden. Das Muster: ein F-Flag pro Schritt, eine Menge von Übergangsbedingungen und ein Einmal-Übergangsblock, damit die Maschine genau einen Schritt pro Ereignis voranschreitet. Da der aktuelle Schritt immer sichtbar ist — das LCD zeigt, welches F-Flag aktiv ist — können der Bediener und der Wartungstechniker auf einen Blick sehen, wo die Maschine denkt, dass sie sich befindet. Dieses einzelne Merkmal verkürzt die Fehlersuche mehr als jedes Diagnosehandbuch.

Es bauen: Drei Füllstationen

Nehmen Sie ein einfaches Beispiel mit drei Stationen: eine Flasche kommt an, wird gefüllt, wird verschlossen. Die Schritte:

  • Schritt 0 IDLE: Alle Ausgänge aus. Übergang: Flasche-präsent Sensor, Start-Taster.
  • Schritt 1 POSITION: Förderband läuft, bis die Flasche am Füllkopf stoppt. Übergang: Positionssensor.
  • Schritt 2 FÜLLEN: Füllventil öffnet sich für eine zeitlich festgelegte Dauer oder bis der Füllstandsensor auslöst. Übergang: Timer fertig.
  • Schritt 3 VERSIEGELN: Verschließgerät senkt sich und drückt. Übergang: Druck bestätigt, Timer fertig.
  • Schritt 4 EJECT: Förderband läuft, um die Flasche herauszubewegen. Übergang: Ausgangssensor wird freigegeben.

Jeder Übergang verwendet einen On-Delay- oder einen Wischrelais (Einmal)-Block, sodass der Fortschritt genau einmal erfolgt. Die Wache bei jedem Übergang ist der Schritt selbst — Schritt 2 kann nicht beginnen, es sei denn, die Maschine befindet sich in Schritt 1, Punkt. Die Flasche kann nicht zu früh gefüllt werden, da "zu früh" nicht als Bedingung existiert; es steht nicht in der Schritt-Tabelle, und die Flasche ist nicht positioniert, bis die Maschine POSITION verlassen hat.

Geben Sie dem Bediener einen manuellen Schrittmodus, bevor Sie ihm etwas anderes geben. Ein Selektor-Eingang lässt die Maschine einen Schritt nach dem anderen durch die Sequenz voranschreiten, sodass ein Einrichtungstechniker die Linie einzeln durch POSITIONIEREN, FÜLLEN und VERSIEGELN joggen kann, während er die Aktuatoren beobachtet. Die Zustandsmaschine macht dies trivial — einen Schritt voranzugehen bedeutet einfach, den nächsten Übergang zu erzwingen — und verwandelt die Inbetriebnahme von einem Rätsel in eine Checkliste. Maschinen, die nicht manuell durchgeschritten werden können, sind Maschinen, die mit einem Schraubendreher debuggt werden.

Der Fehler-Modus-Test

Hier ist die Übung, die zeigt, ob Sie eine Zustandsmaschine oder einen Bedingungshaufen gebaut haben: Listen Sie die Notfälle auf. Flasche unter dem Füllkopf verklemmt? Die Maschine sollte im FÜLLEN bleiben, die Pumpe stoppen und Alarm schlagen — nicht in den AUSWERFEN wandern und das Produkt auf den Boden kippen. Sensor fällt aus und meldet "Flasche vorhanden" für immer? Die Maschine sollte den POSITIONIEREN-Schritt zeitlich begrenzen und Alarm schlagen, nicht die gleiche unsichtbare Flasche die ganze Nacht füllen. Sensor fällt in die andere Richtung aus, "nie vorhanden"? Die Maschine wartet geduldig — das ist in Ordnung, das ist es, was Maschinen tun sollten.

Schreiben Sie einen Watchdog in das Programm: Wenn die Maschine länger als die maximale Zeit des Schrittes in einem beliebigen Nicht-IDLE-Schritt sitzt, wechseln Sie in einen FAULT-Zustand, schneiden Sie die Ausgänge ab und blinken Sie den Alarm. Die maximale Zeit ist eine Zahl, die Sie bereits aus der Zykluszeit kennen — Sie raten nicht, Sie setzen die Physik durch.

Entscheiden Sie, was nach einem Fehler passiert, bevor der Fehler auftritt. Die gängige Wahl: Die Maschine stoppt, wo sie ist, der Bediener beseitigt die Ursache, drückt zurücksetzen, und die Sequenz kehrt zu IDLE zurück — oder zum Anfang des unterbrochenen Schrittes, wenn das Produkt noch sicher ist. Die Rückkehr zu IDLE ist einfacher und sicherer für kleine Maschinen; das Fortsetzen in der Mitte des Zyklus ist schneller, erfordert jedoch, dass jeder Ausgangszustand bekannt und nachgewiesen ist. Für eine Füllmaschine ist IDLE die ehrliche Antwort — eine halb gefüllte Flasche ist in jedem Fall Schrott.

Warum FBD bei diesem Thema besser ist als Ladder

Eine Debugging-Gewohnheit amortisiert sich sofort: Machen Sie den aktuellen Schritt auf dem vorderen LCD als einfache Zahl sichtbar. Der erste Bericht des Bedieners wird "es steckt in Schritt 4 fest" und nicht "es macht etwas Seltsames" sein, und Schritt 4 weist direkt auf seine Übergangsbedingung hin. In xLogicSoft sind die Flaggenbits direkt im Monitorfenster, sodass eine Laptop-Sitzung dasselbe Bild zeigt, das das LCD zeigt. Die Übereinstimmung der Worte des Bedieners mit dem Zustand des Programms verkürzt die zweistündige Suche auf zwanzig Minuten jedes Mal.

Leitungslogik kann eine Zustandsmaschine ausdrücken, aber es braucht hundert Sprossen und ein Diagramm, das niemand liest. In FBD sitzt die Schrittstruktur direkt vor Ihnen: Das Schieberegister oder der Flaggenblock zeigt den aktuellen Schritt, die Übergangsblöcke sind sichtbar, und die Sequenz liest sich von oben nach unten. Die xLogicSoft-Umgebung umfasst etwa siebzig Funktionsblöcke, und eine Fünf-Schritt-Maschine mit Verriegelungen passt bequem auf eine Programmseite. Wenn sich die Maschine ändert — neue Station, neuer Sensor — fügen Sie einen Schritt und zwei Übergänge hinzu, anstatt die Logik neu zu verdrahten.

Beginnen Sie mit der Schritt-Tabelle auf Papier, dann mit den Flaggen, dann mit den Übergängen. Das Programm wird langweilig korrekt sein, und langweilig korrekt ist das höchste Kompliment, das ein Automatisierungsprogramm verdienen kann. Maschinen brauchen nicht clever zu sein; sie müssen vorhersehbar sein.