Ablaufsprache
Über EasyLab →
Dokumentation für Endbenutzer →
Modellierung →
Software-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:
- Aufbau der Ablaufsprache
- Ausführung der Ablaufsprache
- Arbeiten mit der Ablaufsprache
1. Aufbau der Ablaufsprache
Die Elemente der Ablaufsprache in
EasyLab sind:
- Zustand
- Initialer Zustand
- Zustandsübergang mit Übergangsbedingung
- Alternative Verzweigung mit Übergangsbedingungen
- Sprung
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....
Geben Sie im folgenden Dialogfenster die neue Zeitscheibe ein.
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
- 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.
- 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.
- 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 bzw.
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.
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 bzw.
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).
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.