# GRAFCET

GRAFCET ist eine Spezifikationssprache für die Ansicht von Ablaufbeschreibungen. Sie ist das Akronym aus französisch GRAphe Fonctionnel de Commande Etapes/Transitions, in der EN 60848 beschrieben und findet hauptsächlich Anwendung in der Automatisierungstechnik, aber auch in der Verfahrenstechnik.
Die Norm EN 60848 ist der Nachfolger der DIN 40719-6 Funktionsplan und hat diesen zum 1. April 2003 abgelöst. Im Vergleich zum Funktionsplan wird in GRAFCET vieles klarer definiert. Der Befehlsumfang wurde in vielen Teilen vereinfacht und durch einige neue Möglichkeiten ergänzt.
Im Gegensatz zum abgelösten Funktionsplan wird die Ablaufsprache der IEC 61131-3 in der GRAFCET Norm ausdrücklich als eine mögliche Implementierung eines GRAFCET-Plans erwähnt und ist weiterhin gültige Norm.

## Zweck

Grafcet ist ein grafisches Planungs- und Dokumentationswerkzeug für Ablaufsteuerungen, genauer für den „Ablaufteil eines Steuerungssystems“. Grafcet kann die Steuerlogik einer Anlage systemneutral abbilden.

## Gliederung eines Grafcet

Mit Grafcet wird die Darstellung einer Ablaufsteuerung in Struktur- und Wirkungsteil gegliedert.

### Struktur

Die Struktur besteht aus
* Schritten
* Transitionen
* Wirkverbindungen
* und – wenn gewünscht – Kommentaren und Schritt-/Transitionsnamen
Damit zeigt die Struktur grafisch den Bewegungsablauf einer Ablaufsteuerung. Schritt- und Transitionsnamen müssen einzigartig sein, Kommentare müssen in Anführungszeichen stehen. Der Schrittname (im Bild die Nummer) legt die Schrittvariable nach folgendem Muster fest: XSchrittname. Dem Schrittnamen wird also ein „X“ vorangestellt. Die so bezeichnete Schrittvariable kann beispielsweise im Wirkungsteil benutzt werden.
Die Planung einer Ablaufsteuerung beginnt mit der Struktur des Grafcet mit vernünftigen Kommentaren, so dass der Bewegungsablauf der Steuerung erkennbar wird.

### Wirkungsteil

Der Wirkungsteil eines Grafcet besteht aus
* Transitionsbedingungen,
* Aktionen
* und – wenn gewünscht – Kommentaren.
Der Wirkungsteil kann nur ergänzt werden, wenn es eine Struktur gibt.

## Gliederung in Schritte und Transitionen

Die entscheidenden Elemente eines Grafcet sind Schritte (mit Aktionen) und Transitionen (logische Bedingungen für den Übergang vom vorhergehenden zum nächsten Schritt). Schritte und Transitionen werden durch die Wirkverbindungen verbunden. Die Grundregeln dazu sind:
* Schritte und Transitionen wechseln sich immer ab. Eine Wirkverbindung kann also nur einen Schritt mit einer Transition oder eine Transition mit einem Schritt verbinden, niemals aber Schritt mit Schritt oder Transition mit Transition.
* Wirkverbindungen wirken immer von oben nach unten bzw. von links nach rechts. Werden andere Wirkrichtungen benötigt, müssen sie durch einen Pfeil gekennzeichnet werden.
* Ein Grafcet hat oftmals einen Initialisierungsschritt (doppelt umrandet), mit dem definiert wird, wo/mit welchem Schritt die Schrittkette beginnt. Eine Ausnahme hiervon bilden jedoch eingeschlossene Schritte. Hier kann auf den Doppelrahmen verzichtet werden, denn bei eingeschlossenen Schritten wird mit einem Sternchen (*) der Schritt gekennzeichnet, der genau dann aktiv wird, wenn der einschließende Schritt aktiv wird. Darüber hinaus, kann ein Teil-Grafcet von einem zwangssteuerunden Befehl (Doppelrahmen im Aktionskästchen) aktiviert werden. Auch in diesem Fall kann auf einen Initialschritt verzichtet werden.
* Die meisten Grafcets sind geschlossene Grafcets, haben also einen Sprung vom Ende zurück zum Anfang. Dies ergibt sich aus dem Zweck des Grafcet, der Darstellung von Ablaufsteuerungen in der Fertigung: Um mehrere Teile fertigen zu können, müssen sich Schrittketten wiederholen.
Die Transition liefert ein boolesches Signal, also nur TRUE oder FALSE ('1' oder '0'). Boolesche Verknüpfungen können sowohl „mathematisch“ als auch graphisch dargestellt werden. Die UND-Verknüpfung mit dem *, die ODER-Verknüpfung mit dem +, die Negation mit dem Überstrich, die steigende Flanke mit dem nach oben gerichteten Pfeil und die fallende Flanke mit dem nach unten gerichteten Pfeil. Zeiten werden vor- (Einschaltverzögerung) oder nach- (Ausschaltverzögerung) gestellt.
Der Schritt hat einen eindeutigen Variablennamen, der – mithilfe der Kennung X – als boolesche Variable in Transitionen oder Bedingungen abgefragt werden kann. Wenn z. B. der Schritt den Namen 17 hat, dann ist der Variablenname X17. Dem Schritt können eine oder mehrere Aktionen zugeordnet sein (muss aber nicht). Es existieren auch Schritte ohne Aktionen, diese werden entsprechend als Leerschritte bezeichnet.
Die Aktion beinhaltet Anweisungen, was geschehen soll, wenn der zugehörige Schritt aktiv ist bzw. aktiv wird oder aber deaktiviert wird.

## Umfang

Die Abläufe werden in Schritte und Transitionen (Weiterschaltbedingungen) unterteilt. Im Schriftfeld findet man die alphanumerische Kennzeichnung. Kommentare können beliebig hinzugefügt werden, sie müssen in Anführungszeichen stehen. Rechts von der Transition steht die Weiterschaltbedingung. Sie darf durch einen Transitionsnamen auf der linken Seite der Transition ergänzt werden. Er muss in Klammern stehen. Die Weiterschaltbedingung wird meistens als Boolesche Gleichung ausgedrückt. Der Mal-Punkt (alternativ auch Stern) beschreibt eine UND-Verknüpfung. Das Plus-Zeichen eine ODER-Verknüpfung. Dabei gilt die Regel: UND vor ODER (Punkt vor Strich, wie in der Mathematik). Negationen werden durch einen Strich über dem Variablennamen, steigende oder fallende Flanken mit einem Pfeil nach oben bzw. unten vor dem Variablennamen gekennzeichnet. Zeitliche Ereignisse werden in der Form t1/Variablenname/t2 beschrieben. Das Ereignis wird wahr nach der Zeit t1 nach der steigenden Flanke der mit Variablenname bezeichneten Variablen und bleibt die Zeit t2 nach der fallenden Flanke noch wahr. Dabei kann wahlweise die Zeit t1 oder t2 und der zugehörige Schrägstrich weggelassen werden. Aktionen können unterschiedliche Verhalten annehmen. Dies wird durch Zusätze an den Aktionen sichtbar. Es wird unterschieden in:
* kontinuierlich wirkende Aktionen (ehemaliger N-Befehl)
* Aktionen mit Zuweisungsbedingung (ehemaliger C-Befehl)
* speichernd wirkende Aktionen bei Schrittaktivierung oder -deaktivierung (ehemaliger S-Befehl)
* speichernd wirkende Aktionen bei einem Ereignis
* verzögerte Aktionen (ehemaliger D-Befehl)
* zeitbegrenzte Aktionen (ehemaliger L-Befehl)
Es ist mit GRAFCET möglich, Abläufe hierarchisch zu strukturieren, um komplexe Zusammenhänge übersichtlich zu modellieren. Dies ist beispielsweise zur Darstellung von Betriebsarten wie Manuell/Automatik oder NOT-Halt hilfreich. Hierzu verwendet man zwangssteuernde Befehle und einschließende Schritte.

## Mögliche Verzweigungen

In vielen Prozessen gibt es Prozessverzweigungen, z. B. muss ein und derselbe Roboterarm je nach Meldesignal Werkstücke von unterschiedlichen Stellen abholen und der entsprechenden jeweils andersartigen Weiterverarbeitung zuführen. Das heißt dann : Alternative Verzweigung des Prozesses. Werden durch eine gemeinsame Transition jedoch mehrere Prozessabläufe parallel gestartet, spricht man von einer parallelen Verzweigung.

### 1. Alternative Verzweigung

Einem Prozessschritt folgen zwei oder mehrere Transitionen mit dahinterliegenden Schritten. Diejenige Transition, die zuerst erfüllt ist, schaltet den Prozess in ihren folgenden Schritt. Damit sind die anderen Alternativen im aktuellen Stadium nicht mehr erreichbar. Dies ist z. B. im nebenstehenden Anwendungsbeispiel nach dem Schritt 3 der Fall: Schritt 4 bei positivem, Schritt 5 bei negativem Temperatursignal.

### 2. Parallelverzweigung

Eine gemeinsame Transition schaltet parallel zwei oder mehrere Prozessschritte ein, die danach unabhängig voneinander weiterlaufen.
Dies ist nach dem Grundschritt des Anwendungsbeispiels der Fall: Sowohl Schritt 1 als auch Schritt 7 werden durch (S1+StART) aktiviert.

## Unterschied zu S7-GRAPH

* GRAFCET ist eine technologieunabhängige Spezifikationssprache zur Planung und Beschreibung von Ablaufsteuerungen.
* S7-GRAPH ist die STEP-7-Variante der genormten SPS-Programmiersprache Ablaufsprache (AS).
Die Programmiersprache S7-GRAPH spiegelt nicht die GRAFCET-Norm EN 60848 wider. Diese Ablaufsprache der Siemens AG ist lediglich eine mögliche Implementierung eines GRAFCET-Plans. S7-GRAPH erfüllt die SPS-Norm EN 61131-3 (Programmierung mit Ablaufsprache). Diese beiden Normen (logische Planung/Dokumentation gegen reale Implementierung) sind unbedingt auseinanderzuhalten.

## GRAFCET-Editor

Mittlerweile stehen mehrere GRAFCET-Editoren zur Verfügung, so dass ein GRAFCET-Plan nicht mehr als Zeichnung erstellt werden muss.
* Mit dem kostenlosen Open Source Zeichenprogramm DIA lassen sich auch GRAFCET Pläne erstellen.
* sfcedit ist ein kleiner reiner Editor für GRAFCET aus Frankreich (in Deutsch, Englisch und Französisch verfügbar). Das Programm kann auch als portable Version z. B. von einem USB-Stick ohne Installation unter Windows verwendet werden.
* In FluidSIM (ab V4.2) ist ein GRAFCET-Editor enthalten, der die Möglichkeit beinhaltet, einen GRAFCET-Plan zu simulieren.
* WinErs ist ein Prozessleitsystem mit Soft-SPS. Es wird ebenfalls als Ausbildungs-Simulationssystem für die Prozesstechnik genutzt. Dort ist ein GRAFCET-Editor enthalten, mit dem prozesstechnische Anlagen geplant und simuliert werden können.
* Omegon Teachware bietet eine freie Grafcet-Version der Software Omegon Fluid Technology OFT2 an, mit der Grafcet-Pläne erstellt werden können.
* Mit Hilfe des LaTeX-Paketes „grafcet“ können GRAFCET-Pläne innerhalb eines LaTeX-Dokumentes erstellt werden.
* GRAFCET Studio ist ein Editor, mit dem sich GRAFCETs erstellen und ablaufen lassen. Auch eine Übertragung in eine SPS ist möglich.