Zugüberwachung und Zugsteuerung
(aus Gründen der Ladezeit ist dieses Kapitel in mehrere Teile gegliedert)

Teil 1    (Übernahme einer Lokomotive ins Programm)

Dieses Kapitel beschäftigt sich mit der Überwachung der Züge im halb- und vollautomatischen Betrieb.

Vorraussetzung für eine funktionsfähige Zugüberwachung ist

Gerade Visual Basic bietet viele Möglichkeiten, eine optisch ansprechende Lösung zu finden.
Ich habe mich für gebundene Labels entschieden. Gebunden heißt, die Labels sind über ihre .DataField-Eigenschaft an eine Datenbank angebunden. Somit wird jede Änderung der .Caption-Eigenschaft in der Datenbank gespeichert und beim nächsten Start automatisch wieder angezeigt.
Jede Stelle, an der sich ein Zug befinden kann, wird mit einem Label ausgestattet.
Die Labels dienen nicht nur der optischen Belegt-Anzeige sondern werden auch vom Programm zur frei/besetzt-Prüfung herangezogen.

In den folgenden Bildern befinden sich Labels am Abstellgleis  A  und an der Blockstrecke  B  
(die auf dem Bild vorhandenen Markierungen  A  ,  B  ... dienen nur der Orientierung in dieser Beschreibung und sind im Original-Gleisbild nicht vorhanden).

     Label 

Bild 1

Damit wir eine Lok überwachen können, muss unser Programm diese Lok kennen.
Dazu richten wir eine Stelle auf der Anlage ein, an welcher wir die Anmeldung an das Programm vornehmen können.
Das kann grundsätzlich jedes beliebige Label in unserem Gleisbild sein, empfehlenswert und vorbildgetreuer ist aber ein
Abstellgleis oder ein BW. In unserem Beispiel ist es das Abstellgleis  A  .

Um die Lok anzumelden, bringen wir sie auf das entsprechende Gleis und rufen sie auf unserem Fahrpult auf, d.h., wir stellen auf dem Fahrpult ihre Digital-Adresse ein.
Dann doppelklicken wir auf das zugehörige Label.
Im Doppelklick-Ereignis des Labels lesen wir die Digital-Adresse aus dem Fahrpult aus und weisen sie dem Label zu.
    Der folgende Quellcode geht davon aus, das die Variable strLokNummer  die digitale Adresse enthält
    (die Variable strLokNummer wird beim Ändern der digitalen Adresse auf dem Fahrpult aktualisiert).

Label
Private Sub Label_DblClick()

Label_A.Caption = strLokNummer

End Sub

Das war's eigentlich auch schon, unser Programm `weiß' nun, das es die Lok gibt und kann jede ihrer Bewegungen überwachen.

Unser Gleisbild sieht jetzt wie folgt aus:

Weiter geht's mit Teil 2