Ein Fahrplan fuer die Gartenbahn
Die Frage nach einer Automatisierung des Betriebs stellte sich, nachdem sich die Eigenentwicklung von Hardware und Software zur Steuerung der Modellbahn im Garten auf Basis eines iPAQs und eines SingleChip PCs im Betrieb bewaehrt hatte. Eine Automatisierung mit den vorhandenen Mitteln erschien machbar...
Was generell es zu automatisieren galt, findet sich unter Gartenbahn und deren Steuerung.
Da die Entwicklung der HTML-Benutzeroberflaeche fuer die Gartenbahnsteuerung mittels des iPAQs auf meinen VMS Maschinen stattgefunden hatte, lag nichts naeher, als diese prozessorientierte Umgebung auch fuer eine automatische Steuerung des Betriebs der Gartenbahn zu nutzen - schliesslich lagen dort schon alle Daten (Geraeteadressen, Funktionsdefinitionen, etc.) herum, die fuer eine Automatisierung noetig waren.
Betriebsablaeufe und deren Logik sollten recht simpel mit "DCL", der (fuer prozessorientierte Zwecke gut geeignete) Kommandozeilensprache des Betriebssystems abzubilden sein. Die Umsetzung in fuer den Webserver des SingleChip PC verstaendliche Befehle sollte durch den command line browser "LYNX" erfolgen.
Bei diesem Prozedere handelt es sich um ein "skript"-gesteuertes Absetzen von parametrisierten HTML-Befehlen zum Empfang durch den SingleChip PC, der in Folge die Endgeraete (Weichen, Beleuchtung, Lokomotiven...) der Gartenbahn steuert.
Diese sollte mit der Abenddaemmerung ein- und mit der Morgendaemmerung wieder ausgeschaltet werden. In Ermangelung eines Daemmerungsschalters mit serieller Schnittstelle oder Netzwerkanschluss, wurde kurzerhand eine Prozedur zur Berechnung der Sonnenauf- und -untergaenge erstellt.
Das Ergebnis in Form des jeweiligen Zeitpunktes wurde als Basis fuer das Scheduling der Ein- und Ausschaltjobs benutzt. Auch das funktionierte reibungslos.
Auf derselben Basis wurde dann eine Prozedur fuer einen Zugumlauf geschrieben, welche die Funktionen von Beschleunigung ueber das Schalten der Weichen sowie der Signale bis hin zur Bremsung des Zuges an einem definierten Punkt beinhaltete. Das Beispiel zeigt, dass ohne jegliche Rueckmeldung gearbeitet wird und ausschliesslich Zeitglieder den Ablauf bestimmen. Dieses ist nur dadurch moeglich, dass saemtliche Zielpunkte eines Ablaufes in abschaltbaren Abschnitten liegen und der Zug verzoegernd in diesen einfaehrt. Waehlt man die Parametrierung der Zeitglieder falsch, bleibt der Zug vor einem roten Signal stehen oder kommt abrupt (ohne Bremsung) am Zielpunkt zum Stehen - oder er kommt erst gar nicht am Zielpunkt an...
Da sich die Zeitglieder sowohl fuer jede Lok als auch fuer die jeweilige
Anhaengelast als unterschiedlich herausstellten, war klar, dass starre
Ablaufprozeduren fuer einzelne Streckenabschnitte nicht zum Erfolg fuehren
wuerden.
Um diesem Dilemma zu entgehen, wurden saemtlichen Streckenabschnitten
normierte Zeitglieder zugewiesen und den einzelnen Triebfahrzeugen
entsprechende Korrekturglieder. Anschliessend wurde fuer jeden Strecken-
abschnitt eine Ablaufprozedur erstellt, welche die Zeit- und Korrekturglieder
als Parameter verwendet.