User Tools

Site Tools


loco-classes-variables-actions-de

Lokomotiv-Klassenkennungen, Aktionen und Variablen

InhaltAutomatik-Betrieb

  • Klassen, Aktionen und Variablen




Lokomotiv-Klassen, Aktionen und Variablen

In diesem Beispiel geht es darum, Lokomotiv-Klassen zu benutzen. Dazu wird das Szenario aus dem Artikel Block-Zufallsrate und Klassen um Variablen und Aktionen erweitert. Das Bild zeigt den zugrunde liegenden Gleisplan mit seinem Zubehör.

.

Ein Wort zu den Abbildungen: Diese wurden auf einem Ubuntu 12.04 System hergestellt. Auf einem osX von Apple oder auch auf einem Windows-System mögen die Darstellungen etwas anders aussehen. Die Funktion ist auf allen Systemen die gleiche.

In diesem Beispiel wird es 2 Lokomotiven geben. Diese sind Zugart Mischbetrieb, Diesellok der Epoche III zugeordnet. Das Besondere an diesem Szenario ist: Es wird mehrere verschiedene Züge, dargestellt durch Klassen, geben. Diese werden auf verschiedenen Wegen ihr Ziel erreichen. Einige Blöcke dürfen dabei von je einer Zugart, einige nicht befahren werden. Ein Beispiel aus der Praxis: In einem Bahnbetriebswerk stehen der Bahnverwaltung zwei Loks zur Verfügung. Eine wird regelmäßig vor einen planmäßigen Personenzug im Nahverkehr gespannt, eine andere Lok zieht in der Regel einen Fernverkehrszug. Jetzt soll eine der beiden Loks vor einem Fanzug mit Reisenden zu einem Bundesligaspiel gespannt werden. Dieser Zug soll eine Strecke fahren, für den die Lok eigentlich nicht vorgesehen ist. Was tun? Es könnte jetzt die Zugart des Fanzuges geändert werden: Automatik aus, Strom aus, Loktabelle aufrufen, Zugart ändern usw. Es geht auch einfacher. In diesem Beispiel wird gezeigt, wie in so einem Fall zur Laufzeit die Lok-Klasse geändert werden kann.

Aktionen

In diesem Szenario werden drei Zug-Klassen benutzt. Deren Bezeichnung wird Lok1,Lok2 und Lok3 sein. Angelegt werden die Klassen, wie im Artikel Block-Zufallsrate und Klassen beschrieben ist. Das Ändern/Umsetzen einer Lok von einer Klasse in eine andere geschieht mit Aktionen. Zum jetzigen Zeitpunkt ist noch nicht bekannt, welche Lok den Fanzug ziehen wird. Daher werden beide Loks vorgesehen. Es werden also mehrere Aktionen zum Ändern/Umsetzen auf den Fanzug benötigt. Natürlich muss es auch einen Weg zurück geben. Ist der Fanzug an seinem Ziel angekommen, muss er wieder umgewidmet werden.

Aktionen anlegen

Es wird in diesem Beispiel nur die Lokomotive lok1 Verwendung finden. Daher bietet es sich an, auch für Übungszwecke, die Schritte auf dem eigenen System für lok2 selbst nachzuvollziehen. Am Beispiel der Aktion 'swapLok1ToClass_Lok1' wird aufgezeigt, wie das funktioniert.



Der Dialog Tabellen→Aktionen wird geöffnet und durch einen Klick mit der linken Maustaste auf die Schaltfläche Neu eine neue Aktion erstellt. Im Feld Kennung wird durch Überschreiben des Wortes NEW mit dem Text swapLok1ToClass_Lok1 die neue Aktion mit einem eindeutigen Namen versehen.



Die Aktion muss jetzt definiert werden. Anklicken des Registers Definition führt in die dafür vorgesehene Maske.



Als Typ wird 'Lokomotive', als Befehl 'class' gewählt und als Parameter die gewünschte Klassen-Kennung gesetzt. In diesem Fall ist es 'Lok1'. Wichtig: Die Klassenkennung beginnt mit einem Großbuchstaben. Ist das geschehen, nicht vergessen: Übernehmen und OK anklicken. Die Änderungen werden nur dann übernommen und ins System gespeichert. Wird diese Aktion jetzt wie auch immer ausgelöst, erhält eine Lokomotive die Klassenkennung 'Lok1'. In gleicher Weise werden jetzt die Aktionen zum Ändern/Umsetzen der anderen drei Klassen Kennungen angelegt.

Taster anlegen

Aktionen können auf verschiedenen Wegen ausgelöst werden. Hier soll dies mit der Hilfe von Tastern geschehen. Für eine Lok soll zwischen drei Klassen gewählt werden können. Ergo werden drei Taster benötigt, für jede Klasse einer. Es könnte auch ein Schalter mit drei Zuständen verwendet werden oder ein Melder oder …… Taster werden in Rocrail durch Ausgänge realisiert. Das geschieht unter Tabellen→ Ausgänge. Es öffnet sich der folgende Dialog:



Hier werden bereits alle drei Taster angezeigt. Der Vorgang, einen Taster anzulegen wird intuitiv durch Anklicken der Schaltfläche Neu begonnen. In der Maske im Registerblatt Allgemein erhält der Taster durch einen Eintrag in das Feld Kennung seinen Namen.



Im Feld Typ wird dieser Ausgang als Taster konfiguriert. Die so angelegten Taster werden z.B. unterhalb des Gleisplanes angeordnet. Diese Taster könnten jetzt mit einem Textfeld, welches als Bezeichner dient, beschriftet werden. Im Übungsplan ist dies bereits geschehen.


Schalter mit Aktionen verknüpfen

Durch Anklicken der Schaltfläche Aktionen wird der so entstandene Taster mit der Aktion verknüpft, welche der 'lok1' die Klasse 'Lok1' zuweist. Die Reihenfolge ist:
Kennung auswählen: 'swapLok1ToClass_Lok1'
Status setzen auf: on
Lokomotive auswählen: lok1
Hinzufügen - Übernehmen - OK



Auf dem Bild ist eine zweite Aktion zu sehen. Diese wird an späterer Stelle erklärt.

Wird der Taster durch Anklicken mit der Maus betätigt, wird die Klasse der Lok entsprechend geändert. Und das, ohne dass die Anlage erst gestoppt werden muss. Das Ziel, die Lokomotiv-Klassenkennung on the hook, im laufenden Betrieb zu ändern, ist erreicht. Wie kann erkannt werden, ob diese Änderung erfolgreich ausgeführt wurde? Ganz einfach: Durch Ablesen des Textes in Tabellen → Lokomotiven → lok1 → Einzelheiten → Klasse. Dazu allerdings muss der Strom abgestellt werden, etc.pp. Nein, es geht auch einfacher. Mit einem Textfeld, das zur Laufzeit nach Betätigen eines der angelegten Tastern die Klasse anzeigt. Und das könnte so gelöst werden:

Variablen

In dem hier beschriebenen Verfahren werden drei Variablen benötigt, je eine für die zu vergebene Klasse. Angelegt werden diese mittels Tabellen → Variablen-Tabelle → Neu. Der besseren Übersicht wegen, sollten diese Variablennamen mit einem cls für Class beginnen. Jede Variable erhält im Registerblatt Allgemein im Feld Text des Dialoges je den Wert 'lok1', 'lok2' oder 'lok3'. Auch hier gilt wieder: Übernehmen→ Ok nicht vergessen.



Irgendwo soll der Variableninhalt angezeigt werden. Es bietet sich an, dafür ein Textfeld in den Gleisplan zu zeichnen:

Gleisplan bearbeiten, →Symbol einfügen →Text. Dem Textfeld wird die Kennung txtKlasse und den Inhalt 'status' gegeben. Dieser Inhalt ist willkürlich und hat später keine Bedeutung mehr. Er wird überschrieben. Es kann hier auch Hallo, siebzehn oder Fußball hineingeschrieben werden. Dieses Textfeld wird im Gleisplan neben den Tastern angeordnet. Jetzt fehlt noch die 'Textfeldausfüllautomatik'. Das Zauberwort dafür heißt: Aktionen. Es werden drei in etwa gleiche Aktionen angelegt. Jede hat die Aufgabe, die jeweilig zugewiesene Klasse der lok1 anzuzeigen. Wie im Abschnitt 'Aktionen' bereits beschrieben werden drei Aktionen vom Typ 'Text' angelegt.



Als Namen könnte 'writeClass_lok(x)' verwendet werden. Das x im Namen steht für die Zahl in der Klasse. In das Feld Kennung kommt die Kennung des Textfeldes, es wurde txtKlasse vergeben, als Befehl wird update ausgewählt. Das Feld Parameter wird mit dem Text des Klassennamens beschrieben.



Die entstandenen Aktionen werden jetzt wie im Absatz Schalter mit Aktionen verknüpfen mit den Tastern verknüpft. Das Ergebnis für den Taster 'TSswapLok1To_lok1', zu sehen in Tabellen→Ausgang→Allgemein→Aktionen wird in dem folgenden Bild dargestellt.



Der Test

Jetzt geht's los. Dem Fanzug, bespannt mit der 'lok1', wird im laufenden Betrieb die Klasse 'Lok3' zugewiesen. Block oben1 und unten1 erhalten im Register 'Berechtigungen' im Feld 'Klasse' zusätzlich, getrennt durch ein Komma die Klasse 'Lok3'. Damit darf in diesem Fall die Lokomotive lok1 kurzzeitig entsprechend der eingetragenen Blockrates beide Blöcke befahren. Zur Erinnerung: Im Beispiel aus Artikel Block-Zufallsrate und Klassen durfte die Lokomotive lok1 aufgrund ihrer Klasse 'Lok1' den Block 'unten1' nicht befahren. Jetzt darf sie es, solange ihre Klassenzugehörigkeit nicht wieder in Klasse 'Lok1' geändert wird.

Wenn gewünscht, kann dieses Beispiel jetzt auf die lok2 übertragen werden. Und hier noch der Beispiel-Plan zum Herunterladen und Üben: variables.zip

Happy Rocrailing!

loco-classes-variables-actions-de.txt · Last modified: 2018/11/12 08:56 by 127.0.0.1