Automatische Erzeugung von SPS-Programmen aus Petrinetzen
|
|
- Renate Fiedler
- vor 7 Jahren
- Abrufe
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 Georg Frey frey@eit.uni-kl.de Juniorprofessur Agentenbasierte Automatisierung Kurzfassung Universität Kaiserslautern,
Mehr9. Steuerungsentwurf mit Petrinetzen
Grundlagen der Automatisierungstechnik (Automatisierungstechnik 1) 9. Steuerungsentwurf mit Petrinetzen Informelle Einführung SIPN = Signal Interpretiertes Petrinetz Validation SIPN Realization Formalization
MehrKapitel 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)
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
MehrModellieren 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
MehrAbschlusstest 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
Mehr4. Ü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
MehrPeter 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
MehrAlgorithmische 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
MehrSoftware 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
MehrGenerierung 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
MehrIsomorphie 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..............................
MehrLearning 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.
MehrAlgorithmen 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
MehrOrganisatorisches. 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:
Mehr5 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
MehrAlgorithmen 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
MehrJavakurs 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
MehrAusarbeitung 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,
Mehr13. 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 /
Mehr8. 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
MehrOrganisatorisches. 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
MehrPetri-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
MehrInhalt. 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
MehrPetrinetze 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
MehrSprü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
MehrSPS-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
MehrDas 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
MehrACPLT + 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
MehrHigh-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
Mehr4.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
Mehreinseitige 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
MehrDynamisches 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
MehrArrays. 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................................
MehrStud.-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
MehrProgramm 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
MehrSYNTHESE 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.
MehrModul 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
MehrAlgorithmen 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
MehrAlgorithmische 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
MehrFolge 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
MehrSPS 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
MehrIEC 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
MehrSpeicherprogammierbare 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
Mehr3 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
MehrGliederung. 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
MehrSucosoft 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
MehrJMPCN 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
MehrPIC16 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
MehrKOP / FBS - Programmierung
KOP / FBS - Programmierung Programmieren in Anweisungsliste Programmieren in strukturierten Text Programmieren in Kontaktplan Programmieren in Funktionsbausteinsprache KOP Programmierung (1) 2 1 Neues
MehrKlausur 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
MehrObjekte. 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.......................
MehrInformationsverarbeitung 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
MehrJavaScript. 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 Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrGraphdurchmusterung, 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,
MehrDatenstrukturen 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
MehrEinfü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
MehrAlgorithmen 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
MehrWarum 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
MehrKapitel 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
Mehr1. 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
MehrJavakurs 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
MehrProgrammieren 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. 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
MehrEinfü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
MehrFACHHOCHSCHULE 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
Mehr9 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
Mehr2 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
MehrC++ 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;
MehrAlgorithmen & Datenstrukturen Midterm Test 2
Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
MehrInformatik 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.
Mehr1 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
Mehr1 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
MehrTheoretische 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
Mehr1 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...
MehrObjektorientierte 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,
MehrSPS 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:
MehrDynamische 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
MehrCarry 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:
MehrIEC 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
MehrC.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
MehrGedä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
MehrJava 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
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrSchnelles 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
MehrAlgorithmen & 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
MehrVorbemerkung. 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:
MehrAlgorithmen 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
MehrGRAFCET-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
Mehr2 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
MehrProgrammieren 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
MehrIntensivü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
MehrModellierung 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
MehrVorlesung 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)
Mehr4.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):
MehrKlausur 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