Variablen Werte aus einer Lok auslesen und zurückschreiben
Diese Seite beschäftigt sich damit, wie man zwischen einem Block und einer Lokomotive Inhalte einer Variable ausliest oder ändert. Die Variable wird dabei in der Lokomotive als „Funktion“ geführt.
Anlegen der Variable in der Lokomotive
Die Lokomotive wird um eine Funktion erweitert. Dazu muss man in der Lokfunktionen-Bibliothek eine neue Funktion anlegen, wie z.B. „Variable“ oder einen sinnigeren Name.
Man geht in die Lokomotive(n) und weißt denen eine neue Funktion zu, nicht aber als „Decoderfunktion“, sondern eine vom Typ „Liste“. Wir wählen dabei auch gleich als Zustand den Typ „Taster“.
Lokfunktion Variable einrichten
Nun geht man in die „Liste“ und wählt aus dem Reiter „Operationen“ –> Ablaufsteuerung den Punkt „Variablen“. Da unsere Variable noch gar nicht erstellt wurde, müssen wir diese einmalig erstellen.
Mit einem Doppelklick auf „Zugriff auf Variable“ kann man eine Variable wählen oder durch Klick auf „Neu“ erstellen. Wir erstellen einmalig eine neue und wählen diese bei den weiteren Lokomotiven nur aus:
Leere Variable
Durch Klick auf „Neu…“ kann man eine neue Variable erstellen.
Das Beispiel zeigt, wie ich die Varaible anlege. Sie hat den Wert Zahl und die Gültigkeit „Zug“, was bedeutet, dass die gleiche Variable in jedem Zug bzw. jeder Lok einen anderen Wert haben kann.
Anlegen der Lokvariablen
Der Lokvariablen können wir, zum späteren Testen, einen Wert zuweisen, z.B. die Zahl „1“.
Zuweisen des Werts „1“
So sollte die Einstellung in der Lokomotive aussehen:
Funktion der Variable in der Lok
Anlegen eines Tasters um Lok in einem Block auszulesen bzw. zu beschreiben
Um die nun angelegte Variable in eine Zug/Lok in einem Block auszulesen bzw. zu ändern, müssen wir im Stellwerk einen Taster anlegen. Wichtig: Der Taster muss dem Block zugeordnet werden, in dem das Auslesen bzw. das Ändern der Variable passieren soll, sonst weiß TC nicht, wo es lesen bzw. schreiben:
Taster dem Block zuordnen
Für die Übergabe der Variable in den Block benötigen wir noch eine weitere Variable. Entweder man verwendet die Variable nur einmal im gesamten Programm, dann darf die Variable die Gültigkeit „global“ haben oder man verwendet dabei Variable in verschiedenen Blöcken, dann sollte die Variable die Gültigkeit „Block“ haben. Wir entscheiden uns für „Block“.
Erstellung Blockvariable
Wert aus der Lok auslesen
Nachdem nun beide Variablen angelegt sind, legen wir in die Operation des Tasters folgendes an:
Befehle zum Auslesen der Lokvariable
Drückt man nun den Taster, ohne dass eine Lok im Block ist, erscheint im Meldefenster folgendes:
Auswertung ohne Lok in dem Block
Auslesen der Variable der Lok im Block 19:
Auswertung mit Lok in dem Block
Wert in die Lok schreiben
Wir erweitern das Programm des Tasters von oben wie folgt:
Das Programm wurde um eine weitere Abfrage und die Addition der Variable in der Lok erweitert
Nun ist es vollbracht: Wir fragen die Variable der Lok ab, addieren 1 dazu und fragen den neuen Wert ab.
Der Knopf kann nun z.B. in eine Automatik integriert werden. Je nach Wert der Variablen können nun z.B. Zugfahrten gestartet werden oder andere Abläufe ausgelöst werden.