PDV und Robotik / Lehre / PMfE im SS 2007 / Aufgabe 5


Aufgabe 5 - Redundante Steuerung

Lernziel:
Ausfalltoleranz
hot standby

Unterlagen:
Beschreibung der Ada-Umgebung
Ada Language Reference Manual
Beschreibung der Modelleisenbahn und Ansteuerung
Ergebnisse aus Aufgabe 4


Aufgabenstellung

Bisher ist der automatische und störungsfreie Zugverkehr gewährleistet, solange Störungen nur an der Eisenbahn auftreten.

Die Tatsache, dass der ganze Zugbetrieb zum Erliegen kommt, wenn ein Rechner ausfällt, ist wenig befriedigend, denn entweder fahren die Lokomotiven ohne Steuerung weiter bis etwas passiert oder die Lokomotiven bleiben stehen. Der erste Fall ist gefährlich, denn die Lokomotiven werden irgendwann zusammenstoßen, der zweite Fall ist unschön, denn es kann noch sehr weit bis zum nächsten Bahnhof sein.

Daher soll die Steuerung der Eisenbahn mit zwei Rechnern erfolgen, so dass der Zugverkehr auch beim Ausfall eines Rechners nicht unterbrochen wird. Fällt ein Rechner aus, soll dies vom anderen Rechner bemerkt und die Steuerung der Eisenbahnanlage von ihm übernommen werden.

Vorschlag zum Vorgehen zur Lösung der Aufgabe

Mit der Steuerung aus der Aufgabe 3 ist es möglich, zwei Lokomotiven ohne Kollisionen ihren Fahrplan fahren zu lassen. Da beide Rechner nichts anderes machen, als die Eisenbahn zu steuern, ist es denkbar, ein hot-standby-Verfahren anzuwenden. Die Steuerung ist dann wie folgt zu verändern bzw. zu erweitern:

Folgende vereinfachende Annahmen zum Rechnerausfall werden gemacht:

Der Zustand des gesamten Systems, also welcher Rechner aktiv ist, welcher Rechner passiv ist, wie gesteuert wird, usw. muß anhand von Ausgaben an den Konsolen der Prozessrechner nachvollzogen werden können. Die in Aufgabe 3 genannten Fehler müssen weiterhin erkannt und behandelt werden.

Übernehmen Sie die Ergebnisse aus Aufgabe 4: Stellen Sie die Lokgeschwindigkeiten zueinander so ein, dass die Summe der Wartezeiten möglichst gering wird. Die Grundgeschwindigkeit kann dabei frei gewählt werden, sollte aber nicht zu schnell sein.

Zur Abgabe der Aufgabe siehe die Hinweise zu Programmieraufgaben auf der Hauptseite der Lehrveranstaltung.