Was ist eine State Machine?
Eine State Machine (oder endliche Zustandsmaschine) ist eine Darstellung eines ereignisgesteuerten, reaktiven Systems, das in einen anderen Zustand übergeht, sobald die für den Zustandswechsel maßgebliche Bedingung erfüllt ist. Die meisten State Machines werden mithilfe von Diagrammen dargestellt, können jedoch auch textuell repräsentiert werden.
Zum Aufbau einer State Machine werden drei grundlegende Komponenten benötigt:
- Zustände: Verschiedene Schritte, Aufgaben oder Betriebsmodi, die den Prozess voneinander abgrenzen.
 - Übergänge: Methoden zum Übergang zwischen verschiedenen Zuständen.
 - Aktionen: Ereignisse oder Änderungen, die während der Ausführung einer State Machine auftreten.
 
Grundkomponenten einer State Machine sind in automatischen Getriebesystemen zu finden, die mit Stateflow modelliert wurden. (Siehe Beispiel)
Frühe State Machines dienten Mathematikern und Informatikern zur Beschreibung von Rechensystemen. Sie vereinfachten komplexe Logik zu einer besser handhabbaren grafischen Darstellung. Verglichen mit textuellen Alternativen macht die visuelle Darstellung einer State Machine deutlicher, wie verschiedene Systemzustände zueinander in Beziehung stehen und welche Bedingungen einen Übergang oder eine Aktion auslösen. Im Laufe der Zeit haben sich die Einsatzgebiete von State Machines auf die Modellierung komplexer Logik in dynamischen Systemen wie Luftfahrzeugen, Automobilen, Robotern und Handys erweitert.
Beispiele für Abläufe mit komplexer Logik sind:
- Planung einer Abfolge von Aufgaben oder Schritten für ein System
 - Definition von Logik zur Fehlererkennung und - isolierung sowie zur Wiederherstellung
 - Überwachung des Umschaltens zwischen verschiedenen Betriebsmodi
 
Mit einer State Machine lässt sich eine vereinfachte Version der Automatikgetriebesteuerung eines Fahrzeugs darstellen. Das folgende Beispiel enthält vier Betriebszustände mit den Bezeichnungen Gang 1, Gang 2, Gang 3 und Gang 4. Analog zu den dargestellten Gängen sind die Zustände in der State Machine exklusiv, d. h. jeweils nur ein Zustand aktiv. Diese State Machine überwacht die Fahrzeuggeschwindigkeit und wechselt die Gänge, sobald die Geschwindigkeitsgrenze des jeweiligen Gangs erreicht ist.
Eine State Machine eines automatischen Getriebes in Stateflow wechselt die Gänge, wenn die Geschwindigkeit eine bestimmte Schwelle erreicht. (Siehe Beispiel)
Mealy- und Moore-Maschinen
Es gibt zwei gebräuchliche Standards, die beim Entwurf von Zustandsmaschinen in Betracht kommen:
- Mealy: Ausgänge sind eine Funktion von Zustand und Eingängen, die in Form von wechselnden Ausgängen dargestellt werden.
 - Moore: Ausgänge hängen allein vom Zustand ab und werden in den Zuständen selbst dargestellt.
 
		
	
						
						
					
					
					
	Eine State Machine eines Warenautomaten, der mit Mealy-Semantik modelliert wurde, legt fest, ob ein Getränk während des Übergangs ausgegeben wird. (Siehe Stateflow-Beispiel)
		
	
						
						
					
					
					
	Eine State Machine einer Ampel, die mit Moore-Semantik modelliert wurde, legt die Ausgänge innerhalb der Zustände für die Signalfarbe fest. (Siehe Stateflow-Beispiel)
Für mehr Informationen über die Semantiken und wann diese implentiert werden sollten, siehe Überblick über Mealy- und Moore-Automaten.
Harel-Konzepte mit State Machines
Mit zunehmender Komplexität der Softwarekomponenten mussten sich auch die grundlegenden Bausteine von State Machines weiterentwickeln. In den 1980er-Jahren identifizierte Dr. David Harel zusätzliche Konzepte, um komplexe Details von Systemen präzise abzubilden:
- Die Hierarchie führt einen übergeordneten Zustand (bzw. Zustände) ein, um das Design weiter zu strukturieren und zu gliedern.
 - Die Parallelität oder Orthogonalität ermöglicht es, dass ein einziges Diagramm mehrere Zustände enthält, die gleichzeitig ablaufen.
 - Das Event Broadcasting ermöglicht den Informationsaustausch zwischen zwei unabhängigen Zuständen oder State Machines.
 
Werden diese Konzepte mit State Machines kombiniert, bezeichnet man die Darstellungen als Harel-Statecharts.
Elemente eines Harel-Statecharts sind notwendig, um die zusätzliche Komplexität eines Sicherheitssystems zu definieren. (Siehe Beispiel)
State Machines mit Stateflow
Stateflow® ist eine grafische Programmierumgebung, die auf endlichen State Machines basiert. Beginnen Sie mit einfachen Zustandsdiagrammen und entwickeln Sie daraus State Machines, um komplexe Logik in dynamischen Systemen zu modellieren. Sie können State Machines sowie Zustandsübergangsdiagramme, Flussdiagramme, Zustandsübergangstabellen und Wahrheitstabellen entwerfen. Diese Vorgehensweise unterstützt Sie bei der Entwicklung von Anwendungen für Überwachungssteuerung, Aufgabenplanung, Fehlermanagement, Kommunikationsprotokolle, Benutzeroberflächen und Hybridsysteme.
State Machines in Stateflow lassen sich simulieren, um ihr Verhalten unter verschiedenen Bedingungen zu bewerten. Zum Beispiel kann eine State Machine, die einen Aufzug modelliert, simuliert werden, um zu sehen, wie sie reagiert, wenn verschiedene Knöpfe betätigt werden oder ein Fehler auftritt. Durch die Simulation der State Machine können Sie sicherstellen, dass die Logik wie erwartet funktioniert, fehlende Bedingungen erkennen und verschiedene Szenarien testen.
Für mehr Informationen über die Modellierung von State Machines, siehe Stateflow und Simulink®. Für den Einstieg in die Erstellung von State Machines in Stateflow, siehe Modellieren endlicher Zustandsmaschinen.
Beispiele und Erläuterungen
Software-Referenz
Siehe auch: Regelungslogik, Zustandsdiagramm, Regelungssysteme, Embedded Systems, FDIR, Agiles Model-Based Design, modellbasierte Tests, PackML, Modellierung und Simulation, Simulationssoftware, Model-Based Systems Engineering (MBSE)