Grafcet 7 – Zähler

Wie stellt man im GRAFCET einen Zähler dar, der beispielsweise Bauteile zählt, die an einem Sensor (B1) vorbeifahren …

a) … wenn das Zählen immer nur in einem bestimmten Schritt passiert?

b) … wenn der Zeitpunkt des Zählens nicht vorhersehbar ist?

Lösung:

a)

Im linken Bild wird der Zählerstand um den Wert 1 erhöht, wenn die Transition ausgelöst hat, d.h. X3=1 und B1 liefert eine steigende Flanke.
Im rechten Bild wird der Zählerstand um den Wert 1 erhöht, wenn die Schritt 4 aktiviert wird, d.h. X4 liefert eine steigende Flanke.

Zähler in Grafcet (Zählervariable "C")

Zähler in GRAFCET (Zählervariable „C“)

 

 

 

 

 

 

 

 

 

 

 

b)

In G1 befindet sich die eigentliche Schrittkette. Der Teil-GRAFCET G2 dient nur dazu, den Zählerstand um den Wert 1 zu erhöhen, wenn Sensor B1 ein Werkstück erkennt. Der Zählvorgang kann so lange stattfinden, wie die Anlage eingeschaltet ist.

Zähler in Grafcet wenn Sensor B1 eine steigende Flanke liefert.

Zähler in GRAFCET wenn Sensor B1 eine steigende Flanke liefert.

Grafcet 6 – Grafcet vs. FBS

Dies ist eine Antwort auf die Leseranfrage von Fabi96.

Es wird gezeigt, wie ein Initialschritt durch ein SPS Programm realisiert wird. In meinem Buch stelle ich vier verschiedene Möglichkeiten vor, einen Initialschritt/ GRAFCET durch ein SPS Programm abzubilden.

Dieser einfache GRAFCET soll in einen FUP umgesetzt werden:

vom Grafcet zum FUP

vom GRAFCET zum FUP

Hier nun die erste Variante aus meinem Buch, das zugehörige Programm in FBS kann so aussehen:

vom Grafcet zum FUP; strukturiertes Programmieren

vom GRAFCET zum FUP
strukturiertes Programmieren

Erklärung: Der Initialschritt wird genau dann "automatisch" gesetzt, wenn alle anderen Schritt nicht aktiv sind. Dies ist beim ersten Einschalten der Steuerung der Fall. Deshalb wurde an den Setzeingang von "X0" das UND-Gatter gelegt.

Beachten Sie die Rücksetzbedingung des letzen Schrittes. Der letze Schritt X2 wird durch den Taster S3 zurückgesetzt, dies führt in diesem Programm "automatisch" zum Setzen von X0. Und genau dieses Verhalten gibt der GRAFCET auch vor.

Grafcet 5 – Grafcet / FBS

Analogie Grafcet / FBS

Wie sieht der GRAFCET aus, der Vorlage für den abgebildeten Programmausschnitt war?

Analogie Grafcet/FUP

einfache Schrittkette, Analogie GRAFCET/ FUP bzw. FBS

Lösung:

Grafcet/FUP Analogie

Analogie     GRAFCET/ FUP, FBS 

Anmerkung: da hier nicht bekannt ist, welcher Schritt nach der Transition "S0" folgt, wurde die Transition selbst als Rücksetzbedingung gewählt.

Im Blogeintrag GRAFCET 6 sehen Sie, wie eine vollständige Umsetzung eines GRAFCETs in ein S7 Programm erfolgen kann.

Fehlerteufel 5 – blockierender Grafcet

Auch dieser Grafcet beinhaltet ein Problem. Was hat der Ersteller des Grafcets nicht beachtet?

stockender Ablauf

stockender Ablauf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lösung:

Der Ersteller des Grafcets hat nicht auf einen einwandfreien Ablauf geachtet. Nur führt dies in diesem Grafcet, im Vergleich zum Grafcet im Fehlerteufel 4, zu einem anderen Resultat.

Die Schritte 2 und 3 sind aktiv, S3 wird betätigt, nun sind also Schritt 2 und 5 aktiv.

Die gemeinsame Transition B2 wird erst freifgegeben, wenn Schritt 6 aktiv ist. Schritt 6 kann jedoch nun nicht mehr aktiv werden, denn dazu müsse Schritt 4 aktiv und B1 erfüllt sein. Schritt 4 kann aber nicht mehr aktiv werden, da Schritt 5 aktiv ist.

Der Grafcet ist also blockiert, seine Schritte 2 und 5 bleiben dauerhaft aktiv, daran kann nichts mehr geändert werden.

Dieses (fehlerhafte) Verhalten wird wohl nicht gewollt sein, und muss deshalb ausgeschlossen werden.

Fehlerteufel 4 – unsichere Ablaufkette

Der abgebildete GRAFCET sieht auf den ersten Blick korrekt aus. Worin liegt jedoch das Problem in dieser Darstellung?

unsichere Ablaufkette

unsichere Ablaufkette

 

 

 

 

 

 

 

 

 

 

 

 

Lösung:

Schritt 2 und Schritt 3 sind aktiv, wenn jetzt S3 betätigt würde, bevor die Transition 5s/X3 erfüllt wäre, so würde Schritt 5 aktiv werden. Die Transition B2 würde dann in den Schritt 1 überleiten. Schritt 1 und Schritt 2 wären aktiv.

Da GRAFCET  keine Programmiersprache, sondern eine Entwurfssprache ist, widerspricht dieser Ablauf nicht den Grundregeln der GRAFCET  Norm. Dieses Beispiel soll jedoch verdeutlichen, dass es u.U. zu unerwarteten Zuständen kommen kann.

Fehlerteufel 3 – Parallelverzweigung

Ist in diesem GRAFCET die Grundregel Transition-Schritt-Transition … erfüllt?

Ist der GRAFCET somit normgerecht dargestellt oder ist er fehlerhaft gezeichnet?

Parallelverzweigung

Parallelverzweigung

 

 

 

 

 

 

 

 

 

 

 

Lösung:

Der GRAFCET ist nicht normgerecht. Vor einer Parallelverzweigung darf es immer nur e i n e gemeinsame Transition geben. Im abgebildeten GRAFCET kann jedoch vor der Parallelverzweigung nun keine zusätzliche Transition hinzugefügt werden, da dann die Regel „Schritt-Transition-Schritt“ verletzt würde.

Darüber hinaus wäre es hier möglich, durch S1 n u r den Schritt 2 zu aktivieren, Schritt 3 wäre dann inaktiv. Auch das widerspricht der Logik einer Parallelverzweigung.

Grafcet 4 – unnötige Transitionsbedingungen

Ist es sinnvoll, die letzte Transition in einem geschlossenen GRAFCET (bevor der GRAFCET wieder von vorne abläuft) durch die Negation aller vorherigen Schritt (wie in folgendem Ausschnitt gezeigt) zu ergänzen?

Transition ergänzt durch Negation der Schritte

Transition ergänzt durch Negation der Schritte

 

 

 

 

 

 

 

Lösung:

In der Regel nein, denn die GRAFCET Norm besagt, dass ein Schritt die vorherigen Schritt a u t o m a t i s c h  zurücksetzt. Somit ist es sehr wahrscheinlich, dass die Schritte 1 und 2 nicht mehr aktiv sind, wenn Schritt 3 aktiv ist.

Diese Aussage bezieht sich auf einen linear (aber geschlossenen) ablaufenden GRAFCET. Dieser besitzt weder eine Quell- noch eine Schlusstransition.

Anmerkung: Die GRAFCET Norm verbietet es nicht, dass neben den Schritten 3 auch noch die Schritte 2 und 1 aktiv sind!

Sollte tatsächlich sichergestellt werden, dass alle Schritte neben Schritt 3 deaktiviert werden müssen, bevor der nächste Schritt aktiviert werden soll, so ist die oben abgebildete Transitionsbedinung tatsächlich so anwendbar.

Grafcet 3 – Dauer eines Schrittes Abfragen

Erläuterung zum Eintrag „GRAFCET 2“:

Die Variable T2 beschreibt die Dauer, die ein aktiver Schritt gesetzt ist.

Beispielsweise soll der Schritt 4 bereits seit 8s aktiv sein, die Variable T4 besitzt somit den Wert 8s (T4=8s).

Wird Schritt 4 verlassen, so behält die Variable T4 den Wert 8s.

Wird Schritt 4 erneut aktiv, so werden die 8s auf 0s zurückgesetzt, die Variable T4 erhält dann einen neuen Wert.

Anmerkung: Die Norm schreibt folgende Noation vor:

T“Bezeichnung des Schritts“ (Also beispielsweise TRechtslauf)

In diesem Beispiel lautet die Schrittbezeichnung 2, die zugehörige Schrittvariable X2.

Fehlerteufel 2 – speichernd wirkende Aktion

Wird der Motor im Rechtslauf betrieben, wenn der Schritt 5 aktiv ist? Was passiert, wenn der GRAFCET (durch Betätigung von S2) in den Schritt 6 wechselt?

Grafcet_002_Speichernd_Aufgabe

 

 

 

 

 

Lösung:

Diese Darstellung ist nicht korrekt. Das Zeichen „:=“ deutet darauf hin, dass die Aktion „Motor rechts“ speichernd wirkend auf 1 gesetzt wurde. Dies jedoch verlangt nach einer zusätzlichen Angabe, durch was die Speicherung ausgelöst werden soll!

Beispielsweise kann dies durch Aktivierung eines Schrittes geschehen. Dann muss ein linksbündiger, nach oben gerichteter Pfeil eingezeichnet werden:

Grafcet_002_speichernde_Lösung_2

Bedeutung: Durch Betätigung von S1 gelangt man in den Schritt 5, dadurch wird „Motor rechts“ speichernd wirkend auf 1 gesetzt, d.h. er wird eingeschaltet. Wenn nun S2 betätigt wird, so wird zwar Schritt 5 verlassen, der Motor bleibt jedoch weiterhin im Rechtslauf. Um ihn abzuschalten wird wiederum eine speichernd wirkende Aktion an anderer Stelle benötigt.