Einführung in Computer Microsystems Sommersemester 2010 12. Vorlesung Dr.-Ing. Wolfgang Heenes 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 1
Inhalt 1. Literatur 2. Statechart-Modellierung paralleler Automaten 3. Strukturierung und Hierachiebildung 4. Beispiele 5. Zusammenfassung und Ausblick 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 2
Literatur [ABRW07] Angermann, Anne, Michael Beuschel, Martin Rau und Ulrich Wohlfarth: MATLAB - Simulink - Stateflow. Oldenbourg Verlag, 2007. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 3
Weitere Elemente eines Statecharts Zur Erinnerung: Verbindungspunkte Ein Verbindungspunkt stellt eine Entscheidungsmöglichkeit zwischen mehreren möglichen Pfaden einer Transition dar. Damit lassen sich Konstrukte wie for-schleifen, do-while-schleifen und if-then-abfragen realisieren. Der erste Zweig der Transition vom Zustand A zum Verbindungspunkt wird bei Auftreten eines beliebigen Events ausgeführt. Wenn das auslösende Event E_eins war, so wird der obere Pfad der Transition ausgeführt. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 4
Weitere Elemente eines Statecharts Verbindungspunkte Transitionen von zwei Quellen zu einem Ziel. Zu Beginn sei, abhängig von vorherigen Events, entweder der Zustand A oder B aktiv. Abhängig von den Events E_eins und E_zwei soll ein Wechsel in den Zustand C erfolgen. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 5
Weitere Elemente eines Statecharts Verbindungspunkte Wenn A aktiv ist und das Event E_eins auftritt, ist die gesamte Transition von A nach C gültig und die Transition wird ausgeführt. Der zweite Ast der Transition ist für alle Events gültig, da ein leeres Label spezifiziert wurde. Wenn B aktiv ist und das Event E_zwei auftritt, erfolgt ein Zustandsübergang von B nach C. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 6
Weitere Elemente eines Statecharts Self Loop Transitionen Eine Self Loop Transition ist dadurch charakterisiert, dass eine Transition existiert, bei der Quelle und Ziel identisch sind. Der erste Abschnitt der Transition weg vom Zustand A ist für jedes Event gültig. Wenn das auslösende Event E_zwei war, erfolgt ein Übergang von A nach C. War das auslösende Event E_eins, wird Zustand A verlassen und über den unteren Teil der Transition wieder aktiviert. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 7
Weitere Elemente eines Statecharts For-Schleife In einem Stateflow Chart kann die for-schleife mithilfe eines Verbindungspunkts realisiert werden. Bei Auftreten des Events E_eins ist der erste Zweig der Transition vom Zustand A nach B gültig. In der Bedingungsaktion wird die Variable i auf Null gesetzt. Eine von einem Verbindungspunkt abgehende Transition mit Bedingung hat Vorrang vor einer Transition ohne Bedingung. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 8
Weitere Elemente eines Statecharts If-Abfrage Gegeben ist folgender Pseudo-Code if a>b if a>c aktion1 else aktion2 end else aktion3 z=z+1 end Umsetzung mit Verbindungspunkten 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 9
Weitere Elemente eines Statecharts For-Schleife Modellierung der mehrfachen If-Abfrage mit Verbindungspunkten Teile eines Stateflow Charts, die ohne Zustände auskommen, wie etwa for-schleifen oder die if-abfrage bezeichnet man als Flussdiagramme (stateless). Flussdiagramme sind nicht gedächtnisbehaftet 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 10
Strukturierung und Hierachiebildung Bisher wurden alle grafischen Objekte (Zustände, Transitionen) in der obersten Hierarchie-Ebene des Charts erzeugt. Stateflow (bzw. Statecharts) erlaubt verschiedene Arten der Gruppierung und Hierarchiebildung. Vorteile: bessere Übersichtlichkeit Parallele Abläufe Im Folgenden: Strukturierungsmethode Superstates 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 11
Superstates Ein Superstate ist das Mutter-Objekt für beliebig viele weitere Zustände. Er ist genau dann aktiv, wenn er selbst das Ziel einer Transition war oder wenn mindestens eines seiner Kind-Objekte aktiviert wird. Ein Superstate kann nie für sich alleine aktiv sein, es muss immmer mindestens eines seiner Kind-Objekte aktiv sein. Er kann ein Label tragen Er kann das Ziel und die Quelle von Transitionen sein Funktionsweise hängt davon ab, ob sie in Exklusiv-Oder oder in Parallel-Anordnung verwendet werden. Im Folgenden einige Beispiele 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 12
Superstates in Exklusiv-Oder Anordnung Die Abbildung zeigt zwei Superstates in Exklusiv-Oder Anordnung 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 13
Superstates in Exklusiv-Oder Anordnung Es existieren zwei Superstates Z1 und Z2, die beide in die Zustände On und Off unterteilt sind. Bei der ersten Ausführung des Charts wird durch die Default Tranistion der Zustand Z1 aktiv. Durch die Default Transition auf Z1.On wird bei jeder Aktivierung von Z1 der Substate Z1.On standardmäßig aktiviert. Bei Auftreten des Events on_off wechselt Z1.On nach Z1.Off. Tritt daraufhin das Event off_on auf, wechselt der Zustandsautomat wieder zurück nach Z1.On. Egal in welchem Substate sich das Chart gerade befindet, bei Auftreten des Events switch_12 wird der Zustand Z1 inklusive der Substates verlassen und der Superstate Z2 aktiv. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 14
Superstates in Exklusiv-Oder Anordnung Nach der Aktivierung von Z2 wird nach gültigen Transitionen zu Kind-Objekten von Z2 gesucht. Durch die Default Transition auf Z2.Off wird neben Z2 auch Z2.Off aktiviert. Wenn die Events off_on und on_off auftreten, vollzieht sich der bereits beschriebene Wechsel zwischen Z2.Off und Z2.On. Tritt das Event switch_21 auf, so wird wieder Z1 und Z1.On aktiv. Dieses Beispiel zeigt: Die Stärke von Superstates und Substates reduziert die Anzahl von Einzelzuständen in einem Chart Funktionale Zusammenfassung in hierarchische Strukturen Erhöht auch die Übersichtlichkeit 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 15
Superstates in Exklusiv-Oder Anordnung History Junctions Die Abbildung zeigt zwei Superstates in Exklusiv-Oder Anordnung mit History Junctions 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 16
Superstates in Exklusiv-Oder Anordnung History Junctions Die Funktion des Zustandsautomaten soll in der Weise erweitert werden, dass bei einem Wechsel zwischen Z1 und Z2 nicht immer die Zustände Z1.On und Z2.Off aktiv werden, sondern der Zustand der zuletzt aktiv war. Nehmen wir an, vor einem Wechsel von Z1 nach Z2 war der Zustand Z1.Off aktiv Wenn Z1 durch das Event switch_21 wieder aktiv wird, soll nicht der Substate Z1.On (durch die Default Transition) aktiviert werden, sondern der zuletzt aktive Zustand Z1.Off. Dies kann durch das Einfügen von History Junctions in Z1 und Z2 errreicht werden. Darstellung als Kreis mit einem H in der Mitte. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 17
Superstates in Exklusiv-Oder Anordnung Hierarchieübergreifende Transitionen Die Quelle und das Ziel einer Transition müssen nicht demselben Mutter-Objekt angehören. Das heißt, Transitionen über Hierachie-Ebenen hinweg sind zulässig. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 18
Superstates in Exklusiv-Oder Anordnung Hierarchieübergreifende Transitionen Hierarchieübergreifende Transitionen werden Supertransitionen genannt. Wenn ein Wechsel von Z1 nach Z2 (und umgekehrt) erreicht werden soll, wenn die jeweiligen Substates Z1.Off und Z2.Off aktiv sind, kann das leicht durch die Supertransitionen erreicht werden. Merke: Transitionen können ohne Beachtung von Hierarchiegrenzen zwischen beliebigen Quell- und Zielobjekten bestehen, auch über mehrere Hierarchiestufen hinweg. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 19
Superstates in Exklusiv-Oder Anordnung Inner Transitions In Superstates können auch sogenannte Inner Transitions auftreten. Sie verlaufen von einem Superstate zu einem seiner Kind-Objekte. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 20
Superstates in Exklusiv-Oder Anordnung Inner Transitions Der Zustandsautomat kann sich in den drei Zuständen Z1, Z2 und Z3 abhängig von den Bedingungen [bed1] und [bed2] befinden. Beim Auftreten des Events update sollen die Bedingungen erneut überprüft und evtl. ein nötiger Zustandswechsel durchgeführt werden. Man könnte nun von jedem der drei Zustände eine Transition zu jedem der verbleibenden Zustände mit entsprechenden Bedingungen verwenden. Bei erstmaliger Ausführung des Charts ist die Default Transition zum Verbindungspunkt gültig. Abhängig von den Bedingungen [bed1] und [bed2] wird einer der Zustände Z1, Z2, oder Z3 aktiviert. Superstate Super_Z ist aktiv, da eines seiner Kind-Objekte aktiv ist. Einzige potentielle Transition ist die Inner Transition mit dem Label update. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 21
Superstates in Parallel-Anordnung Die Parallel-Anordnung von Superstates erlaubt die quasi parallele Ausführung von Ausschnitten eines Charts. Parallele Superstates können in der selben Hierachie-Ebene (d. h. sie besitzen das gleiche Mutter-Objekt) gleichzeitig aktiv sein. Die Ausführungsreihenfolge hängt von der Platzierung der Zustände ab. Zur Erinnerung: von oben nach unten und links nach rechts (Bezugspunkt Oberkante der Zustände) Zahl in der rechten oberen Ecke 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 22
Superstates in Parallel-Anordnung Beispiel: Steuerung von Komponenten in einem PKW. Zwei Zustände On und Off Wenn die Zündung eingeschaltet ist, können gleichzeitig das Licht und die Lüftung in Betrieb gesetzt werden. Das Licht kann entweder an- oder ausgeschaltet sein, die Lüftung ist in die möglichen Betriebszustände Off, Stufe1 und Stufe2 unterteilt. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 23
Superstates in Parallel-Anordnung Mögliche Realisierung 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 24
Superstates in Parallel-Anordnung Beschreibung Bei erstmaliger Ausführung des Charts wechselt das System in den Zustand Off. Bei Betätigung des Zündschlüssels (Event zuendung_an) wird der Zustand On aktiv. Dieser ist in die parallelen und damit gleichzeitig aktiven Substates Licht und Lueftung unterteilt. Beide Zustände sind zwar gleichzeitig aktiv, Licht wird aber vor Lueftung abgearbeitet, was durch die Reihenfolgenummern 1 und 2 in den rechten oberen Ecken angezeigt wird. Der Zustand Licht ist in die sich ausschließenden Substates Off und On unterteilt. Standardmäßig wird Licht.Off aktiviert (Default Transition) Wechsel zwischen Licht.Off und Licht.On wird durch die Events licht_an und licht_aus ausgelöst. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 25
Superstates in Parallel-Anordnung Beschreibung Der zweite Parallel-Zustand Lueftung ist in die Exklusiv-Zustände Off, Stufe1 und Stufe2 aufgeschlüsselt, welche die jeweiligen Gebläsestufen kennzeichnen. Bei der ersten Aktivierung von On.Lueftung ist die Default Transition zum Verbindungspunkt gültig. Je nachdem, ob die Bedingungen [stufe1==1] und [stufe2==1] erfüllt sind, erfolgt ein Wechsel in den Zustand Lueftung.Stufe1, Lueftung.Stufe2 oder Lueftung.Off. Das event switch zeigt eine Schalterbewegung des Lüftungsschalters an. Beim Auftreten von switch ist die Inner Transition zum Verbindungspunkt gültig und es erfolgt wiederum ein Zustandswechsel, abhängig von der Gültigkeit der Bedingungen [stufe1==1] und [stufe2==1], in die Zustände Lueftung.Stufe1, Lueftung.Stufe2 oder Lueftung.Off. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 26
Superstates in Parallel-Anordnung Beschreibung Die Einführung der Parallel-Zustände Licht und Lueftung orientiert sich exakt an den tatsächlichen Gegebenheiten, nämlich der Tatsache dass Licht und Lueftung gleichzeitig aktiv sein können. Ausnutzung z. B. von Inner Transitions und eine gute Strukturierung sorgen für übersichtliche Modellierung. Welche Zustände sind zur Modellierung (z. B. des Modellrechners) notwendig? 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 27
Subcharts Schachtelung von Charts: Inhalt wird maskiert Das geht auch mit den Sonderformen (Hierarchieübergreifende Transitionen) 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 28
Subcharts Schachtelung von Charts: Inhalt wird maskiert, Lesbarkeit und Verständlichkeit beachten 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 29
Grafische Funktionen Eine grafische Funktion wird durch einen Flussgraphen ohne Zustände definiert. Funktionen können auch aus anderen Charts aufgerufen werden. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 30
Truth Tables Mit Truth Tables lassen sich logische Wahrheitstabellen in Stateflow kompakt realisieren. Vorteil: unübersichtliche UND/ODER Verknüpfungen können so vermieden werden. Truth Tables werden wie grafische Funktionen verwendet. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 31
Truth Tables Beispiel 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 32
Truth Tables Beispiel Eine in die Condition-Spalte eingetragene Bedingung muss zu true oder false ausgewertet werden. Alle Bedingungen sind voneinander unabhängig. Die erste Spalte ersetzt den Ausdruck if ((x<1) & (x<2) & (x<3) & (x<4) & (x<5)) y = 0; Spaltenweise UND-Verknüpfung der einzelnen Bedingungsergebnisse Die Angabe Labels ist optional möglich (hier: LOWER_SAT, UPPER_SAT). Aktionen werden über Nummer bzw. über Label zugeordnet. Funktion der Truth Table: Quantisierer 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 33
Truth Tables Beispiel 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 34
Getränkeautomat Steuerung eines einfachen Getränkeautomaten mit folgender Funktionalität Der Automat besitzt die zwei Zustände Off und On, die anzeigen, ob er einoder ausgeschaltet ist. Bei der Initialisierung soll sich die Steuerung im Zustand Off befinden. Der Wechsel zwischen Off und On soll durch das Tastersignal schalter ausgelöst werden. Der Automat stellt die vier Getränke Orangensaft, Cola, Fanta und Wasser zur Verfügung. Die Auswahl erfolgt durch eine Variable wahl, die die vier Getränke Orangensaft bis Wasser in den Zahlenwert 1 bis 4 codiert. Der Kauf eines Getränks erfolgt in zwei Schritten Zuerst wählt man die Sorte durch die Variable wahl aus Dann betätigt man einen Taster (Event auswahl) 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 35
Getränkeautomat Im Ausgabefach des Automaten befindet sich ein Sensor, der erkennt, ob die ausgewählte Getränkeflasche bereits entnommen wurde. Die Entnahme soll durch das Event entnahme angezeigt werden. Nur wenn die Flasche entnommen wurde, darf eine neue Flasche ausgegeben werden. Nachbildung der Events und Variablen in Simulink 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 36
Getränkeautomat Simulink Achtung: Datentypen beachten 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 37
Getränkeautomat Stateflow 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 38
Steuerung eines Heizgebläses Entwurf der Steuerung eines Heizgebläses Das Gebläse soll kalte und heiße Luft ausstoßen können. Zum Aufheizen kann ein Heizstab ein- und ausgeschaltet werden. Der Heizstab darf nur dann eingeschaltet werden, wenn auch das Gebläse in Betrieb ist, da sonst ein Schaden am Gerät entstehen kann. Der Heizlüfter besitzt einen Taster für das Gebläse und einen Schalter für den Heizstab. Eine mögliche Steuerung ist im Folgenden zu sehen. 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 39
Steuerung eines Heizgebläses Steuerung eines Heizgebläses, parallele Zustände 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 40
Zusammenfassung und Ausblick Statecharts und Stateflow Nächste Vorlesung behandelt SystemC 30. Juni 2010 TechnischeUniversitätDarmstadt Dr.-Ing. WolfgangHeenes 41