WILLKOMMEN - MD-Mathematische Dienste GmbH - Bildverarbeitung für die Bereiche Technik, Industrie und Wissenschaft
petrimenu
MD
P.NETZ dient der Steuerung von Bildverarbeitungsanlagen die mit dem
Programm MD CONTROL arbeiten. Die Visualisierung der Steuerung wird
mit Hilfe von Petri-Netzen vorgenommen. Die Elemente dieser Netze sind
Plätze, Transitionen und Kanten, die beliebig konfigurierbar sind.
Die Beschreibung einer Anlage und der Prüfungsablauf wird als Graph
(<griech.> mathematisch, grafische Darstellung) dargestellt. Die Oberfläche
(GUI - Grafical User Interface) ist ein typisches Windows-Programm.
Petri-Netze stellen eine
Erweiterung der Automatentheorie dar, da auch nebenläufige Ereignisse
mit abgebildet werden können. Petri-Netze unterscheiden:
Systemzustände, dargestellt
durch einen Kreis, auch Stelle oder Platz genannt,
Übergänge, dargestellt
durch ein Rechteck, auch Transition genannt,
Verbindungslinien, dargestellt
durch eine Linie oder ein Spline, auch Kante genannt.
In der Beschreibung von Petri-Netzen
werden die Begriffe Platz, Transition und Kante benutzt. Eine Kante kann
einen Platz mit einer Transition oder eine Transition mit einem Platz verbinden.
Ein Platz kann z.B. Token aufnehmen. Token, als abstrakter Begriff, können
Gegenstände, abstrakte Objekte oder Voraussetzungen für spätere
funktionale Ereignisse repräsentieren. Sie können verbraucht
oder erzeugt werden. MD P.NETZ nutzt Token um die Zustände einer Anlage
zu beschreiben und die Position von logischen Objekten zu bestimmen. Transitionen
beschreiben Ereignisse. Diese können sein:
Setzen/Löschen eines Hardware-Ports,
Setzen eines Events,
Evaluieren einer Bedingung,
Erzeugen/Vernichten eines logischen
Objektes in der Anlage.
Kanten beschreiben die Verknüpfung
von Plätzen (Zuständen) mit Transitionen (Ereignissen). Über
ihr Gewicht definieren sie den Zeitpunkt an dem eine Transition schalten
kann. Hierzu müssen im Eingangsplatz, dem Kantengewicht entsprechend,
genügend Token vorhanden sein. Das einfachste Beispiel ist die Verbindung
eines Platzes mit einer Tansition.
Erweiterungen
bei MD P.NETZ
Das vorstehend beschriebene
Standard-Netz wird in MD P.NETZ um 2 Elemente erweitert:
Abräumkante, (Pfeil
mit Doppelspitze) definiert keine Bedingung, eine Transition kann demnach
immer schalten, löscht aber alle Token im Platz, benötigt daher
auch kein Kantengewicht,
Verbotskante, (Pfeil
mit 2 Schrägstrichen) negiert die Standardkante, schalten der Transition
nur möglich, wenn weniger Token als dem Kantengewicht entsprechend
im Platz vorhanden sind.
Beide Kantentypen können
nur von einem Platz zu einer Transition laufen, nicht in umgekehrter Richtung.
Mit diesen beiden Kantentypen lassen sich sehr einfach Teiler und
Entpreller
definieren.
Im Standard-Petri-Netz sind
die Zustände von Eingängen und das Setzen/Löschen von Ausgängen
und Events möglich. MD P.NETZ stellt aber eine Erweiterung der Netze
zur Objektverfolgung zur Verfügung.
Beispiel:
Objektverfolgung
Warum Objektverfolgung? Als
Beispiel soll eine Anwendung dienen, bei der die Aufnahme von 4 Kameras
gesteuert werden soll; jede Aufnahme wird durch das Setzen eines Ports
ausgelöst (s. untenstehende Abbildung).
Entsprechend
der Beschreibung kann ein Bandtakt und eine Einlauflichtschranke zur Steuerung
des Ablaufs eingesetzt werden. Alle mit "Bandtakt" bezeichneten Plätze
lesen den IRQ "0" ein. Der mit "Lichtschranke" bezeichnete Platz den IRQ
"1". Die Transition T2 ist auf "Objekt erzeugen" gesetzt. Schaltet diese
Transition, wird innerhalb des Netzes ein logisches Objekt erzeugt. Alle
"Objekte" im Nachbereich einer Objekterzeugungstransition werden Rot markiert.
Die
Transitionen "Kamera 1 Start" bis "Kamera 4 Start" setzen die Ausgänge
(IO-Karte) 0 bis 3 auf "1", entsprechend setzen die Transitionen "Kamera
1 Stop" bis "Kamera 4 Stop" die Ausgänge 0..3 wieder auf "0". Der
Zeitpunkt, zu dem die Kameras getriggert werden hängt also an den
Kantengewichten A52, A50, A48 und A46. Nachdem der Teiler die Transition
T2 schalten ließ, kann der Zeitpunkt der Aufnahme jeder Kamera separat
eingestellt werden. Das Rücksetzen der Ports, A53, A51, A49 und A47
kann konstant auf 5 Takte gesetzt werden. Damit stimmen die Zustände
von Netz und Objekten überein. Da der Ausleitmechanismus für
fehlerhafte Objekte 500 Bandtakte hinter der Lichtschranke positioniert
ist und die Bildverarbeitung eine Verarbeitungszeit von minimal 50 Bandtakten
aufweist, ist diese Objektverfolgung notwendig.
Beispiel:
Steuerung nach Bedingungen
Neben der Objektverfolgung bietet
MD P.NETZ die Steuerung des Ablaufs über "Bedingungen". Jede
Transition kann mit einer Bedingung (Anweisungen) versehen werden. Innerhalb
der Bedingung können mehrere Ausdrücke ausgewertet und logisch
verknüpft werden. Als Beispiel dient ein zeitgesteuerter Ablauf; welcher
Platz im folgenden Test-Netz den Token erhält, wird über den
Zeitunterschied zwischen zwei Mausklicks entschieden.
Alle Kantengewichte sind
1; die Plätze haben eine unbegrenzte Kapazität (0). Die Transition
T1 erzeugt Objekte, die Transitionen T3, T4 und T5 zerstören Objekte.
Dieses einfache Netz zeigt, sobald ein Token in P1 abgelegt ist wird T1
schalten; und nach Ablegen eines Token in P7 alle Transitionen T3 bis T5
schaltbar setzen. Das Einfügen einer Anweisung in T1 mit ObjectVar(0)=GetMS()
bewirkt folgenden Ablauf; GetMS() bestimmt die seit dem Start des Rechners
verstrichene Zeit in Millisekunden und ObjektVar(0) gibt an, in welche
Objektvariable dieser Wert gespeichert werden soll.
Wenn T1
ein Objekt erzeugt, wird der Wert der Variablen "0" auf die seit dem Rechnerstart
vergangenen Millisekunden gesetzt. Die anderen Transitionen erhalten entsprechende
Anweisungen: T3 < 5000, T4 >= 5000 && < 10000, T5 >= 10000.
Nach dem Start der "Anlagensimulation"
wird per Mausklick ein Token in Platz P1 eingefügt. Bei einem weiteren
Mausklick auf P7, nach mehr als 10 Sekunden, wird ein Token in P6
abgelegt. Bedingungen werden also erst nach der Schaltbarkeit einer Transition
geprüft. Ist die Prüfung negativ, werden die Token aus den Eingangsplätzen
gelesen, jedoch wird die Anweisung der Transition nicht ausgeführt
(z.B. Setzen/Löschen eines Ports), noch werden Token im Nachbereich
abgelegt. Dieser Zweig des Netzes ist "tot".
Ein
weiterer Test: Ein Mausklick auf P1, dann nach 5 Sekunden ein wiederholter
Mausklick erneut auf P1 und danach auf P7. Es wird jetzt ein Token in P4
und ein Token in P5 abgelegt. Das erste erzeugt Objekt war schon 5 Sekunden
"alt", als ein zweites "Objekt" erzeugt wurde und durch P7 die Transitionen
schaltbar machten.