Wieso RoboPro eine tolle Entwicklungsumgebung ist (Teil 7: Endliche Automaten).

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.

Zustandsübergangsdiagramm eines (einfachen) Spurfolgers

Zustandsübergangsdiagramm eines (einfachen) Spurfolgers

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.

RoboPro 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 RoboPro-Hauptprogramm ähnelt dann erstaunlich dem ursprünglichen Zustandsübergangsdiagramm:

Spurfolger als Endlicher Automat in RoboPro

Spurfolger als Endlicher Automat in RoboPro

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

Advertisements

kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: