Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen...

46
Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben, sondern auch durch die vergangenen bestimmt wird. Besteht aus einer endlichen Anzahl innerer Konfigurationen (Zustände). Zustand: Information, die sich aus bisherigen Eingaben ergeben hat und die benötigt wird, um die Reaktion auf noch folgende Eingaben zu bestimmen. Erstellung eines Automaten Beispiel: Stellen der Uhrzeit einer Digitaluhr mit 2 Stellknöpfen. Knopf 1: Stellmodus (Normalzeit, h stellen, m stellen, s stellen) toggeln Knopf 2: Einstellen der Zeit gemäß Modus Schritt 1: Zustände und Ein- und Ausgaben identifizieren 09:17:46 Zustandsautomaten

Transcript of Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen...

Page 1: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/1

Zustandsautomat (endlicher Automat)ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben, sondern auch durch die vergangenen bestimmt wird.Besteht aus einer endlichen Anzahl innerer Konfigurationen (Zustände).Zustand: Information, die sich aus bisherigen Eingaben ergeben hat und die benötigt wird, um die Reaktion auf noch folgende Eingaben zu bestimmen.

Erstellung eines Automaten

Beispiel: Stellen der Uhrzeit einer Digitaluhr mit 2 Stellknöpfen.Knopf 1: Stellmodus (Normalzeit, h stellen, m stellen, s stellen) toggelnKnopf 2: Einstellen der Zeit gemäß Modus

Schritt 1: Zustände und Ein- und Ausgaben identifizierenSchritt 2: Übergänge festlegen

09:17:46

Zustandsautomaten

Page 2: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/2

Schritt 1: Zustände, Eingaben und Ausgaben identifizierenZustände beim Stellen der Digitaluhr:

Zustand Normalzeit: Nach Einlegen der Batterie (Startsignal)Zustand Stunden stellenZustand Minuten stellenZustand Sekunden stellen

Mögliche Ereignisse:Ereignis Startsignal: Wenn Batterie eingelegt wirdEreignis Knopf 1 gedrücktEreignis Knopf 2 gedrückt

Mögliche Ausgaben:Ausgabe Stunden blinken (Zustandsanzeige für Stellen Stunde)Ausgabe Minuten blinkenAusgabe Sekunden blinkenAusgabe Stunden erhöhen (Um 1 erhöhte Anzeige der Stunden)Ausgabe Minuten erhöhenAusgabe Sekunden stellen (Anzeige von 00 für Sekunden)Ausgabe Initialisierung (Anzeige von 00:00:00)

Zustandsautomaten

Page 3: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/3

Schritt 2: Übergänge festlegen

Wie Übergänge zwischen den Zuständen in Abhängigkeit von Eingaben oder Ereignissen aussehen,welche Ausgaben oder Aktionen ausgelöst werden.

Wenn Startsignal auftritt, dann Übergang in Zustand Normalzeit und Durchführung der Aktion Initialisierung.Wenn Knopf 1 gedrückt wird und Uhr im Zustand Normalzeit ist, dann Aktion Blinken ausführen und Zustand Stunden stellen einnehmen....

Zustandsautomaten

Page 4: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/4

ZustandAnfangs-zustand

(Pseudozustand)

End-zustand

(Pseudozustand)

E/A

Zustandsübergang

Eingabe,Ereignis

Ergebnis,Durchzuf. Aktion

Zustandsautomaten

Page 5: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/5

Beispiel Zustandsdiagramm

Normal-zeit

Min.stellen

Sek.stellen

Std.stellen

Start/Initialisierung

Knopf 1 gedrückt/Stunden blinken

Knopf 2gedrückt/Stundenerhöhen

Knopf 2gedrückt/Minutenerhöhen

Knopf 2gedrückt/Sekundenstellen

Knopf 1 gedrückt/Minuten blinken

Knopf 1 gedrückt/Sekunden blinken

Knopf 1 gedrückt/Normalzeit anzeigen

Zustandsautomaten

Page 6: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/6

ZustandstabelleNur wenn Diagramme zu unübersichtlich

Aktueller Zustand

Ereignis Aktion Folgezustand

Start Initialisierung Normalzeit

Normalzeit Knopf 1 gedrückt

Stunden blinken Stunden stellen

Stunden stellen Knopf 1 gedrückt

Minuten blinken Minuten stellen

Knopf 2 gedrückt

Stunden erhöhen

Stunden stellen

Minuten stellen Knopf 1 gedrückt

Sekunden blinken

Sekunden stellen

Knopf 2 gedrückt

Minuten erhöhen Minuten stellen

Sekunden stellen

Knopf 1 gedrückt

Normalzeit anzeigen

Normalzeit

Knopf 2 gedrückt

Sekunden stellen

Sekunden stellen

Kompakte Darstellung

Zustandsautomaten

Page 7: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/7

Ereignis

Zustand

Start Knopf 1 gedrückt

Knopf 2 gedrückt

Start Initialisierung

Normalzeit

Normalzeit Stunden blinken

Stunden stellen

Stunden stellen Minuten blinken Stunden erhöhen

Minuten stellen Stunden stellen

Minuten stellen Sekunden blinken

Minuten erhöhen

Sekunden stellen

Minuten stellen

Sekunden stellen

Normalz. anzeig. Sekunden stellen

Normalzeit Sekunden stellen

Aktion

Folgezustand

Zustandsautomaten

Zustandsmatrix 1Nur wenn Diagramme zu unübersichtlich

Page 8: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/8

Zustandsmatrix 2Nur wenn Diagramme zu unübersichtlich

Ereignis

Aktion

Zu Zustand

Von Zustand

Normalzeit Stunden stellen Minuten stellen Sekunden stellen

Start Start

Initialisierung

Normalzeit Knopf 1 gedrückt

Stunden blinken

Stunden stellen Knopf 2 gedrückt Knopf 1 gedrückt

Stunden erhöhen Minuten blinken

Minuten stellen Knopf 2 gedrückt Knopf 1 gedrückt

Minuten stellen Sekunden blinken

Sekunden stellen Knopf 1 gedrückt Knopf 2 gedrückt

Normalzeit anzeigen

Sekunden stellen

Vorteil: alle Kombinationen Zustand/Ereignis: Vollständigkeit prüfbarNachteil: dünn besetzt => Platzbedarf

Zustandsautomaten

Page 9: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/9

Zustandsautomat mit EndzuständenBeispiel: Roboter-Kommando erkennen

o

o

o

DrehgelenkSchulter

BeugegelenkSchulter

BeugegelenkElle

BeugegelenkHand

DrehgelenkHand

GreifgelenkFinger

Steuerkommandos

BSA+/-xxx : Beugen Schulter Absolut (Ausgabe: 1)BSR+/-xxx : Beugen Schulter Relativ (Ausgabe: 2)RSA+/-xxx : Rotieren Schulter Absolut (Ausgabe: 3)RSR+/-xxx : Rotieren Schulter Relativ (Ausgabe: 4)...

Zustandsautomaten

Page 10: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/10

Zustandsautomat mit EndzuständenBeispiel: Roboter-Kommando erkennen

Start

2. Ziffer

1. Ziffer

Vorzei-chen

RelativAbsolut

Schulter

Rotieren

Schulter

Beugen

„B“ „R“

„S“ „S“

„A“/1„R“/2 „A“/3

„R“/4

„-“/-„-“/-„+“

„+“

anderesZeichen

anderesZeichen

anderesZeichen

anderesZeichen

anderesZeichen

Falsches Kommando

anderesZeichen

anderesZeichen

anderesZeichen

anderesZeichen

Ziffer/Ziffer

Ziffer/Ziffer

Ziffer/Ziffer

Ziffer/ZifferZiffer/Ziffer

Steuerkommandos

BSA+/-xxx : Beugen Schulter Absolut (Ausgabe: 1)BSR+/-xxx : Beugen Schulter Relativ (Ausgabe: 2)RSA+/-xxx : Rotieren Schulter Absolut (Ausgabe: 3)RSR+/-xxx : Rotieren Schulter Relativ (Ausgabe: 4)

3 Endzustände (2 Fehlerzustände)

3. Ziffer

Falscher Winkel

Zustandsautomaten

Page 11: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/11

Mealy- und Moore-Automaten

Mealy-Automat:

Ausgaben bzw. Aktionen sind an Zustandsübergänge gekoppelt.• Zustände werden für Zeitintervall eingenommen.• Übergänge finden zu Zeitpunkten statt.• Ausgaben zu diskreten Zeitpunkten, assoziiert mit Übergängen.

Mathematische Beschreibung:Sechstupel M = (Q, , , , , q0)Q: endliche Menge von Zuständen: endliches Eingabealphabet (Menge der Ereignisse): Ausgabealphabet (Menge der Aktionen): Übergangsfunktion (Transition) für Abbildung Q x -> Q (q,a) ist ein (Folge-)Zust. für jeden Zust. q und jedes Eingabesymbol aq0: Anfangszustand (Startzustand): eine Abbildung von Q x -> (q,a) liefert Ausgabe (Aktion) bei Übergang aus q mit Eingabe a

Zustandsautomaten

Page 12: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/12

Mealy- und Moore-Automaten

Moore-Automat:Ausgaben bzw. Aktionen sind an Zustände gebunden.

Aktivitäten (UML): Aktivität beginnt, wenn in den Zustand eingetreten wirdAktivität endet, wenn Zustand verlassen wird

Notation am Beispiel Alarmanlage

Mathematische Definition wie Mealy, außer Abbildung : Abbildung von Q nach , spezifiziert die mit Zustand verknüpfte Ausgabe.

Ausgeschaltet

Aktivdo/ Vorbeugende Maßnahme

Voralarmdo/ Sicherungsmaßnahmen

Alarmdo/ Alarmmaßnahmen

Einschalten AusschaltenAlarmBewegungsmelder

Voralarmausschalten

Alarmausschalten

AlarmGlasbruchmelder

AlarmGlasbruchmelder

Zustandsautomaten

Page 13: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/13

Mealy- und Moore-Automaten

Voraussetzung Moore:Im jeweiligen Zustand genau eine Aktivität für die Zeitdauer des ZustandesStoppuhr-Beispiel nicht direkt als Moore-Automat darstellbar

Äquivalenz:Mealy- und Moore-Automaten sind äquivalent und können jeweils ineinander überführt werden:Moore -> Mealy: An jeden Zustandsübergang wird die Ausgabe gekoppelt, die vom Zustand generiert wird.

Zustandsautomaten

Page 14: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/14

Beispiel Drehkranversuch im Automatisierungslabor

Zustandsautomaten

Page 15: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/15

Beispiel Drehkranversuch im Automatisierungslabor

Zustandsautomaten

Page 16: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/16

Beispiel Drehkranversuch im Automatisierungslabor

Zustandsautomaten

Page 17: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/17

Beispiel Drehkranversuch im Automatisierungslabor

Zustandsautomaten

Page 18: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/18

Kran nachlinks drehen

Start Kran absenken

Aufnahme-position

Start-taste

Kranunten

Werkstückaufnehmen

KeinVakuum

Vakuum Werkstückanheben

Krananheben

Kranoben

Kranoben

Kran nachrechts drehen

Ablage-position

Werkstückabsenken

Kran unten

Werkstückablegen

KeinVakuum

FehlerKranoben

Fehler-anzeige

10 Sek.abgelaufen

Kran anheben Kran auf

Kran nach links drehen Kran links

Start Grüne Lampe an

Kran absenken Grüne Lampe aus; Kran ab

Werkstück aufnehmen Vakuum an; warte 500 ms

Werkstück anheben Kran auf

Kran rechts drehen Kran rechts

Werkstück absenken Kran ab

Werkstück ablegen Vakuum aus

Fehler Vakuum aus; Kran auf

Fehleranzeige Weisse Lampe blinken

Zustand Aktivität do/

Not-Aus

Not-Aus Not-Aus-Aktivität

Diagramm des Drehkran-Versuchsim Automatisierungslaboraus Platzgründen nicht in normgerechter Notation:Darstellung als Moore-Automat, aberAktivitäten sind bis auf „Fehler-anzeige“ eigentlich Aktionen.Kästen nicht abgerundet.Zustandsbezeichnungen wie Akti-vitätsbezeichnungen.

Zustandsautomaten

Page 19: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/19

Akt. Zustand Ereignis Aktion Folgezustand

Kran anheben Kran oben Kran auf Kran nach links drehen

Kran nach links drehen

Aufnahmeposition Kran links Start

Start Starttaste Grüne Lampe an Kran absenken

Kran absenken Kran unten Grüne Lampe aus; Kran ab

Werkstück aufnehmen

Werkstück aufnehmen

Vakuum Vakuum an; warte 500 ms

Werkstück anheben

Kein Vakuum Fehler

Werkstück anheben

Kran oben Kran auf Kran rechts drehen

Kran rechts drehen Ablageposition Kran rechts Werkstück absenken

Werkstück absenken

Kran unten Kran ab Werkstück ablegen

Werkstück ablegen Kein Vakuum Vakuum aus Kran anheben

Fehler Kran oben Vakuum aus; Kran auf

Fehleranzeige

Fehleranzeige 10 s abgelaufen Weisse Lampe blinken

Kran anheben

Zustandstabelle für den Drehkranversuch im Automatisierungslabor

Zustandsmatrizen auf einem Blatt nicht darstellbar (11x12x2 bzw. 11x11x2 Elemente)

Zustandsautomaten

Page 20: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/20

Harel-Automaten

Konzeptionelle Erweiterung der Zustandsautomaten:

• Hybride ZustandsautomatenKombination von Mealy- und Moore-Automaten

• Bedingte ZustandsübergängeAuslösung durch Ereignis in Kombination mit einem Wächter (Bedingung)

• Hierarchische ZustandsautomatenSchachtelung von Zuständen (Unterzustände, Substates)

• Zustände mit GedächtnisRückkehr in den zuletzt eingenommenen Unterzustand eines Oberzustandes

• Nebenläufige ZuständeEin Oberzustand besteht aus Unterzuständen, in denen sich das System gleichzeitig befindet.

Zustandsautomaten

Page 21: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/21

Harel-Automaten

UML-Notation

Zustand 1 Zustand 2do/ Aktivität

Ereignis 1

Zustand 4Zustand 3Entry / Aktion 3Exit / Aktion 4

Ereignis 3 [Wächter]

Ereignis 4

AnfangszustandZustandsübergangbzw. Transition

ImplizitesEreignis

Ereignis 2 / Aktion 2

Endzustand Bedingter Übergang (guarded transition)Zustandsübergang findet nur dann statt, wenn zumEintrittszeitpunkt des Ereignisses die Wächterbedingung zutrifft.

Ereignisbezeichner

Moore

Mealy

Zustandsautomaten

Page 22: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/22

Harel-Automaten

Kleines Beispiel für bedingten Übergang: Parkkarten-Zahlautomat

Bereit

Wartet auf Geld

Karte eingeschoben / Betrag anzeigen

Geld eingeworfen [reicht aus] / Karte ausgeben

Geld eingeworfen [reicht nicht aus] /Restbetrag anzeigen

Zustandsautomaten

Page 23: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/23

Harel-Automaten: Aktivitäten und AktionenAktion:

Mit Zustandsübergang verbundenSofortige AusführungKein Zeitintervall (idealisiert)

Aktivität:Mit Zustand verbundenZeitintervallVorzeitig unterbrechbar

Aktionen in Zuständen:Entry action: Beim Übergang in den Zustand (äquivalent zur Beinhaltung der Aktion in allen Transitionen in diesen Zustand)Exit action: Beim Übergang aus dem Zustand (äquivalent zur Beinhaltung der Aktion in allen Transitionen aus diesem Zustand)

Zustand 3do/ Aktivität

entry / Aktion 1exit / Aktion 2

Ereignis 1

Ereignis 4Ereignis 2

Ereignis 3

Zustand 3do/ Aktivität

Ereignis 1 / Aktion 1

Ereignis 4 / Aktion 2Ereignis 2 / Aktion 1

Ereignis 3 / Aktion 2

äquivalent

Zustandsautomaten

Page 24: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/24

Beispielhafte Umsetzung eines Automaten im Automatisierungslabor in AWL

Einfacher Automat:

Zustandsautomaten

Page 25: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/25

Zustandsautomaten

Page 26: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/26

Zustandsautomaten

Page 27: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/27

Zustandsautomaten

Page 28: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/28

Zustandsautomaten

Page 29: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/29

Zustandsautomaten

Page 30: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/30

Harel-Automaten: Hierarchische Automaten

A

B

C

a

b

b

c

d

A

B

C

a

c

d

D

Superstate Substate

b

Ohne Hierarchie Mit Hierarchie

Zustandsautomaten

Page 31: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/31

Harel-Automaten: Hierarchische AutomatenBeispiel Roboter-Kommando Erkennung Start

2. Ziffer

1. Ziffer

Vorzei-chen

RelativAbsolut

Schulter

Rotieren

Schulter

Beugen

„B“ „R“

„S“ „S“

„A“/1

„R“/2 „A“/3

„R“/4

„-“/-„-“/-„+“

„+“

anderesZeichen

Falsches Kommando

Ziffer/Ziffer

Ziffer/Ziffer

Ziffer/Ziffer

Ziffer/ZifferZiffer/Ziffer

anderesZeichen

Falscher Winkel

3. Ziffer

Zustandsautomaten

Page 32: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/32

Harel-Automaten: Hierarchische Automaten

UML-Regeln:

• Jede Verfeinerung besitzt genau einen Anfangszustand.

• Ein Zustandsübergang in einen verfeinerten Zustand entspricht dem Zustandsübergang in den Anfangszustand des verfeinerten Zustands.

• Wird ein verfeinerter Zustand durch einen Zustandsübergang verlassen, dann wird jeder Unterzustand –egal auf welcher Verfeinerungsstufe- verlassen und es werden die entsprechenden exit-Aktionen durchgeführt.

• Wird ein Zustand mit einem rekursiven Zustandsübergang verfeinert, dann wird bei einem erneuten Zustandseintritt der Anfangszustand eingenommen

und die entry-Aktion durchgeführt.

Zustandsautomaten

Page 33: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/33

Harel-Automaten: Hierarchische Automaten

Top-Down-Entwicklung des Zustandsmodells:Modellierung von Oberzuständen („Superstates“)

Beispiel: Modellierung Uhr stellenErweiterung um Datumsanzeige 09:17:46 DI:30:11Knopf 3: Datum/Uhrzeit

Uhrzeit

Datum

Knopf 3 gedrückt /Datum anzeigen

Knopf 3 gedrückt /Normalzeit anzeigen

Von jedem Unterzustand in Uhrzeit wird inden Anfangszustand von Datum übergegangenund umgekehrt.

Uhrzeit

Datum

Knopf 3 gedrückt /Datum anzeigen

Knopf 3 gedrückt /Normalzeit anzeigen

Übergang von Uhrzeit nach Datum nur auseinem bestimmten Unterzustand von Uhrzeit,desgleichen für Datum nach Uhrzeit.

Variante 1 Variante 2

Zustandsautomaten

Page 34: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/34

Harel-Automaten: Hierarchische AutomatenErweiterung „Uhr stellen“

Normal-zeit

Min.stellen

Sek.stellen

Std.stellen

Start/Initialisierung

Knopf 1 gedrückt/Stunden blinkenKnopf 2

gedrückt/Stundenerhöhen

Knopf 2 gedrückt /Minuten erhöhen

Knopf 2gedrückt/Sekundenstellen

Knopf 1 gedrückt/Minuten blinken

Knopf 1 gedrückt/Sekunden blinken

Knopf 1 gedrückt/Normalzeit anzeigen

Datum

Tagstellen

Monatstellen

Wo.-Tagstellen

Knopf 1 gedrückt/Wo.-Tag blinkenKnopf 2

gedrückt/Wo.-Tagerhöhen

Knopf 2 gedrückt /Tag erhöhen

Knopf 2gedrückt/Monaterhöhen

Knopf 1 gedrückt/Tag blinken

Knopf 1 gedrückt/Monat blinken

Knopf 1 gedrückt/Datum anzeigen

Knopf 3 gedrückt / Datum anzeigen Knopf 3 gedrückt / Normalzeit anzeigen

Zustandsautomaten

Page 35: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/35

Harel-Automaten: Hierarchische AutomatenTop-Down-Entwicklung des Zustandsmodells:Modellierung von Oberzuständen („Superstates“)

„Stubbed transition“

1. Übergang in anderen Oberzustand nur aus bestimmten Unterzuständen des aktuellen Oberzustands

2. Übergang aus dem aktuellen Oberzustand nur in bestimmte Unterzustände des neuen Oberzustands

Beispiel Roboter-Kommando Erkennung

Kommando

Winkel

„A“/1 „A“/3 „R“/2 „R“/4

AnderesZeichen

AnderesZeichen

Falsches Kommando

Falscher Winkel

Zustandsautomaten

Page 36: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/36

Harel-Automaten: Hierarchische Automaten

Erlaubte Zustandsübergänge

Zwischen Zuständen gleicher Ebenez.B. von D nach E

In einen Unterzustand,z.B. von A nach D

Aus einem Unterzustand,z.B. von E nach A

In einen Oberzustand,z.B. von A nach B(dessen Anfangszustand C)

Aus einem Oberzustand,z.B. von B nach ABei Ereignis b wird jeder der Unterzustände C, D oder E verlassen.

A

C

D E

B

a

b

c

d

e

f

Zustandsautomaten

Page 37: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/37

Hierarchische Automaten: Einfaches Beispiel

Drehkran (Ausschnitt)

Fehler

Fehleranzeige

Weisse Lampe an

Weisse Lampe aus

T5: 0.5sT6: 0.5s

Kran oben

Kran anhebenT4: 10s

Zustandsautomaten

Page 38: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/38

Beispiel

„a“ erstmals: Übergang in Unterzustand „C“Dann „c“: Übergang in Unterzustand „D“Dann „b“: Übergang in Zustand „A“Dann „a“: Übergang in Unterzustand „D“ (letzter Unter-

zustand von B)

Harel-Automaten: Zustände mit Gedächtnis

Eigenschaft: Bei Übergang in einen Oberzustand mit UnterzuständenRückkehr in den zuletzt eingenommenen Zustand.

A C D

Ba

b

cd

HGedächtnis-Markierung (History)

Zustandsautomaten

Page 39: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/39

Harel-Automaten: Nebenläufige ZuständeEigenschaft: Ein Oberzustand kann aus Unterzuständen bestehen, in denen sich das

System gleichzeitig befindet.

Beispiel

Oberzustand Y mit nebenläufigen Komponenten A und DEintritt in Y: System befindet sich gleichzeitig in B und F: (B,F).„a“: Simultane Übergänge B nach C und F nach G: (B,F) -> (C,G).„b“: (B,F) -> (B,E)„c“: (in G) Übergang nur, wenn Komponente D in Zustand G.

Nebenläufigkeitsmarkierung

B

C

E

a c(in G)

G

F

b

e

a

d

A D

Y

Synchr.

Zustandsautomaten

Page 40: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/40

SelbsttestInitialisierungentry/ Display Reset do/ Parameter ladenexit/ a/c-Typ anzeigen

Suchphaseentry/ ok anzeigendo/ a/c suchen

Trackingphasedo/ Pos messenund anzeigen;v messen;Status anzeigen(Stop, too short,too far)exit/ on-blockMeldung, Bild

FlugzeugtypfehlerEntry/ Fehlermeldungdo/ Stop anzeigenExit/Display Reset

Selbsttestfehler

Flugzeug det. [nicht gemeldeter Typ]

Flugzeug det. [gemeldeter Typ]

vFlugzeug < 0

Chocks on

Trackingfehler

On-block phasedo/ Stopanzeigen;Pos.messen;v messen;exit/ Display Reset

Chocks offPushback-Detektiondo/ Pos. messen;v messenExit/ Pushback melden

WartephaseInit

Parametergeladen

t > sched.arr. time

Markenerkennungzu schlecht

Markenerkennung ok

Fehlerquittierung

ÜberfälligfehlerEntry/ Fehlermeldungdo/ Stop anzeigenExit/Display Reset

a/c lost

Beispiel DGS

Parameter: a/c-Modell, sched. arr. Time, Gate Modell

Zustandsautomaten

Page 41: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/41

Übung 1

U1: Zeichne das Zustandsdiagramm des Stapelmagazin-Versuches des Automatisierungslabors.

U2: Entwickle Stoppuhr mit zwei Knöpfen, die nicht gleichzeitig gedrückt werden können. Die Stoppuhr soll folgende Funktionen haben.

1. Stoppuhr kann ein- und ausgeschaltet werden2. Stoppuhr kann gestartet und gestoppt werden. Nach Stopp wird die

zwischen Start und Stopp vergangene Zeit angezeigt.3. Nach dem Start kann eine Zwischenzeit genommen werden, während

die Uhr im Hintergrund weiterläuft. Dann kann entweder die Zwischenzeit oder die seit Start abgelaufene Gesamtzeit angezeigt werden. Ferner kann die im Hintergrund weiterlaufende Zeit gestoppt werden, ohne dass sich die Anzeige ändert.

4. Die zwischen Start und Stopp vergangene Zeit kann bei gestoppter Uhr und bei Anzeige der Gesamtzeit auf Null zurückgesetzt werden.

U3: Entwirf die Zustandsübergangstabelle und die beiden Arten der Zustandsmatrizen für das Zustandsübergangsdiagramm aus U1.

Zustandsautomaten

Page 42: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/42

Übung 1

Lösung:

Zustandsautomaten

Page 43: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/43

Übung 2

Modellieren Sie folgende vereinfachte Aufzugsteuerung als Harel-Automat: Der Aufzug fährt zwischen zwei Stockwerken S1 und S2. Dort gibt es jeweils einen Druckknopf D1 und D2, mit dem der Aufzug angefordert werden kann sowie eine Tür T1 bzw. T2 zum Betreten des Aufzugs mit jeweils einer Lichtschranke L1 und L2, welche Menschen in der Tür detektieren, und den Sensoren T1z bzw. T2z und T1o bzw. T2o, der signalisiert, ob die jeweilige Tür zu oder offen ist. In jedem Stockwerk ist ein Niveausensor N1 bzw. N2, der ein Signal gibt, wenn der Kabinen- und der Stockwerkboden auf gleicher Höhe sind. In der Aufzugkabine befindet sich ein Druckknopf F, mit dem die Fahrt veranlasst werden kann. In Bereitschaft steht der Aufzug mit geöffneter Tür in S1. Wird F gedrückt, wird die Tür geschlossen und der Aufzug fährt danach nach S2. Nach Erreichen von S2 wird die Tür geöffnet. Wird danach wiederum F gedrückt, läuft der Vorgang umgekehrt ab. Sonst wartet der Aufzug mit geöffneter Tür in S2.Steht der Aufzug mit geöffneter Tür in einem Stockwerk und wird dann der Anforderungs-Druckknopf des anderen Stockwerks gedrückt, läuft der Vorgang analog wie oben ab.Wenn die Lichtschranke einer schließenden Tür anspricht, wird der Schließvorgang abgebrochen und die Tür wieder geöffnet.

Zustandsautomaten

Page 44: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/44

Übung 2

Lösung:

Wartet in S1

Wartet in S2

Tür1 schließt Tür1 öffnet

Aufzug fährt nach S2

Tür2 öffnet

F gedrückt

D2 gedrückt

L1T1o

T1z

N1

T2o

Tür2 schließtTür2 öffnet

Aufzug fährt nach S1

Tür 1 öffnet

F gedrücktD1 gedrückt

L2T2o

T2z

N2

T1o

Zustandsautomaten

Page 45: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/45

Übung 3Modellieren Sie das Softwaresystem für die Steuerung einer automatischen Personenschleuse als Zustandsautomaten:

Die Schleuse soll im Normalfall durch eine einzige Person von „außen“ nach „innen“ durchquert werden. Der Boden von Bereich „A“ ist mit einer Kontaktmatte belegt, die ein Signal gibt, wenn eine Person darauf steht. Der Boden des Bereichs „B“ besteht statt dessen aus einer Waage, mit der anhand einer durch Wartungspersonal einstellbaren Gewichtsschwelle entschieden werden kann, ob sich wirklich nur eine Person in Bereich „B“ befindet.

Im Bereich „B“ ist ein Ausweisleser untergebracht, der die Ausweisdaten der Person in „B“ liest und an ein Leitsystem weitergibt. Das Leitsystem gibt ein Signal zurück, ob der Ausweis zum Eintreten nach „innen“ berechtigt. Ferner ist im Bereich „B“ eine Anzeige angebracht, die „Eintreten“, „Ausweis“, „zurück“ und „weiter“ anzeigen kann, um zum Betreten, zur Eingabe des Ausweises oder zum Verlassen der Schleuse nach „außen“ oder nach „innen“ aufzufordern.Das zu modellierende Softwaresystem soll durch Öffnen und Schließen der Türen sicherstellen, dass nur eine einzige berechtigte Person von „außen“ nach „innen“ passieren kann.Grundzustand: „A“ und „B“ sind leer, Tür 1 und Tür 2 sind zu, Die Anzeige zeigt „Eintreten“.Normaler Ablauf: Eine Person betritt „A“. Dann öffnet Tür 1, wenn außerdem „B“ leer und Tür 2 geschlossen ist. Person betritt „B“, Tür 1 schließt. Ist der Gewichtswert kleiner als der Schwellwert, zeigt die Anzeige „Ausweis“ an. Wird nach 30 Sekunden der Ausweis in den Leser gegeben, erfolgt das Auslesen und die Übertragung der Ausweisdaten an das Leitsystem. Ist die Rückmeldung durch das Leitsystem positiv, wird Tür 2 geöffnet und die Anzeige zeigt „weiter“ an. Hat die Person „B“ verlassen, wird Tür 2 geschlossen und die Anzeige auf „Eintreten“ geschaltet. Ausnahmeablauf: Wie zuvor bis zur Gewichtsprüfung. Gewicht der Person in B ist größer als der Schwellwert oder das Ergebnis der Ausweisprüfung ist negativ: Tür 1 öffnet und die Anzeige zeigt „zurück“. Nach Verlassen von „B“ wird Tür 1 geschlossen und es wird „Eintreten“ angezeigt.

Zustandsautomaten

Page 46: Vorlesung Automatisierungsprojekte Seite 4/1 Zustandsautomat (endlicher Automat) ein Objekt, dessen Verhalten nicht nur durch die momentanen Eingaben,

Vorlesung Automatisierungsprojekte Seite 4/46

Übung 3: Lösung

Zustandsautomaten