Ablaufdiagramme lassen sich in Tabellenform so darstellen, dass praktische Analysen mit Computerhilfe möglich sind. Verschiedene Eigenschaften von Ablaufdiagrammen können in der Tabellenform einfach erkannt werden. Die ganze Theorie dazu ist für Petri-Netze entwickelt worden und kann in verschiedenen Fachbüchern detailliert studiert werden. Im folgenden Kapitel wird das für die Steuerungstechnik wesentliche zusammengefasst. Auch soll gezeigt werden, wie ein Graph in einer Tabellenform formalisiert werden kann.
Das Ziel dieses Kapitels ist es, dass
- Sie ein Ablaufdiagramm in einer Tabellenform darstellen können
- Sie die Lebendigkeit eines Graphen erklären können
- Sie die Kompilerfehlermeldung ‚Ihr Graph ist überdeckbar‘ erklären und das Ablaufdiagramm korrigieren können.
![]() |
Alarme mit Quittierung werden eingesetzt, wenn der Prozess nicht von selber wieder weitergehen darf und Reaktionen vom Anlagenpersonal nötig sind. Ein solcher Ablauf ist in Abbildung 1 dargestellt. Dabei wurden die Schritte für die Steuerung der Alarmierung explizit dargestellt.
Alarm mit Quittierung:
Abbildung 1: Alarm mit Quittierung
Die Tabellendarstellung eines Ablaufdiagramms beschreibt den Fluss der Markierungen. Es wird darin angegeben, wie sich die Markierung der Schritte verändert, wenn eine Transition schaltet. Für die Formalisierung des Ablaufdiagramms ist es von Vorteil (Schreibarbeit), wenn die Schritte und Transitionen numeriert werden. Dies ist im vorangehenden Ablaufdiagramm bereits geschehen. Das Ablaufdiagramm wird in Tabellenform so dargestellt, dass die Schrittnummern die Zeilenindizes und die Transitionsnummern die Spaltenindices der Tabelle bilden. Die Elemente in der Tabelle geben Auskunft über den Fluss der Markierungen. Steht an der Stelle i, j eine Zahl n (in der Regel –1,0 oder 1), so ändert sich die Anzahl der Markierungen im Schritt i um die Zahl n, wenn die Transition j schaltet. Für das obige Beispiel entsteht die Tabellendarstellung wie folgt:
Abbildung 2: Erstellung einer Tabellendarstellung
Meistens kann ein Ablaufdiagramm so simuliert werden, dass alle Transitionen mindestens einmal geschaltet haben. Falls während einer solchen Simulation nie mehr als eine einzige Markierung
Bsp: |
Abbildung 3: Komponente |
auftritt, so ist das Ablaufdiagramm ein Zustandsautomat. Eine einzige Markierung gibt dann an, in welchem Zustand das System ist. Der Zustand wird alleine durch den Namen des markierten Schrittes beschrieben. Die Zustände für den einfachen Alarmierungsautomaten sind demnach: - Niveau OK - Niveau hoch - Niveau hoch quittiert |
Abbildung 4: Markierungen im Alarmbeispiel |
|
Das Ablaufdiagramm in Abschn. 2.2 'Alarm mit Quittierung' besitzt aber in der Simulation immer zwei Markierungen, ist also kein Zustandsautomat. So kann z.B. 'kein Alarm' vorhanden sein, das Behälterniveau aber entweder 'OK' sein oder 'hoch' und der Alarm bereits quittiert sein. |
Bei der Realisierung von Steuerungen oder Programmen stellt sich oft das Problem, ein ganzes System in verschiedene Komponenten aufzuteilen, die möglicherweise auch in verschiedenen Rechnern laufen werden. Ein Ablaufdiagramm kann unter gewissen Bedingungen systematisch in solche Komponenten aufgeteilt werden. In Abbildung 5 wurde das Alarmbeispiel in 2 Komponenten aufgeteilt, nämlich in die Abläufe für die Niveauüberwachung und in die Alarmierung. Die Transitionen 'Niveaugrenzwert erreicht' und 'quittiert' werden von beiden Komponenten gebraucht. Falls die beiden Komponenten auf verschiedenen Rechnern laufen würden, müsste natürlich auch der Informationsaustausch gelöst werden.
Alarmbeispiel: |
Abbildung 5: Komponenten des Alarmbeispiels |
Der Zusammenhang mit der Tabelle des Ablaufdiagramms ist der folgende:
Eine Komponente ist eine Auswahl von Zeilen der Tabelle, für die jede Spaltensumme gleich Null ist. Man spricht von minimalen Komponenten, wenn die Komponente keine weitere Komponente enthält.
1. Komponente
Schritt\ Transition |
T1 |
T2 |
T3 |
S1 |
-1 |
0 |
1 |
S2 |
1 |
-1 |
0 |
S3 |
0 |
1 |
-1 |
Summe |
0 |
0 |
0 |
2. Komponente
Schritt\ Transition |
T1 |
T3 |
T4 |
S4 |
-1 |
1 |
0 |
S5 |
1 |
-1 |
0 |
Summe |
0 |
0 |
0 |
Die erste Komponente ist also die Niveauüberwachung, die zweite Komponente ist die Alarmierung selber. In der Praxis der Anlagenautomatisierung wird die erste Komponente in der Steuerung gelöst, d.h. in einer SPS oder Prozessrechner, die zweite Aufgabe wird in einem Bediengerät gelöst.
Die Suche von Komponenten kann als kombinatorische Suchaufgabe mit einem Computer gelöst werden. Die praktische Bedeutung von Komponenten für die Steuerungstechnik ist marginal. Für die Simulation aber kann aufgrund der Komponenten entschieden werden, was sinnvolle Anfangsmarkierungen sind, denn jede minimale Komponente enthält immer eine Markierung.
Ueberlegen Sie sich, wieso dies so sein muss!
In Ablaufdiagrammen ist es nicht vorgesehen, dass Schritt mehrfach markiert sein kann. Treffen sich nun zwei Markierungen an einer einfachen Zusammenführung, so entsteht ein Konflikt. Nur eine der Markierungen darf zum nächsten Schritt gelangen. Die Ablaufsprache erlaubt hier keine Vergabe von Präferenzen. Meistens deutet ein Vorwärtskonflikt aber auf eine falsche Zusammenführung paralleler Prozesse hin. Dieses komplexere Thema wird im Abschnitt ‚Beschränktheit und Sicherheit‘ genauer untersucht. Dort wird auch gezeigt, wie das Problem gelöst werden kann. Die folgende Darstellung zeigt einen Vorwärtskonflikt:
Abbildung 6: Vorwärtskonflikt
An einer Verzweigung mit Synchronisationsbedingung kommt es oft zu einem Rückwärtskonflikt. Die folgende Darstellung zeigt einen Rückwärtskonflikt:
Abbildung 7: Rückwärtskonflikt
Was soll nun geschehen, wenn alle drei Schritte markiert sind? Schaltet die rechte oder die linke Transition? Wenn für ein Problem eine Ablaufdarstellung angebracht ist, so treten meistens solche Situationen auf. Natürlich kann das Ablaufdiagramm diesen Konflikt nicht lösen, es gibt Ihnen aber wichtige Informationen, wo solche Probleme auftreten. Rückwärtskonflikte können gelöst werden, indem man für das Schalten der Transitionen Prioritäten vergibt oder dass die Transitionsbedingung so festgelegt ist, dass nicht beide gleichzeitig wahr sein können. Für das Beispiel in Abbildung 7 kann die rechte Transition zur „start B und (nicht start A)“ abgeändert werden.
Es gibt auch die Möglichkeit, Konfliktsituation explizit in der Ablaufsprache zu lösen. In
Abbildung 8 wird gezeigt, wie in eine Lösung eines Konflikts im Ablaufdiagramm festgelegt werden kann. Im rechten Ablaufdiagramm wird festgelegt, das der Roboter die Maschinen A und B zwingend abwechslungsweise bedienen muss.
Abbildung 8: Lösung der Konfliktsituation
Bleibt ein System irgendwo 'hängen', so sind die Fehler zuerst bei diesen Konfliktsituationen zu suchen! Diese müssen durch Prioritäten oder sich gegenseitig ausschliessende Transisitionsbedingungen immer sauber gelöst sein.