Ein weiteres Experiment ist, eine Steuerung für unsere Modelleisenbahn
(vielen Dank an Harald)
zu entwickeln, die Echtzeitanforderungen genügen soll. Weil das
Schienennetz unsere Modelleisenbahn doch relativ komplex ist und um
den Anspruch dieses Experiments etwas zu erhöhen, soll ein generisches
Schienenmodell entworfen werden, dass es erlaubt, während des Betriebs
zusätzliche Strecken einzubinden und auszuschließen. Die Ansteuerung
der Eisenbahnanlage selbst erfolgt über den Trixbus, ein speziell für
die Steuerung von Modellbahnanlagen entworfener Bus, der die Anlage
über eine serielle Schnittstelle zugänglich macht.
Aufgabenstellung 1
Die erste Aufgabenstellung umfasst vor allem die Steuerung und
Überwachung des Streckennetzes. Die Steuerung soll mehreren Zügen
sicher verschiedene Routen auf dem Gleisnetz zuweisen können. Die
Routen sollen dabei nach Möglichkeit nicht fest vorgegeben, sondern
dynamisch unter der Angabe eine Ziel und eines Endpunkts berechnet
werden. Zur Sicherheit soll sich dabei auf einem Gleisabschnitt zu
einem Zeitpunkt nur ein Zug befinden, oder es muss ein gewisses
Mindestabstand zwischen zwei Zügen garantiert werden können. Weiter
Ausbaustufen der Steuerung umfassen das Parken bzw. in Betrieb nehmen
verschiedener Züge, sowie das Sperren oder das Freigeben bestimmter
Gleisabschnitte.
Gruppengröße:
3
Ziele:
Kontrolle eines Zuges auf einem unveränderlichen Streckennetz
Kontrolle mehrerer Züge auf einem unveränderlichen Streckennetz
Kontrolle eines Zuges auf einem veränderlichen Streckennetz
Kontrolle mehrerer Züge auf einem veränderlichen Streckennetz
Aufgabenstellung 2
Eine zweite Gruppe soll ein einfaches Bedienpult für die Eisenbahn
entwickeln. Voraussetzung für die Bearbeitung dieser Aufgabenstellung
ist natürlich, dass eine Gruppe die Aufgabenstellung 1 bearbeitet. Vor
allem soll es möglich sein, den Zügen neue Routen zuzuweisen, also
ihre Start- und Zielpunkte zu verändern. Darüber hinaus soll das
Bedienpult es ermöglichen, die Variabilität der Steuerung auch
wirklich zu nutzen, d.h. verschiedene Züge in einen Parkzustand zu
überführen bzw. Gleisabschnitte freizugeben oder stillzulegen. Wie in
vielen realen Systemen gefordert, soll auch dieses Bedienpult eine
Not-Aus-Funktion implementieren, d.h. sobald ein bestimmtes
Kommando abgesetzt wurde, soll der normale Betrieb unterbrochen werden
und in einen sicheren Zustand gezwungen werden. Eine weiter Funktion,
die das Bedienpult übernehmen soll, ist eine Überwachungsfunktion und
die Anzeige des Zustands des Systems. Sollte im System ein kritischer
Zustand erreicht werden, soll auch diese Überwachung einen
Not-Aus veranlassen.
Die Realisierung dieses Bedienpults kann selbstverständlich nicht in
völliger Isolation erfolgen, sondern muss in Kooperation mit der
Aufgabenstellung erfolgen. Man muss beispielsweise gemeinsam eine
Lösung finden, wie das Not-Aus-Kommando in der Steuerung
behandelt werden soll, oder welche Information man zur Überwachung des
Systems benötigt. Das Bedienpult soll über TTCAN/CAN oder die serielle
Schnittstelle mit der eigentlichen Steuerung kommunizieren.