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“.

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:

„…“

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.

Der Lokvariablen können wir, zum späteren Testen, einen Wert zuweisen, z.B. die Zahl „1“.
„“

So sollte die Einstellung in der Lokomotive aussehen: 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:

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“.

Wert aus der Lok auslesen

Nachdem nun beide Variablen angelegt sind, legen wir in die Operation des Tasters folgendes an:

Drückt man nun den Taster, ohne dass eine Lok im Block ist, erscheint im Meldefenster folgendes:

Lok
Auslesen der Variable der Lok im Block 19:

Lok

Wert in die Lok schreiben

Wir erweitern das Programm des Tasters von oben wie folgt:

Lok
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.