Traincontroller: Abläufe hinter der Haltmarkierung

Signale - Ausfahrt Nhsn

In letzter Zeit habe ich mich mal wieder intensiver mit der Steuerungssoftware beschäftigt.

Dazu muss man sagen, dass Traincontroller ein sehr mächtiges Programm ist, welches man inzwischen (aktuell verwende ich Version 11 des Programms) schon als eigenständige Programmiersprache beschreiben kann – gibt es doch diverse Optionen was IF-THEN-ELSE Konstrukte, Makros, Schleifen etc. anbelangt.

Problembeschreibung

Mein aktuelles Problem war dabei folgendes:

Wenn ein Zug in einem Block anhält, so werden Aktionsmarkierungen, welche entfernungsmäßig hinter der Haltmarkierung liegen bei erneuter Anfahrt des Zugverbandes nicht mehr ausgelöst.

Das hört sich auf den ersten Blick jetzt nicht so tragisch an, kann aber ziemlich nervend werden, wenn z.B. nach dem Halt noch Aktionen im Block durchgeführt werden sollen – hier mal ein paar Beispiele:

  • Ein Zug soll vor der Ausfahrt auf dem Tunnel noch warten, bis z.B. die Zeit für die offizielle Einfahrt im Bahnhof erreicht ist. Der Block endet aber nicht vor der Tunnelausfahrt. Nach dem Halt soll der Zug einen entsprechenden Sound abspielen, weil z.B. noch ein Überweg nach dem Tunnel passiert wird.
  • Ein Zug hält vor dem Einfahrtssignal. Dieses soll – wie beim Vorbild – auf Halt zurückfallen, sobald der Zug das Signal passiert hat.
  • usw.

Ihr seht, es gibt viele Anwendungsbeispiele für eine solche Funktion – aber wie lösen wir es?

Lösungsbeschreibung

Dieses Problem lässt sich mittels eines Bahnwärters lösen, welcher in den Block eingefügt wird. Als Beispiel wird die Konfiguration meiner Anlage Nächternhausen verwendet – wer will kann die Originaldatei hier herunterladen.

Man beachte hierbei Block FB 2 (Freiburg) – hier findet sich im Block folgender Bahnwärter 819 AM Block „%B“/\   – Verlängerung Markierungen über Haltepunkt hinaus“ 1(das ist der oberste hier im Bild).Dieser Bahnwärter stellt – auch bei Weiterfahrt nach Halt am Haltmelder sicher, das alle hier stehenden Aktionsmarkierungen unter allen Umständen – auch nach Halt des Zuges – ausgelöst werden

Wier erstellen diesen Bahnwärter zunächst außerhalb des Blocks als ganz normalen Bahnwärter und fügen ihn erst hinterher in den Block ein (einfach mit der Maus reinziehen, oder manuell hinzufügen)

Konfiguration des Bahnwärters in Traincontroller

Bei der Memory des Bahnwärters reicht es, diesen ca. 8 Sek. nach Einschalten auszuschalten und Ausschalten erzwingen zu aktivieren. Wichtiger ist aber der Auslöser, der da wie folgt ausschaut:

Hier ist besonders die Combibedingung wichtig, nämlich eine erweiterte Zugbeschreibung, die wir als noch erstellen müssen:

Der Bahnwärter kann erstmal ohne diese Beschreibung bleiben – wir fügen sie hinterher ein

Erstellung einer erweiterten Zugbeschreibung

Die erweiterte Zugbeschreibung können wir auch direkt unter der Kombibedingung oben anlegen – ich habe mir aber angewöhnt, diese als eigenständige Beschreibung zu erstellen (geht in den TC-Explorer und erstellt ein neues Objekt von Typ Zugbeschreibung).

Wichtig ist hier nur, das wir in der erweiterten Zugbeschreibung im Reiter Allgemeines V-Min=1km/h und unter Züge „Alle Lokomotiven“ wählen.

Als Name habe ich die Zugbeschreibung „93 alle sich bewegenden Züge (mit Lok)“ genannt, denn sie gilt nur, wenn:

Ein Zugverband mit einer Lok sich mit mindestens 1km/h im Block bewegt.

Erweiterte Zugbeschreibung einbauen

Ihr geht also jetzt wieder in den Bahnwärter und fügt die erweiterte Zugbeschreibung dort im Combi-Block beim Reiter „Züge“ mit ein. Unser Bahnwärter wird also jetzt utner folgenden Bedingugnen auslösen:

  1. Ein Zugverband bewegt sich im Block UND
  2. Die Haltmarkierung wurde aktiviert 2(falls ihr euch wundert was jetzt bei Zügen passiert, welche gar nicht halten: Die Haltmarkierung wird immer aktiviert – es handdelt sich um eine Markierung und nicht um eine Haltaktion!) UND
  3. Das Signal ist gerade nicht mehr auf Rot UND
  4. Der Block ist reserviert für einen Zugverband mit Fahrtrichtung nach oben aus dem Block heraus in den Folgeblock

Haltmarkierung anpassen

Der Haltmelder kann bleiben wie er ist – wichtig ist hier nur, das wir die Memory ändern auf „Mit Melder – wenn der unten angegebene Melder ausgeschaltet wird“ – als Melder wählen wir den „Bezugsmelder“ aus. So ist sichergestellt, das die Haltmarkierung auch nach Halt des Zuges noch eingeschaltet bleibt – so lange bis der zugehörige Blockmelder auch ausgeschaltet ist.

Einschränkungen

Obiges Verfahren funktioniert eigentlich immer – allerdings (danke an die Spezialisten vom TC Forum) sollte man folgendes beachten:

  • Beim Wechsel in den Editermodus werden die Aktionsmarkierungen ebenfalls beendet. Wird der Zugbetrieb danach wieder gestartet, so werden die Aktionsmarkierungen nicht mehr mit abgearbeitet.
  • Ausserdem muss natürlich der Zug auch bei Vmin=1 km/h losfahren! Hier ist die Decodereinstellung wichtig: Denkt TC der Zug würde sich bereits bewegen, der Zug fährt aber erst bei Vmin=10km/h so stimmen die Entfernungsangaben natürlich nicht mehr. Deshalb ist es wichtig, die Loks richtig einzumessen. Ggfs. vielleicht dann auch eher Vmin auf 2km/h setzen und die Entfernungsangaben entsprechend anpassen.
  • Wechselt man nach dem Halt die Fahrtrichtung, dann stimmt natürlich unser Auslöser nicht mehr – das dürfte allerdings eher selten der Fall sein – und wenn wir den Block danach in die andere Richtung verlassen, dann solllten die Aktionsmarkierungen ja auch gar nicht aktiv werden.

Wie gesagt – es gibt diverse Anwendungsfälle dafür. Wichtig:

Mit dieser Methodik ist sichergestellt, dass Aktionsmarkierungen nach einer Haltmarkierung auch ausgeführt werden, wenn der Zugverband an der Haltmarkierung zum Stehen kam.

Views: 322

Traincontroller: Aktionen hinter Haltmarkierungen

In einem der letzten Stammtische der Anwender der Steuerungssoftware Traincontroller wurde folgende Lösung gezeigt, um Aktionen durchzuführen, welche auch nach Halt und erneutem Anfahren eines Zugverbandes im jeweiligen Block ablaufen können.

Hintergrund:

Wenn ein Zug in einem Block anhält, so werden Aktionsmarkierungen, welche entfernungsmäßig hinter der Haltemarkierung liegen bei erneuter Anfahrt des Zugverbandes nicht mehr ausgelöst.

Dieses Problem lässt sich mittels eines Bahnwärters lösen, welcher in den Block eingefügt wird.

Als Beispiel wird die Konfiguration meiner Anlage Nächternhausen verwendet – wer will kann die Originaldatei im Downloadbereich unter https://www.naechternhausen.de/tipps-und-tricks/downloadliste/  laden.

TC - Haltmarkierung - Bild1

Man beachte hierbei Block FB 2 (Freiburg) in nebenstehendem Bild – hier findet sich im Block folgender Bahnwärter „819 AM Block „%B“/\   – Verlängerung Markierungen über Haltepunkt hinaus“ . Dieser Bahnwärter stellt – auch bei Weiterfahrt nach Halt an der Haltmarkierung sicher, das die hier stehenden Aktionsmarkierungen ausgelöst werden.

Wir erstellen diesen Bahnwärter zunächst außerhalb des Blocks – als „ganz normalen Bahnwärter“ und fügen ihn hinterher in den Block ein (einfach rein ziehen).

1. Konfiguration der Haltmarkierung

Der (rot dargestellte) Haltmarkierung kann bleiben wie er ist – wichtig ist hier nur, das wir die Memory ändern auf „Mit Melder – wenn der unten angegebene Melder ausgeschaltet wird“ – als Melder wählen wir den „Bezugsmelder“ aus. So ist sichergestellt, das die Haltmarkierung auch nach Halt des Zuges noch eingeschaltet bleibt – so lange bis der zugehörige Blockmelder auch ausgeschaltet ist.

2. Konfiguration des Bahnwärters

Bei der Memory des Bahnwärters reicht es, diesen ca. 8 Sek. nach Einschalten auszuschalten und Ausschalten erzwingen zu aktivieren. Wichtiger ist aber der Auslöser, der da wie folgt ausschaut:

Man beachte die Combi-Bedingung:

TC - Haltmarkierung - Bild3
TC – Haltmarkierung – Bild3

Diese Erweiterte Zugbeschreibung können wir auch direkt in der Kombibedingung anlegen – wesentliches Element ist im Reiter „Allgemeines“ V-Min=1km/h und unter Züge „Alle Lokomotiven“ wählen.

Unser Bahnwärter wird also unter folgenden Bedingungen auslösen:

  • Ein Zugverband bewegt sich im Block UND
  • Die Haltmarkierung wurde aktiviert UND
  • Das Signal ist nicht Rot UND
  • Der Block ist reserviert für einen Zugverband mit Fahrtrichtung aufwärts (also zum Signal hin)

Diese Bedingungen gelten auch, wenn der Zug nicht am Signal halten muss – auch dann ist ja die Haltmarkierung aktiviert.

Anwendungsfälle

Ich habe aktuell zwei Anwendungsfälle:

  1. Aktivierung von Soundfunktionen nach der Haltmarkierung
  2. Reservierung eines nachfolgenden Blocks, ohne dafür einen (teuren) S88 Melder zu verwenden), wenn der nachfolgende Block in einem Stumpfgleis endet (siehe Block NB70b in der Projektdatei)

Sicher lassen sich noch andere Anwendungsfälle finden. Wer seine Weichenstraßen nicht überwacht könnte z.B. einen Schalter verwenden, der bei Beginn der Weichenstraße einschaltet und – in Abhängigkeit von der Zuglänge – am Ende der Weichenstraße ausschaltet. Ein weiterer Bahnwärter könnte dann auf diese Schalter reagieren und somit als Melder für die Weichenstraße dienen.

Einschränkungen

Nachstehende Einschränkungen (Danke, Silvio!), sollen nicht unerwähnt bleiben:

  • Beim Wechsel in den Editermodus werden die Aktionsmarkierungen ebenfalls beendet. Wird der Zugbetrieb danach wieder gestartet, so werden die Aktionsmarkierungen nicht mehr mit abgearbeitet.
  • Außerdem muss natürlich der Zug auch bei Vmin=1 km/h losfahren! Hier ist die Decodereinstellung wichtig: Denkt TC der Zug würde sich bereits bewegen, der Zug fährt aber erst bei Vmin=10km/h so stimmen die Entfernungsangaben natürlich nicht mehr.
  • Beim Wechsel der Fahrtrichtung innerhalb des Blocks sind die Aktionsmarkierungen natürlich nicht mehr gültig.

Views: 187

Traincontroller: Dateimanagement

Hintergrund

Ein großer Vorteil der Steuerungssoftware Traincontroller ist die Möglichkeit, am Arbeitsplatz PC – im s.g. Offline Modus – die Programmdatei zu bearbeiten. Dabei ist die Simulation von Zugfahrten, Events usw. möglich, ohne dass wir dazu die reale Anlage in Betrieb nehmen müssen.

Eine der Nachteile: An den unterschiedlichen Endgeräten haben wir unterschiedliche Benutzer, Datenstrukturen und Verzeichnisse.

Ein Beispiel: Traincontroller verwendet für die Darstellung der Wagen und Züge die Dateien von Trainanimator (Dateityp .yra). Die Lokation dieser Dateien ist in der Programmdatei verlinkt. Haben wir nun am Moba PC (nennen wir ihn der Einfachheit PC A), nur eine Festplatte/SSD/Partition, am Arbeitsplatz PC (PC B) aber 2 Festplatten1oder unterschiedlichen Partitionen, so verweisen die Verzeichnisse u.U. auf unterschiedliche Dateien. Auf PC A sind die Benutzer unter Laufwerk C:\…., auf PC B aber unter Laufwerk D:\….

Noch extremer ist das Problem, wenn auch die Option 4D Sound verwendet wird: Hier verweisen die Dateien von Trainanimator auf absolut adressierte Audiodateien.

Wenn unterschiedliche PCs für Traincontroller genutzt werden, so sind mit hoher Wahrscheinlichkeit die Icons der Wagen an einem der PCs nicht lesbar. Je nach verwendeter Software können auch andere Probleme auftauchen.

Der Grund dafür: Traincontroller verwendet zwar meistens s.g. relative Adressierung (also immer Dokumente/Eigene Dateien/…), aber leider an einigen Stellen auch eine absolute Adressierung (also C:\Benutzer\…).

Es gibt aber einfache Lösung für das Problem! Doch dazu müssen wir uns zunächst das Dateimanagement von Traincontroller anschauen

Die Programmdatei

Die Programmdatei (.yrrg) wird immer im Home Directory – und dort unter „Railroad & Co/TrainController“ gespeichert.

Der Hersteller empfiehlt diesen Speicherort nicht zu ändern. Die Programmdatei hat die Erweiterung yrrg. Beim Namen selbst ist man frei einen beliebigen Namen zu verwenden. Ich habe mir angewöhnt den Namen nach einem Schema zu beschreiben: G10A7 bezeichnet die aktuelle Version von TC unter der die Datei gespeichert wurde (in diesem Falle also TC Gold Version 10 A 7). Dann folgt eine Nummer und zum Schluss eine Gedächtnisstütze für mich die beschreibt, was die letzte grössere Änderung war. Am Anfang steht der (gekürzte) Name meiner Anlage – also z.B.

Speichern Sie Ihre Programmdateien ausschließlich im Standardverzeichnis. Gleiches gilt auch für Dateien von Trainanimator oder Trainprogrammer. Unter „Dieser PC/Dokumente/Railroad & Co“ sollten immer mindestens die Ordner TrainAnimator, TrainController und Trainprogrammer vorhanden sein.

Und verwenden Sie ein Namensschema beim Abspeichern von Dateien. Ich selbst habe mir ff. Schema angewöhnt:

<LAYOUTNAME> G<HAUPTVERSION><UNTERVERSION> <DATEIVERSION> <HAUPTAENDERUNG>
wobei:
<LAYOUTNAME> z.B. Nhsn für das konkrete Projekt - hier Nächternhausen
<HAUPTVERSION> die Traincontrollersion - hier aktuell10
<UNTERVERSION> aktuell die Version B1
<DATEIVERSION> die Version meiner Programmdatei
<HAUPTAENDERUNG> die wichtigste Änderung die ich zuletzt gemacht habe
 

hier ein Beispiel:

Nhsn G10B1 58.8 Ansagen

Ich kann hier am Namen der Datei sofort erkennen, mit welcher TC-Version die Datei zuletzt bearbeitet wurde, und was meine Hauptänderungen waren. 58.8. ist die Version meiner Änderung, bei der ich mich hauptsächlich mit Ansagen beschäftigt hatte.

Laufwerk R erstellen

Auch wenn man keine Ahnung von Computerprogrammierung hat, ist die Lösung einfach zu bewerkstelligen. Zunächst einmal gibt es einen einfachen Befehl mit dem wir unter Windows unser Dokumentenverzeichnis als Laufwerksbuchstaben zuordnen können.

Dazu solltet ihr als erstes euren Windows Explorer (Windows Taste + E) öffnen und dort unter Dokumente -> Railroad & Co -> Traincontroller nachsehen, ob dort auch wirklich eure Traincontrollerdateien liegen.

Nun öffnen wir eine s.g. „Shell“ indem wir die Windows Taste (die mit dem Windows Symbol auf eurer Tastatur) + die Taste R gleichzeitig drücken. In dem sich öffnenden Feld geben wir unter öffnen „cmd“ ein und dann folgende Zeile:

subst R: "%USERPROFILE%""Railroad & Co""
DIR R:

Es gibt leider einen Sonderfall: Wenn ihr euer Windowsprofil auf ein anderes Laufwerk verschoben habt (seltener Fall, aber kam bei mir an einem PC so vor), dann funktioniert die Variable USERPROFILE nicht. Dann müsst ihr dies durch den Ort ersetzen, den ihr auch bei der Verschiebung verwendet habt.

Achtet auf die Leerzeichen und die doppelten Anführungszeichen. Das sollte dann folgendes Bild ergeben.

Ihr könnt nun an beliebiger Stelle das Laufwerk R verwenden um direkt zu allen Dokumenten von Traincontroller zu springen. Und natürlich können wir diese Information auch in Traincontroller nutzen, indem wir im Suchfeld das R Laufwerk (Suchen in) angeben. Das Laufwerk erscheint hier direkt mit dem Namen des Directories – also Railroad & Co.

R Laufwerk verwenden

In TC verwenden wir jetzt immer das R Laufwerk, wenn es darum geht auf eine Datei in Trainanimator zu verweisen. Dazu im Feld „Suchen in“ einfach nur R eingeben – in der Regel sollte dann schon das richtige Laufwerk angezeigt werden:

Hilfreich ist dies vor allem, wenn wir Dateien die Icons unserer Fahrzeuge in Trainanimator auswählen. Egal auf welchen Endgerät wir uns also nun befinden. Überall wo das R Laufwerk existiert, verweist es auf die dann richtige Adresse! Hier ein Beispiel aus Traincontroller:

Laufwerk R dauerhaft zuweisen

Ein Nachteil allerdings hat unser Verfahren bis jetzt noch: Die Änderung ist nicht permanent!

Das heißt: Bei jedem Reboot unseres Rechners ist das R Laufwerk wieder weg. Die Lösung ist auch hier wieder einfach: Wir erstellen eine Datei, welche bei jedem Systemstart ausgeführt wird, und mit der wir sicherstellen, dass das Laufwerk auch nach Reboot immer wieder richtig zugeordnet wird.

Dazu öffnet ihr als erstes Einen Editor und fügt folgende Zeilen ein

subst R: "%USERPROFILE%""Railroad & Co""
EXIT /B

Die Datei speichern wir unter einem fest definierten Namen an einer bestimmten Stelle. Um diese Stelle zu finden, drückt ihr wieder die Taste WINDOWS+R und gebt folgendes Kommando ein:

shell:startup

Jetzt öffnet sich ein Explorer Window und genau an diese Stelle speichern wir unsere oben erstellte Datei unter dem Namen autostart.bat mittels „Speichern unter…“. Unter Umständen gibt es diese Datei schon, dann solltet ihr die oberen Zeilen mit subst…. am Ende dieser Datei anfügen.

Wenn ihr dies auf allen PCs macht, mit denen ihr auch eure TC Dateien bearbeitet, so werdet ihr immer – auch nach Reboot – ein Laufwerk mit Namen R haben, welches dann auch immer an die richtige Stelle verweist.

Ich habe hier meine eigenen Erfahrungen dokumentiert – sicher habt ihr auch Erfahrungen gemacht – nutzt doch bitte das Kommentarfeld und helft so auch anderen. Damit es in Zukunft nicht mehr zu solchen „Fakenews“ kommt, man könne eine Modellbahn nicht ohne dauernde Probleme betreiben!

Views: 102

Translate »