Grafcet 28 – Kontinuierlich wirkende Aktionen falsch gewählt

Mit beiden Grafcets soll eine einfache Schaltung „Motor in Selbsthaltung“ realisiert werden. Nach dem Signal „Start“ soll der Motor solange den Zustand „EIN“ besitzen, bis das Signal „Stopp“ den Motor abschaltet, ihn also in den Zustand „AUS“ versetzt.

Am Beispiel des linken Grafcets soll deutlich werden, dass es nicht nur sinnlos ist, für diese Zwecke zwei boolsche Variablen zu verwenden, sondern dass diese Verwendung sogar falsch ist, da sich dadurch ein widersprüchliches Verhalten ergibt:

Boolsche Variablen können im Grafcet Widersprüche erzeugen

Anmerkung: Wenn man in obigen Grafcets die Transtionsbedingung „Start“ ersetzt durch „Start & nicht-Stopp“, verhindert man so einen transienten Ablauf bei gleichzeitiger Betätigung von „Start“ und „Stopp“.

Der Blogeintrag Grafcet 21 erläutert ein weiteres Problem, dass bei der Verwendung von kontinuierlich wirkenden Aktionen entstehen kann.

Grafcet – FAQ 13 Vermischung von kontinuierlich wirkenden und speichernd wirkenden Aktionen

Diese Rubrik bietet die Antworten auf die am häufigsten gestellten Fragen zum Thema GRAFCET.

Sie vermissen Ihre Frage? Schreiben Sie mir!

Grafcet-FAQ 13
Aus aktuellem Anlass soll hier nochmal klargestellt werden, in wie weit eine Vermischung von kontinuierlich wirkenden Aktionen mit speichernd wirkenden Aktionen zulässig bzw. verboten ist.

Wenn eine Variable (z.B. Motor_3) in einem Grafcet an irgendeiner Stelle kontinuierlich wirkend beschrieben wird, darf diese Variable (also Motor_3) in diesem Grafcet nirgends speichernd wirkend beschrieben werden.

Wenn eine Variable (z.B. Motor_2) in einem Grafcet an irgendeiner Stelle speichernd wirkend beschrieben wird, darf diese Variable (also Motor_2) in diesem Grafcet nirgends kontinuierlich wirkend beschrieben werden.

Man muss sich also entscheiden, ob eine Variable im gesamten Grafcet entweder durchgängig kontinuierlich wirkend oder immer speichernd wirkend beschrieben wird.

Natürlich könnte man die Variable Motor_3 durchgängig kontinuierlich wirkend, und die Variable Motor_2 immer speichernd wirkend in einem Grafcet beschreiben.

Dieser Sachverhalt wurde schon im Eintrag Grafcet-FAQ 1 diskutiert.

Grafcet – FAQ 11 federrückgestelltes Ventil

Diese Rubrik bietet die Antworten auf die am häufigsten gestellten Fragen zum Thema GRAFCET.

Sie vermissen Ihre Frage? Schreiben Sie mir!

Grafcet-FAQ 11

Eine Kolbenstange wird pneumatisch angetrieben. Muss man eine speichernd wirkende Aktion im GRAFCET verwenden, wenn hierfür ein federrückgestelltes Ventil verwendet wird?

Lösung: Hier lautet die Antwort nein und nein!

Grundsätzlich lautet die Empfehlung für Variablen, die auf einen physikalischen Ausgang (Ventilspule) wirken: Es sollten wenn möglich nur kontinuierlich wirkende Aktionen verwendet werden.

Hinzu kommt, dass man immer zusätzlich die gewünschte Funktionsweise beachten muss. Soll beispielsweise die Kolbenstange nur für die Dauer eines Schrittes ausgefahren bleiben, so wäre die Verwendung einer speichernd wirkenden Aktion niemals sinnvoll (denn man müsste im nächsten Schritt den Ausgang wieder speichernd wirkend auf null ":=0" setzen).

Man kauft sich zusätzlich einen weiterern Nachteil ein: Wird die Variable "Ventilspule" speichernd wirkend beschrieben, so muss sie im kompletten GRAFCET immer speichernd wirkend beschrieben werden.

 

Grafcet – FAQ 6 kontinuierlich wirkende Aktion

Diese Rubrik bietet die Antworten auf die am häufigsten gestellten Fragen zum Thema GRAFCET.
Sie vermissen Ihre Frage? Schreiben Sie mir!

Grafcet-FAQ 6
Wenn kontinuierlich wirkende Aktionen ständig ihre Variablen beschreiben, so muss doch folgender GRAFCET immer einen Konflikt der Ausgangswertigkeit erzeugen?

kontinuierlich wirkende Aktion

kontinuierlich wirkende Aktion

 

 

 

 

 

 

 

 

 

 

 

 

 

Antwort:
Nein, das ist nicht so.

Erklärung:
Es werden nur die Variablen von kontinuierlich wirkenden Aktionen durch inaktive Schritte mit dem Wert false beschrieben, welche nicht bei dem aktuell aktiven Schritt vorkommen.
Im betrachteten GRAFCET wird also bei aktivem Schritt X1 der Variablen Q0 der Wert 1 zugewiesen. Durch X2 und X4 erhält Q0 nicht den Wert 0, da Q0 ja beim aktiven Schritt X1 vorkommt.

Grafcet – FAQ 5 boolsche Ausgangsvariable

Diese Rubrik bietet die Antworten auf die am häufigsten gestellten Fragen zum Thema GRAFCET.
Sie vermissen Ihre Frage? Schreiben Sie mir!

Grafcet-FAQ 5
Kann eine kontinuierlich wirkende Aktion nur boolesche Ausgangsvariablen beschreiben?

Antwort:
Ja, wenn eine boolesche Ausgangsvariable nicht zwingend mit einem physikalischen Ausgang gleichgesetzt wird. Bei dieser Fragestellung ist es wichtig darüber nachzudenken, wann eine Variable zu einer booleschen Variable wird.

Erklärung:
Eine kontinuierlich wirkende Aktion ordnet einer Variablen lediglich den booleschen Wert 0 (False) oder 1 (True) zu. In der klassischen Programmiertechnik kann man zwar nur booleschen Variablen boolesche Werte zuordnen, jedoch ist GRAFCET keine Programmiersprache, sondern eine Entwurfssprache.
So ist beispielsweise „Richtungswechsel“ eine gültige Variable für eine kontinuierlich wirkende Aktion. Die Aktion „Richtungswechsel“ kann also ausgeführt werden oder aber nicht.

Dadurch, dass die Variable „Richtungswechsel“ nur die Zustände True oder False annehmen kann, wird die Variable „Richtungswechsel“ zur booleschen Variablen. Wenn der Variablen Richtungswechsel der Wert False zugeordnet wird, so behält der Antrieb seine aktuelle Drehrichtung. Hier bleibt kein Raum für Spekulationen.


Würde es sich beim beschriebenen Antrieb um einen Drehstrommotor handeln, so wären passende boolesche Variablen „Q1“ bzw „Q2“ für die Bezeichnung der Lastschütze denkbar.
Eine Verwendung der booleschen Variablen „Q1“ und „Q2“ würde in diesem Fall eine Umsetzung des GRAFCETs in ein SPS Programm stark vereinfachen.

Trotzdem müssen hier nicht zwingend zwei unterschiedliche boolesche Variablen verwendet werden, die GRAFCET Norm ist vielfältiger, sie beschreibt lediglich das logische Verhalten eines Systems (siehe Norm / C.2: Seite 53).

Beachten Sie zusätzlich Grafcet 21.

Grafcet – FAQ 1 Konflikt in der Ausgangswertigkeit

Diese Rubrik bietet die Antworten auf die am häufigsten gestellten Fragen zum Thema GRAFCET.
Sie vermissen Ihre Frage? Schreiben Sie mir!

Grafcet-FAQ 1
Darf man speichernd wirkende Aktionen mit kontinuierlich wirkende Aktionen vermischen?

Antwort:
Ja und nein!
Ja, ein Vermischen innerhalb eines GRAFCETs ist möglich, wenn man dabei verschiedene Ausgangsvariablen (hier Q0 und Q3) verwendet.

Speichernd wirkende und kontinuierlich wirkende Aktionen vermischen kann zulässig sein.

Speichernd wirkende und kontinuierlich wirkende Aktionen zu vermischen kann zulässig sein.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nein, ein Vermischen ist nicht möglich, wenn man sich dabei auf nur eine Ausgangsvariable (hier nur Q0) bezieht.

Hier ein kurzes Video zur Erklärung:

 

Der Inhalt des Videos nochmals in schriftlicher Form:

Grafcet Normverletzung

GRAFCET Normverletzung

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Erklärung:

Wir betrachten den fehlerhaften GRAFCET. Im Schritt 4 wird die kontinuierlich wirkende Aktion „Q0“ ausgeführt. Das bedeutet, dass Q0 immer genau dann aktiv ist, wenn Schritt 4 aktiv ist. So weit, so gut.

Jeder Leser stimmt zu, dass die Variable Q0 genau dann den Wert 1 zugewiesen bekommt, wenn X4=1 ist.

Was aber viele Leser nicht bedenken ist, dass eine kontinuierlich wirkende Aktion der Variablen (hier Q0) immer dann den Wert 0 zuordnet, wenn der zugehörige Schritt nicht aktiv ist. Folgender GRAFCET soll dies verdeutlichen:

Einer kontinuierlich wirkende Aktion wird immer ein Wert (True oder False) zugeordnet.

Einer kontinuierlich wirkende Aktion wird immer ein Wert (True oder False) zugeordnet.

 

Würde man nun an den Schritt 1 eine speichernd wirkende Aktion (Q3:=1) anhängen, so würde ein Konflikt entstehen, die Variable Q3 würde dann an zwei Stellen gleichzeitig mit sich widersprechenden Werten beschrieben. Denn nach den Gesetzmäßigkeiten einer kontinuierlich wirkenden Aktion müsste die Ausgangsvariable Q3 den Zustand False erhalten, nach den Gestzmäßigkeiten der speichernd wirkenden Aktion müsste Q3 jedoch den Wert True erhalten. Welchen Wert soll nun Q3 erhalten? Es ist nicht so, dass der Zustand True Vorrang vor dem Zustand False hat!

Um diesen Konflikt der Ausgangswertigkeit zu vermeiden, verbietet die Norm die Vermischung von speichernd wirkenden und kontinuielrich wirkenden Aktionen für ein und die selbe Variable.

Siehe hierzu auch Fehlerteufel 10

Grafcet 20 – Transienter Ablauf

Im abgebildeten GRAFCET ist Schritt 2 aktiv und die Transitionsbedingung „B1“ ist ständig erfüllt.

Welchen Zustand nehmen die Signallampen P1 und P2 an, nachdem Taster S3 betätigt wurde?

Transienter Ablauf

Transienter Ablauf

Lösung:

Da die Transition B1 schon erfüllt ist, bevor S3 betätigt wird, wird Schritt 3 nach Betätigung von S3 als „virtuell aktiviert“ betrachtet. Der GRAFCET befindet sich danach im Schritt 4.

Die Lampe P1 ist speichernd wirkende Aktion realisiert und wird deshalb auch von einem „virtuell aktiven“ Schritt eingeschaltet.

Die Lampe P2 hingegen ist als kontinuierlich wirkende Akion ausgeführt und behält deshalb während des Übergangs von Schritt 2 zu Schritt 4 ständig den inaktiven Zustand.

Ein virtuell aktivierter Schritt hat keinerlei Auswirkungen auf eine kontinuierlich wirkende Aktion.

Fazit: Schritt 4 ist aktiv, Lampe P1 leuchtet und Lampe P2 hat nie (auch nicht kurz) geleuchtet.

Fehlerteufel 10 – Konflikt in der Ausgangswertigkeit

Angenommen, eine Schützspule wird im Schritt 1 speichernd wirkend eingeschaltet und im Schritt 3 speichernd wirkend abgeschaltet.
Darf die gleiche Schützspule im Schritt 4 durch eine kontinuierlich wirkende Aktion wieder eingeschaltet werden?

Lösung:

Nein, denn die Norm schreibt vor, dass eine Ausgangsvariable, welche speichernd wirkend verwendet wurde somit nicht mehr als kontinuierlich wirkende Aktion verwendet werden darf.

Grafcet Normverletzung

GRAFCET Normverletzung

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Im ersten Moment werden viele Leser behaupten, der linke GRAFCET wäre doch eindeutig:

Die Schützspule würde mit Schritt 1 eingeschaltet, mit Schritt 3 abgeschaltet und mit Schritt 4 wieder eingeschaltet.

Jedoch wurde bei dieser Betrachtung ein wichtiger Aspekt (bezüglich kontinuierlich wirkende Aktionen) nicht beachtet:

In Schritt 4 wurde Q0 als kontinuierlich wirkende Aktion abgebildet. Für eine kontinuierliche Aktion gilt, sie ist maximal so lange aktiv, wie der zugehörige Schritt aktiv ist.

Es hilft hier die Vorstellung, dass eine kontinuierlich wirkende Aktion die Ausgangsvariable zu jeder Zeit beschreibt (und nicht einmalig, wie eine speichernd wirkende Aktion).

Deshalb gilt, dass immer dann wenn der zugehörige Schritt NICHT AKTIV ist, diese Aktion inaktiv sein MUSS.

Somit entsteht im Schritt 1 nun ein Konflikt der Ausgangswertigkeit!

Der rechte GRAFCET löst dieses „Problem“, in dem er ausschließlich kontinuierlich wirkende Aktionen verwendet.