Endliche Automaten sind ein zentrales Konzept der Informatik. Darunter wird eine Modellierung eines Systems durch eine endliche Zahl von Zuständen verstanden. Übergänge von einem Zustand in einen anderen werden von (äußeren) Bedingungen ausgelöst und in der Regel von einer Aktion begleitet.
Endliche Automaten haben bei der Entwicklung von Compilern (‚Übersetzern‘) für Computersprachen eine zentrale Rolle gespielt. Sie eignen sich jedoch ebenfalls hervorragend als „Programmiermodell“ für eingebettete Systeme (siehe Ferdinand Wagner, Ruedi Schmuki, Thomas Wagner, Peter Wolstenholme: Modeling Software with Finite State Machines. A Practical Approach. CRC Press, 2006). [Anm.: Ein faszinierendes und obendrein kostenloses Lernsystem für Schulkinder, das auf Endlichen Automaten basiert, ist Kara – für junge Programmiereinsteiger wärmstens zu empfehlen…]
Ein solches Steuerungssystem ist auch unser fischertechnik TX(T) Controller.Zustandsübergänge können hier nur von einem der acht Eingänge (und ggf. angeschlossenen I²C-Sensoren) ausgelöst werden, daher muss ein Zustandsübergangsdiagramm, mit dem ein endlicher Automat beschrieben wird, maximal acht Zustandsübergänge berücksichtigen.
Ein schönes Beispiel für eine solche Modellierung ist der „Spurfolger“ – ein kleiner Fahrroboter, der einer auf dem Untergrund aufgemalten schwarzen Linie folgen soll.

Die Zustandsübergänge im Zustandsübergangsdiagramm des Spurfolgers in der Abbildung werden vom fischertechnik-Spursensor ausgelöst: sind beide Werte 0, befindet sich der Roboter auf der Spur und kann geradeaus fahren. Wird einer der Werte 1, ist der Spurfolger nach rechts bzw. links von der Spur abgekommen, und der Roboter muss gegensteuern. Werden beide Werte 1, hat der Roboter die Spur verloren.
ROBO Pro unterstützt die Programmierung von Endlichen Automaten damit, dass ein Unterprogramm mehrere Ausgänge haben kann. Programmiert man jeden Zustand (inklusive Aktion) als Unterprogramm, kann die Sensorabfrage und -auswertung im Unterprogramm erfolgen und den anschließenden Zustandsübergang durch den Ausgang festlegen. Das ROBO Pro-Hauptprogramm ähnelt dann erstaunlich dem ursprünglichen Zustandsübergangsdiagramm:

Programmiert als Endlicher Automat werden die meisten Steuerungsanwendungen in ROBO Pro sehr übersichtlich – und auch für Dritte sehr leicht nachvollziehbar. Weitere Erläuterungen zu Endlichen Automaten mit ROBO Pro-Beispielen finden sich in der ft:pedia 3/2014 (Dirk Fox: Endliche Automaten, S. 42-50).
(Weiter zu Teil 8: I²C)
kommentieren