- Virtueller endlicher Automat
-
Ein endlicher Automat, definiert in virtueller Umgebung, heißt Virtueller Endlicher Automat (eng. Virtual Finite State Machine, VFSM). VFSM ist eine Spezifikationstechnik, eingesetzt, um das Verhalten von logischen Systemen mit Hilfe von Eingabe-Steuerungseigenschaften und Ausgabe-Aktionen zu beschreiben.
VFSM führt ein Logik-Ausführungsmodell ein und ermöglicht die Realisierung einer ausführbaren Spezifikation. Diese Technologie wird hauptsächlich in komplexen Maschinensteuerungen, Messtechnik und Telekommunikationsanwendungen eingesetzt.
Inhaltsverzeichnis
Steuerungseigenschaften
Eine Variable in der Umgebung einer VFSM kann einen oder mehrere Werte haben, die relevant für die Steuerung sind – dann handelt es sich um eine Eingabevariable. Diese Werte werden als Steuerungseigenschaften dieser Variable bezeichnet. Die Steuerungseigenschaften sind nicht notwendigerweise spezifische Datenwerte, sondern meistens bestimmte Zustände der Variable. Zum Beispiel kann eine digitale Variable entsprechend der möglichen booleschen Datenwerte die Steuerungseigenschaft WAHR oder FALSCH, aber auch UNBEKANNT haben. Eine numerische analoge Variable hat Steuerungseigenschaften wie NIEDRIG, GUT, HOCH oder UNBEKANNT entsprechend dem vorgegebenen Wertebereich. Ein Timer wird ÜBERLAUF als die wichtigste Steuerungseigenschaft haben, andere könnten STEHT oder LÄUFT sein.
Aktionen
Eine Variable in der Umgebung einer VFSM kann durch Aktionen aktiviert werden – dann handelt es sich um eine Ausgabe-Variable. Zum Beispiel kennt eine digitale Variable zwei Aktionen: Wahr und Falsch. Eine numerische analoge Variable kennt eine Aktion: Setzen. Ein Timer, der zugleich eine Eingabe- und Ausgabevariable ist, kann aktiviert werden durch Aktionen wie Start, Stopp oder Zurücksetzen.
Virtuelle Umgebung
Die Virtuelle Umgebung charakterisiert eine Umgebung, in der die VFSM wirkt und die durch drei Mengen von Namen definiert ist:
- Eingabenamen, repräsentiert durch die Steuerungseigenschaften aller Variablen
- Ausgabenamen, repräsentiert durch alle möglichen Aktionen, die von den Variablen akzeptiert werden
- Zustandsnamen, wie für die Zustände der FSM definiert
Die Eingabenamen werden benutzt um virtuelle Bedingungen zu bauen und um Zustandsübergänge und Eingabeaktionen zu kontrollieren. Die virtuellen Bedingungen werden unter Zuhilfenahme der Positive Logic Algebra erstellt. Die Ausgabenamen werden benutzt, um Aktionen auszulösen (Eingangsakationen, Ausgangsaktionen, Eingabeaktionen und Übergangsaktionen).
Positive Logic Algebra
Um virtuelle Bedingungen zu bauen, werden die booleschen Operatoren AND und OR verwendet. Der NOT-Operator ist nicht erlaubt, weil die Eingabenamen nicht negiert werden können, auch wenn sie offensichtlich boolesche Variablen beschreiben. Sie existieren einfach oder sie existieren nicht.
VFSM-Ausführungsmodell
Eine Untermenge aller definierten Eingabenamen, die nur in einer bestimmten Situation existieren kann, wird als Virtuelle Eingabe bezeichnet (eng. Virtual Input, VI). Zum Beispiel, die Temperatur kann entweder nur zu niedrig, gut oder zu hoch sein. Obwohl drei Eingabenamen definiert sind, kann nur einer von Ihnen in einer bestimmten Situation existieren. Dieser Name gehört zum VI.
Eine Untermenge aller definierten Ausgabenamen, die nur in einer bestimmten Situation existieren kann, wird als Virtuelle Ausgabe bezeichnet (eng. Virtual Output, VO). VO besteht aus den aktuellen Aktionen der VFSM.
Die Spezifikation des Verhaltens, die sämtliche Einzelheiten eines Zustandes der VFSM beinhaltet, wird durch eine Zustandstabelle beschrieben.
Die VFSM-Ausführung wird durch VI und den aktuellen Zustand bestimmt. Unter Berücksichtigung der Spezifikation des Verhaltens des aktuellen Zustandes wird VO gesetzt.
Die Grafik zeigt eine mögliche Implementierung der VFSM-Ausführung. Ausgehend von der Implementierung ergibt sich ein typisches Verhalten des Systems.
Zustandstabelle
Eine Zustandstabelle definiert alle Einzelheiten eines Zustandes einer VFSM. Sie besteht aus drei Spalten: in der ersten Spalte werden Zustandsnamen benutzt, in der zweiten Spalte die virtuellen Bedingungen aus Eingabenamen unter Zuhilfenahme der Positive Logic Algebra gebaut und in der dritten erscheinen die Ausgabenamen.
Zustandsname Bedingung(en) Aktion(en) Aktueller Zustand Eingangsaktion Ausgabeaktion(en) Ausgangsaktion Ausgabeaktion(en) Virtuelle Bedingung Ausgabeaktion(en) ... ... Nächster Zustand Virtuelle Bedingung Ausgabeaktion(en) Nächster Zustand Virtuelle Bedingung Ausgabeaktion(en) ... ... ... Zustandstabelle Die Tabelle wird wie folgt gelesen: die ersten zwei Zeilen definieren die Ein- und Ausgangsaktionen des aktuellen Zustandes. Die folgenden Zeilen repräsentieren die Eingabeaktionen. Die Zeilen, in denen der nächste Zustand definiert ist, beschreiben die Zustandsübergänge und die Übergangsaktionen. Alle Felder sind optional. Eine kombinatorische VFSM wird gebaut, indem nur die Zeilen für die Eingabeaktionen benutzt werden. Die Übergangsaktionen können durch entsprechenden Einsatz der anderen Aktionen ersetzt werden.
Tools
- StateWORKS – Eine Implementierung des VFSM Konzeptes (englisch)
Referenzen
- Ferdinand Wagner: Modeling Software with Finite State Machines: A Practical Approach, Auerbach Publications, 2006, ISBN 0-8493-8086-3
- VFSM Executable Specification, CompEuro 1992 Proceedings (englisch; PDF-Datei; 439 kB)
- The Virtual Finite State Machine Design and Implementation Paradigm, Bell Labs Technical Journal, 1997 (englisch)
- A Modern Real-Time Software Design Tool: Applying Lessons from Leo, IEE journal Computing and Control Engineering, 2003 (englisch; PDF-Datei; 156 kB)
- Modelling and Building Reliable, Re-usable Software., Engineering of Computer -Based Software 2003 (ECBS'03) Proceedings (englisch; PDF-Datei; 292 kB)
- Closing the Gap Between Software Modelling and Code, Engineering of Computer -Based Software 2004 (ECBS'04) Proceedings (englisch; PDF-Datei; 152 kB)
- State machine misunderstandings, IEE journal Computing and Control Engineering, 2004 (englisch; PDF-Datei; 46 kB)
Wikimedia Foundation.