1.2 Ablaufsteuerung in FUP programmieren

SPS Ablaufsteuerung in FUP programmieren

 
Die Schrittkettenprogrammierung in FUP ist so etwas wie der Klassiker der Schrittkettenprogrammierung und obwohl ca. 90% der Abläufe in S7-Graph umgesetzt werden sollte doch jeder SPS Programmierer auch diese Ablaufprogrammierung kennen da sie doch hin und wieder zum Einsatz kommt.

In etwas älteren Maschinen war die FUP Kette sogar die Standardanwendung weil der S7-Graph in Kombination mit Leistungsschwachen CPUs für Zykluszeit kritische Prozesse schlichtweg ungeeignet war.

Selbst heute noch ist eine Ablaufkette in FUP bei den S7-1200er Steuerung die Regel da diese nicht über die Programmiersprache S7-Graph verfügt.

Benötigte Vorkenntnisse für diesen Kursteil:
Schrittketten und Ablaufketten verstehen und planen
 
 

Grundlagen der FUP Ablaufsteuerung


Jeder Schritt einer Ablaufsteuerung wird mit einem Setze-Rücksetze Glied dargestellt.
Wenn ein geplanter Ablauf aus 10 Schritten besteht bedeutet das auch das wir mit 10 SR Gliedern planen können.

Zudem gibt es 3 goldene Regeln, die du dir unbedingt merken solltest.


Die 3 goldenen Regeln einer FUP Schrittkette


  • Es darf immer nur ein Schritt zur selben Zeit aktiv sein
  • Ein Schritt wird nur, dann aktiv geschalten wenn der vorangegangene Schritt aktiv ist und die Weiterschaltbedingung zu diesem Schritt gegeben ist
  • Deaktiviert wird ein Schritt, wenn der nachfolgende aktiv geschalten wird

Möglicherweise klingen die Regeln komplizierter als sie tatsächlich sind.
Deswegen programmieren wir zusammen ein kleines Beispiel in dem wir die 3 goldenen Regeln anwenden werden.
 
 

Beispiel einer FUP Schrittkette

 

Aufgabenstellung:



Wie im ersten Teil Schrittketten und Ablaufketten verstehen und planen versuchen wir einen Ablauf vom Tür aufmachen bis ins Bett gehen in einzelne Schritte zu zerlegen und in einem FUP Ablauf zu programmieren.

 

Schrittketten Bausteine



Im TIA Portal legen wir als Erstes die Bausteine FC Schrittkette, FC Zuweisung und einen Datenbaustein an.
Sollten S7 Timer oder Ähnliches benötigt werden können auch Funktionsbausteine verwendet werden.

Die Bausteinnummern lasse ich automatisch generieren da das TIA Portal ohnehin mit dem symbolischen Namen der Bausteine arbeitet.
 

Der Datenbaustein (nur 1200/1500 CPUs)


Im Datenbaustein wird für jeden geplanten Schritt eine eigene Variable, vom Datentyp Bool, angelegt.
In unserem Fall ist das einmal der Initialschritt und 6 weitere für die folgenden Steps.

ACHTUNG:

Wird eine CPU der 300/400er Reihe verwendet dann sind "nicht remanente Merker", anstatt eines DBs zu verwenden.

Dieser Punkt ist sehr wichtig da bei einem Neustart die Variablen im DB gesetzt bleiben und es so zu unvorhersehbaren Komplikationen kommen kann.
 

FC Schrittkette


Wie bereits erwähnt benötigen wir für jeden einzelnen Schritt ein eigenes Setzte Rücksetze Glied weshalb wir einmal eins für den Initialschritt und 6 weitere für die folgenden Schritte benötigen und mit dem Datenbaustein Variablen verschalten.
 

FC Schrittkette - Schritt 1

Der Initial und der letzte Schritt sind ein wenig ein Sonderfall weshalb wir uns zuerst um dem Schritt 1 kümmern und wenn wir an die Regeln von vorhin zurückdenken wird ein Schritt nur dann aktiv, wenn der vorangegangene Schritt aktiv ist UND die Weiterschaltbedingung erfüllt ist.

Deshalb ziehen wir vor dem Setzeingang eine Und Verknüpfung und verschalten diese mit dem Initialstep (vorangegangen Schritt).

Der zweite Operand am Und Gatter ist die Variable „Du stehst vor der Haustüre“ Um die Variablen besser simulieren zu können habe ich für Weiterschaltbedingungen und Aktionen einen Datenbaustein vorbereitet aber ob die Variablen echte Ein/Ausgänge sind oder wie hier, Variablen in einem Datenbaustein, macht keinen Unterschied.

Für den Rücksetze Eingang verwenden wir Regel Nummer 3, die sagt das der Schritt zurückgesetzt wird, wenn der nächste aktiv wird (Schritt 2).
 

FC Schrittkette - Schritt 2 - 5

Die weitere Zwischenschritte werden so wie gerade eben nach den 3 goldenen Regeln eingefügt.
Schritt 2

Schritt 2

Schritt 3

Schritt 3

Schritt 4

Schritt 4

Schritt 5

Schritt 5

 
Pap Designer einfache Schrittkette
 

Der letzte Schritt

Der letzte Schritt wird zwar, wie die anderen zuvor gesetzt allerdings gibt es keinen nachfolgenden Schritt der diesen zurücksetzen könnte und daher wird hier anstatt des nachfolgenden Steps die letzte Transition verwendet.
 

Der Initial-Schritt

Ein Ähnliches Problem besteht beim Initialstep.
Den hier gibt es keinen vorangegangenen Schritt.

Aus diesem Grund brauchen wir ein einmaliges Ereignis das diesen Schritt setzt.

Das kann zum Beispiel Steuerung ein oder Vorwahl Automatik sein.

Wichtig ist nur, dass dieses Ereignis den Schritt nicht ständig setzt.
 

Abbruchsituationen

Nehmen wir, an das die Schrittkette schon bis Step 2 durchgelaufen ist und dann erfolgt ein Betriebsartenwechsel der den Initialstep auch wieder setzt.

In diesem Fall wären 2 Schritte zur selben Zeit aktiv was bei einer richtigen Anlage zu echten Komplikationen führen kann.

Aufgrund der Vielzahl an Anwendungsmöglichkeiten gibt zwar keine Feste Regel aber ich würde das Ereignis das den Initalstep setzt, negiert an den Rücksetze Eingang ALLER Schritte verschalten.
 

FC Zuweisung


Damit haben wir den kompliziertesten Teil erstmal abgeschlossen und können uns um den relativ einfachen FC Zuweisungen kümmern.

Wie der Name schon sagt weisen wir hier die Aktionen zum jeweiligen Schritt zu.

Im Step 1 war es „Tür öffnen“
bei Step 2 „hineingehen“ usw…
 
Warum dafür einen extra Baustein verwenden?

Zu Recht fragst du dich wahrscheinlich warum dafür ein eigener FC verwendet wird, wenn der Ausgang auch im Ablauf FC an den SR-Gliedern hinten dran gehängt werden kann.
 
In diesem sehr einfachen Ablauf hättest du recht aber meistens sind die Aktionen nicht nur einfache Wertzuweisungen, die nur von einem Schritt aus bearbeitet werden.

Es könnte durchaus auch sein, dass eine Aktion von mehreren Schritten aus gesetzt oder rückgesetzt wird und dann neigt der Ablauf dazu, recht schnell unübersichtlich zu werden und das wollen wir auf jeden Fall vermeiden.
 

Ablaufkette testen



Gleich zu Beginn siehst du, das die Vorwahl Automatik auf 0 ist und alle Schritte zurückgesetzt werden.

Mit der positiven Flanke von Vorwahl Automatik wird der Initialschritt nun gesetzt.

Schrittketten Test 1
Schrittketten Test Init

Ist auch die Variable „du stehst vor der Haustür“ auf 1 wird der Step 1 aktiv und der Initialschritt inaktiv.

Parallel dazu wird im FC Zuweisung dem Ausgang Tür öffnen eine 1 zugewiesen und Step 2 steht schon in den Startlöchern und wartet nur mehr das die Weiterschaltbedingung wahr wird.

In diesem Stil wird die Schrittkette bis zum Ende abgearbeitet und der letzte Schritt hat wie gesagt keinen Folge Schritt mehr und wenn die Transition Licht ist aus wahr ist wird dieser eben zurückgesetzt und die Schrittkette ist beendet.

Möglicherweise ist dir aufgefallen das so wie wir das hier programmiert haben die Regel Nummer 1 verletzt haben, weil genau 1 SPS Zyklus lang beide Schritte gesetzt sind, bevor der vorangegangen zurückgesetzt wird. Und ja das könnte je nach Aufgabenstellung zu einem Problem werden. Eine Absicherungsmöglichkeit wäre, indem du z. B. im FC Zuweisung die Ausgänge gegeneinander verriegelst.
Schrittketten Test 1 aktiv init deaktiv Init
Schrittketten Test 1 aktiv

 
 

Sprünge in einer FUP Ablaufkette



In seltensten Fällen ist es so, das ein Ablauf nur einmalig durchlaufen wird, also müssen wir zusehen, dass wir irgendwie wieder zu Schritt 1 zurückkommen.

Das machen wir mit einem „Gehe zum Anfang Schritt“.

Dieser wird ganz normal wie jeder andere gesetzt, wenn der vorherige Schritt aktiv und die Transition erfüllt ist.
Der Unterschied ist, aber das der nachfolgende Schritt nun der Step 1 am Anfang ist.

Gehe zum Anfang Schritt


Für Step 1 wiederum ist der Schritt „Initialstep“ oder der „gehe zum Anfang Schritt“ der vorangegangene Schritt.

So einfach wird ein „Sprung“ vom letzten zum ersten Schritt durchgeführt und selbstverständlich kannst du mit dieser Methode auch zwischen Steps springen wobei ein Ablauf mit Sprüngen schnell unübersichtlich wird.

Gehe zum Anfang erster Schritt


Sprungbefehl
 

Alternativ Verzweigung in einer FUP Schrittkette


Im Ursprungsbeispiel hatten wir nach dem Licht einschalten auch noch eine Entscheidung eingefügt ob du müde bist oder nicht.

Wenn ja dann soll die Schrittkette wie bisher durchlaufen werden aber wenn nicht gehst du auf die Couch, bis du eben müde bist.
So eine Entscheidung nennt sich alternativ Verzweigung und diese programmieren wir nun auch in unseren Ablauf.

Zugegeben ist eine alternativ Verzweigungen etwas komplizierter zu verstehen aber gemeinsam finden wir auch hier eine Lösung.
Alternativ Kette PAP

Aus dem Flussdiagramm erkennen wir das es, im Datenbaustein" einen zusätzlichen Ausgang für „ab auf die Couch“ geben muss.

Auch ergibt sich das es Eingänge für „du bist müde“ und für "du bist auf der Couch" geben muss.
Datenbaustein

Wenn wir uns die Zuweisung und die Schrittkette ansehen erkennen wir das im Step 5, nachdem das Licht an ist, der Ausgang "ins Bett legen" gesetzt wird, aber das soll eben nur geschehen, wenn du auch müde bist

Wenn nicht dann benötigen wir einen alternativ Schritt der den Befehl
„ab auf die Couch ausführt“.

Dieser wird dann aktiv, wenn Schritt 4 aktiv ist, das Licht an ist und du nicht müde bist.

Wichtig hierbei ist das der Schritt 4 dadurch auch einen alternativen Nachfolgeschritt bekommt mit dem der Step zurückgesetzt wird
(Regel Nummer 3: deaktiviert wird ein Schritt wenn, der nachfolgende aktiv geschalten wird).

alternativ Schritt 1 Schrittkette
alternativ Schritt 1 Zuweisung


alternativer Nachfolgeschritt



Als nächsten brauchen wir einen weiteren Schritt der dich von der Couch ins Bett bringt, wenn du dann doch mal müde wirst

Bei der Zuweisung sieht das dann so aus das entweder Schritt 5 oder Schritt 5.2 diesen Ausgang setzt.

Damit ist der alternative Zweig abgearbeitet und logischerweise hat der Schritt 6 dadurch auch einen alternativen vorangegangen Schritt (Regel Nummer 2: wird nur, dann aktiv geschalten wenn der vorangegangene Schritt aktiv ist und die Weiterschaltbedingung zu diesem Schritt gegeben ist).

alternativ Schritt 2 Schrittkette
alternativ Schritt 2 Zuweisung


alternativ Schritt 6



 
Sollte nun die Variable „du bist müde“ high sein wird die Schrittkette wie bisher durchlaufen.

Ist sie jedoch auf low wird der normale Schritt 5 nicht bearbeitet aber dafür die 2 Alternativen.
 
Damit haben wir auch den letzten Punkt zur Schrittkettenprogrammierung im FUP abgeschlossen und ich wünsch dir viel Erfolg bei der Umsetzung!
 

2 Comments

  1. Ralph Wystup sagt:

    Hallo, kann ich das Beispiel als lauffähiges Programm bekommen?

    Viele Grüße

    Ralph Wystup

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.