Startseite Über EasyKit Über EasyLab Produkte Partner Downloads Kontakt Suche

Ablaufsprache

Über EasyLabDokumentation für EndbenutzerModellierungSoftware-Modell → Ablaufsprache

Die Ablaufsprache beschreibt die Zustände eines Programms sowie Übergänge von einem Programmzustand in einen anderen in Form von Schrittketten. Sie bietet außerdem Mittel, um zu beschreiben, dass sich das Programm unter bestimmten Umständen anders verhalten soll. Die Ablaufsprache in EasyLab ist an die entsprechende Sprache der Norm IEC 61131-3 angelehnt, implementiert diese aber nicht in vollem Umfang.

Weitere Themen auf dieser Seite:
  1. Aufbau der Ablaufsprache
  2. Ausführung der Ablaufsprache
  3. Arbeiten mit der Ablaufsprache

1. Aufbau der Ablaufsprache

Die Elemente der Ablaufsprache in EasyLab sind:
  1. Zustand
  2. Initialer Zustand
  3. Zustandsübergang mit Übergangsbedingung
  4. Alternative Verzweigung mit Übergangsbedingungen
  5. Sprung

Struktur eines Programms in der Ablaufsprache

Zustand


Ein Zustand wird durch ein Rechteck dargestellt. Die Position des Zustands innerhalb der grafischen Darstellung entscheidet darüber, wann der Zustand betreten wird. Im Inneren des Rechtecks befinden sich zwei Bezeichner. Der erste Bezeichner definiert den Namen des Zustands. Er kann direkt durch Klicken auf den Namen bearbeitet werden. Der Name muss innerhalb eines Ablaufdiagramms eindeutig sein. Der zweite Bezeichnet bestimmt, welches Unterprogramm in dem jeweiligen Zustand zur Ausführung kommen soll. Durch Klicken auf den Bezeichner erscheint ein Listenfeld, aus dem man das entsprechende Unterprogramm auswählen kann. Der spezielle Wert
bedeutet, dass diesem Zustand kein Unterprogramm zugeordnet ist.


Jedem Zustand ist außerdem eine so genannte Zeitscheibe zugeordnet. Diese bestimmt, wie lange die Ausführung eines Zustands dauern soll. Benötigt ein Zustand kürzere Zeit für seine Ausführung, so wartet das Programm, bis die entsprechende Gesamtzeit abgelaufen ist, bevor mit der Ausführung fortgefahren wird. Auf diese Weise ist es einfach möglich zu sagen, wie oft ein Zustand pro Sekunde ausgeführt wird. Ebenfalls ist es so möglich, Wartezeiten genau zu definieren.

Die Zeitscheibe ist standardmäßig auf 10 Millisekunden eingestellt, d.h. der Zustand würde 100 mal pro Sekunde ausgeführt werden. Um die Zeitscheibe zu verändern, klicken Sie mit der rechten Maustaste auf den Rahmen des entsprechenden Zustands und wählen Sie Zeitscheibe setzen....

Popup-Menü zum Setzen der Zeitscheibe

Geben Sie im folgenden Dialogfenster die neue Zeitscheibe ein.

Setzen der Zeitscheibe

Initialer Zustand


In jedem Ablaufdiagramm gibt es einen durch Doppellinien gekennzeichneten initialen Zustand. Dies ist der Zustand, der aktiv ist, wenn die Ausführung des Programm startet.

Zustandsübergang mit Übergangsbedingung


Ein Zustandsübergang regelt, wann das Programm von einem Zustand in einen anderen wechselt. Zustandsübergänge befinden sich immer zwischen zwei aufeinander folgenden Zuständen und werden durch eine Querlinie repräsentiert. Neben der Querlinie steht eine Bedingung, die erfüllt sein muss, damit der Zustandsübergang durchgeführt wird. Diese Bedingung wird auch Transitionsbedingung genannt. Sie wird jeweils ausgewertet, wenn der Zustands vor der Übergangsbedingung einmal ausgeführt wurde. Ist die Bedingung wahr, so wird der auf den Übergang folgende Zustand aktiv. Andernfalls bleibt der davor liegende Zustand aktiv. Die Spezifikation der Übergangsbedingung erfolgt in Textform. Dabei dürfen die folgenden Elemente (mit der üblichen mathematischen Bedeutung) verwendet werden:
  • Die Bezeichner true (immer wahr) und false (immer unwahr).
  • Ganzzahlen und Kommazahlen (z.B. 3, -7, 3,14).
  • Klammern zur Gruppierung (z.B. (3.1-0.1)*3).
  • Die Namen von globalen Variablen (im obigen Beispiel x und y).
  • Die Namen lokaler Variablen des vorangegangenen Zustands.
  • Einfache mathematische Operationen (Addition +, Subtraktion -, Multiplikation *, Division /, Modulo %), sofern diese auf Zahlen angewendet werden (siehe Datentypen). Modulo (ganzzahliger Rest) darf nicht auf Kommazahlen angewendet werden.
  • Vergleichsoperatoren (gleich ==, ungleich !=, kleiner <, größer >, kleiner oder gleich <=, größer oder gleich >=), sofern diese auf Zahlen angewendet werden (siehe Datentypen). Das Ergebnis eines Vergleichsoperators ist ein Wahrheitswert.
  • Logische Operatoren (Und &&, Oder ||, Negation !), sofern diese auf Wahrheitswerte angewendet werden (siehe Datentypen).
Weitere Details können dem Abschnitt Ausführungssemantik entnommen werden.

Alternative Verzweigung mit Übergangsbedingungen


Eine alternative Verzweigung ermöglicht es, abhängig von einer Bedingung in unterschiedliche Nachfolgezustände zu verzweigen. Sie wird grafisch durch eine einzelne lange Querlinie repräsentiert, aus der die unterschiedlichen Zweige hervorgehen. Die Anzahl der möglichen Ausführungszweige ist nicht begrenzt. Jeder Zweig beginnt mit einer Bedingung, die festlegt, unter welchen Umständen der jeweilige Zweig betreten wird. Erreicht die Programmausführung eine alternativ Verzweigung, so werden nacheinander von links nach rechts die Bedingungen der Zweige ausgewertet. Ist eine der Bedingungen wahr, so wird der erste Zustand des jeweiligen Zweiges aktiv. Ist keine der Bedingungen wahr, so bleibt der Zustand über der alternativen Verzweigung aktiv.

Sprung


Ein Sprung ermöglicht es, die Programmausführung in einem anderen Zustand fortzusetzen. Dazu wird der Name des Zielzustands als Spungziel unterhalb der Sprunganweisung notiert. Neben den im Ablaufdiagramm definierten Zuständen gibt es das besondere Sprungziel RETURN, das die Programmausführung beendet.

2. Ausführung der Ablaufsprache

Ausführung von Zuständen


  1. Wird ein Zustand betreten, so wird zunächst einmal das dem Zustand zugeordnete Unterprogramm ausgeführt. Ist dem Zustand kein Unterprogramm zugeordnet (---), so erfolgt keine Ausführung.
  2. Hat die Ausführung des Zustands kürzer gedauert als dessen Zeitscheibe, so wartet das Programm nun, bis seit Start der Ausführung des Zustands insgesamt die Zeit vergangen ist, die mit der Zeitscheibe definiert wurde.
  3. Schließlich wird die Transitionsbedingung ausgewertet, die dem Zustand folgt. Ist das Ergebnis wahr, so wird der dem aktuellen Zustand folgende Zustand aktiv. Ist das Ergebnis falsch, so bleibt der aktuelle Zustand der aktive Zustand und die Ausführung startet wieder bei 1.

Sequenzen von Zuständen


Werden zwei Zustände hintereinander definiert, so wird zunächst der obere Zustand betreten und ausgeführt. Erst wenn die Transitionsbedingung zwischen den Zuständen wahr wird, wird der zweite Zustand betreten.

Alternative Verzweigungen


Wird eine alternativ Verzweigung aktiv, so wird zunächst die Übergangsbedingung ganz links ausgewertet. Ist diese wahr, so wird der erste Zustand des entsprechenden Zweigs aktiv. Ist die Übergangsbedingung falsch, so wiederholt sich der Prozess bei der zweiten Übergangsbedingung usw. Ist keine der Übergangsbedingungen wahr, so bleibt der Zustand oberhalb der alternativen Verzweigung aktiv und kommt erneut zur Ausführung.

Sprünge


Wird ein Sprung aktiv, so ist der Effekt der selbe, als wenn der Zustand, der als Sprungziel angegeben ist, aktiv werden würde. Danach erfolgt die Ausführung gemäß der bisher definierten Regeln.

Ist das Sprungziel RETURN, so wird das Programm beendet, d.h. es ist kein Zustand mehr aktiv.

3. Arbeiten mit der Ablaufsprache

Hinzufügen eines neuen Schritts mit Transition


Markieren Sie zunächst den Schritt oder die Querlinie einer Übergangsbedingung, vor oder nach dem Sie einen neuen Schritt einfügen wollen. Klicken Sie dann auf eine der beiden Schaltflächen Schritt/Transition davor einfügen Schritt/Transition davor einfügen bzw. Schritt/Transition danach einfügen Schritt/Transition danach einfügen.

Umbenennen eines Schritts

Schritte werden standardmäßig nach dem Schema StepN benannt, wobei N eine laufende Nummer ist. Klicken Sie auf das (obere) Textfeld in einem Schritt, um dessen Namen zu bearbeiten.

Referenzieren eines Unterprogramms

Unterprogramme geben an, welches Datenflussprogramm im jeweiligen Schritt ausgeführt wird. Ein neuer Schritt hat standardmäßig kein zugewiesenes Unterprogramm, die zweite Zeile des Schrittes zeigt ---. Wenn Sie bereits ein Unterprogramm erstellt haben, das in dem Schritt ausgeführt werden soll, klicken Sie auf das (untere) Textfeld in dem entsprechenden Schritt und wählen Sie aus der Liste das entsprechende Unterprogramm aus.
Auswahl eines Unterprogramms

Setzen der Zeitscheibe für ein Unterprogramm

Siehe oben.

Bearbeiten von Übergangsbedingungen

Klicken Sie auf den Text einer Übergangsbedingung (standardmäßig false), um diese zu bearbeiten. Welche Syntax erlaubt ist, wird oben erläutert. Erscheint die Übergangsbedingung in rot, so handelt es sich entweder um einen Syntaxfehler, eine nicht definierte Variable oder eine Variable, deren Datentyp falsch interpretiert wird. Bitte prüfen Sie in diesem Fall die Übergangsbedingung.

Entfernen eines Elements

Markieren Sie den Schritt, die Transition oder die Querlinie der alternativen Verzweigung, klicken Sie mit der sekundären Maustaste darauf und wählen Sie Löschen.

Hinzufügen einer alternativen Verzweigung

Markieren Sie die Querlinie einer Übergangsbedingung und klicken Sie danach auf eine der Schaltflächen Alternativverzweigung links einfügen Alternativverzweigung links einfügen bzw. Alternativverzweigung rechts einfügen Alternativverzweigung rechts einfügen, um eine neue Verzweigung links bzw. rechts der markierten Übergangsbedingung einzufügen. Sie können selbstverständlich auch die Übergangsbedingung eines Zweiges einer bestehenden alternativen Verzweigung markieren, um einen weiteren (dritten, vierten usw.) Ast einzufügen.

Hinzufügen eines Sprungs

Markieren Sie den Schritt oder die Transition, hinter der Sie den Sprung einfügen wollen. Das markierte Element muss sich in einer alternativen Verzweigung befinden, bei der nach dem Hinzufügen des Sprung noch mindestens ein weiterer Ast vorhanden ist, der zum finalen Sprung am unteren Ende des Programms führt. Klicken Sie danach auf die Schaltfläche Sprung einfügen (am Ende des Zweiges) Sprung einfügen (am Ende des Zweiges).

Bearbeiten eines Sprungziels

Um das Sprungziel zu bearbeiten, klicken Sie mit der primären Maustaste auf den Namen des aktuellen Sprungziels. Standardmäßig ist das Sprungziel Init ausgewählt. Wählen Sie aus der Liste das gewünschte neue Sprungziel. Das spezielle Sprungziel RETURN bedeutet, dass bei Erreichen der Sprungs das Programm beendet wird.