Traincontroller: Abläufe hinter der Haltmarkierung

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: 32

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Der Zeitraum für die reCAPTCHA-Überprüfung ist abgelaufen. Bitte laden Sie die Seite neu.

Translate »