Automatische Erzeugung von SPS-Programmen aus Petrinetzen

Größe: px
Ab Seite anzeigen:

Download "Automatische Erzeugung von SPS-Programmen aus Petrinetzen"

Transkript

1 Automatische Erzeugung von SPS-Programmen aus Petrinetzen Georg Frey und Angela Schmidt * Steuerungstechnisch interpretierte Petrinetze (SIPN) eignen sich durch ihre Struktur zum transparenten Entwurf von Steuerungsalgorithmen. Da industrielle Steuerungsentwurfswerkzeuge Petrinetze jedoch nicht unterstützen entsteht das Problem der Codegenerierung. In diesem Beitrag werden Algorithmen zur Erzeugung einer Anweisungsliste aus dem SIPN beschrieben und verglichen. Außerdem wird eine Erweiterung der Codegenerierung auf SIPN mit temporalen Bedingungen und mit Analogsignalverarbeitung vorgestellt. Schlüsselworte: Steuerungsentwurf, SPS, IEC1131-3, Petrinetz, Codegenerierung. 1 Einleitung Steuerungstechnisch interpretierte Petrinetze (SIPN) eignen sich für die formale Spezifikation von Steuerungsalgorithmen in grafischer Form [FREY UND LITZ 1998]. Durch die Entwicklung von Codegeneratoren ist das SIPN jedoch nicht nur ein Spezifikationswerkzeug im Rahmen des Softwareengineerings sondern eine vollwertige Programmiersprache. Die in der Theorie der SIPN nachgewiesenen Eigenschaften können jedoch nur dann auf das erzeugte Programm übertragen werden, wenn durch die Codegenerierung sichergestellt ist, dass das dynamische Verhalten der erzeugten Codes dem der formalen Darstellung entspricht. Bei der Generierung von AWL- Code aus SIPN besteht das Kernproblem darin, dass ein nebenläufiger und iterativer Prozess auf einen sequentiellen Prozess abgebildet werden muss. Im Folgenden werden zunächst die SIPN kurz beschrieben. Anschließend wird die Methode zur Codegenerierung erläutert. In Abschnitt 4 werden schließlich einige Erweiterungen des Verfahrens vorgestellt. Eine Zusammenfassung und ein Ausblick auf weitere Entwicklungen runden den Beitrag ab. 2 Steuerungstechnisch int erpretierte Petrinetze (SIPN) Wie die in der IEC definierten grafischen Sprachen KOP, FBS und AS (vgl. [JOHN UND TIEGELKAMP 1998]) besteht auch ein SIPN aus einer Netzwerkstruktur. Die beiden strukturellen Elemente des SIPN sind Plätze (dargestellt durch Kreise) und Transitionen (dargestellt durch Balken). Durch geeignete Verknüpfung dieser Elemente mit gerichteten Kanten wird der Kontrollfluss eines Programms beschrieben. 2.1 Plätze und Transitionen Ein Platz ist entweder aktiv oder inaktiv. Die Aktivität eines Platzes wird durch eine Marke auf dem Platz gekennzeichnet. Deshalb werden auch die Begriffe markiert bzw. unmarkiert synonym zu aktiv bzw. inaktiv verwendet. Ein Platz verweist auf eine ihm zugeordnete Aktion, die ausgeführt wird, solange der Platz markiert ist. Eine Aktion besteht aus einer oder mehreren Wertzuweisungen an Variablen. Der Zustand eines SIPN ist durch seine Markierung gegeben, d.h. durch die Markierung der einzelnen Plätze. Die Markierung und Demarkierung von Plätzen geschieht über die mit ihnen durch Kanten verbundenen Transitionen. Eine Kante darf im SIPN keine zwei Netzelemente desselben Typs verbinden, d.h. Plätze und Transitionen müssen sich stets abwechseln. Plätze und Transitionen können jeweils beliebig viele Netzelemente in ihren Vor- und Nachbereichen haben. Eine Transition schaltet bzw. feuert, wenn folgende Bedingungen erfüllt sind: 1. Alle ihre Vorbereichsplätze, d.h. alle Plätze von denen ein Pfeil zu der Transition hinführt, sind markiert. 2. Alle ihre Nachbereichsplätze, d.h. alle Plätze zu denen ein Pfeil von der Transition hinführt, sind unmarkiert. 3. Die Schaltbedingung der Transition, ein boolescher Ausdruck, der an die Transition geschrieben wird, ist erfüllt. 4. Eine der Transition zusätzlich zugeordnete Zeitbedingung ist erfüllt. Zeitbedingungen haben immer die Form: Platzmarkierungszeit x, wobei x eine Konstante oder Variable sein kann und die Platzmarkierungszeit sich auf einen Platz beziehen muss, der im Vorbereich der Transition liegt, an der die * Universität Kaiserslautern, Lehrstuhl für Automatisierungstechnik, Postfach 3049, Kaiserslautern, Tel.: 0631/ , Fax: -4462, frey@eit.uni-kl.de Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 177

2 Zeitbedingung eingefügt wird. Das bedeutet, dass die Zeitbedingung immer auch einer Eingangskante der entsprechenden Transition zugeordnet werden kann. Man bezeichnet diese Art temporaler Bedingen deshalb auch als Prekantenzeitbewertung. Beim Schalten einer Transition werden die Marken von den Plätzen in ihrem Vorbereich abgezogen und die Plätze in ihrem Nachbereich werden markiert. 2.2 Dynamik Die Transitionen in einem SIPN schalten sofort wenn die gegeben Bedingungen erfüllt sind. Hierbei sind als zwei Besonderheiten das nebenläufige und das iterative Schalten mehrerer Transitionen zu beachten: Nebenläufigkeit Mehrere Transitionen die unabhängig von einander sind schalten gleichzeitig. Bild 1 zeigt diesen Fall. P1 P1 T1 E3 T1 E3 P2 P4 = 1 P2 P4 T2 T3 T2 T3 P3 P5 P3 P5 Bild 1: Nebenläufigkeit im SIPN. Iteration Wird beim Schalten einer Transition eine Markierung erreicht, bei der eine andere Transition schaltbereit wird, so schaltet auch diese Transition sofort. Das bedeutet, dass die Aktion von Plätzen, die von der ersten Transition markiert und von der zweiten demarkiert werden, nicht ausgeführt werden. Bild 2 zeigt diese Situation an einem einfachen Beispiel: Eine Flüssigkeit soll in einen Behälter dosiert, dort auf eine bestimmten Mindesttemperatur erwärmt und anschließend abgelassen werden. Falls die Flüssigkeit bereits beim Einfüllen die Temperaturschwelle überschreitet, wird im SIPN die Heizung nicht eingeschaltet, sondern nach dem Füllen direkt zum Entleeren übergegangen. P1: Füllen A1 = 1 T1: Füllstand erreicht P2: Heizen A2 = 1 T2: Temperatur erreicht E2 P3: Entleeren A3 = 1 = 1 und E2 = 1 P1: Füllen A1 = 1 T1: Füllstand erreicht P2: Heizen A2 = 1 T2: Temperatur erreicht E2 P3: Entleeren A3 = 1 Bild 2: Iteration im SIPN. Die Iteration kann zu instabilen Schleifen führen, d.h. zu einer Folge von Schaltvorgängen, die sich selbst wiederholt. Dieser Vorgang kann durch eine Analyse erkannt werden und muss entweder vom Entwickler oder besser vom Programmiersystem ausgeschlossen werden. 3 Codegenerierung Der korrekten Umsetzung von Nebenläufigkeit und Iteration sind die Unterkapitel 3.2 respektive 3.3 gewidmet. Zunächst sollen aber Übersetzungsvorschriften für die einzelnen Netzelemente angegeben werden. Die Einbeziehung der temporalen Bedingungen wird in Abschnitt 4.1 behandelt. 3.1 Umsetzung der Netzelemente Die hier beschriebene Umsetzungsvorschrift geht im Wesentlichen auf [JÖRNS ET AL. 1995] zurück. Sie wurde jedoch an die Darstellung der DIN-EN angepasst. Für eine transparente, strukturerhaltende Umsetzung ist es unerlässlich, das Markenspiel des SIPN in die AWL zu übertragen. Deshalb wird zunächst für jeden Platz des Netzes eine binäre Variable definiert, die angibt, ob der Platz markiert ist (Pi = 1) oder nicht (Pi = 0). Darauf aufbauend kann das SIPN schrittweise in AWL umgesetzt werden. Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 178

3 Da nach Definition des SIPN die Ausgänge erst dann gesetzt werden, wenn der Schaltvorgang komplett abgeschlossen ist, werden in der sequentiellen Anordnung des AWL-Codes die Codesegmente der Plätze nach den Codesegmenten der Transitionen angeordnet. Im Folgenden werden die Umsetzungsvorschriften für die Transitionen und die Plätze beschrieben Transitionen Bei der Umsetzung einer Transition im SIPN in AWL-Code muss ihre Schaltbereitschaft und ihre Schaltbedingung im AWL-Code dargestellt werden. Da die Schaltbereitschaft von der Markierung der Vorbereichsplätze und der Nachbereichsplätze abhängt, müssen diese abgefragt werden. Zusätzlich muss die Schaltbedingung der Transition erfüllt sein. Diese Prüfungen ergeben einen AWL-Code nach Bild 3. Ti: LD Pv1 (*Transition Ti: wenn Vorbereichsplatz Pv1 markiert*) AND Pv2 (*und Vorbereichsplatz Pv2 markiert*) ANDN Pn1 (*und Nachbereichsplatz Pn1 nicht markiert*) ANDN Pn2 (*und Nachbereichsplatz Pn2 nicht markiert*) AND SB (*und Schaltbedingung erfüllt*) Bild 3: Überprüfen der Schaltbedingung. Hier zeigt sich ein Vorteil einer vorherigen Petrinetzanalyse [FREY 2000 (A)]. Wenn das Netz sicher ist, dann hängt die Schaltfähigkeit einer Transition nie von der Markierung der Plätze in ihrem Nachbereich ab. In diesem Fall kann also auf deren Überprüfung verzichtet werden. Bild 4 zeigt den optimierten AWL- Code für die Überprüfung der Schaltbedingung in sicheren SIPN. Ti: LD Pv1 (*Transition Ti: wenn Vorbereichsplatz Pv1 markiert*) AND Pv2 (*und Vorbereichsplatz Pv2 markiert*) AND SB (*und Schaltbedingung erfüllt*) Bild 4: Überprüfen der Schaltbedingung in sicheren SIPN. Steht anschließend an diese Berechnung im Akkumulator eine Eins, d.h. alle Bedingungen sind erfüllt, so schaltet die Transition. Beim Schaltvorgang werden die Marken von den Vorbereichsplätzen entzogen und die Nachbereichsplätze werden markiert (Bild 5). R Pv1 (*dann demarkiere Vorbereichsplatz Pv1*) R Pv1 (*und demarkiere Vorbereichsplatz Pv2*) S Pn1 (*und markiere Nachbereichsplatz Pn1*) S Pn2 (*und markiere Nachbereichsplatz Pn2*) Bild 5: Schaltvorgang Plätze Die einem Platz zugewiesene Ausgabefunktion ist nur dann aktiv, wenn dieser Platz markiert ist. Deshalb wird die Ausgabe eines nicht markierten Platzes in der AWL durch einen bedingten Sprung übersprungen (Bild 6). Zu Beginn wird festgestellt, ob der Platz markiert, also die Platzvariable gesetzt ist. Nur in diesem Fall wird die Ausgabe durchgeführt. Im anderen Fall wird zum nächsten Platzlabel gesprungen. Pi: LD Pi (*Platz Pi: wenn Platz Pi nicht*) JMPCN Pj (*markiert dann springe zur nächsten Platzausgabe*) S Ai (*sonst Aktionen setzen*) R Aj (*und Aktionen rücksetzen*) Bild 6: Umsetzung eines Platzes in AWL. Im bisher betrachteten SIPN sind die von den Plätzen festgelegten Ausgaben rein binär. Da die Befehle S und R in der AWL nur bei einer Eins im Akku ausgeführt werden, kann der Code auf das Laden der Platzvariable und das Setzen bzw. Rücksetzen der entsprechenden Ausgänge verkürzt werden. Bild 7 zeigt die verbesserte Umsetzung eines Platzes, die nun keinen bedingten Sprung mehr enthält. Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 179

4 Pi: LD Pi (*Platz Pi: wenn Platz Pi markiert *) S Ai (*dann Aktionen setzen*) R Aj (*und Aktionen rücksetzen*) Bild 7: Verkürzte Umsetzung eines Platzes in AWL. 3.2 Nebenläufigkeit Die Abbildung der Nebenläufigkeit des SIPN in die AWL stellt kein Problem dar. Um dies zu verdeutlichen, wird zunächst der Programmabarbeitungszyklus einer SPS näher betrachtet. Dieser gliedert sich in drei Schritte (vgl. Bild 8): 1. Einlesen des Eingangsabbildes 2. Abarbeitung des Algorithmus 3. Schreiben des Ausgangsabbildes Die Umgebung der SPS mithin der Prozess und der Bediener sehen erst wieder das neue Ausgangsabbild. Daraus ergibt sich, dass mehrere Zustandsübergänge, die im Algorithmus sequentiell aufeinander folgen, von außen betrachtet als nebenläufig angesehen werden können. Eine beliebige Anordnung der Transitionscodes innerhalb eines sequentiellen Algorithmus sichert also die korrekte Abbildung des nebenläufigen Schaltens auf der SPS. Zu beachten ist lediglich, dass wie bereits erwähnt, die Platzcodes erst nach den Transitionscodes angeordnet werden dürfen. fest anwendungs - spezifisch fest Abwicklung Eingangsabbild Ausgangsabbild Eingangsabbild Zeit Zykluszeit Bild 8: Programmabarbeitungszyklus in einer SPS. 3.3 Iteration Schwieriger ist das Problem der Iteration, welches durch das Vorhandensein sequentieller dynamischer Synchronisationen [FREY 2000 (A)] bedingt ist. Die Schaltregel für SIPN verlangt, dass der Schaltvorgang so lange iteriert wird, bis sich die Markierung nicht mehr ändert. Es muss also sichergestellt werden, dass Transitionen, die im SIPN nacheinander über einen instabilen Zwischenzustand schalten, in der SPS auch im selben Zyklus schalten. Dieses Verhalten kann durch eine geschickte Anordnung der Transitionscodes erreicht werden. Eine mögliche Lösung des Problems stellt die in [JÖRNS ET AL. 1995] vorgestellte simulative Reihenfolgebestimmung dar. Eine genauere Untersuchung [FREY 2000 (B)] zeigt jedoch die Schwächen dieses in der Mehrzahl der Fälle korrekt arbeitenden Verfahren. Hier werden zwei Methoden vorgestellt, die eine korrekte Umsetzung in allen Situationen garantieren Direkte Abbildung der Iteration Eine naheliegende Lösung des Problems liegt darin, die Iteration des SIPN in den SPS-Algorithmus zu übernehmen. Dies kann folgendermaßen geschehen: 1. Einführung einer neuen Variablen Delta, die zu Beginn der Abarbeitung der Transitionscodes zu Null gesetzt wird. 2. Setzen von Delta auf Eins, wenn bei der Abarbeitung der Transitionscodes ein Schaltvorgang erfolgt. 3. Einfügen eines bedingten Rücksprungs von Ende der Transitionscodes zu deren Anfang, wenn Delta = Eins gilt. Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 180

5 Diese Lösung hat einige Vorteile (+) aber auch gravierende Nachteile (-), die in der folgenden Aufzählung zusammengefasst sind: + Korrekte Abbildung des Verhaltens + Sehr einfaches Verfahren - Die gesamte Liste der Transitionscodes wird nach jedem Schaltvorgang nochmals abgearbeitet (u.u. sogar mehrfach). Dies führt zu erhöhten Zykluszeiten Analytische Reihenfolgebestimmung Der Grundgedanke der Simulationsmethode [JÖRNS ET AL. 1995], also die geschickte Anordnung der Transitionscodes, liegt auch diesem Verfahren zu Grunde. Entscheidend für die Iteration sind sequentielle dynamische Synchronisationen. Es muss also die Relation Transition t i impliziert das nachfolgende Schalten von Transition t j ohne Änderung der Eingangsgrößen für alle möglichen Kombinationen von Transitionen t i, t j untersucht werden. Formal lässt sich die Bedingung für das sequentielle Schalten zweier Transitionen innerhalb eines Zyklus folgendermaßen angeben: Es existieren Markierungen m a, m b und m c sowie eine Eingangsbelegung E so, dass gilt: t i schaltet bei m a unter E und erzeugt m b und t j schaltet bei m b unter E und erzeugt m c, aber t j kann bei m a unter E nicht schalten. Diese Bedingung ist etwas unhandlich und ihre Prüfung für alle Kombinationen von zwei Transitionen ist sehr aufwändig. Eine nähere Betrachtung liefert jedoch ein einfach zu prüfendes und für die Reihenfolgebestimmung ausreichendes notwendiges Kriterium für die sequentielle dynamische Synchronisation. Das Kriterium besteht aus zwei Bedingungen: 1. t i und t j sind über einen Platz verbunden, d.h. es existiert ein Platz p i so, dass gilt: t i liegt im Vorbereich von p i, und t j liegt im Nachbereich von p i. 2. Die Schaltbedingungen von t i und t j schließen sich nicht aus: SB(t i ) AND SB(t j ) Die Bestimmung der Reihenfolge wird aufbauend auf diesen Bedingungen in drei Schritten durchgeführt: Kontraktion (Bedingung 1), Reduktion (Bedingung 2) und Anordnung (Auswahl einer der möglichen Lösungen). Kontraktion Bei der Kontraktion wird das SIPN in einen Graphen umgewandelt, dessen Knoten den Transitionen des SIPN entsprechen und der zwischen zwei Knoten eine gerichtete Kante besitzt, wenn im SIPN ein Platz derart existiert, dass Bedingung 1 erfüllt ist. Reduktion Der Reduktionsschritt entfernt nun alle Kanten (t i, t j ) aus dem Graphen, für die Bedingung 2 nicht erfüllt ist d.h. für die gilt: SB(t i ) AND SB(t j ) = 0. Anordnung Der resultierende gerichtete Graph stellt die Relation t i muss in der Liste der Transitionscodes vor t j implementiert werden dar. Da kein weiteres Kriterium vorliegt, kann bei der Anordnung beispielsweise von einer lexikographischen Ordnung ausgegangen werden, die dann entsprechend der Reihenfolgerelation umgeordnet wird. Bei der Anordnung müssen noch zwei Fälle unterschieden werden: 1. Wenn die Reihenfolgerelation eine Halbordnung darstellt (der Graph enthält keine Kreise), dann existiert eine Reihenfolge derart, dass eine einmalige Abarbeitung aller Transitionscodes das korrekte Verhalten garantiert. 2. Stellt die Reihenfolgerelation keine Halbordnung dar, so müssen alle Kreise aufgebrochen werden. An den so entstehenden Bruchstellen muss bei der Abarbeitung der Transitionscodes ein Rücksprung zu der ersten Transition des Kreises erfolgen. Es müssen also nur die Codes mehrfach bearbeitet werden, die zu dem Kreis gehören. Die Vorteile (+) und Nachteile (-) des Verfahrens sind in der folgenden Liste zusammengefasst: + Korrekte Abbildung der SIPN Dynamik. + Es werden nur die Transitionen, die sich in einer Schleife befinden, mehrfach abgearbeitet. - Ein Algorithmus zur Bestimmung der Reihenfolge muss implementiert werden. Die analytische Reihenfolgebestimmung ist unter den beiden präsentierten Verfahren am geeignetsten, denn sie liefert korrekten und effizienten Code bei relativ niedrigem Rechenaufwand. Deshalb wird das beschriebene Vorgehen im Folgenden an zwei Beispielen erläutert. Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 181

6 SIPN mit halb geordneter Schaltreihenfolge Für das SIPN in Bild 9 zeigt der resultierende Graph, dass die Relation t i muss vor t j abgearbeitet werden in diesem Fall eine Halbordnungsrelation ist. Folglich reicht die einmalige Abarbeitung der Transitionscodes in einem SPS-Zyklus aus, um die Dynamik korrekt abzubilden. t 1 t 2 p 2 p 1 p 3 i 1 i 2 i 1 i 2 Kontraktion Reduktion Anordnung < t 2, t 3, t 1, t 4 > t 3 i 1 t 4 i 1 i 2 i 3 Bild 9: SIPN mit halb geordneter Schaltreihenfolge. SIPN ohne halb geordnete Schaltreihenfolge Das folgende Beispiel (Bild 10) zeigt ein SIPN des zweiten Typs. Die erhaltene Reihenfolgerelation stellt keine Halbordnung dar (sie ist nicht reflexiv). Deshalb muss die Abarbeitung der Transitionscodes zumindest teilweise wiederholt werden. Eine mögliche Lösung ist die Sequenz < t 1, t 2, t 3, t 4, t 5 > mit einem Sprung von t 4 nach t 1, wenn t 4 feuert. Das Beispiel zeigt, dass es nicht nötig sein muss, die gesamte Transitionenliste erneut abzuarbeiten. Vielmehr genügt es, die in einer Schleife befindlichen Transitionen nochmals zu überprüfen. t 5 i 2 i 3 p t 1 i 1 i 2 t 2 t 3 p 2 i 3 p 3 p 4 t 4 i 1 Kontraktion i 2 i Reduktion Anordnung < t 1, t 2, t 3, t 4 (Æt 1 ), t 5 > Bild 10: SIPN ohne halb geordnete Schaltreihenfolge. 4 Erweiterungen: Timer un d Analogsignale 4.1 Umsetzung der Zeitbewertungen Zeitbausteine und Variablendeklaration Um Zeitbewertungen eines SIPN im AWL-Code zu berücksichtigen, müssen Zeitbausteininstanzen verwendet werden, die nach Ablauf der zugewiesenen Zeit ihren Ausgangswert ändern. Hierfür wird der Standardzeitbaustein TON verwendet. Nach einer steigenden Flanke am Eingang IN und Ablauf einer ihm zugewiesenen Zeit PT, setzt er seinen Ausgang Q auf Eins. Beim Gebrauch des Funktionsbausteins ist folgendes zu beachten: Der Funktionsbaustein nimmt Wertänderungen der Eingänge nur bei seinem Aufruf wahr, und die Ausgangswerte werden nur bei seinem Aufruf aktualisiert. Die Ausgangswerte altern somit. Der Baustein muss also in jedem Zyklus aufgerufen werden. Um die Instanzen der Zeitbausteine TON eindeutig zuordnen zu können, wird folgende Namenskonvention gewählt. Beginnend mit dem Wort Timer folgen der Name des Platzes auf dessen Markierungszeit sich die Zeitbedingung bezieht und der Name der Transition dessen Schaltbereitschaft beeinflusst wird. Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 182

7 Diese Instanzen werden im Deklarationsteil der AWL deklariert. Am Anfang des AWL-Codes werden alle Zeitbausteininstanzen mit ihrem Eingangsparameter IN, der angibt ob der Platz auf den sich die Zeitbedingung bezieht markiert ist, und dem Eingangsparameter PT, der den Wert der Zeitbewertung besitzt, aufgerufen. Wird ein entsprechender Platz markiert, d.h. der Eingangsparameter IN des Zeitbausteins ändert sich von 0 auf 1, so fängt im nächsten SPS-Zyklus die Zeit der Zeitbausteininstanz an zu laufen. Da der Zeitbaustein TON jedoch laut Spezifikation nur auf steigende Flanken reagiert, müssen die Zeitbausteininstanzen die sich auf anfangsmarkierte Plätze beziehen beim ersten Durchlauf des SPS- Programms mit dem Eingangsparameter IN=0 aufgerufen werden. Zur Realisierung wird eine boolesche, mit TRUE initialisierte Variable ANFANG deklariert, welche nach bedingtem Aufruf der gerade erwähnten Instanzen auf FALSE gesetzt wird Transitionen Da die Zeitbewertungen eine weitere Schaltbedingung der Transition darstellen, müssen sie auch beim Prüfen der Schaltbedingung der Transition mit aufgenommen werden. Die allgemeine Prüfung der Schaltbedingung einer Transition mit Zeitbewertung ergibt somit den in Bild 11 zu sehenden Code. Alle Ausgänge der Zeitbausteine der zeitbewerteten Prekanten der Transition Ti müssen auf Eins/TRUE ü- berprüft werden. Ti: LD Pv1 AND Pvj (*(Pvj,Ti)= zeitbewertete Prekante *) AND Pvk. ANDN Pn1. AND f(e) AND TimerPvjTi.Q (*und Zeit des Vorbereichsplatzes Pvj abgelaufen*) Bild 11: Prüfung der Schaltbedingungen mit zeitbewerteter Prekante. Nach Schalten der Transition müssen die Ausgänge Q der zu den Vorbereichsplätzen gehörenden Zeitbausteininstanzen zurückgesetzt werden. Da die Zeitbausteininstanzaufrufe erst zu Beginn des nächsten SPS-Zyklus erfolgen, stehen die Eingangsparameter IN und die Ausgänge bis zum Zyklusende noch auf Eins, oder die Zeiten laufen weiter. Unter Umständen können nachfolgend im Code behandelte Transitionen im gleichen SPS-Zyklus schalten und soeben zurückgesetzte Platzvariablen wieder setzen. Der nächste Zeitbausteininstanzaufruf bekommt keine steigende Flanke des Eingangsparameters IN mit. Eine korrekte Abbildung des Zeitverhaltens wird folgendermaßen erreicht. Nach Schalten der Transition erfolgt ein Aufruf der zu den Vorbereichsplätzen gehörenden Zeitbausteininstanzen mit IN=0. Dadurch werden die Ausgänge sofort auf Null gesetzt. Bild 12 zeigt den so erweiterten Code einer Transition. R Pv1 (*dann demarkiere Vorbereichsplatz Pv1*) R Pv2 (*und demarkiere Vorbereichsplatz Pv2*) S Pn1 (*und markiere Nachbereichsplatz Pn1*) S Pn2 (*und markiere Nachbereichsplatz Pn2*) CALC TimerPv1Tj(IN:=0,PT:=ZeitauerTimerPv1Tj) (*und setze alle Timer*) CALC TimerPv1Tk(IN:=0,PT:=ZeitdauerTimerPv1Tk) (*von Pv1 zurück*) Bild 12 Schaltvorgang einer Transition. Beim Schalten einer Transition mit einem Nachbereichsplatz, der eine oder mehrere Zeitbedingungen beeinflusst, muss die Zeit anfangen zu laufen. Durch das Setzen der Nachbereichsplätze erfolgt beim nächsten Aufruf der Zeitbausteininstanz zu Beginn des nächsten Zyklus das Anlaufen der Zeit. Da die SPS-Zykluszeiten wesentlich kleiner als die beim Aufruf übergebene Zeitdauer sein sollten, spielt der verzögerte Aufruf praktisch keine Rolle. 4.2 Analogwertverarbeitung Transition Bis jetzt sind für das SIPN nur binäre Eingangsvariablen und als Transitionsschaltbedingung nur boolesche Funktionen und Zeitbedingungen zugelassen. Durch die Verwendung von Ungleichungen können die Eingangsvariablen auch auf nichtbinäre Variablen erweitert werden. Die Schaltbedingung liefert weiterhin die booleschen Werte TRUE oder FALSE. In folgendem Beispiel wird die Verwendung einer reellwertigen Eingangsvariable in einer Schaltbedingung gezeigt. Ein kontinuierlicher Füllstandssensor liefert den Wert in Metern. Transition T1 schaltet Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 183

8 bei Überschreitung eines Füllstands größer 1,5m oder bei Drücken eines Schalters (Schalter gedrückt entspricht E5=TRUE). Die Umsetzung zeigt Bild 13. T1: LD P2. AND( (*Schaltbedingung:*) GT 1.5 (* > 1.5 OR E5*) OR E5 ) Bild 13: Umsetzung der erweiterten Schaltbedingung von T Plätze Ebenso wie bei den Schaltbedingungen können die Ausgaben unter Verwendung von Ungleichungen berechnet werden. Darüber hinaus ist die Ausgabe nichtbinärer Werte möglich, die das Ergebnis arithmetischer Berechnungen und/oder Funktionen sind. So kann als Ausgang der Sollwert für eine Regelung gesetzt werden, der zuvor berechnet wurde. Als Beispiel setze Platz P2 den Ausgang A2 auf den Mittelwert der Eingänge, E2 und E3, die vom Datentyp REAL sind. Somit berechnet sich A2 zu (+E2+E3)/3. Daraus ergibt sich folgender Code für den Platz P2 (Bild 14). P2: LD P2 JMPCN P3 LD (* Berechnung von (+E2+E3)/3*) ADD E2 (* mit Hilfe der Operatoren*) ADD E3 (* ADD und DIV*) DIV 3 ST A2 (* Ergebnis auf Ausgang A2 legen*) Bild 14: Verwendung von Operatoren. 5 Zusammenfassung und Ausblick In diesem Beitrag wurde eine Methode zur Erzeugung von SPS Programmen aus Steuerungstechnisch interpretierten Petrinetzen (SIPN) vorgestellt. Durch eine Eins-zu-Eins Umsetzung von Netzelementen in Codesegmente wird ein rückinterpretierbarer Code erreicht. Optimierte Umsetzungsvorschriften für spezielle Fälle wurden vorgestellt. Das Problem der korrekten Umsetzung der SIPN-Dynamik in den Code wurde diskutiert und verschiedene Lösungen wurden vorgeschlagen. Eine Ausdehnung auf SIPN mit Zeitbewertungen und Analogsignalverarbeitung erweitert die Möglichkeiten der vorgestellten Methode. Die vorgestellte Codegenerierung kann automatisch mit einem Mathematica-Programm [WOLFRAM 1999] erfolgen, das von den Autoren entwickelt wurde. Das Programm erzeugt aus der Beschreibung eines SIPN einen AWL-Code nach PLCopen portability level. Verschiedene Parameter erlauben dabei die Erzeugung von optimiertem Code. Weitere Arbeiten auf diesem Gebiet zielen auf die Definition hierarchisch strukturierter SIPN und deren Umsetzung im SPS-Programme aus mehreren Programmorganisationseinheiten gemäß IEC Literatur [WOLFRAM 1999] S. Wolfram, Mathematica: a system for doing mathematics by computer. Addison- Wesley Publishing Company, Redwood City, 4 th Ed [JÖRNS ET AL. 1995] C. Jörns, L. Litz and S. Bergold, Automatische Erzeugung von SPS-Programmen auf der Basis von Petri-Netzen, atp 1995(37)3, S [JOHN UND TIEGELKAMP 1998] K.-H. John und M. Tiegelkamp, SPS-Programmierung mit IEC Springer-Verlag, Berlin, [FREY 2000 (A)] G. Frey, Analysis of Petri-Net based Control Algorithms Basic Properties, To appear in: Proceedings of the ACC [FREY 2000 (B)] G. Frey, Automatic Implementation of Petri Net Based Control Algorithms on PLC, To appear in: Proceedings of the ACC [FREY UND LITZ 1998] G. Frey and L. Litz, Verification and Validation of Control Algorithms by Coupling of Interpreted Petri Nets, Proceedings of the IEEE, SMC 98, Band 1, S. 7-12, Tagungsband der Fachtagung Verteilte Automatisierung 2000, VA 2000, Magdeburg, 22. und 23. März 2000, S S. 184

Simulative Validierung Petrinetz-basierter Steuerungen durch Transformation in Modelica

Simulative Validierung Petrinetz-basierter Steuerungen durch Transformation in Modelica Simulative Validierung Petrinetz-basierter Steuerungen durch Transformation in Modelica Georg Frey frey@eit.uni-kl.de Juniorprofessur Agentenbasierte Automatisierung Kurzfassung Universität Kaiserslautern,

Mehr

9. Steuerungsentwurf mit Petrinetzen

9. Steuerungsentwurf mit Petrinetzen Grundlagen der Automatisierungstechnik (Automatisierungstechnik 1) 9. Steuerungsentwurf mit Petrinetzen Informelle Einführung SIPN = Signal Interpretiertes Petrinetz Validation SIPN Realization Formalization

Mehr

Kapitel 4 Ereignisdiskrete Systeme (V)

Kapitel 4 Ereignisdiskrete Systeme (V) Systemmodellierung Teil 1: Ereignisdiskrete Systeme Kapitel 4 Ereignisdiskrete Systeme (V) Petrinetze ctnd. Eigenschaften von Petrinetzen (BE-Netze) Konflikt Kontakt Livelock, Deadlock Lebendigkeit Reversibilität

Mehr

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49) Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden

Mehr

Modellieren im Informatikunterricht

Modellieren im Informatikunterricht Teil 1: Einführung in Netzstrukturen zur Systembeschreibung 1 Die Welt begreifen Abstraktion und Komplexitätsreduktion auf Interessante 2 Modelle im Informatikunterricht? Kommunikation über das Vorhaben

Mehr

Abschlusstest SPS Basis Kurs

Abschlusstest SPS Basis Kurs Abschlusstest SPS Basis Kurs Datum: Name: Ronald Kleißler Seite 1 06.04.2015 1. Welche Eingansworte werden mit dem Aufruf des 'ED 10' angesprochenen? (Mehrere Antworten sind möglich.) EW 10 EW 11 EW 12

Mehr

4. Übung SPS-Programmierung

4. Übung SPS-Programmierung Grundlagen der Automatisierungstechnik (Automatisierungstechnik 1) 4. Übung SPS-Programmierung Programmiersprachen nach IEC 61131-3 2 1 Strukturierter Text (ST) Engl.: Structured Text (ST) Höhere Programmiersprache

Mehr

Peter Beater. Grundkurs der Steuerungstechnik. Mit einer Einführung in Speicherprogrammierbare Steuerungen und DIN EN

Peter Beater. Grundkurs der Steuerungstechnik. Mit einer Einführung in Speicherprogrammierbare Steuerungen und DIN EN Peter Beater Grundkurs der Steuerungstechnik Mit einer Einführung in Speicherprogrammierbare Steuerungen und DIN EN 61131-3 Inhaltsverzeichnis 1 Einführung Steuerungstechnik 1 1.0 Inhalt dieses Kapitels

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Überblick Aufgaben Lernziele bei der Objektorientierten Analyse Abgrenzung der Analyse zum Design als Lernprozeß UML Verhaltensdiagramme

Mehr

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen Fachhochschule Köln Cologne University of Applied Sciences Fakultät für Informations-, Medien- und Elektrotechnik Institut für Automatisierungstechnik Labor für Informations- und Automatisierungstechnik

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus Algorithmen Algorithmusbegriff Klärung der Herkunft des Begriffs Formale Definition von Algorithmus Algorithmusbegriff Algorithmen sind eine der ältesten (abstrakten) Beschreibungstechniken für Abläufe.

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

5 Beispiel 2 Wasseraufbereitung

5 Beispiel 2 Wasseraufbereitung 5 Beispiel 2 Wasseraufbereitung In diesem Beispiel geht es vor allem um die Verarbeitung von Analogdaten. Dafür fand eine Umsetzung des Beispiels 5.1, der Trennanlage zur Wasseraufbereitung von der SPS-Lern-und-Übungsseite

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

13. Ablaufsteuerung. Lernziele. Begriff Schrittkettenprogrammierung / Ablaufsteuerung. Beziehung zu Petrinetzen? S7-Graph. Anwendungsbeispiel

13. Ablaufsteuerung. Lernziele. Begriff Schrittkettenprogrammierung / Ablaufsteuerung. Beziehung zu Petrinetzen? S7-Graph. Anwendungsbeispiel 13. Ablaufsteuerung ST.ppt / Folie 243 Lernziele Begriff Schrittkettenprogrammierung / Ablaufsteuerung Beziehung zu Petrinetzen? S7-Graph Anwendungsbeispiel NEU: Praktische Vorführung S7-Graph ST.ppt /

Mehr

8. Einsatz von Funktionen

8. Einsatz von Funktionen 8. Einsatz von Funktionen -> hierzu Folge 9 der Reihe Praktische Einführung in CoDeSys 8.1 Übersicht und Regeln Das Wirken von Funktionen kann am besten mit der Wirkung von Durchgangslogik oder Sofortlogik

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Petri-Netze / Eine Einführung

Petri-Netze / Eine Einführung Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Carl Adam Petri am 12. Juli 1926 in Leipzig geboren Studium der Mathematik 1962 Promotion zum Doktor der Naturwissenschaft Titel

Mehr

Inhalt. Serie90-AC500-Bibliothek Bestandteile der Bibliothek Bausteinübersicht, geordnet nach Aufrufnamen Glossar Index...

Inhalt. Serie90-AC500-Bibliothek Bestandteile der Bibliothek Bausteinübersicht, geordnet nach Aufrufnamen Glossar Index... Inhalt Serie90-AC500-Bibliothek... 2 Bestandteile der Bibliothek... 2 Bausteinübersicht, geordnet nach Aufrufnamen... 2 INTK Integrierer (komfortabel)... 3 LZB Laufzahlblock... 7 VGL3P Vergleicher mit

Mehr

Petrinetze und GPSS/H

Petrinetze und GPSS/H Hochschule Mittweida (FH) Seminararbeit Simulation 11. Januar 2006 Agenda 1 2 3 4 Agenda 1 2 3 4 Themen Modellierung von dynamischen Systemen Formale Modellierung von nebenläufigen Systemen Simulation

Mehr

Sprünge und Schleifen

Sprünge und Schleifen Sprünge Sprünge und Schleifen Sprünge werden in einem SPS Programm ausgeführt, wenn Teile von Schrittketten Programmen übersprungen werden sollen, um bestimmte Funktionen des Programms nicht ausführen

Mehr

SPS-Softwareentwickiung mit IEC 61131

SPS-Softwareentwickiung mit IEC 61131 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Jens von Aspern SPS-Softwareentwickiung mit IEC 61131 Hüthig Verlag

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

ACPLT + IEC = Dynamisch Rekonfigurierbare Modelle

ACPLT + IEC = Dynamisch Rekonfigurierbare Modelle ACPLT + IEC 61131-3 = Dynamisch Rekonfigurierbare Modelle L. Yu, G. Quirós, T. Kraußer, U. Epple Lehrstuhl für Prozessleittechnik RWTH Aachen University MAT 2012 15.03.2012 Überblick IEC 61131-3 Standard

Mehr

High-Level Petrinetze. SE Analyse von Petrinetzen Jan Sürmeli

High-Level Petrinetze. SE Analyse von Petrinetzen Jan Sürmeli High-Level Petrinetze SE Analyse von Petrinetzen Jan Sürmeli 13.02.2008 Motivation: 3 Philosophen, Low Level 2 Motivation: 4 Philosophen, Low Level 3 Motivation: Ein Lösungsansatz Petrinetze werden schnell

Mehr

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen

Mehr

einseitige Selektion zweiseitige Selektion

einseitige Selektion zweiseitige Selektion einseitige Selektion / Die einseitige Selektion gestattet die Ausführung einer eisung (welche wiederum eine Sequenz sein kann), wenn die angegebene wahr () ist. 19 zweiseitige Selektion _1 _2 _1 _2 Die

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

SYNTHESE ELEMENTARER PETRINETZE

SYNTHESE ELEMENTARER PETRINETZE SYNTHESE ELEMENTARER PETRINETZE OBERSEMINARVORTRAG VON MARTIN CANDROWICZ 27. MAI 2016 GLIEDERUNG 1. PETRINETZE 2. TRANSITIONSSYSTEME 3. MOTIVATION 4. ALGORITHMUS ZUR SYNTHESE ELEMENTARER PETRINETZE 1.

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

Folge 9: Parametrierbare Funktionen und Einstieg in die AWL Programmierung

Folge 9: Parametrierbare Funktionen und Einstieg in die AWL Programmierung Automatisierungstechnik nach internationaler Norm programmieren (9) Autor: Dr. Ulrich Becker Fachzentrum Automatisierungstechnik und vernetzte Systeme im BTZ Rohr-Kloster Mail: Ulrich.Becker@BTZ-Rohr.de

Mehr

SPS FRANZIS. Mit Beispielen für CoDeSys und STEP neu bearbeitete Auflage Programmierung nach IEC Heinrich Lepers.

SPS FRANZIS. Mit Beispielen für CoDeSys und STEP neu bearbeitete Auflage Programmierung nach IEC Heinrich Lepers. FRANZIS PC+ELEKTRONIK Heinrich Lepers "-""-С. / 1 / Fuellung I hall ls2 /Fueilung /CALb 1Тие±1еп","ВВ_?и*11еп" p03ati.onen:= Positionen tstrlusu^m U*> Mengen:= Menger» (3TftX*SU54t U»i Ze±tbasis: = TBlS

Mehr

IEC Windows- Programmiersoftware für CPS500

IEC Windows- Programmiersoftware für CPS500 IEC61131-3 Windows- Programmiersoftware für CPS500 16/13-089.231.01 esitron-electronic GmbH Ernst-Zimmermann-Str. 18 D-88045 Friedrichshafen Internet: www.esitron.de Telefon +49 (0) 7541/6000-0 Telefax

Mehr

Speicherprogammierbare Steuerungen als Bausteine verteilter Automatisierung

Speicherprogammierbare Steuerungen als Bausteine verteilter Automatisierung SPS Speicherprogammierbare Steuerungen als Bausteine verteilter Automatisierung von Prof. Eberhard E. Grätsch, M.Sc, AUTlab der Fachhochschule Würzburg-Schweinfurt und Steinbeis-Transferzentrum Würzburg

Mehr

3 Die Sprache ST bzw. SCL im Detail

3 Die Sprache ST bzw. SCL im Detail 3 Die Sprache ST bzw. SCL im Detail 3.1 Unterschiede in den einzelnen Sprachen ST/SCL Obwohl gerade die Übertragbarkeit des ST in der Industrie gelobt wird, haben die Tests in diesem Buch auch gravierende

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung

Mehr

Sucosoft S40 KOP/FBS KOP FBS

Sucosoft S40 KOP/FBS KOP FBS Sucosoft S40 KOP/FBS KOP FBS Grafische Elemente Netzwerke erstellen Netzwerke erstellen Programme werden in KOP durch grafische Elemente dargestellt. Abfrage einer Variable auf den Zustand 1 Abfrage einer

Mehr

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln.

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln. Grafische Elemente Netzwerke erstellen Netzwerke erstellen Programme werden in KOP durch grafische Elemente dargestellt. Abfrage einer Variable auf den Zustand 1 Abfrage einer Variable auf den Zustand

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

KOP / FBS - Programmierung

KOP / FBS - Programmierung KOP / FBS - Programmierung Programmieren in Anweisungsliste Programmieren in strukturierten Text Programmieren in Kontaktplan Programmieren in Funktionsbausteinsprache KOP Programmierung (1) 2 1 Neues

Mehr

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Informationsverarbeitung auf Bitebene

Informationsverarbeitung auf Bitebene Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 01 23.10.2013 Inhalt Übungen und Übungsblätter Uniworx und Abgabeformate Plagiarismus Algorithmen und Pseudocode Variablen und Methoden Boolsche Operatoren

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 17. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 17. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 17 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 69 TU Ilmenau Seite 2 / 69 Graphtraverse Wie bei Bäumen, ist

Mehr

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug.

Warum Modellierung? OE-Vorlesung 2016 Einführung in Petrinetze. Was ist ein Modell? Und warum Petrinetze? Petrinetze sind ein Modellierungswerkzeug. Warum Modellierung? OE-Vorlesung 016 Einführung in Petrinetze Dr. Lawrence Cabac cabac@informatik.uni-hamburg.de Folien: Dr. Frank Heitmann Fachbereich Informatik Universität Hamburg Petrinetze sind ein

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

1. Einführung in Temporallogik CTL

1. Einführung in Temporallogik CTL 1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

$Id: folgen.tex,v /05/31 12:40:06 hk Exp $ an 1 2 n 1 ist gerade, 3a n 1 + 1, a n 1 ist ungerade.

$Id: folgen.tex,v /05/31 12:40:06 hk Exp $ an 1 2 n 1 ist gerade, 3a n 1 + 1, a n 1 ist ungerade. $Id: folgen.tex,v. 202/05/3 2:40:06 hk Exp $ 6 Folgen Am Ende der letzten Sitzung hatten wir Folgen in einer Menge X als Abbildungen a : N X definiert, die dann typischerweise in der Form (a n ) n N, also

Mehr

Einführungsbeispiel in das Programmiersystem CoDeSys

Einführungsbeispiel in das Programmiersystem CoDeSys Einführungsbeispiel in das Programmiersystem CoDeSys Um die Vorgehensweise der Projekterstellung in CoDeSys zu verstehen, soll ein ganz einfaches Programm erstellt werden: Zwei binäre Eingangssignale sollen

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

Informatik Abitur Bayern 2017 / II - Lösung

Informatik Abitur Bayern 2017 / II - Lösung Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 06.11.2006 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 31.10.2005 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Search - Beweis der Korrektheit David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2013 Algemeine Anmerkungen zur Übung 9 Aufgabenblätter, 3 Abgabetermine

Mehr

1 EINLEITUNG PROJEKTABLAUF Allgemeine Zielsetzung Projektstruktur und Zeitplan ANFORDERUNGSANALYSE...

1 EINLEITUNG PROJEKTABLAUF Allgemeine Zielsetzung Projektstruktur und Zeitplan ANFORDERUNGSANALYSE... Inhaltsverzeichnis Inhaltsverzeichnis 1 EINLEITUNG... 1 2 PROJEKTABLAUF... 4 2.1 Allgemeine Zielsetzung... 4 2.2 Projektstruktur und Zeitplan... 4 3 ANFORDERUNGSANALYSE... 8 3.1 Der Prototyp des Anlagenmodells...

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

SPS IEC 1131 / AS mit MULTIPROG Ablaufsprache - AS

SPS IEC 1131 / AS mit MULTIPROG Ablaufsprache - AS 1 Ablaufsprache - AS 2 Prinzip und Wirkungsweise der Ablaufsprachen-Programmierung Früher nannte man diese Art der Programmierung 'Schrittkettenprogrammierung' - ein sinnvoller, weil anschaulicher Begriff:

Mehr

Dynamische Geometrie

Dynamische Geometrie Dynamische Geometrie 1) Die Mittelsenkrechten, die Seitenhalbierenden, die Höhen und die Winkelhalbierenden eines beliebigen Dreiecks schneiden sich jeweils in einem Punkt. a) Untersuchen Sie die Lage

Mehr

Carry Lookahead Adder

Carry Lookahead Adder Carry Lookahead Adder Mittels der Generate und Propagate Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren: Für einen 4 Stelligen Addierer ergibt sich damit:

Mehr

IEC Windows- Programmiersoftware für APS-Systeme

IEC Windows- Programmiersoftware für APS-Systeme IEC61131-3 Windows- Programmiersoftware für APS-Systeme 47/15-089.172.03 esitron-electronic GmbH Ernst-Zimmermann-Str. 18 D-88045 Friedrichshafen Internet: www.esitron.de Telefon +49 (0) 7541/6000-0 Telefax

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Schnelles Backup & Restore mit Multisection

Schnelles Backup & Restore mit Multisection Schnelles Backup & Restore mit Multisection Sinan Petrus Toma Finanz Informatik GmbH & Co. KG Hannover Schlüsselworte: Backup, Restore, Multisection, Section Size, Multiplexed Backup Einleitung Es werden

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:

Mehr

Algorithmen und ihre Programmierung -Teil 2-

Algorithmen und ihre Programmierung -Teil 2- Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung -Teil 2- Veronika Waue WS 07/08 Wiederholung: Algorithmen Variablen und Datentypen Variablen haben einen Namen, einen Datentypen und einen

Mehr

GRAFCET-Pläne der Mechatroniker Abschlussprüfung Teil 1, Herbst 2015

GRAFCET-Pläne der Mechatroniker Abschlussprüfung Teil 1, Herbst 2015 GRAFCET-Pläne der Mechatroniker Abschlussprüfung Teil 1, Herbst 2015 Nachfolgend finden Sie die 5 Teil-GRAFCETs o. a. Prüfung normgerecht dargestellt und geringfügig optimiert. Der Teil-GRAFCET erhielt

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

Programmieren eines Drehtellers mit IEC 1131

Programmieren eines Drehtellers mit IEC 1131 Programmieren eines Drehtellers mit IEC 1131 Die Ampeln an einer Straßenkreuzung sollen durch eine simulierte SPS gesteuert werden. Die Programmierung der SPS erfolgt mit der Programmiersoftware ACCON

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze FHTW Berlin FB4, Wirtschaftsmathematik Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze Dr. Irina Stobbe, 2005-2008 Thema - Überblick Petri-Netze Petri-Netze Einführung Funktionsweise Definition

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung

Mehr