Analyse von Ablaufgraphen

Allgemeines

Ablaufdiagramme lassen sich in Tabellenform so darstellen, dass praktische Analysen mit Computerhilfe möglich sind. Verschiedene Eigenschaften von Ablaufdiagrammen können in der Tabel­len­form 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 Steue­rungstechnik wesentliche zusammengefasst. Auch soll gezeigt werden, wie ein Graph in einer Tabel­lenform 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 Ablaufdia­gramm korrigieren können.

 


Ein Beispiel

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

Tabellendarstellung eines Ablaufdiagramms

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 Transi­tionen numeriert werden. Dies ist im vorangehenden Ablaufdiagramm bereits geschehen. Das Ablauf­diagramm 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


Analyse des Ablaufdiagramms

Komponenten eines Ablaufdiagramms

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 Mar­kie­rung 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 dem­nach:

- 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 Simula­tion immer zwei Markierun­gen, ist also kein Zustandsautomat. So kann z.B. 'kein Alarm' vorhanden sein, das Behäl­terniveau 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 Alar­mie­rung 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!

 

Vorwärtskonflikte

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ärts­konflikt:

Abbildung 6: Vorwärtskonflikt

Rückwärtskonflikte

An einer Verzweigung mit Synchronisationsbedingung kommt es oft zu einem Rückwärtskonflikt. Die folgende Darstellung zeigt einen Rückwärts­konflikt:

Abbildung 7: Rückwärtskonflikt

Was soll nun geschehen, wenn alle drei Schritte markiert sind? Schaltet die rechte oder die linke Tran­si­tion? Wenn für ein Problem eine Ablaufdarstellung angebracht ist, so treten meistens solche Situatio­nen auf. Natürlich kann das Ablaufdiagramm diesen Konflikt nicht lösen, es gibt Ihnen aber wichtige Informa­tionen, 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 su­chen! Diese müssen durch Prioritäten oder sich gegenseitig ausschlies­sende Transisitionsbedingungen immer sauber gelöst sein.