Kapitel 12 Fahrplan

Fahrplan


12.1 Einführung


Das Fahrplankonzept ist kein Ersatz für die Aktivitätsdefinition, sondern eine alternative Möglichkeit, sowohl spielergesteuerte als auch computergesteuerte (KI und statische) Züge zu definieren.


In einer Aktivität wird der Spielerzug explizit definiert und alle KI-Züge werden in einer Verkehrsdefinition definiert. Statische Züge werden separat definiert.


In einem Fahrplan sind alle Züge auf ähnliche Weise definiert. Beim Starten einer Fahrplanfahrt wird der gewünschte Spielerzug aus der Liste der verfügbaren Züge ausgewählt. In der Fahrplandefinition selbst wird nicht zwischen fahrenden Zügen unterschieden – jeder der fahrenden Züge kann als Spielerzug ausgewählt werden, und wenn er nicht als solcher ausgewählt wird, wird er als KI-Zug gefahren. Statische Züge werden ebenfalls auf die gleiche Weise definiert, können jedoch nicht als Spielerzug ausgewählt werden.


Dadurch entspricht die Anzahl der verschiedenen „Aktivitäten“, die mit derselben Fahrplandatei gespielt werden können, der Anzahl der Züge, die im Fahrplan definiert sind, abzüglich der statischen Züge.


Wichtige Aspekte, bei denen sich die Verwendung bestimmter OR- oder MSTS-Elemente für Stundenpläne erheblich von der Verwendung in einer Aktivität unterscheidet, sind fett gedruckt.


Die Entwicklung des Fahrplankonzepts ist noch in vollem Gange. Im weiteren Verlauf der Arbeiten können sich alle Punkte noch ändern.


12.2 Allgemeines


12.2.1 Datendefinition


Die Stundenplandaten werden in einer Tabelle definiert und als *.csv-Datei (zeichengetrennte Datei) im Unicode-Format gespeichert. Als Trennzeichen muss entweder „,“ (Komma), „;“ (Semikolon) oder das Tabulatorzeichen verwendet werden.


Wählen Sie kein Leerzeichen als Trennzeichen.


Da „;“, „,“ oder Tabulatorzeichen mögliche Trennzeichen sind, dürfen diese Symbole an keiner Stelle innerhalb der eigentlichen Daten verwendet werden. Das Einschließen von Text durch Anführungszeichen (entweder einfache oder doppelte) hat keine Auswirkung. Außerdem sollte das Zeichen „#“ nicht in Zugnamen verwendet werden, da es das Präfix für reservierte Wörter im Fahrplan ist.


12.2.2 Dateistruktur


Die gespeicherten *.csv-Dateien müssen mit der Erweiterung *.timetable-or umbenannt werden. Die Fahrplandateien müssen in einem Unterverzeichnis namens OpenRails abgelegt werden, das im Aktivitätenverzeichnis der Route erstellt wird.


12.2.3 Stundenplangruppen


Mithilfe von Stundenplangruppendateien können mehrere Stundenpläne gleichzeitig geladen werden. Eine Gruppendatei ist eine reine Textdatei mit der Erweiterung .*.timetablelist-or, die sich ebenfalls im OpenRails-Unterverzeichnis des Aktivitätenverzeichnisses der Route befindet und die Dateinamen einer oder mehrerer in jeder Zeile aufgeführter Fahrplandateien enthält. Die erste Zeile kann auch mit einem #-Symbol beginnen. In diesem Fall wird der folgende Text als Anzeigename der Fahrplangruppe im Open Rails-Menü verwendet.


Hier ist ein Beispiel für eine Stundenplangruppendatei:


#Alle Nordostkorridordienste – Fr. August 2018


Amtrak – Fr. Aug. 2018.Fahrplan-oder


MARC Camden Line – Fr. Aug. 2018.Fahrplan-oder


MARC Penn Line – Fr. Aug. 2018.Fahrplan-oder


SEPTA Wilmington-Newark – Fr. Aug. 2018. Fahrplan-oder


12.2.4 Pooldateien


In Pools können außer Betrieb befindliche Züge nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ abgestellt werden, ohne dass die Wege in die Lagergleise und aus ihnen heraus manuell programmiert werden müssen. Pooldateien befinden sich im selben OpenRails-Verzeichnis wie andere Fahrplandateien. Sie haben die Erweiterung .pool-or oder .turntable-or.


12.2.5 Wetterdateien


Wetterdateien, eine Funktion, die nur im Fahrplanmodus verfügbar ist, orchestrieren Änderungen der Wolkendecke, des Niederschlags und der Sichtverhältnisse im Laufe des Fahrplantages. Sie befinden sich in einem speziellen WeatherFiles-Unterverzeichnis des Routenordners und haben die Dateierweiterung *.weather-or. Der Spieler aktiviert eine Wetterdatei, indem er sie im Abschnitt „Fahrplanmodus“ des Hauptmenüs auswählt. Dadurch wird die statische Wetterbedingung außer Kraft gesetzt.


12.2.6 Datei- und Zugauswahl


Beim Starten eines Fahrplanlaufs wird im Menü der Modus Fahrplan ausgewählt. Anschließend muss in der Stundenplansatzanzeige die gewünschte Stundenplandatei bzw. Stundenplangruppendatei ausgewählt werden.


Nach Auswahl des gewünschten Fahrplans wird eine Liste aller in diesem Fahrplan enthaltenen Züge angezeigt und der gewünschte Zug kann ausgewählt werden.


Jahreszeit und Wetter (statisch oder dateidefiniert) können ebenfalls ausgewählt werden; Diese sind in der Stundenplandefinition nicht voreingestellt.


12.3 Zeitplandefinition


12.3.1 Allgemeines


Ein Fahrplan besteht aus einer Liste der Züge und der für jeden Zug erforderlichen Fahrzeit dieser Züge. Die Zeitmessung kann nur auf die Startzeit beschränkt sein oder auch Zwischenzeiten umfassen.


Derzeit sind Zwischenzeiten auf „Bahnsteig“-Standorte beschränkt, die mit dem MSTS Route Editor erstellt wurden.


Jede Spalte in der Tabelle enthält Daten für einen Zug und jede Zeile stellt einen Standort dar. Eine Zelle an der Kreuzung eines Zugs und eines Standorts enthält die Fahrzeitdaten für diesen bestimmten Zug an diesem Standort.


Für allgemeine Informationen oder Steuerbefehle können spezielle Zeilen und Spalten definiert werden.


Die erste Zeile für jede Spalte enthält die Zugdefinition.


Die erste Spalte jeder Zeile enthält die Standortdefinition.


Die Zelle am Schnittpunkt der ersten Zeile und der ersten Spalte muss leer sein.


In diesem Absatz wird nur die Hauptgliederung aufgeführt, eine ausführlichere Beschreibung folgt in den nächsten Absätzen.


12.3.2 Spaltendefinitionen


Eine Spalte wird durch den Inhalt der ersten Zeile definiert.


Standardmäßig definiert die erste Zeile den Zugnamen.


Spezielle Spalten können mit der folgenden Syntax definiert werden:


• #comment: Die Spalte enthält nur Kommentare und wird beim Lesen des Stundenplans ignoriert.


• <leer>: Spalte ist eine Erweiterung der vorhergehenden Spalte.


12.3.3 Zeilendefinitionen


Eine Zeile wird durch den Inhalt der ersten Spalte definiert.


Standardmäßig definiert die erste Spalte den Stopport.


Spezielle Spalten können mit der folgenden Syntax definiert werden:


• #comment: Zeile enthält nur Kommentare und wird beim Lesen des Stundenplans ignoriert


• <leer>: Zeile ist eine Erweiterung der darüber liegenden Zeile


• #path: Definiert den Zugweg


• #consist: definiert die Zugzusammensetzung


• #start: definiert die Zeit, zu der der Zug gestartet wird


• #note: Definiert allgemeine Hinweise und Startsteuerbefehle für diesen Zug


• #dispose: definiert, wie mit dem Zug umgegangen wird, nachdem er beendet wurde


• #speed, #speedmph oder #speedkph: Definiert das Geschwindigkeitsverhalten des Zuges in Metern pro Sekunde, Meilen pro Stunde bzw. Kilometer pro Stunde; In einer einzigen Stundenplandatei kann nur eine Art von Geschwindigkeitsreihe verwendet werden


• #restartdelay: definiert zufällige Verzögerungen für einen Zug


• #briefing: Zeile enthält Briefingtext für jeden Zug und wird beim Lesen des Fahrplans ignoriert


12.3.4 Timing-Details


Jede Zelle, die sich am Schnittpunkt einer Zugspalte und einer Standortzeile befindet, kann Fahrplandetails für diesen Zug an diesem Standort enthalten. Zeitsteuerungsbefehle können an Orten eingestellt werden, an denen der Zug hält, können aber auch für Orte eingestellt werden, an denen keine Zeitmessung eingefügt wird, da der Zug diese Position durchfährt, ohne anzuhalten.


12.4 Einzelheiten zu den Fahrplandaten


12.4.1 Fahrplanbeschreibung


Obwohl #Kommentarzeilen und -spalten im Allgemeinen ignoriert werden, wird der Inhalt der Zelle am Schnittpunkt der ersten #Kommentarzeile und der ersten #Kommentarspalte als Stundenplanbeschreibung verwendet. Dies erscheint als Name des Fahrplans im Open Rails-Menü und wird verwendet, um auf Züge aus anderen Fahrplänen zu verweisen.


12.4.2 Zugdetails


Der in der ersten Zeile definierte Zugname muss für jeden Zug in einer Fahrplandatei eindeutig sein. Dieser Name wird auch verwendet, wenn in einem Zugbefehl auf diesen Zug verwiesen wird; Details siehe unten.


Die Reihenfolge der Züge ist nicht wichtig.


12.4.3 Standortdetails


Derzeit sind die möglichen Standorte auf „Plattformen“ beschränkt, wie sie im MSTS Route Editor definiert sind.


Jeder Standort muss auf den in den Bahnsteigdefinitionen definierten „Stationsnamen“ eingestellt werden.


Der im Fahrplan verwendete Name muss genau mit dem Namen übereinstimmen, der in der Routendefinition (*.tdb-Datei) verwendet wird, andernfalls kann der Standort nicht gefunden und daher nicht verarbeitet werden.


Außerdem muss jeder Ortsname eindeutig sein, da sonst seine Position in der Trasse nicht eindeutig sein könnte.


Die Reihenfolge der Orte ist nicht wichtig, da die Reihenfolge, in der ein Zug die Bahnhöfe passiert, in der Trasse dieses Zuges festgelegt ist. Aus dem gleichen Grund kann die Trasse eines Zuges so eingestellt werden, dass sie nur zwischen einigen Standorten verläuft oder bestimmte Bahnhöfe umgeht.


12.4.4 Timing-Details


Jede Zelle an einer Kreuzung von Zug und Standort kann die Fahrzeitdetails dieses Zuges an diesem Standort enthalten.


Die Zeiten sind als HH:mm definiert und es muss das 24-Stunden-Format verwendet werden.


Wenn eine einzelne Zeit eingegeben wird, wird diese als Abfahrtszeit übernommen (außer am Endort).


Sollen sowohl Ankunfts- als auch Abfahrtszeit angegeben werden, müssen diese durch „-“ getrennt werden.


Zusätzliche Timing-Befehle können enthalten sein. Solche Befehle können auch für Orte festgelegt werden, an denen der Zug nicht hält und daher keine Zeitangaben haben, der Zug diesen Ort jedoch passieren muss, damit die Befehle wirksam werden.


Obwohl ein Ort selbst mehr als einmal in einem Fahrplan definiert werden kann, ist es nicht möglich, Fahrplandetails für Züge für einen Ort mehr als einmal zu definieren. Wenn ein Zug einer Strecke folgt, die ihn mehr als einmal durch denselben Ort führt, muss der Zug in separate Zugeinfahrten „aufgeteilt“ werden.


12.4.1 Fahrplanbeschreibung


Obwohl #Kommentarzeilen und -spalten im Allgemeinen ignoriert werden, wird der Inhalt der Zelle am Schnittpunkt der ersten #Kommentarzeile und der ersten #Kommentarspalte als Stundenplanbeschreibung verwendet. Dies erscheint als Name des Fahrplans im Open Rails-Menü und wird verwendet, um auf Züge aus anderen Fahrplänen zu verweisen.


12.4.2 Zugdetails


Der in der ersten Zeile definierte Zugname muss für jeden Zug in einer Fahrplandatei eindeutig sein. Dieser Name wird auch verwendet, wenn in einem Zugbefehl auf diesen Zug verwiesen wird; Details siehe unten.


Die Reihenfolge der Züge ist nicht wichtig.


12.4.3 Standortdetails


Derzeit sind die möglichen Standorte auf „Plattformen“ beschränkt, wie sie im MSTS Route Editor definiert sind.


Jeder Standort muss auf den in den Bahnsteigdefinitionen definierten „Stationsnamen“ eingestellt werden.


Der im Fahrplan verwendete Name muss genau mit dem Namen übereinstimmen, der in der Routendefinition (*.tdb-Datei) verwendet wird, andernfalls kann der Standort nicht gefunden und daher nicht verarbeitet werden.


Außerdem muss jeder Ortsname eindeutig sein, da sonst seine Position in der Trasse nicht eindeutig sein könnte.


Die Reihenfolge der Orte ist nicht wichtig, da die Reihenfolge, in der ein Zug die Bahnhöfe passiert, in der Trasse dieses Zuges festgelegt ist. Aus dem gleichen Grund kann die Trasse eines Zuges so eingestellt werden, dass sie nur zwischen einigen Standorten verläuft oder bestimmte Bahnhöfe umgeht.


12.4.4 Timing-Details


Jede Zelle an einer Kreuzung von Zug und Standort kann die Fahrzeitdetails dieses Zuges an diesem Standort enthalten.


Die Zeiten sind als HH:mm definiert und es muss das 24-Stunden-Format verwendet werden.


Wenn eine einzelne Zeit eingegeben wird, wird diese als Abfahrtszeit übernommen (außer am Endort).


Sollen sowohl Ankunfts- als auch Abfahrtszeit angegeben werden, müssen diese durch „-“ getrennt werden.


Zusätzliche Timing-Befehle können enthalten sein. Solche Befehle können auch für Orte festgelegt werden, an denen der Zug nicht hält und daher keine Zeitangaben haben, der Zug diesen Ort jedoch passieren muss, damit die Befehle wirksam werden.


Obwohl ein Ort selbst mehr als einmal in einem Fahrplan definiert werden kann, ist es nicht möglich, Fahrplandetails für Züge für einen Ort mehr als einmal zu definieren. Wenn ein Zug einer Strecke folgt, die ihn mehr als einmal durch denselben Ort führt, muss der Zug in separate Zugeinfahrten „aufgeteilt“ werden.


Wartestellen dürfen jedoch nicht in Trassen zur Verwendung in Fahrplänen definiert werden, da die Verarbeitung von Wartestellen im Fahrplankonzept nicht unterstützt wird. Wartepunkte innerhalb eines Fahrplans müssen über die spezifischen Steuerbefehle definiert werden.


Die #path-Anweisung kann ein Qualifikationsmerkmal annehmen: /binary.


Für große Fahrpläne sind möglicherweise viele Pfade erforderlich, und das Laden dieser Pfade kann viel Zeit in Anspruch nehmen (mehrere Minuten). Um diese Ladezeit zu verkürzen, können die Pfade in einem verarbeiteten, binären Format gespeichert werden. Dieses Format ist das gleiche wie im Befehl „Speichern“. Beachten Sie, dass der Benutzer weder zum Lesen noch zum Schreiben direkt auf die binären Pfadinformationen zugreifen kann. Wenn /binary festgelegt ist, prüft das Programm, ob ein Binärpfad vorhanden ist. Wenn ja, wird dieser Pfad gelesen. Wenn nicht, liest es den „normalen“ Pfad und speichert ihn dann als Binärdatei für die zukünftige Verwendung. Binärpfade werden in einem Unterverzeichnis namens OpenRails gespeichert, das im Pfadverzeichnis der Route erstellt werden muss.


Hinweis: Wenn ein Pfad oder die Route bearbeitet wird, sind die Binärdaten veraltet. Wenn ja, wird sie automatisch gelöscht und neu erstellt, wenn der Benutzer die Route startet.


• #consist-Zeile


Die Zeile #consist definiert den für diesen Zug verwendeten Verbund. Dieses Feld ist Pflichtfeld.


Wenn der Zug jedoch als KI-Zug gefahren wird und aus einem anderen Zug „gebildet“ wird (siehe unten), werden die Verbandsinformationen ignoriert und der Zug verwendet den Verband des Zuges, aus dem er gebildet wurde.


Für den Spielerzug wird immer die Gruppe verwendet, auch wenn der Zug aus einem anderen Zug gebildet wird. Die Consist-Definition muss eine *.con-Datei sein, wie vom MSTS-Aktivitätseditor oder vom TSRE5-Consist-Editor definiert, und muss im definierten Consist-Verzeichnis gespeichert sein.


Auch eine komplexere Syntax der Consist-Definition ist möglich, wie unten beschrieben.


Dies ermöglicht, dass eine Konsistenzdefinition nicht nur eine einzelne Zeichenfolge ist, die sich direkt auf eine Datei bezieht, sondern eine Kombination von Zeichenfolgen, mit der Möglichkeit, die Zusammenfassung (einen Teil davon) umgekehrt zu verwenden.


Die allgemeine Syntax lautet:


bestehen [$reverse] [+ besteht [$reverse] [+ ...] ]


Beispiel: Ein lokbespannter Zug fährt mit demselben Wagensatz in beide Richtungen. Es sind zwei Verbände definiert: c_loco und c_wagons. Die jetzt verwendbaren Consist-Definitionen sind:


c_loco + c_wagons, und für umgekehrt:


c_loco $reverse + c_wagons $reverse


Bitte beachten Sie, dass $reverse immer nur für den Unterkonsist gilt, mit dem es definiert ist, nicht für den gesamten kombinierten Konsist.


Wenn dieser Zug manchmal einige zusätzliche Waggons hat, z.B. Während der Hauptverkehrszeit können die Verbände wie folgt definiert werden (mit c_add die Definition der Zusatzwagen):


c_loco + c_wagons + c_add und für umgekehrt:


c_loco $reverse + c_add $reverse + c_wagons $reverse


Dies kann natürlich die Definition der gesamten erforderlichen Zusammensetzungen einsparen und erspart insbesondere die mühsame Aufgabe, „umgekehrte“ Zusammensetzungen definieren zu müssen. Bei der Verwendung mehrerer Einheiten ist dies noch nützlicher.


Angenommen, es gibt zwei Gruppen von Triebzügen, die entweder als Einzelzüge oder kombiniert verkehren. Normalerweise wären sechs verschiedene Gruppen erforderlich, um alle Züge abzudecken, aber jetzt reichen nur noch zwei aus: set_a und


set_b. Die verschiedenen Kombinationen sind:


set_a, reverse set_a $reverse.


set_b, reverse set_b $reverse.


set_a + set_b, umgekehrt set_b $reverse + set_a $reverse.


Consist-Strings, die „+“ oder „$“ enthalten, können in Stundenplänen verwendet werden, müssen jedoch durch < > eingeschlossen werden. Zum Beispiel :


<Lok+Wagen>+<$Lok+Wagen>$rückwärts


• #Startreihe


Die Zeile #start definiert den Zeitpunkt, zu dem der Zug gestartet wird. Es muss als HH:mm definiert sein und das 24-Stunden-Format muss verwendet werden. Dieses Feld ist Pflichtfeld.


Nutzung der Startzeit für KI-Züge:


– Wenn ein Zug aus einem anderen Zug gebildet wird und dieser andere Zug in den Fahrplan aufgenommen wird, wird die in #start definierte Zeit nur verwendet, um zu definieren, wann der Zug aktiv wird.


Nutzung der Startzeit für Spielertraining:


– Die in #start definierte Zeit wird normalerweise als Startzeit der Zeitplan-„Aktivität“ verwendet.


Wird ein Zug aus einem anderen Zug gebildet und ist dieser Zug im Fahrplan enthalten, so verzögert sich, wenn dieser Zug Verspätung hat und nicht vor der definierten Startzeit eintrifft, auch der Start dieses Zuges bis zu dem Zug, aus dem er austritt gebildet ist angekommen. Dies gilt sowohl für die KI als auch für das Spielertraining. Dies bedeutet, dass sich der Beginn der Spieleraktivität verzögern kann.


Das Feld #start akzeptiert auch eine Reihe von Startbefehlen.


Einzelheiten zum Start und Betrieb der Züge um Mitternacht finden Sie im folgenden Absatz.


• #Notizzeile


In der Zeile #note können Notizbefehle definiert werden, die nicht ortsbezogen sind, sondern für die gesamte Strecke des Zuges gelten. Darüber hinaus können damit auch Befehle für Züge gesetzt werden, die an keinem definierten Ort anhalten oder diesen durchfahren. Diese Zeile ist optional.


• #dispose-Zeile


Die Zeile #dispose definiert, was mit einem KI-Zug passiert, wenn er das Ende seiner Fahrt erreicht hat, d. h. das Ende des definierten Pfades erreicht hat. Die Informationen in der Zeile #dispose können detailliert angeben, ob der Zug in einen anderen Zug umgewandelt werden soll und wenn ja, wie und wo. Einzelheiten finden Sie in den weiter unten beschriebenen Dispose-Befehlen.


Diese Reihe ist optional und wenn sie enthalten ist, ist auch die Nutzung pro Zug optional. Wenn die Zeile nicht enthalten ist oder das Feld nicht für einen bestimmten Zug festgelegt ist, wird der Zug nach seiner Beendigung aus der Aktivität entfernt.


Die Zeile #dispose hat derzeit keinen Einfluss auf das Ende des Laufs für den Spielerzug.


• #Speed-Reihe


Dieses optionale Feld definiert die Höchstgeschwindigkeit für Züge, wodurch der Zug möglicherweise auf eine niedrigere Geschwindigkeit beschränkt wird, als dies sonst zulässig wäre. Beachten Sie, dass ein hier definierter Wert niemals angewendet wird, wenn er die Höchstgeschwindigkeit überschreitet, die durch Geschwindigkeitsmarkierungen oder Signale oder in der Konsistenzdatei festgelegt ist.


Falls angegeben, kann in einer einzelnen Stundenplandatei nur eine Zeile mit den Bezeichnungen #speed (m/s), #speedkph oder #speedmph vorhanden sein.


Diese Reihe akzeptiert auch eine Reihe von Geschwindigkeitsbefehlen.


• Zeile #restartdelay


Verzögerungen treten auf, wenn ein Zug von einer Haltestelle wieder anfährt, z.B. an einem Bahnhof oder einem Signal. Für jeden Zug sind standardmäßig zufällige Verzögerungen festgelegt. Die Standardwerte können optional mit Verzögerungsbefehlen im Feld #restartdelay außer Kraft gesetzt werden.


Die zufällige Verzögerung wird als fester Teil + 𝑅𝑎𝑛𝑑𝑜𝑚 (variabler Teil) berechnet, wobei alle Werte in Sekunden angegeben sind.


• #Briefing-Reihe


Die Zeile #briefing ist optional und enthält Text, der den Zugbetrieb für den Benutzer beschreibt. Dieser Text erscheint im Hauptfenster von Open Rails zusammen mit der Beschreibung der Strecke und der Lok.


Der Benutzer kann es auch im Spiel auf der Registerkarte „Einweisung“ des Hilfefensters (F1) sehen.


Ein ähnlicher Eintrag in der Spalte #comment liefert Text, der den gesamten Stundenplan beschreibt. Die Stundenplan- oder Datei erlaubt keine Zeilenumbrüche in den Feldern. Wenn jedoch HTML-Umbrüche „<br>“ in das #briefing-Feld eingefügt werden, werden diese in Zeilenumbrüche umgewandelt.


12.4.7 Steuerbefehle


Allgemein


Steuerbefehle können eingestellt werden, um das Verhalten und die Aktionen von Zügen und Signalen zu steuern.


Befehlssyntax


Alle Befehle haben die gleiche Grundsyntax. Ein Befehl besteht aus:


• Syntaxname: definiert den Steuerbefehl.


• Syntaxwert: Legen Sie den Wert fest, der sich auf den Befehl bezieht. Nicht alle Befehle akzeptieren einen Wert.


• Syntaxqualifizierer: Fügt dem Befehl zusätzliche Informationen hinzu. Nicht alle Befehle verfügen über Qualifikationsmerkmale. Einige Qualifikationsmerkmale können optional sein, andere können jedoch obligatorisch oder nur in Kombination mit anderen Qualifikationsmerkmalen obligatorisch sein.


• Syntax-Qualifiziererwerte: Ein Qualifizierer kann einen Wert erfordern


Befehlssyntax:


$name = Wert /Qualifier=Wert


Es können mehrere Werte eingestellt werden, getrennt durch „+“. Beachten Sie, dass alle Qualifikationsmerkmale immer für alle Werte gelten.


Zugreferenz


Viele Befehle erfordern einen Verweis auf einen anderen Zug. Diese Referenz ist der Name des anderen Zuges, wie in der ersten Zeile definiert.


Befindet sich der Zielzug in einem separaten Fahrplan derselben Fahrplangruppe, erfolgt die Referenz in der Form Zugname:Fahrplanbeschreibung, wobei die Beschreibung der Text am Schnittpunkt der ersten #Kommentarzeile und der #Kommentarspalte in der anderen ist Stundenplandatei.


Stationsbefehle


Stationsbefehle gelten für alle Haltestellen einer bestimmten Stationsreihe. Sie werden direkt nach dem Stationsnamen in der ersten Spalte eingefügt.


$hold, $nohold und $forcehold


Wenn $hold gesetzt ist, wird festgelegt, dass das Ausfahrsignal für diesen Standort bis zu 2 Minuten vor der Abfahrt des Zuges auf Gefahr gehalten werden muss.


Ein Ausfahrtssignal wird einem Bahnsteig zugeordnet, wenn dieses Signal jenseits der Bahnsteigendmarkierung (in Fahrtrichtung) liegt, sich aber noch innerhalb desselben Gleisknotens befindet – es dürfen sich also keine Punkte etc. zwischen der Bahnsteigmarkierung und dem Signal befinden .


Standardmäßig wird das Signal nicht gehalten.


$forcehold setzt das erste Signal hinter der Plattform als Haltesignal, auch wenn dieses Signal der Plattform nicht als Ausstiegssignal zugeordnet ist. Dies kann an Standorten mit komplexem Layout nützlich sein, an denen sich die Signale nicht direkt an den Bahnsteigenden befinden. Wenn die Signale jedoch nicht gehalten werden, kann dies zu Verzögerungen bei anderen Zügen führen.


$forcewait


Erzwingen Sie, dass der Zug wartet, wenn das nächste Signal gefährdet ist, auch wenn dieses Signal nicht als Ausfahrtssignal für diesen Bahnsteig erkannt wird.


$nowaitsignal


Wenn ein Zug an einem Bahnhof anhält und das nächste Signal vor ihm immer noch in Gefahr ist, fährt der Zug normalerweise nicht ab. Es gibt jedoch Situationen, in denen dies außer Kraft gesetzt werden sollte.


Einige Bahnhöfe sind „Freilinien“-Bahnhöfe, das heißt, sie werden nicht durch Signale gesteuert (normalerweise kleine Haltestellen ohne Weichen). Das nächste Signal ist wahrscheinlich ein „normales“ Blocksignal und befindet sich möglicherweise in einiger Entfernung von der Station. In diesem Fall muss der Zug nicht auf die Freigabe des Signals warten, um abzufahren.


Eine andere Situation besteht bei Güterzügen, Leichtlokomotiven und Leerzügen, die in der Regel ebenfalls nicht auf die Freigabe des Signals warten, sondern sich dem Signal nähern, um so wenig Zeit wie möglich zum Verlassen des Bahnhofs zu benötigen.


$terminal


Der Befehl $terminal ändert die Berechnung der Halteposition und sorgt dafür, dass der Zug am Endende des Bahnsteigs anhält. Ob es sich bei dem Bahnsteig tatsächlich um einen Endbahnsteig handelt und an welchem Ende er endet, wird durch eine Prüfung der Zugtrasse ermittelt.


Befindet sich der Bahnsteig im ersten Abschnitt einer Zugstrecke oder gibt es auf dem Weg, der zu dem Abschnitt führt, auf dem sich der Bahnsteig befindet, keine Kreuzungen, wird davon ausgegangen, dass der Zug an einem Endbahnsteig startet und das Ende des Zuges in der Nähe platziert wird zum Anfang der Plattform.


Befindet sich der Bahnsteig im letzten Abschnitt des Gleises oder gibt es keine Abzweigungen hinter dem Abschnitt, der den Bahnsteig enthält, wird davon ausgegangen, dass sich der Bahnsteig am Ende des Gleises des Zuges befindet und der Zug bis nahe zum Ende des Bahnsteigs fahren wird in seiner Fahrtrichtung.


Wenn keine der beiden Bedingungen erfüllt ist, wird davon ausgegangen, dass es sich überhaupt nicht um einen Endbahnsteig handelt, und die normale Halteposition wird berechnet.


Die Option $terminal kann für einen Bahnhof oder für einzelne Züge gesetzt werden. Wenn es für einen Bahnhof festgelegt ist, kann es nicht von einem Zug außer Kraft gesetzt werden.


Aufgrund der oben beschriebenen Logik haben jedoch Züge, deren Gleise durch diese Bahnsteige führen, die normalen Haltepositionen, wenn sie für einen Bahnhof festgelegt werden, der sowohl Endbahnsteige als auch Durchgangsbahnsteige hat.


$closeupsignal


Legt einen reduzierten Abstand bei der Annäherung an das Signal fest, um die verfügbare Bahnsteiglänge optimal zu nutzen.


$extendplatformtosignal


Manchmal wird die Bahnsteigmarkierung in einiger Entfernung vom tatsächlichen Ende des Bahnsteigs platziert, an dem sich das Signal befindet, z. B. bei Weichen entlang des Bahnsteigs. Normalerweise würde dies dazu führen, dass Züge weit vom Ende des Bahnsteigs anhalten und dann die Weichen nach hinten blockieren. Dieser Parameter platziert die Position „Ende des Bahnsteigs“ nicht an der Position der Bahnsteigmarkierung, sondern direkt vor der Signalposition.


$restrictplatformtosignal


Manchmal wird die Bahnsteigmarkierung hinter dem Ausfahrtssignal platziert

für diese Plattform. Wenn das Signal gefährdet ist, hält der Zug am Signal und wenn es sich um einen langen Zug handelt, wird diese Haltestelle nicht als Haltestelle des Bahnhofs angesehen, da der Zug die erforderliche Bahnsteighalteposition nicht erreicht hat. Dieser Parameter platziert die Position „Ende des Bahnsteigs“ nicht an der Position der Bahnsteigmarkierung, sondern direkt vor der Signalposition.


$Stoppzeit


Syntax: $stoptime=n (n ist die Zeit in Sekunden)


Legt die erforderliche Standardstoppzeit an diesem Bahnsteig fest und überschreibt dabei die in der Gleisdatenbank festgelegte Stoppzeitdefinition.


$Nahaufnahme


Der Zug hält in der Nähe eines anderen Zuges, der sich bereits auf dem Bahnsteig befindet. Kann nur verwendet werden, wenn der Zeitbefehl $callon auch für diesen Zug festgelegt ist.


$keepclear


Definiert, dass die Halteposition so sein muss, dass die im Befehl angegebene Länge des Bahnsteigs vor oder hinter dem Zug freigehalten werden muss. Dies kann wichtig sein, wenn ein weiterer Zug angeschlossen werden soll oder ein weiterer Zug auf den gleichen Bahnsteig gebracht werden soll.


Parameter:


hinten = <n> (n in Metern)


Der Haltepunkt muss so sein, dass der Mindestabstand hinter dem Zug n Meter beträgt. Wenn der Bahnsteig über ein Ausfahrtssignal verfügt, hält der Zug vor dem Signal an, auch wenn dies bedeutet, dass weniger als n Meter frei sind, es sei denn, der Parameter /force ist ebenfalls festgelegt. In dieser Situation muss die Trasse des Zuges über das Ausfahrsignal hinaus weitergeführt werden.


Beachten Sie, dass der Zug niemals über das Ende seiner Strecke hinaus weiterfahren wird.


vorne = <n> (n in Metern)


Der Haltestellenstandort muss so beschaffen sein, dass die vor dem Zug verfügbare Mindestbahnsteiglänge nicht weniger als n Meter beträgt. Wenn sich das Heck des Zuges außerhalb des Bahnsteigs befinden würde, wird die Position so berechnet, dass sich das Heck des Zuges am Bahnsteigende befindet, auch wenn dies bedeutet, dass weniger als n Meter frei sind, es sei denn, der Parameter /force ist ebenfalls festgelegt .


Gewalt


Erzwingt, dass der vordere oder hintere Abschnitt freigehalten wird, selbst wenn der Zug das Ausfahrtssignal passieren muss (für den hinteren Parameter) oder die Rückseite des Zuges nicht in den Bahnsteig passt (für den vorderen Parameter).


$endstop


Wenn der Weg des Zuges über die Stationsposition hinaus weitergeht (z. B. wenn $keepclear /rear /force eingestellt ist), gilt der Halt als Ende des Wegs, auch wenn der Zug


hat die eigentliche Endposition noch nicht erreicht.


Timing-Befehle


Diese Befehle können für jede Timing-Zelle eingestellt werden, d. h. an jedem Schnittpunkt von Zugspalte und Ortszeile, oder in der #Notizzeile. Die Befehle gelten am und ab dem Standort (falls zutreffend).


Beispielsweise kann ein $wait-Befehl für eine Station ohne Halt gesetzt werden. Der tatsächliche Warteort kann die Station selbst sein, es könnte sich aber auch um eine Schleife oder Kreuzung irgendwo hinter dieser Station handeln.


$wait


Syntax: $wait=<train> /maxdelay=n /notstarted /atstart /owndelay=n


Definiert, dass ein Zug auf den referenzierten Zug warten soll, damit dieser Zug zuerst weiterfahren kann. Der referenzierte Zug kann in die gleiche oder in die entgegengesetzte Richtung wie dieser Zug selbst geroutet werden. Es wird nach dem ersten Gleisabschnitt gesucht, der beiden Zügen gemeinsam ist, beginnend an der Stelle, an der das $wait definiert ist, oder am Anfang von der Pfad, falls in der #note-Zeile definiert.


Wenn der Startort bereits für beide Züge gemeinsam ist, wird zunächst nach dem ersten Abschnitt gesucht, der nicht beiden Zügen gemeinsam ist, und die Wartezeit wird auf den nächsten ersten gemeinsamen Abschnitt darüber hinaus angewendet.


Wenn die Wartezeit eingestellt ist, wird der Abschnitt für diesen Zug erst dann freigegeben, wenn der referenzierte Zug diesen Abschnitt passiert hat. Dadurch wird der Zug zum Warten gezwungen. Der referenzierte Zug muss vorhanden sein, damit die Wartezeit gültig ist.


Wenn jedoch /notstarted gesetzt ist, wird die Wartezeit auch dann gesetzt, wenn der referenzierte Zug noch nicht gestartet wurde. Dies kann verwendet werden, wenn die Warteposition sehr nahe an der Startposition des referenzierten Zuges liegt und das Risiko besteht, dass der Zug den Abschnitt verlässt, bevor der referenzierte Zug gestartet wird.


Beim Definieren eines $wait an einer Stelle, an der der Zug umkehren soll, ist Vorsicht geboten. Da die Suche nur für den aktiven Unterweg durchgeführt wird, ist ein $wait, der an einer Stelle definiert wird, an der der Zug umkehren soll, nicht wirksam, da sich der gemeinsame Abschnitt nach der Umkehrung im nächsten Unterweg befindet. In einer solchen Situation sollte der Zug in zwei separate Definitionen „aufgeteilt“ werden, eine bis zur Umkehrstelle und eine andere, die an dieser Stelle beginnt.


Befehlswert: Referenzierter Zug, dies ist obligatorisch.


Befehlsqualifizierer:


/maxdelay=n: n ist die maximale Verzögerung (in Minuten) des referenzierten Zuges, für den die Wartezeit noch gültig ist.


Diese Verspätung wird bei etwaiger Verspätung des wartenden Zuges, z.B. Wenn maxdelay 5 Minuten beträgt, hat der referenzierte Zug eine Verspätung von 8 Minuten, aber dieser Zug selbst hat eine Verspätung von 4 Minuten, die kompensierte Verspätung beträgt 4 Minuten und die Wartezeit ist also immer noch gültig.


Dieser Parameter ist optional. Wenn er nicht festgelegt ist, wird standardmäßig eine maximale Verzögerung von 0 Minuten festgelegt.


/notstarted: Die Wartezeit wird auch angewendet, wenn der referenzierte Zug noch nicht gestartet ist.


/atstart: Das Warten wird an der aktuellen Position und nicht an der ersten nicht gemeinsamen Position aktiviert.


Kann verwendet werden, wenn ein Zug in der Gegenrichtung an derselben Stelle enden soll, an der dieser Zug gestartet ist, und zwischen dieser Startposition und der aktuellen Position des anderen Zuges möglicherweise keine möglichen Überholorte vorhanden sind.


/owndelay=n (n ist die Verzögerung in Minuten); Der Befehl „OwnDelay Qualifier“ macht den Befehl nur dann gültig, wenn der betreffende Zug mindestens um die Gesamtminuten Verspätung hat, die für den Qualifizierer „OwnDelay“ festgelegt sind.


Dies kann genutzt werden, um einen verspäteten Zug so zu halten, dass er insbesondere auf eingleisigen Abschnitten keine zusätzlichen Verzögerungen bei anderen Zügen verursacht.


/trigger=HH:MM


Experimentelle Option: Beschränkt die Auslösung dieses Befehls erst nach der angegebenen Zeit.


/endtrigger=HH:MM


Experimentelle Option: Schränkt diesen Befehl so ein, dass er nur vor der angegebenen Zeit ausgelöst wird.


$follow


Syntax: $follow=<train> /maxdelay=n /notstarted /owndelay=n


Dieser Befehl ist dem Befehl $wait sehr ähnlich, wird in diesem Fall jedoch auf jeden gemeinsamen Abschnitt beider Züge angewendet, der über einen Teil der Strecke hinausgeht, der nicht gemeinsam war. Der Zug wird so gesteuert, dass der Zug in jedem Abschnitt, in dem die Gleise der Züge nach einem nicht gemeinsamen Abschnitt wieder zusammentreffen, nur dann weiterfährt, wenn der Referenzzug diese Position passiert hat. Der Befehl funktioniert daher als $wait, der für jeden dieser Abschnitte wiederholt wird.


Der Befehl kann nur für Züge gesetzt werden, die in die gleiche Richtung fahren. Wenn ein Warteort gefunden wird und der Zug festgehalten werden soll, wird eine spezielle Prüfung durchgeführt, um sicherzustellen, dass sich das Ende des Zuges nicht im Gleis des referenzierten Zuges befindet oder, falls dies der Fall ist, der referenzierte Zug diese Position bereits verlassen hat . Andernfalls würde es zu einem Deadlock kommen, bei dem der referenzierte Zug den wartenden Zug nicht passieren könnte.


Befehlswert: Referenzierter Zug, dies ist obligatorisch.


Befehlsqualifizierer:


/maxdelay=n: n ist die maximale Verzögerung (in Minuten) des referenzierten Zuges, für den die Wartezeit noch gültig ist. Diese Verspätung wird durch eine eventuelle Verspätung des wartenden Zuges ausgeglichen, z.B. Wenn maxdelay 5 Minuten beträgt, hat der referenzierte Zug eine Verspätung von 8 Minuten, aber dieser Zug selbst hat eine Verspätung von 4 Minuten, die kompensierte Verspätung beträgt 4 Minuten und somit ist das Warten weiterhin gültig.


Dieser Parameter ist optional. Wenn er nicht festgelegt ist, wird standardmäßig eine maximale Verzögerung von 0 Minuten festgelegt.


/notstarted: Das Folgende wird auch angewendet, wenn der referenzierte Zug noch nicht gestartet ist.


/owndelay=n (n ist die Verzögerung in Minuten): Der Befehl „owndelay qualifier“ macht den Befehl nur dann gültig, wenn der betreffende Zug mindestens um die Gesamtminuten Verspätung hat, die für den „owndelay“-Qualifizierer festgelegt sind.


Dies kann genutzt werden, um einen verspäteten Zug so zu halten, dass er insbesondere auf eingleisigen Abschnitten keine zusätzlichen Verzögerungen bei anderen Zügen verursacht.


/trigger=HH:MM


Experimentelle Option: Beschränkt die Auslösung dieses Befehls erst nach der angegebenen Zeit.


/endtrigger=HH:MM


Experimentelle Option: Schränkt diesen Befehl so ein, dass er nur vor der angegebenen Zeit ausgelöst wird.


$connect


Syntax: $connect=<train> /maxdelay=n /hold=h


Definiert, dass ein Zug an einem Bahnhof warten soll, bis ein anderer Zug angekommen ist, damit die Fahrgäste den Anschluss zwischen den Zügen herstellen können.


Der Zugplan wird so eingestellt, dass diese Verbindung möglich ist, und der Befehl $connect wird so eingestellt, dass diese Verbindung aufrechterhalten wird, wenn der ankommende Zug Verspätung hat.


Beachten Sie, dass der Befehl $connect das Signal nicht sperrt. Wenn die Trassen dieses Zuges und des ankommenden Zuges in Konflikt geraten, bevor der ankommende Zug den Bahnhof erreicht, müssen zusätzliche $wait- oder $hold-Befehle gesetzt werden, um einen Stillstand zu vermeiden.


Befehlswert: Referenz auf den Zug, auf den gewartet werden soll, dies ist obligatorisch.


Befehlsqualifizierer:


/maxdelay=n : n ist die maximale Verspätung (in Minuten) des ankommenden Zuges


dieser Zug wird gehalten.


Wenn die Verspätung des ankommenden Zuges diesen Wert überschreitet, wird der Zug nicht warten. Die maximale Verspätung ist unabhängig von der eigenen Verspätung dieses Zuges.


Dieses Qualifikationsmerkmal und sein Wert sind obligatorisch.


/hold=n : n ist die Zeit (in Minuten), die der Zug nach der Ankunft des anderen Zuges noch gehalten wird, und bezieht sich auf die Zeit, die die Fahrgäste für den Anschluss benötigen.


Dieses Qualifikationsmerkmal und sein Wert sind obligatorisch.


$waitany


Syntax : $waitany=<path> /both /opposite


Dieser Befehl setzt eine Wartezeit für jeden Zug, der sich auf dem definierten Streckenabschnitt befindet.


Wenn der Qualifizierer /both gesetzt ist, wird die Wartezeit für jeden Zug unabhängig von seiner Richtung angewendet, andernfalls wird die Wartezeit nur für Züge gesetzt, die in die gleiche Richtung fahren wie die Definition des Pfades.


Die im Befehl waitany definierte Trasse muss einen gemeinsamen Abschnitt mit der Trasse des Zuges selbst haben, sonst kann keine Warteposition gefunden werden.


Dieser Befehl kann so eingestellt werden, dass Züge so gesteuert werden, dass sie über die normalen Signal- oder Deadlock-Regeln hinaus warten. Beispielsweise kann damit eine Prüfung für einen Zug durchgeführt werden, der ein Abstellgleis oder einen Rangierbahnhof verlassen soll, wobei die Strecke, auf die der Zug einfahren soll, auf etwaige Züge überprüft wird, die sich auf dieser Strecke nähern, und zwar über eine Distanz, die weiter hinten liegt, als die Signalisierung normalerweise zulassen würde. um sicherzustellen, dass es keinem auf dieser Strecke entgegenkommenden Zug in die Quere kommt.


Wenn das Qualifikationsmerkmal /both gesetzt ist, kann es am Endende von eingleisigen Strecken verwendet werden, um sicherzustellen, dass ein Zug nicht über die letzte Durchfahrtsschleife hinaus in diesen Abschnitt einfährt, wenn sich bereits ein anderer Zug in diesem Abschnitt befindet, da dies zu unwiederbringlichen Blockaden führen könnte.


Wenn das Qualifikationsmerkmal /opposite festgelegt ist, sucht der Befehl nur nach Zügen in der entgegengesetzten Richtung des definierten Pfades.


$callon


Dadurch kann ein Zug einen Bahnsteig erreichen, auf dem sich ein anderer Zug befindet.


Ausführliche Informationen finden Sie in der obigen Diskussion zum Zusammenhang zwischen Signalisierung und Fahrplan.


$hold, $nohold und $forcehold


Diese Befehle sind funktional identisch mit den jeweiligen Bahnhofsbefehlen (und haben Vorrang vor diesen), gelten jedoch nur für den aktuellen Zug.


$forcewait


Identisch mit dem Bahnhofsbefehl, gilt jedoch nur für den aktuellen Zug.


$nowaitsignal


Identisch mit dem Bahnhofsbefehl, gilt jedoch nur für den aktuellen Zug.


$waitsignal


Kann verwendet werden, um einen $nowaitsignal-Stationsbefehl für den aktuellen Zug zu überschreiben und zu negieren.


$noclaim


Experimentelle Option: Der Befehl $noclaim verhindert, dass der Zug Gleisstromkreisabschnitte beansprucht, wenn der Zug an einem Signal gehalten wird. Ein Zug mit dem Befehl $noclaim würde an stark befahrenen Kreuzungen immer als letzter in der Warteschlange stehen und jedem anderen Zug immer Vorrang geben.


$detach


Syntax : $detach <detach parameters> <forms parameters>


Legen Sie Details für den Zug fest, um einen Teil dieses Zuges abzutrennen.


Parameter zur Definition des abzutrennenden Teils:


/power


Werde das Netzteil abnehmen. Das System prüft, ob sich vorne oder hinten ein Antriebsaggregat befindet. Wenn beides gefunden wird, hat vorne Vorrang. Wenn an beiden Enden kein Netzteil vorhanden ist, wird nichts gelöst.


/leadingpower


Es wird nur die vordere Antriebseinheit abgenommen. Wenn vorne kein Netzteil vorhanden ist, wird nichts gelöst.


/allleadingpower


Alle Antriebseinheiten an der Vorderseite des Zuges werden abgenommen. Wenn an der Vorderseite keine Leistungseinheiten vorhanden sind, wird nichts abgetrennt.


/trailingpower


Wird die Antriebseinheit abnehmen, die die hinterste Einheit im Zug ist. Wenn es sich bei der hinteren Einheit nicht um eine Leistungseinheit handelt, wird nichts abgetrennt.


/alltrailingpower


Alle Antriebseinheiten werden vom Heck des Zuges abmontiert. Wenn am Ende des Zuges keine Triebwerke vorhanden sind, wird nichts abgekoppelt.


/nonpower


Alle Einheiten, die keine Triebwerke sind, werden vom Zug getrennt. Das System ermittelt, an welchem Ende des Zuges sich die Antriebseinheiten befinden, und trennt dann alle Nicht-Antriebseinheiten vom anderen Ende des Zuges ab.


Wenn keines der Enden über Leistungseinheiten verfügt, werden die Einheiten von der Rückseite abgenommen. Wenn beide Enden Leistungseinheiten sind, wird nichts abgetrennt.


/units=n (n kann <0 oder >0 sein, aber n=0 ist nicht zulässig)


Anzahl der abzutrennenden Einheiten.


Wenn n>0, werden die Einheiten an der Vorderseite des Zuges abgetrennt. Wenn n<0, werden die Einheiten am Ende des Zuges abgetrennt. Überschreitet n die tatsächliche Länge des Zuges, wird n so reduziert, dass eine Einheit im Zug verbleibt.


/consist=<consist>[+<consist>[+...]]


Name der abzutrennenden Gruppe(n). Informationen zur Verwendung von Verbundnamen im Trennbefehl finden Sie im folgenden Hinweis zu Verbundnamen.


Der abzulösende Verband muss sich an einem der beiden Enden des Zuges befinden, d. h. es muss sich um den vorderen Teil oder den hinteren Teil des Zuges handeln.


Wenn eine Liste von Verbänden definiert wird, muss diese in der Reihenfolge der abzutrennenden Verbände vorliegen, von außen nach innen gesehen, d. h. wenn die Einheiten an der Vorderseite abgetrennt werden sollen, muss der erste Verbund in der Liste der vordere Teil sein , aber wenn die Einheiten hinten abgetrennt werden sollen, muss der erste Verband in der Liste der hintere Teil sein.


Wenn weder der vordere noch der hintere Teil mit dem definierten Verband oder dem ersten Verband übereinstimmen, wird nichts abgetrennt.


Parameter für den gebildeten Zug:


/forms=<train>


Der abgetrennte Teil bildet wie angegeben einen Zug.


/static


Der abgetrennte Teil bildet eine statische Einheit.


$attach


Syntax : $attach=<train>


Dieser Zug wird wie angegeben an den Zug angeschlossen und wird daher nicht mehr existieren.


Bei Verwendung an einer Haltestelle gibt es keinen Sinn, etwas über diese Haltestelle hinaus zu definieren, und im #dispose-Feld kann auch nichts definiert werden.


Befindet sich der andere Zug, an den dieser Zug angeschlossen werden muss, nicht an der Stelle, an der die Verbindung stattfinden soll, endet dieser Zug, ohne dass die Verbindung stattfindet. Es empfiehlt sich daher, einen $wait-Befehl zu verwenden, um sicherzustellen, dass sich der andere Zug wie erforderlich am Standort befindet.


Wenn der Parameter /firstin oder /setback gesetzt ist, sollte es umgekehrt sein. In diesem Fall sollte ein $wait-Befehl für den anderen Zug gesetzt werden, um sicherzustellen, dass dieser Zug tatsächlich als Erster ankommt.


Parameter (nur gültig bei Haltestelle Haltestelle):


/firstin


Dieser Zug befindet sich im ersten Zug und wartet auf die Ankunft des zweiten Zuges, um die Verbindung durchzuführen. Der andere Zug kann vor diesem Zug über eine Weiche oder aus der Gegenrichtung einfahren.


/setback


Dieser Zug fährt als Erster ein und wartet darauf, dass der andere Zug dahinter einfährt. Wenn der andere Zug angekommen ist, wird dieser Zug zurückgesetzt, um die Befestigung durchzuführen.


Dies sollte nicht verwendet werden, wenn eine Lokomotive vom anderen Zug getrennt werden soll, da dieser Zug nicht darauf wartet, dass die Lokomotive freigegeben wird, bevor er die Verbindung durchführt.


$pickup


Syntax : $pickup=<train> /static


This train will pick up the train as defined in the command, or will pick up the static consist which is on the location where the pickup is defined.


The train which is picked up will cease to exist. The full train is picked up, no changes are made to the consists of either trains (except if combined with $triggers command in #dispose field).


If there is no train to pick up at the required location, the train will continue as defined.


$transfer


Syntax : $transfer=<train> /static <transfer parameters>


Dieser Zug (der „aktive“ Zug) transportiert Einheiten wie angegeben mit dem Zug oder mit einer statischen Einheit, die an der Stelle platziert ist, an der der Transfer definiert ist (der „passive“ Zug).


Bei einem Transfer werden Einheiten von einem Zug auf einen anderen übertragen, beide Züge bleiben jedoch weiterhin bestehen. Mindestens ein Triebwerk muss im „aktiven“ Zug verbleiben, dieses Triebwerk darf nicht Teil des zu übertragenden Teils sein. Der „passive“ Zug muss keine Antriebseinheiten haben, oder alle Antriebseinheiten können im Rahmen des Transfers abgetrennt werden.


Parameter, die die Art der Übertragung definieren:


/give


Dieser Zug soll die definierten Einheiten an den anderen Zug weitergeben, d. h. Einheiten, die für den „aktiven“ Zug definiert sind, werden in den „passiven“ Zug verschoben.


/take


Dieser Zug soll die definierten Einheiten vom anderen Zug übernehmen, d. h. Einheiten, die für den „passiven“ Zug definiert wurden, werden in den „aktiven“ Zug verschoben.


/keep


Alle Einheiten mit Ausnahme der für den „aktiven“ Zug definierten Einheiten werden in den „passiven“ Zug übertragen.


/leave


Alle Einheiten mit Ausnahme der für den „passiven“ Zug definierten Einheiten werden in den „aktiven“ Zug übertragen.


Parameter, die die Einheiten definieren, die übertragen oder im Zug bleiben sollen:


/onepower : Nur ein Netzteil.


/allpower : Alle Aggregate.


/nonpower : Alle Einheiten, die keine Leistungseinheiten sind.


/units=<n>


Wenn der Abschnitt für den „aktiven“ Zug definiert ist und <n> die Länge dieses Zuges überschreitet, wird die Anzahl reduziert, sodass eine Einheit im Zug verbleibt.


/consist=<consist>[+consist[+...]]


Besteht aus Namen von Teilen, die behalten oder übertragen werden sollen. Die Verbandsnamen müssen der Reihe nach sein und der erste (oder einzige) Verbandsname muss mit dem Teil am entsprechenden Ende des Zuges übereinstimmen.


$activate


Syntax : $activate=<train>


Aktiviert den Zug wie angegeben, entweder wenn der Zug startet, wenn der Zug an der angegebenen Haltestelle ist oder wenn er endet.


Startbefehle


$create


Syntax : $create[=<time>] [/ahead=<train>]


Der Befehl $create erstellt diesen Zug zum angegebenen Zeitpunkt. Wenn keine Zeit eingestellt ist, wird der Zug vor dem Start des ersten Zuges erstellt. Der Zug bleibt bis zu der als Startzeit festgelegten Zeit „statisch“. Es gelten weiterhin die normalen Regeln für die Zugplatzierung, sodass ein Zug nicht auf einem Gleisabschnitt platziert werden kann, der bereits von einem anderen Zug besetzt ist.


Auf Abstellgleisen können jedoch häufig mehrere Züge verkehren. Um dies zu berücksichtigen und sicherzustellen, dass die Züge in der richtigen Reihenfolge (der erste fährt vorne) abgestellt werden, muss der Parameter [/ahead=<train>] verwendet werden.


Der Zug wird nun in Richtung der Zugtrasse vor dem referenzierten Zug platziert. Auf einem Abstellgleis können mehrere Züge gelagert werden, es muss jedoch darauf geachtet werden, die richtigen Referenzen festzulegen. Der Verweis muss immer auf den vorherigen Zug erfolgen – zwei Züge können im Parameter /ahead nicht auf denselben Zug verweisen, da dies zu Konflikten führen würde.


Wenn die Gesamtlänge aller Züge die Länge der Abstellgleise überschreitet, „schwappen“ die Züge auf das, was dahinter liegt.


Beachten Sie, dass ein Zug, auf den in einem /ahead-Parameter verwiesen wird, vor oder gleichzeitig mit dem Zug erstellt werden muss, der diesen Verweis verwendet.


$pool


Syntax : $pool=<poolname> [/direction=forward|backward]


Der Zug stammt aus dem definierten Pool.


Für Züge, die von einem Pool abfahren, muss der Weg am oder nahe dem Ende eines der für diesen Pool definierten Zugangswege beginnen. Wenn der Weg früher beginnt als der letzte für den Zufahrtsweg definierte Gleisabschnitt, darf er nicht von diesem Weg abweichen.


Bei Drehscheibenbecken kann über den Richtungskennzeichner festgelegt werden, in welche Richtung der Zug aus der Drehscheibe ausfährt. Wenn nicht eingestellt, fährt der Zug rückwärts.


$next


Die Startzeit ist nach 00:00 Uhr am Ende des Stundenplans. Kann verwendet werden, um den Zugbetrieb nach Mitternacht zu starten.


$static


Syntax : $static [/pool=<pool>] [/ahead=<train>]


This train will spawn as a static train.


/pool=<pool>


Der Zug wird im referenzierten Pool erstellt. Damit ein Pool über Züge verfügt, müssen diese mit diesem Befehl definiert werden.


Der Pfad muss ein für diesen Pool definierter Speicherpfad sein. Beachten Sie, dass der Zug auf einem der anderen Speicherpfade platziert werden kann, die für diesen Pool definiert sind. Dies wird durch die Poollogik definiert.


Wenn in einem Pool mehr Züge erstellt werden, als der Pool aufnehmen kann, wird eine Warnung ausgegeben.


/ahead=<train>


Wie oben für den Befehl $create.


$activated


Der Zug wird durch den $activate-Befehl eines anderen Zuges aktiviert. Der Befehl $activate kann vor oder nach der definierten Startzeit dieses Zuges gesendet werden.


Ein Zug kann nur von einem anderen Zug aktiviert werden.


Hinweisbefehle


Die Notizzeile definiert Befehle, die beim Starten des Zuges gelten. Zusätzlich zu den unten aufgeführten exklusiven #note-Befehlen akzeptiert diese Zeile auch alle Timing-Befehle.


Das Programm verwendet durchschnittliche Beschleunigungs- und Verzögerungswerte für alle Züge (unterschiedliche Werte für Güter-, Personen- und Hochgeschwindigkeitszüge). Doch insbesondere für moderne Züge sind diese Werte nicht immer ausreichend. Dies kann zu Verzögerungen führen, wenn versucht wird, einen realen Zeitplan einzuhalten.


Mit den Befehlen $acc und $dec können die verwendeten Werte geändert werden. Beachten Sie, dass diese Befehle keinen tatsächlichen Wert, sondern einen Faktor definieren. Der Standardwert wird mit diesem Faktor multipliziert. Die Einstellung eines höheren Wertes für Beschleunigung und Verzögerung bedeutet jedoch nicht, dass die Züge entsprechend dem eingestellten Wert immer schneller beschleunigen und abbremsen. Meistens wird das Zugverhalten durch die Physik gesteuert. Aber insbesondere der $dec-Faktor hat einen wichtigen Nebeneffekt. Der Verzögerungswert wird auch zur Berechnung des voraussichtlich erforderlichen Bremswegs verwendet. Durch die Einstellung einer höheren Verzögerung verkürzt sich der erforderliche Bremsweg, sodass der Zug über längere Strecken weiterhin mit der maximal zulässigen Geschwindigkeit fahren kann. Dies kann erhebliche Auswirkungen auf den Zeitpunkt haben. Achten Sie jedoch darauf, den Wert nicht zu hoch einzustellen – der berechnete Bremsweg muss natürlich ausreichen, um eine ordnungsgemäße Bremsung zu ermöglichen, da der Zug sonst nicht rechtzeitig anhalten kann und es zu SPADs etc. kommt.


Ein typischer Wert für moderne Aktien für den Befehl $dec ist 2 oder 3.


$acc


Syntax : $acc=<value>


Legt die erforderliche Beschleunigung für diesen Zug fest. <Wert> ist ein Multiplikator für die Standardbeschleunigung.


$dec


Syntax : $dec=<value>


Legt die erforderliche Verzögerung für diesen Zug fest. <Wert> ist ein Multiplikator für die Standardverzögerung.


$doo


Definiert den Zug als „Nur durch den Fahrer bedient“. Wenn eingestellt, ertönt bei der Abfahrt von einem Bahnhof kein Abfahrtston (Pfeif, Glocke oder was auch immer).


$forcereversal


Normalerweise wird bei einer Umkehrung und einem Signal auf der Strecke des Zuges, das vom Umkehrpunkt wegführt, die tatsächliche Umkehrposition so festgelegt, dass der Zug dieses Signal vollständig passiert, bevor er rückwärts fährt, und die Rückwärtsfahrt wird daher von gesteuert dieses Signal.


Durch die Einstellung von $forcereversal kann der Zug rückwärts fahren, sobald er die Rückwärtsposition verlässt. Dies ist beim Rangieren in Rangierbahnhöfen nützlich, wenn es nicht erforderlich ist, den Rangierbahnhof vollständig zu verlassen, um rückwärts zu fahren und das Einfahrtssignal zu geben.


Geschwindigkeitsbefehle


$max


Syntax : $max=<value>


Gesamthöchstgeschwindigkeit für diesen Zug.


$cruise


Syntax : $cruise=<value>


Höchstgeschwindigkeit, mit der der Zug normalerweise fährt, wenn er pünktlich fährt. Wenn die tatsächliche Verzögerung die definierte maximale Verzögerung (wie in $maxdelay festgelegt) überschreitet, beschleunigt der Zug auf maximale Geschwindigkeit.


$maxdelay


Syntax : $maxdelay=<m>


Maximale Verzögerung (in Minuten) für die Geschwindigkeitsregelung. Wenn diese Verzögerung überschritten wird, beschleunigt der Zug auf Höchstgeschwindigkeit.


$creep


Syntax : $creep=<value>


Die Kriechgeschwindigkeit ist die Mindestgeschwindigkeit bei der endgültigen Annäherung an ein Signal an einer Gefahrenstelle oder an einer Haltestelle.


$attach


Syntax : $attach=<value>


Geschwindigkeit, mit der der Zug an einen anderen Zug anschließt.


$detach


Syntax : $detach=<value>


Geschwindigkeit, mit der sich der Zug von einem anderen Zug löst.


$movingtable


Syntax : $movingtable=<value>


Geschwindigkeit, mit der der Zug durch Drehscheiben fährt.


Befehle verzögern


Alle Verzögerungsbefehle, mit Ausnahme des $reverse-Befehls, haben die Form $command [/fix=<f>] [/ var=<v>], wobei <f> die feste Komponente der Zeitverzögerung darstellt und <v > stellt den variablen Anteil der Zeitverzögerung dar, jeweils in Sekunden.


$new


Legen Sie die Verzögerung des Zuges fest, nachdem er im Simulator erscheint. Die feste Verzögerung beträgt standardmäßig 0 Sekunden, während die variable Verzögerung standardmäßig 10 Sekunden beträgt.


$path


Legen Sie die Verzögerung des Zugs fest, nachdem er auf seinem Weg vor einem Hindernis angehalten hat, z. B. einem Stoppsignal oder einer umgekehrten Weiche. Die feste Verzögerung beträgt standardmäßig 1 Sekunde, während die variable Verzögerung standardmäßig 10 Sekunden beträgt.


$station


Legen Sie die Verzögerung des Zuges nach dem Anhalten an einem Bahnhof fest. Die feste Verzögerung beträgt standardmäßig 0 Sekunden, während die variable Verzögerung standardmäßig 15 Sekunden beträgt.


$follow


Legen Sie die Verzögerung des Zuges fest, wenn Sie einem anderen Zug folgen. Die feste Verzögerung beträgt standardmäßig 15 Sekunden, während die variable Verzögerung standardmäßig 10 Sekunden beträgt.


$attach


Legen Sie die Verzögerung des Zugs nach dem Anhängen an einen anderen Zug fest. Die feste Verzögerung beträgt standardmäßig 30 Sekunden, während die variable Verzögerung standardmäßig 30 Sekunden beträgt.


$detach


Legen Sie die Verzögerung des Zuges fest, nachdem ein Teil davon abgetrennt wurde. Die feste Verzögerung beträgt standardmäßig 5 Sekunden, während die variable Verzögerung standardmäßig 20 Sekunden beträgt.


$movingtable


Stellen Sie die Verzögerung des Zuges ein, nachdem Sie eine Drehscheibe verwendet haben. Die feste Verzögerung beträgt standardmäßig 1 Sekunde, während die variable Verzögerung standardmäßig 10 Sekunden beträgt.


$reverse


Syntax : $reverse /additional=<value>


Beim Rückwärtsfahren wird eine zusätzliche Verzögerung hinzugefügt, um die Zeit widerzuspiegeln, die der Fahrer benötigt, um durch oder entlang des Zuges bis zum anderen Ende zu gehen. Diese Verzögerung beträgt standardmäßig 0,5 Sekunden pro Meter Zugstrecke, ein Wert, der mit diesem Befehl überschrieben werden kann. Für Züge, die beim Rückwärtsfahren geschoben werden, z.B. Für Rangierfahrten von Güterzügen empfiehlt es sich, die Rückfahrverzögerung auf 0 zu setzen.


Befehle entsorgen


Dispose-Befehle können in der Zeile #dispose festgelegt werden, um zu definieren, was mit dem Zug nach seiner Beendigung geschehen soll. Nachfolgend finden Sie spezielle Hinweise zum Verhalten des Spielerzugs, wenn er durch einen Dispose-Befehl aus einem anderen Zug gebildet wird oder wenn der Spielerzug selbst einen Dispose-Befehl hat.


$forms


Syntax : $forms=<train> <qualifiers>


$forms definiert, welcher neue Zug aus diesem Zug gebildet werden soll, wenn der Zug endet. Der Verbund des neuen Zuges wird aus dem Verbund des Endzuges gebildet und jegliche Verbunddefinition für den neuen Zug wird ignoriert. Der neue Zug bleibt bis zu dem in #start row für diesen Zug definierten Zeitpunkt „statisch“. Das bedeutet, dass der neue Zug nicht versucht, seinen Weg, seine Signale usw. freizumachen und sich auch dann nicht bewegt, wenn er sich nicht in einem Bahnhof befindet.


Wenn der ankommende Zug Verspätung hat und seine Ankunftszeit später als die Startzeit des neuen Zuges liegt, verzögert sich auch der Start des neuen Zuges, aber der neue Zug wird sofort aktiv, sobald er gebildet wird.


Für lokbespannte Züge kann definiert werden, dass die Lokomotive(n) um den Zug herumlaufen müssen, damit sich der Zug in die entgegengesetzte Richtung bewegen kann. Der Runround-Qualifizierer benötigt einen Pfad, der den Pfad definiert, den die Engine(s) bei der Durchführung des Runrounds nehmen sollen. Wenn der Zug mehr als eine führende Lokomotive hat, werden alle Lokomotiven umlaufen. Alle anderen Triebwerke im Zug werden nicht bewegt.


Spezifische Regeln und Bedingungen für den Betrieb des Rundlaufs finden Sie in der Diskussion zum Zusammenhang zwischen Signalisierung und Fahrplankonzept.


Wenn Runround definiert ist, kann der Zeitpunkt definiert werden, zu dem der Runround stattfinden soll. Ist diese Zeit nicht eingestellt, erfolgt der Umlauf sofort nach Beendigung des einfahrenden Zuges. Befehlswert: Referenzierter Zug, dies ist obligatorisch.


Command qualifiers:


/runround=<Pfad>: <Pfad> ist der Pfad, den die Engine zum Durchführen des Runrounds verwenden soll.


Dieses Qualifikationsmerkmal ist optional; Wenn festgelegt, ist der Wert obligatorisch.


Für eine genauere Steuerung des Runround-Manövers wird empfohlen, stattdessen die Befehle $detach und $attach zu verwenden.


/rrtime=time: time ist die Definition der Zeit, zu der der Durchlauf stattfinden soll. Die Zeit muss in HH:mm definiert werden und das 24-Stunden-Format verwenden.


Dieses Qualifikationsmerkmal ist nur in Kombination mit dem Qualifikationsmerkmal /runround gültig und optional. Wenn es jedoch festgelegt ist, ist der Wert obligatorisch.


/setstop: Wenn für diesen Zug selbst keine Haltestellen definiert sind, der Zug, den er bilden soll, aber an einer Station startet, kopiert dieser Befehl die Details der ersten Haltestelle des gebildeten Zuges, um sicherzustellen, dass dieser Zug am richtigen Ort hält .


Damit dieser Qualifier korrekt funktioniert, muss der Weg des ankommenden Zuges im Bahnsteigbereich des abfahrenden Zuges enden.


Dieses Qualifikationsmerkmal ist optional und akzeptiert keine Werte.


/atstation: Die endgültige Position des Zuges wird so berechnet, als ob der Zug an der Station halten würde, an der der neue Zug startet, auch wenn für diesen Zug keine Haltestelle definiert ist.


/closeup: Die endgültige Position des Zuges liegt nahe am Ende des Gleises oder eines anderen Zuges.


/speed=<v>: Dieses Qualifikationsmerkmal kann nur mit dem Parameter $runround verwendet werden. Sie definiert die maximale Geschwindigkeit für die Umlaufbewegung in m/s.


$trigger


Syntax: $triggers=<train> <qualifiers>


$triggers definiert außerdem, welcher neue Zug aus diesem Zug gebildet werden soll, wenn der Zug endet.


Wenn dieser Befehl jedoch verwendet wird, wird der neue Zug anhand der Zugverbanddefinition des neuen Zuges gebildet und der bestehende Zugverband wird entfernt.


Befehlswert: Referenzierter Zug, dies ist obligatorisch.


Befehlsqualifizierer:


/runround=<Pfad>: <Pfad> ist der Pfad, den die Engine zum Durchführen des Runrounds verwenden soll.


Dieses Qualifikationsmerkmal ist optional; Wenn festgelegt, ist der Wert obligatorisch.


/rrtime=time: time ist die Definition der Zeit, zu der der Durchlauf stattfinden soll. Die Zeit muss in HH:mm definiert werden und das 24-Stunden-Format verwenden.


Dieses Qualifikationsmerkmal ist nur in Kombination mit dem /runround-Qualifikationsmerkmal gültig


optional, aber wenn festgelegt, ist der Wert obligatorisch.


/setstop: Wenn für diesen Zug selbst keine Haltestellen definiert sind, der Zug, den er bilden soll, aber an einer Station startet, kopiert dieser Befehl die Details der ersten Haltestelle des gebildeten Zuges, um sicherzustellen, dass dieser Zug am richtigen Ort hält .


Damit dieser Qualifier korrekt funktioniert, muss der Weg des ankommenden Zuges im Bahnsteigbereich des abfahrenden Zuges enden.


Dieses Qualifikationsmerkmal ist optional und akzeptiert keine Werte.


/atstation: Die endgültige Position des Zuges wird so berechnet, als ob der Zug an der Station halten würde, an der der neue Zug startet, auch wenn für diesen Zug keine Haltestelle definiert ist.


/closeup: Die endgültige Position des Zuges liegt nahe am Ende des Gleises oder eines anderen Zuges.


/speed=<v>: Dieses Qualifikationsmerkmal kann nur mit dem Parameter $runround verwendet werden. Sie definiert die maximale Geschwindigkeit für die Umlaufbewegung in m/s.


$static


Syntax : $static /closeup


Der Zug wird nach seiner Beendigung zu einem „statischen“ Zug.


Befehlswert: keiner.


Befehlsqualifizierer:


/closeup: Die endgültige Position des Zuges liegt nahe am Ende des Gleises oder eines anderen Zuges.


$stable


Syntax: $stable /out_path=<path> /out_time=time /in_path=<path> /in_time=time /static /runround=<path>

/rrtime= time /rrpos=<runround position> / forms=<train> /triggers=<train> /speed=<v> /name=<name>


$stable ist eine erweiterte Form von $forms, $triggers oder $static, wobei der Zug an einen anderen Ort verschoben wird, bevor der entsprechende Befehl ausgeführt wird. Im Falle von /forms oder /triggers kann der Zug an denselben oder einen anderen Ort zurückfahren, an dem der neue Zug tatsächlich startet. Beachten Sie, dass der Zug in diesen Fällen zwei Bewegungen ausführen muss, nach außen und nach innen.


Ein Runround kann durchgeführt werden, falls /forms definiert ist.


Wenn /triggers definiert ist, erfolgt der Verbandswechsel an der „stabilen“ Position. Alle Umkehrungen im Einwärtspfad oder an der endgültigen Einwärtsposition werden beim Aufbau des neuen Zugs berücksichtigt, sodass der Verbund in die richtige Richtung zeigt, wenn der neue Zug an der endgültigen Einwärtsposition gebildet wird.


Der $stable kann verwendet werden, wenn ein Zug einen anderen Zug bildet, der Zug jedoch den Bahnsteig verlassen muss, bevor der neue Zug gebildet werden kann, damit andere Züge diesen Bahnsteig nutzen können. Es kann auch verwendet werden, um einen Zug nach Abschluss seines letzten Dienstes auf ein Abstellgleis zu bewegen und dort als stationärer Zug „abzustellen“.


Für jeden Zug können separate Zeitvorgaben definiert werden; Ist ein solcher Zeitpunkt nicht definiert, erfolgt der Umzug unmittelbar nach Abschluss des vorherigen Umzugs.


Wenn Zeiten definiert sind, bleibt der Zug nach Abschluss der vorherigen Bewegung bis zur erforderlichen Zeit „statisch“.


Wenn der gebildete Zug einen gültigen Bahnhofshalt hat und der Rückweg des Stable-Befehls (in_path) im Bereich des Bahnsteigs des ersten Bahnhofshalts des gebildeten Zugs endet, erfolgt die 'setstop'-Prüfung (siehe setstop-Qualifikationsmerkmal im $forms-Befehl). ) wird automatisch hinzugefügt


Befehlswert: keiner.


Befehlsqualifizierer:


/out_path=<Pfad>: <Pfad> ist der Pfad, den der Zug verwenden soll, um zur „stabilen“ Position zu gelangen. Der Anfang der Trasse muss mit dem Ende der Trasse des ankommenden Zuges übereinstimmen.


/out_time = time: Zeitdefinition, wann der Hinlauf gestartet werden muss. Die Zeit ist als HH:mm definiert und muss das 24-Stunden-Format verwenden.


/in_path=<Pfad>: <Pfad> ist der Pfad, den der Zug für die Einwärtsfahrt von der „stabilen“ Position zum Start des neuen Zuges verwenden soll. Der Anfang des Pfades muss mit dem Ende des out_path übereinstimmen, das Ende des Pfades muss mit dem Anfang des Pfades für den neuen Zug übereinstimmen.


/in_time = time: Zeitangabe, wann der Einlauf gestartet werden muss. Die Zeit ist als HH:mm definiert und muss das 24-Stunden-Format verwenden.


/closeup: Die endgültige Position des Zuges liegt nahe am Ende des Gleises oder eines anderen Zuges.


/callon: Dieser Zug darf auf den Bahnsteig einfahren, auch wenn dieser besetzt ist.


Diese Option erfordert die Implementierung der Funktion TrainHasCallOn oder TrainHasCallOn_Restricted für das Signal, das den Bahnsteig schützt.


/runround=<Pfad>: <Pfad> ist der Pfad, den die Engine zum Durchführen des Runrounds verwenden soll. Einzelheiten finden Sie in der $forms-Befehlsdefinition des Zeitpunkts, zu dem der Runround stattfinden soll. Die Zeit muss in HH:mm definiert werden und das 24-Stunden-Format verwenden.


/rrtime=time: time ist die Definition des Zeitpunkts, zu dem der Runaround stattfinden soll. Die Zeit muss in HH:mm definiert werden und das 24-Stunden-Format verwenden.


/rrpos = <Runround-Position>: die Position innerhalb der „stabilen“ Bewegung, an der der Runround stattfinden soll.


Mögliche Werte:


• out: Der Runround findet statt, bevor mit der Hinbewegung begonnen wird.


• stable: Der Rundlauf findet an der „stabilen“ Position statt.


• in: Der Runround findet nach Abschluss der Einwärtsbewegung statt.


/speed=<v>: Dieses Qualifikationsmerkmal kann nur mit dem Parameter $runround verwendet werden. Sie definiert die maximale Geschwindigkeit für die Umlaufbewegung in m/s.


/name=<name>: Dieses Qualifikationsmerkmal kann nur mit dem Parameter $runround verwendet werden. Es definiert den Namen, den der Zug während der Stallbewegung tragen wird. Dies ist der Name, der in den F7-Infos, in den Dispatcher-HUD-Infos und im Dispatcher-Fenster angezeigt wird.


/static: Der Zug wird nach Abschluss der Hinbewegung zu einem „statischen“ Zug.


/forms=<Zug>: Der Zug bildet nach Abschluss der Einwärtsbewegung den neuen Zug. Weitere Informationen finden Sie im Befehl $forms.


/triggers=<Zug>: Der Zug löst den neuen Zug nach Abschluss der Einwärtsbewegung aus. Der Zug wird an der „stabilen“ Position in die Zusammensetzung des neuen Zuges wechseln. Weitere Informationen finden Sie im Befehl $triggers.


Verwendung von Befehlsqualifizierern:


In Kombination mit /static:


• /out_path: obligatorisch


• /out_time: optional


In Kombination mit /forms:


• /out_path: obligatorisch


• /out_time: optional


• /in_path: obligatorisch


• /in_time: optional


• /runround: optional


• /rrtime: optional, nur gültig, wenn /runround gesetzt ist


• /rrpos: obligatorisch, wenn /runround gesetzt ist, andernfalls ungültig


In Kombination mit /triggers:


• /out_path: obligatorisch


• /out_time: optional


• /in_path: obligatorisch


• /in_time: optional


$pool


Syntax: $pool=<Poolname> [/direction=forward|backward]


Der Zug tritt bei seiner Beendigung in den definierten Pool ein.


Bei Drehscheibenbecken kann über den Richtungskennzeichner festgelegt werden, in welche Richtung der Zug von der Drehscheibe einfährt. Wenn nicht eingestellt, fährt der Zug rückwärts.


$attach


Entspricht dem gleichnamigen Timing-Befehl.


$detach


Entspricht dem gleichnamigen Timing-Befehl.


$pickup


Entspricht dem gleichnamigen Timing-Befehl.


$transfer


Entspricht dem gleichnamigen Timing-Befehl.


$activate


Entspricht dem gleichnamigen Timing-Befehl.


12.5 Zusätzliche Hinweise zu Fahrplänen


12.5.1 Statische Züge


Ein statischer Zug kann definiert werden, indem in der oberen Zeile $static festgelegt wird (z. B. als „Name“ dieses Zuges). Zugverband und Weg sind weiterhin erforderlich – der Weg wird verwendet, um zu bestimmen, wo der Zugzug platziert wird (hinteres Ende des Zuges am Anfang des Wegs). Es ist keine Startzeit erforderlich. Der Zug wird vom Beginn des Fahrplans an erstellt – er kann jedoch nicht für irgendetwas innerhalb eines Fahrplans verwendet werden. Es kann in keinem Befehl usw. referenziert werden, da es keinen Namen hat. Auch das Ankoppeln an einen stehenden Zug ist derzeit nicht möglich – Details siehe unten.


Beachten Sie, dass es hinsichtlich der Art und Weise, wie statische Züge generiert werden, einige Unterschiede zwischen dem Fahrplan- und dem Aktivitätsmodus gibt. Im Aktivitätsmodus ist der Zug eine Instanz der Train-Klasse vom Typ STATIC.


Im Fahrplanmodus ist der Zug eine Instanz der Klasse TTTrain (wie alle Züge im Fahrplanmodus), mit Typ AI, Bewegung AI_STATIC. Dieser Unterschied kann zu unterschiedlichem Verhalten in Bezug auf Geräusche, Rauch und Licht führen.


12.5.2 Verarbeitung des #dispose-Befehls für Player Train


Wenn der Spielerzug endet und ein #dispose-Befehl für diesen Zug festgelegt wird, um einen anderen Zug zu bilden (entweder $form, $trigger oder $stable), bildet der Zug tatsächlich den nächsten Zug wie beschrieben, und dieser nächste Zug wird nun der nächste Zug sein neuer Spielerzug. So kann der Spieler mit diesem Zug weiterfahren, beispielsweise auf der Rückfahrt.


Bei der Bildung des neuen Zuges wird der Zug „inaktiv“. Dies ist ein neuer Staat, in dem der Zug nicht fahren darf.


Beachten Sie, dass die Informationen des F4-Gleismonitors nicht aktualisiert werden, wenn der Zug „inaktiv“ ist. Die Anzeige „Nächste Station“ im F10-Aktivitätsmonitor zeigt Details darüber an, wann der Zug starten soll. Der Zug wird zu der für den gebildeten Zug definierten Startzeit „aktiv“. Zur Information zeigt das Fenster „Aktivitätsmonitor“ den Namen des Zuges an, mit dem der Spieler fährt.


12.5.3 Beendigung einer Fahrplanfahrt


Bei Erreichen des Endes eines Fahrplandurchlaufs wird das Programm nicht automatisch beendet, sondern muss vom Spieler beendet werden.


12.5.4 Berechnung der Laufverzögerung


Ein ungefährer Wert der Verzögerung wird kontinuierlich aktualisiert. Diese Näherung ergibt sich aus der gebuchten Ankunftszeit am nächsten Bahnhof. Wenn die aktuelle Zeit später als die gebuchte Ankunftszeit ist und diese Differenz die aktuelle Verspätung übersteigt, wird die Verspätung auf diese Differenz gesetzt. Die Zeit, die zum Erreichen dieser Station benötigt wird, wird nicht berücksichtigt.


Diese Annäherung führt zu einer besseren Regulierung, wenn die Parameter /maxdelay oder /owndelay verwendet werden.


12.5.5 Keine automatische Kopplung


Es gibt eine Logik innerhalb des Programms, die für jeden angehaltenen Zug prüft, ob er nahe genug an einem anderen Zug ist, um an diesen Zug anzukoppeln. Es ist diese Logik, die es dem Spielerzug ermöglicht, sich an jeden statischen Zug zu koppeln.


Allerdings enthält diese Logik einige Aktionen, die nicht zur Bearbeitung von Fahrplanzügen passen. Daher ist das Kuppeln von Zügen im Fahrplanmodus nicht möglich, außer bei Manövern, die explizit mit Befehlen wie $attach und $detach angegeben werden.


12.5.6 Verwendung von Verbänden in Rangierbefehlen



Jeder Waggon in der Simulation muss irgendwo als „neuer“ Zug platziert worden sein. Wenn ein „neuer“ Zug platziert wird, wird er wie in der Zugverbandsdefinition für diesen Zug definiert gebildet.


Jeder Wagen wird sich während seiner gesamten Lebensdauer in der Simulation an diese „ursprüngliche Zusammensetzung“ erinnern.


Dieser „ursprüngliche Verbund“-Name kann in jedem $detach- oder $transfer-Befehl verwendet werden, auch wenn der betroffene Teil den Zug gewechselt hat.


Wenn also beispielsweise ein Güterzug platziert wird, der aus mehreren Teilen besteht, von denen jeder einen eigenen Zugverbandsnamen hat (unter Verwendung der Mehrfachzugverband-Definition), behält jeder Waggon in diesem Zug immer seinen ursprünglichen Zugverband. Wenn dieser Zug zerlegt wird, Teile in andere Züge übernommen werden usw., kann der ursprüngliche Zugsname weiterhin verwendet werden.


Bei der Nutzung dieser Möglichkeit ist es wichtig, den Überblick darüber zu behalten, wo und in welchem Zug die einzelnen Portionen bewegt werden. Da eine Liste von Verbänden in der richtigen Reihenfolge definiert werden muss, ist es auch wichtig, die Konfiguration der gebildeten Züge im Auge zu behalten. Der Vorteil dieser Methode besteht darin, dass man nicht die Anzahl der Einheiten in jedem Zug und jeder Portion zählen muss.


Beachten Sie, dass die Verbundinformationen nicht verwendet werden können, wenn die Einheit in einem Pool gestartet wird und dieser Pool verschiedene Verbände enthalten kann. In diesem Fall ist nicht definiert, welche Gruppe den eigentlichen Zug bilden wird.


12.5.7 Signaltechnische Anforderungen und Fahrplankonzept


Allgemein


Das Fahrplankonzept stellt höhere Anforderungen an die Leistung der Signalanlage als „normale“ Aktivitäten. Der Hauptgrund dafür ist, dass im Fahrplan häufig KI-Züge in beide Richtungen fahren, darunter auch Züge, die vor dem Zug des Spielers in derselben Richtung wie der Zug des Spielers fahren. Es gibt nur sehr wenige Aktivitäten mit solchen Situationen, da natürlich keine Anstrengungen unternommen würden, Züge in einer Aktivität zu definieren, die nie gesehen würde, aber auch, weil MSTS eine solche Situation nicht immer richtig bewältigen konnte.


Eventuelle Mängel in der Signalisierung, z.B. Signale, die einen Zug zu weit voraus freimachen, wirken sich sofort auf den Ablauf des Fahrplans aus.


Wenn die Signale beispielsweise auf einer eingleisigen Strecke zu weit voraus freigegeben werden, führt dies dazu, dass die Züge die Ausweichgleise zu früh passieren, was zu sehr langen Wartezeiten auf Züge in der Gegenrichtung führt. Dies wiederum kann zu Staus führen, wenn mehrere Züge auf einer einzigen Ausweichschleife zusammenlaufen.


Ähnliche Situationen können an großen, stark frequentierten Bahnhöfen auftreten: Wenn Züge zu früh den Weg durch einen solchen Bahnhof freimachen, führt dies dazu, dass andere Züge auf die Ein- oder Ausfahrt warten müssen


Wenn $forms- oder $triggers-Befehle verwendet werden, um rückwärtsfahrende Züge zu verknüpfen, verschärft sich das Problem, da etwaige Verzögerungen für den ankommenden Zug auf der Rückfahrt nachwirken.


Signalaspekte anrufen


Signalanlagen können es einem Zug ermöglichen, „zurufen“, d. h. einem Zug die Möglichkeit zu geben, auf einen Gleisabschnitt zu fahren, der bereits von einem anderen Zug belegt ist (auch als freizügiges Arbeiten bekannt).


Der Unterschied zwischen „Anrufsignal“ und „Zulassungssignal“ (Aspekte STOP und FAHRT) besteht darin, dass letzteres auch zulässig ist, wenn sich der Zug im Abschnitt bewegt (in die gleiche Richtung), „Anrufsignal“ jedoch im Allgemeinen nur zulässig ist, wenn Der Zug im Abschnitt steht still.


Wenn ein Signal „Ruf ein“ zulässt, passieren KI-Züge immer dieses Signal und fahren bis zu einem vordefinierten Abstand hinter dem Zug im Abschnitt.


In Bahnhofsbereichen kann dies zu echtem Chaos führen, da Züge möglicherweise auf Bahnsteige stoßen, die von anderen Zügen belegt sind, sodass die Gesamtlänge beider Züge die Bahnsteiglänge bei weitem übersteigt, sodass der zweite Zug den „Bahnhofshals“ blockiert und alle anderen Züge stoppt. Dies kann leicht zu einer völligen Blockade des gesamten Verkehrs im und um den Bahnhof führen.


Um dies zu verhindern, sollte der Anruf im Bahnhofsbereich gesperrt werden, auch wenn die Signalisierung dies zulässt. Damit ein Zug „anrufen“ kann, wenn dies im Fahrplan erforderlich ist, muss der Befehl $callon gesetzt werden, der den Gesamtblock außer Kraft setzt. Dies gilt sowohl für die KI als auch für das Spielertraining


Für den Fall, dass der Zug an einen anderen Zug im Bahnsteig anknüpfen soll, wird die Rufannahme automatisch eingestellt.


Da KI-Züge im MSTS nicht ordnungsgemäß hinter einem anderen Zug anhalten können, wenn sie auf einem besetzten Gleis „aufgerufen“ werden, unterstützen die meisten Signalsysteme keine „Aufruf“-Aspekte, sondern verlassen sich stattdessen auf die Verwendung von „Genehmigungsanfragen“. KI-Züge können eine solche Anfrage nicht stellen, daher wird $callon in solchen Systemen nicht funktionieren.


In dieser Situation können Attach-Befehle auch nicht in Stationsbereichen funktionieren.


Beachten Sie, dass der „Runround“-Befehl auch die „Call-on“-Fähigkeit erfordert, damit die Lokomotive abschließend zurück zum Zug bewegt werden kann, um dort befestigt zu werden. Daher kann auch der Rundlauf im Bahnhofsbereich nur funktionieren, wenn die Signalisierung „Call on“ unterstützt.


Zur Anpassung von Signalen an die oben beschriebene Funktion stehen spezielle Signalisierungsfunktionen zur Verfügung, die in den Skripten für relevante Signale in der sigscr-Datei verwendet werden können.


Die Funktion „TRAINHASCALLON()“ gibt „true“ zurück, wenn der Abschnitt hinter dem Signal bis zum nächsten Signal einen Bahnsteig enthält, an dem der Zug halten soll, und der Zug das Flag „callon“ gesetzt hat. Diese Funktion gibt auch „true“ zurück, wenn sich im Abschnitt hinter dem Signal kein Bahnsteig befindet.


Die Funktion „TRAINHASCALLON_RESTRICTED“ gibt unter ähnlichen Bedingungen „true“ zurück, mit der Ausnahme, dass sie immer „false“ zurückgibt, wenn sich im Abschnitt hinter dem Signal kein Bahnsteig befindet.


Beide Funktionen müssen in Kombination mit BLOCK_STATE = BLOCK_OCCUPIED verwendet werden.


Wartebefehle und Ausweichfahrstraßen


Von der Stelle aus, an der „Warten“ oder „Folgen“ definiert ist, wird nach dem ersten gemeinsamen Abschnitt für beide Züge gesucht, gefolgt von einem Abschnitt, in dem die Trassen nicht gemeinsam sind.


Bei eingleisigen Strecken mit Ausweichschleifen, bei denen für beide Züge „Ausweichgleise“ definiert sind, verläuft die Haupttrasse der Züge in den Ausweichschleifen jedoch über dieselben Gleise und es werden daher keine nicht gemeinsamen Abschnitte gefunden. Dies hat zur Folge, dass die Wartestelle keinen Platz zum Warten des Zuges finden kann und das Verfahren daher nicht funktioniert.


Wenn Wartestellen auf eingleisigen Strecken genutzt werden, müssen die Gleise der Züge über verschiedene Gleise durch die Umfahrungsschleife verlaufen, damit die Wartestellen ordnungsgemäß funktionieren.


Der Ersteller des Fahrplans hat die Wahl, ob er entweder die Ausweichstellen mithilfe der Wartebefehle voreinstellen möchte oder ob das System die Ausweichstellen mithilfe der Ausweichfahrstraßen ermitteln möchte.


Wartebefehle und Freigabesignale


Die Befehle „Wait“ und „Follow“ werden über den „Blockstate“ der Signalsteuerung verarbeitet. Wenn an der Stelle, an der der Zug warten soll, Freigabesignale verwendet werden und diese Signale einen „Fahrt“-Aspekt im Blockzustand JN_OBSTRUCTED zulassen, funktionieren die Befehle „Warten“ oder „Folgen“ nicht, da der Zug nicht angehalten wird.


Fahrende Züge um Mitternacht


Ein Fahrplan kann für einen vollen 24-Stunden-Tag definiert werden und umfasst daher auch Züge, die um Mitternacht verkehren.


Für den Spielerzug gelten folgende Regeln:


• Der Zug, dessen Abfahrt vor Mitternacht gebucht wurde, wird am Ende des Tages in Betrieb genommen, fährt jedoch weiter, wenn er nach Mitternacht endet.


• Aus anderen Zügen gebildete Züge, die vor Mitternacht starten, werden NICHT gestartet, wenn der ankommende Zug Verspätung hat und sich dadurch die Startzeit nach Mitternacht verschiebt. In dieser Situation wird die Aktivität abgebrochen.


• Züge, deren Abfahrt nach Mitternacht geplant ist, werden stattdessen am Anfang des Tages gestartet, es sei denn, der Befehl $next wird verwendet.


Für KI-Züge gelten folgende Regeln:


• Züge, deren Abfahrt vor Mitternacht gebucht wurde, werden am Ende des Tages in Betrieb genommen, verkehren jedoch weiter, wenn sie nach Mitternacht enden.


• Züge, die aus anderen Zügen gebildet werden und vor Mitternacht starten, werden dennoch gestartet, wenn der ankommende Zug Verspätung hat und sich dadurch die Startzeit nach Mitternacht verschiebt.


• Züge, deren Abfahrt nach Mitternacht geplant ist, werden stattdessen am Anfang des Tages gestartet, es sei denn, der Befehl $next wird verwendet.


Anzeigen der anderen aktiven Züge im Fahrplan


Um den in den Außenansichten angezeigten Zug zu ändern, klicken Sie auf <Alt+F9>, um die Zugliste anzuzeigen, und wählen Sie den gewünschten Zug aus der Liste der aktiven Züge aus, oder klicken Sie auf <Alt+9>, wie unter „Ändern der Ansicht zum Radfahren“ beschrieben durch die aktiven Züge.


12.5.8 Bekannte Probleme


• Wenn ein #dispose-Befehl für den Spielerzug verarbeitet wird und der neue Zug in die entgegengesetzte Richtung fährt, „springt“ der Reversierer beim Bilden dieses neuen Zuges in den Rückwärtszustand.


• Ein in einem #dispose-Befehl definierter Run-Round-Befehl kann noch nicht verarbeitet werden. Um diesen Rundlauf durchzuführen, muss auf „Manuell“ umgeschaltet werden.


• Wenn zwei Züge mithilfe von $create mit dem Qualifikationsmerkmal /ahead auf einem einzigen Abstellgleis platziert werden sollen, die Züge jedoch über entgegengesetzte Richtungen verfügen, werden die Züge möglicherweise an falschen Positionen platziert.


• Wenn das Qualifikationsmerkmal /binary für #path festgelegt ist, das OpenRails-Unterverzeichnis im Paths-Verzeichnis jedoch nicht vorhanden ist, kann das Programm keine Pfade laden.


12.6 Einlagern von Zügen mit Pools


Pools können zur Lagerung von Zügen vor oder zwischen aktiven Diensten oder nach Erfüllung aller Dienste verwendet werden. Züge können so definiert werden, dass sie zu Beginn des Fahrplans in einem Pool platziert werden. Bei Bedarf kann der Zug aus dem Pool entnommen werden. Nach Dienstende kann der Zug wieder in den Pool zurückgebracht werden. Es ist weder erforderlich, die genaue Lagerung des Zuges zu definieren, noch müssen die verschiedenen Aufgaben so geregelt werden, dass Züge nicht durch andere Züge blockiert werden, die erst zu einem späteren Zeitpunkt benötigt werden. Bei der Verwendung von Pools kümmert sich das System um den tatsächlichen Lagerort und wählt den ersten verfügbaren Zug aus, wenn ein Zug benötigt wird.


Ein Pool besteht aus einem oder mehreren Gleisen, die zum Abstellen der Züge dienen. Zufahrtsgleise müssen ebenfalls definiert werden. (Einzelheiten siehe unten.) Eine besondere Art von Becken ist das Drehtellerbecken. Bei einem Drehscheibenbecken sind alle Lagergleise mit einer Drehscheibe verbunden. Auch die Zufahrtswege sind an die Drehscheibe angeschlossen. Beim Aus- oder Einlagern eines Zuges fährt der Zug zur Drehscheibe und die Drehscheibe wird mit dem darauf befindlichen Zug in die gewünschte Position gedreht.


Pools können sowohl für KI- als auch für Spielerzüge verwendet werden. Wenn ein Zug, der aus einem Pool entnommen wird, als Spielerzug ausgewählt wird, wird der erste verfügbare Zug ausgewählt und als Spielerzug festgelegt. Wenn ein Zug, bei dem es sich um den Spielerzug handelt, zu einem Pool geschickt wird, endet der Zug im Pool. Der Spieler kann bis zu seinem nächsten Einsatz beim Zug bleiben, aber es gibt keine Möglichkeit zu sagen, was oder wann dieser Einsatz sein wird, da dies von anderen Aktionen abhängt, die für diesen Pool eingerichtet sind.


12.6.1 Zusätzliche Hinweise


Ein Pool kann nur Züge enthalten, deren Nutzung gleichwertig ist. Die Züge müssen nicht alle vom gleichen Typ sein, ihre Verwendung muss jedoch austauschbar sein. Es ist nicht möglich, einen bestimmten Zugtyp aus einem Pool auszuwählen.


Für in einem Pool gelagerte Züge ist das Anbringen, Lösen oder Umsetzen nicht möglich. Nur feste Formationen (einzelne oder mehrere Motoren oder MUs) können aus einem Pool entnommen oder an ihn gesendet werden. Werden mehrere Einheiten benötigt, müssen diese einzeln entnommen und nach dem Ausstieg aus dem Becken zusammengekoppelt werden. Wenn mehrere Einheiten an einen Pool gesendet werden sollen, müssen diese vor dem Senden an den Pool abgetrennt werden. Da Anhängen, Abtrennen oder Transfers nicht möglich sind, können Pools nur von Lokomotiven und MUs genutzt werden, d. h. für Einheiten, die sich selbstständig bewegen können. Für Reisebusse und Waggons sowie Züge ohne Strom dürfen Schwimmbecken nicht genutzt werden.


Ein Poolüberlauf kann auftreten, wenn ein Zug zu einem Pool geschickt wird, der Lagerbereich jedoch voll ist. In diesem Fall endet der Zug am Zugangspunkt zum Schwimmbad und wird entfernt.


Ein „Pool-Unterlauf“ kann auftreten, wenn ein Zug aus einem Pool angefordert wird, der Lagerbereich jedoch leer ist und keine Einheiten verfügbar sind. Wenn in dieser Situation das Flag „Erstellung erzwingen“ für diesen Pool gesetzt ist, wird der Zug erstellt und startet am Zugangspunkt. Wenn dieses Flag nicht gesetzt ist, wird der Zug abgebrochen. Im Falle eines Pool-Unterlaufs wird eine Warnung an die Protokolldatei ausgegeben.


12.7 Pooldefinition


Pools werden in einer Datei definiert, die einer Stundenplandatei ähnelt, d. h. einer CSV-Tabelle, die als Unicode-Textdatei gespeichert wird. Die Dateien müssen im gleichen Verzeichnis wie die Fahrplandateien gespeichert werden (<route>\Activities\OpenRails).


Der Aufbau einer Pooldatei unterscheidet sich erheblich von dem einer Stundenplandatei. Alle Parameter befinden sich in der ersten Spalte und es darf pro Zeile nur ein Wert definiert werden. Die allererste Zeile wird ignoriert.


Die Dateierweiterung für normale Pools ist .pool-or; für Drehtellerbecken ist es .turntable-bzw.


Eine Datei kann Parameter wiederholen, um mehrere Pools zu definieren, die in keiner Weise miteinander verknüpft sein müssen.


Beachten Sie, dass es einige wesentliche Unterschiede zwischen Pools ohne Drehscheibe und Pools mit Drehscheibe gibt:


• Bei nicht drehbaren Becken muss jeder Lagerweg mindestens einen Zugangsweg haben; Bei Drehscheibenbecken sind die Zugangswege unabhängig von den Lagerwegen.


• Bei nicht drehbaren Becken werden Lagerwege in Ausgangsrichtung definiert; Bei Drehscheibenbecken werden Lagerwege so definiert, dass sie von der Drehscheibe weg, also in Richtung Einlauf, führen.


12.7.1 Nicht umkehrbare Pools


Parameter für umkehrbare Pools:


#comment


Nur Kommentar, Wert wird ignoriert.


#name


Name des Pools. Dies ist der Name, der in den Fahrplan-$pool-Befehlen zum Erstellen, Extrahieren oder Speichern von Zügen für diesen Pool verwendet werden muss. Dieses Feld ist ein Pflichtfeld und muss vor allen anderen Parametern stehen.


#storage


Ein Pfad, der eine Speicherspur definiert. Für einen Pool muss mindestens eine Speicherspur definiert sein.


Der Weg muss in der Ausgangsrichtung definiert werden, also in der Richtung, in der der Zug das Becken verlässt.


Ein Speicherpfad kann nur ein einzelner Abschnitt sein; es kann nicht über Weichen oder Kreuzungen fahren.


#access


Ein Pfad, der den Zugriff auf eine Speicherspur definiert. Auf jede Speicherspurdefinition müssen eine oder mehrere Zugriffspfaddefinitionen folgen.


Der Weg muss in der Ausgangsrichtung definiert werden, also in der Richtung, in der der Zug das Becken verlässt.


Ein Zufahrtsweg kann über Weichen oder Kreuzungen führen, darf aber keine Umkehrpunkte enthalten.


#maxunits


Für jedes Lagergleis kann die maximale Anzahl an Einheiten definiert werden, die auf diesem Gleis gelagert werden können. Dieses Feld ist optional.


Beachten Sie, dass dies nur die maximale Anzahl von Einheiten definiert. Die effektive Anzahl kann geringer sein, wenn die Länge der Lagerschiene nicht ausreicht, um diese Anzahl an Einheiten aufzunehmen.


#settings


Enthält spezielle Flags für die Poolnutzung. Derzeit ist nur ein Wert zulässig: Force Creation, der Züge dazu zwingt, auf dem Zugangspunkt zu spawnen, wenn der Pool unterfüllt ist.


Zusätzliche Bemerkungen


Es ist nicht möglich, „durchlaufende“ Lagerbereiche zu definieren. Zugangswege zu Lagergleisen können nur an einem Ende des Lagergleises definiert werden, und Züge fahren immer am selben Ende in den Pool ein und aus.


Obwohl jeder Speicherpfad über einen oder mehrere eigene Zugriffspfade verfügt, ist es ratsam, dass alle Zugriffspfade am selben Punkt enden, sodass alle Speicherspuren von diesem Standort aus zugänglich sind. Es ist möglich, mehrere Zugriffe zu haben Dann ist es aber dennoch ratsam, dass alle Speicherwege von allen Punkten aus erreichbar sind.


Wenn nur ein Teil der Lagerwege von einem Zugangspunkt aus zugänglich ist, besteht die Gefahr, dass die Züge nicht ausreichend über die gesamte Lagerfläche verteilt werden können. Im schlimmsten Fall werden alle Züge immer an einen Zugang gesendet Wenn ein Datenpunkt immer von einem anderen Zugriffspunkt extrahiert wird und diese Punkte nicht auf alle Speicherspuren zugreifen, kann es zu einer fortlaufenden Reihe von Pool-„Überläufen“ und „Unterläufen“ kommen, da die Engines diese an den Pool senden können nicht extrahiert werden.


12.7.2 Drehscheiben-Pools


Parameter für Drehscheiben-Pools:


#comment


Nur Kommentar, Wert wird ignoriert.


#name


Name des Pools. Dies ist der Name, der in den Fahrplan-$pool-Befehlen zum Erstellen, Extrahieren oder Speichern von Zügen für diesen Pool verwendet werden muss. Dieses Feld ist ein Pflichtfeld und muss vor allen anderen Parametern stehen.


#worldfile


Der Dateiname der Weltdatei, in der sich der Plattenspieler befindet.


#uid


Die UID des Plattenspielers in der Weltdatei. Zusammen mit #worldfile definiert dies die Drehscheibe, auf der der Pool basiert. Die Werte #worldfile und #uid müssen mit den zugehörigen Werten in der Datei turntable.dat übereinstimmen, die die Arbeitspläne definiert.


#storage


Ein Pfad, der eine Speicherspur definiert. Dieser Weg muss in der vom Drehteller wegführenden Richtung definiert werden. Es muss mindestens eine Lagerspur definiert sein.


Die Startposition der Bahn muss außerhalb des Drehtellerbereichs liegen. Ein Speicherpfad kann nur ein einzelner Abschnitt sein; es kann nicht über Weichen oder Kreuzungen fahren.


#access


Ein Pfad, der den Zugriff auf eine Speicherspur definiert. Dieser Weg muss in der vom Drehteller wegführenden Richtung definiert werden. Es muss mindestens ein Zugriffspfad definiert sein. Der Zugangsweg ist nicht an ein bestimmtes Lagergleis gebunden, sondern gilt für alle Lagergleise, da der Zugang immer über die Drehscheibe erfolgt.


Die Startposition der Bahn muss außerhalb des Drehtellerbereichs liegen. Der Weg kann über Weichen oder Kreuzungen führen, darf aber keine Umkehrpunkte enthalten.


#maxunits


Für jedes Lagergleis kann die maximale Anzahl an Einheiten definiert werden, die auf diesem Gleis gelagert werden können. Dieses Feld ist optional.


Beachten Sie, dass dies nur die maximale Anzahl von Einheiten definiert. Die effektive Anzahl kann geringer sein, wenn die Länge der Lagerschiene nicht ausreicht, um diese Anzahl an Einheiten aufzunehmen.


#speedmph und #speedkph


Diese Parameter definieren die maximale Geschwindigkeit des Zuges beim Befahren der Drehscheibe in Meilen pro Stunde oder km/h. Diese Geschwindigkeit gilt auch für die Lagergleise.


Bei der Ausfahrt aus der Drehscheibe auf Zufahrtswegen fährt der Zug automatisch wieder mit der Höchstgeschwindigkeit zurück, die bei der Anfahrt zur Drehscheibe galt.


Mit diesen Befehlen ist es nicht erforderlich, Geschwindigkeitsmarkierungen in der Route zu platzieren, um die Geschwindigkeit auf der Drehscheibe zu begrenzen.


#Framerate


Dieser Parameter definiert die Bildrate für das Drehen des Plattentellers. Weitere Informationen finden Sie unter Plattenspieler und Bildrate.


#approachclearance


Dieser Parameter legt den Abstand in Metern fest, bei dem der Motor vor dem Drehtisch stoppt, wenn er sich dem Drehtisch nähert, aber warten muss, bis sich der Drehtisch ausgerichtet hat. Dies ist auch der Abstand, bei dem die begrenzte Drehtellergeschwindigkeit angewendet wird.


#releaseclearance


Dieser Parameter legt den Abstand in Metern fest, bei dem die Drehscheibe freigegeben wird, nachdem sich der Motor von der Drehscheibe entfernt hat. Dies ist auch der Abstand, bei dem die Geschwindigkeitsbeschränkung der Drehscheibe aufgehoben wird, wenn der Motor das Becken verlässt.


#settings


Entspricht dem gleichnamigen Befehl ohne Drehscheibe.


Nutzung der Drehscheibe


Bewegen Sie die Drehscheibe zu keinem Zeitpunkt mit manuellen Bedienelementen.


Wenn der Spielerzug aus dem Becken entnommen wird, dreht sich der Drehteller in die gewünschte Position. Der Spielerzug kann entweder warten oder sich langsam auf die Drehscheibe zubewegen. Wenn sich der Spielerzug auf einem Zugangsweg der Drehscheibe nähert und sich die Drehscheibe nicht in der erforderlichen Position befindet, halten Sie kurz vor der Drehscheibe an und warten Sie, bis die Drehscheibe in der richtigen Position ist. Es erscheint eine Bildschirmbenachrichtigung, wenn der Plattenspieler bereit ist.


Gehen Sie beim Auffahren auf die Drehscheibe so lange vor, bis der Motor vollständig auf der Drehscheibe positioniert ist. Es erscheint eine Bildschirmbenachrichtigung, wenn der Motor richtig positioniert ist.


Wenn der Motor positioniert ist, stellen Sie den Gashebel auf 0 % und den Reversierer auf Neutral (oder 0 % bei Dampfmaschinen). Wenn beide Bedingungen erfüllt sind, beginnt sich der Plattenteller zu bewegen. Bewegen Sie den Motor nicht, während sich der Tisch dreht.


Wenn sich die Drehscheibe in der gewünschten Position befindet, kann der Zug vom Tisch gefahren werden.


KI-Drehscheibenverhalten


Der Drehteller fährt immer über den kürzesten Winkel in die gewünschte Position.


Wenn ein Zug die Drehscheibe anfordert, die Drehscheibe jedoch bereits aktiviert oder von einem anderen Zug belegt ist, wird die Anfrage in die Warteschlange gestellt. Die Drehscheibe wird freigegeben, wenn sich die Besatzungsmaschine von der Drehscheibe entfernt und sich ein kurzes Stück davon entfernt. Wenn keine weiteren Anfragen in der Warteschlange sind, bleibt die Drehscheibe bis zur nächsten Anfrage in dieser Position.


Wenn sich ein KI-Zug der Drehscheibe auf einem Zugangsweg nähert und sich die Drehscheibe nicht in der erforderlichen Position befindet, hält der Zug kurz vor der Drehscheibe an und fordert die Drehscheibe auf, sich in diese Position zu bewegen.


Wenn ein KI-Zug aufgefordert wird, ein Lagergleis zu verlassen und sich die Drehscheibe nicht in dieser Position befindet, fordert er die Drehscheibe auf, sich zu bewegen, beginnt jedoch nicht, sich auf die Drehscheibe zuzubewegen, bis die Drehscheibe in Position ist.


Drehscheibenpfade


Der Track Viewer zeigt Wege an, die durch die Drehscheibe führen. Drehscheibenpfade dürfen jedoch nicht durch die eigentliche Drehscheibe selbst verlaufen, sondern müssen außerhalb des Drehscheibenbereichs beginnen, wie in diesem Bild gezeigt:

Es empfiehlt sich, getrennte Zugangswege für die Entnahme von Zügen aus dem Pool und für den Transport von Zügen zum Pool zu haben, insbesondere wenn die Drehscheibe von mehreren Pools gemeinsam genutzt wird. Andernfalls besteht die Gefahr einer Blockadesituation, wenn ein Zug ungefähr gleichzeitig mit der Entnahme eines anderen Zuges zur Drehscheibe geschickt wird. Das Programm kann dies nicht lösen, da es nicht erkennen kann, dass beide Züge zwangsläufig auf das gleiche Gleis weiterfahren müssen, während der herauszuziehende Zug noch auf die Drehscheibe wartet oder gedreht wird.


Drehscheiben und Bildrate


Normalerweise wird die Bildrate des Plattentellers (Geschwindigkeit, mit der sich die Bühne dreht) aus der Formdatei der Drehscheibe übernommen.


Da KI-Züge jedoch überall auf einer Strecke eine Drehscheibe verwenden können, kann es sein, dass die Formdatei einer bestimmten Drehscheibe, die nicht sichtbar ist, nicht geladen wurde und die Bildrate daher nicht auf diese Weise abgeleitet werden kann. Als Ersatz wird der für den Pool definierte Wert verwendet.


Wenn der Drehtisch zu irgendeinem Zeitpunkt verwendet wird, während seine Shape-Datei geladen ist, wird dieser Ersatzwert durch den in der Shape-Datei definierten Wert ersetzt. Ein Bild pro Sekunde entspricht einer Rotationsgeschwindigkeit von 0,1 Grad pro Sekunde. Dieser Parameter ist optional. Wenn nicht definiert, wird ein Standardwert von 30 Bildern pro Sekunde verwendet, was eine Standardrotationsgeschwindigkeit von 3 Grad pro Sekunde ergibt.


12.8 Wetterwechsel


Mit Wetterdateien können die aktuelle Bewölkung, der Niederschlag und die Sichtweite über den Fahrplantag hinweg variiert werden. Wetterdateien befinden sich in einem speziellen WeatherFiles-Unterverzeichnis des Routenordners und haben die Dateierweiterung *.weather-or. Sie werden vom Spieler aus dem Menü des Zeitplanmodus ausgewählt.


Eine Wetterdatei ist eine JSON-Datei, die aus einem einzelnen Array mit dem Namen „Changes“ besteht, wobei jedes Element ein Wetterereignis darstellt, das zu einem bestimmten Zeitpunkt aktiviert wird. Jedes Ereignis ist ein JSON-Objekt, dessen „Type“-Eigenschaft die Art des Wetterereignisses identifiziert. Konkret folgt eine Wetterdatei dem Format:


{

"Changes": [

{

"Type": "<type>",

"<property>": "<value>"

}

]

}


Es gibt drei Arten von Ereignissen: Klar, Niederschlag und Nebel, jede mit ihren eigenen individuellen Eigenschaften.


12.8.1 „Klares Wetter“-Ereignis


Ein Klares Wetter-Ereignis entfernt jeglichen Niederschlag oder Nebel und legt gleichzeitig die vorherrschenden bewölkten Bedingungen fest. Clear-Ereignisse enthalten die folgenden JSON-Eigenschaften:

Objekt Typ Beschreibung
Time Zeichenfolge Die 24-Stunden-Zeit, zu der dieses Ereignis aktiviert wird.
Overcast Zahl Die Bewölkungsintensität als Prozentsatz von 0 bis 100.
OvercastVariation Zahl Die Variation der Bewölkungsintensität als Prozentsatz von 0 bis 100.
OvercastRate- OfChange Zahl The rate of change of overcast intensity as a scaling factor from 0 to 1.
OvercastVisibility Zahl Die resultierende Sichtweite in Metern. Der Wert muss im Bereich von 10.000 bis 60.000 liegen. (Für niedrigere Werte verwenden Sie ein Nebelereignis.)

12.8.2 Ereignis „Niederschlag“.


Ein Niederschlagsereignis stellt eine Regenperiode dar, auf die eine Regenperiode folgt, mit fließenden Übergängen in, aus und zwischen beiden Phasen.

Objekt Typ Beschreibung
Time Zeichenfolge Die 24-Stunden-Zeit, zu der dieses Ereignis aktiviert wird.
Phase 1: Aufbau bis zum Niederschlag
OvercastPrecipitationStart Zahl Die Bewölkungsintensität während der Vorbereitung auf den Niederschlagszeitraum als Prozentsatz von 0 bis 100.
OvercastBuildUp Zahl Die Änderungsrate der Bewölkungsintensität vor der Niederschlagsperiode als Skalierungsfaktor von 0 bis 1.
PrecipitationStart- Phase Zahl Die Dauer der Niederschlagsaufbauphase in Sekunden. Muss im Bereich von 30 bis 240 liegen.
Phase 2: Niederschlagscharakteristika
PrecipitationType Zeichenfolge Die Art des Niederschlags. Muss entweder Schnee oder Regen sein
PrecipitationDensity Zahl Die Niederschlagsintensität als Skalierungsfaktor von 0 bis 1.
PrecipitationVariation Zahl Die Variabilität der Niederschlagsintensität als Skalierungsfaktor von 0 bis 1.
PrecipitationProbability Zahl Die Wahrscheinlichkeit des Niederschlagsereignisses in Prozent von 0 bis 100.
PrecipitationSpread Zahl Die Anzahl der unterschiedlichen Regenperioden während des Zaubers. Muss im Bereich von 1 bis 1000 liegen.
PrecipitationVisibilityAtMinDensity Zahl Die Sichtbarkeit bei minimaler Niederschlagsdichte.
PrecipitationVisibilityAtMaxDensity Zahl Die Sichtbarkeit bei maximaler Niederschlagsdichte.
Phase 3: Ausbreitung beim Niederschlag
OvercastDispersion Zahl Die Änderungsrate der Bewölkungsintensität nach der Niederschlagsperiode als Skalierungsfaktor von 0 bis 1.
PrecipitationEnd- Phase Zahl Die Dauer der Niederschlagsverteilungsphase in Sekunden. Muss im Bereich von 30 bis 360 liegen.
Phase 4: Charakteristika löschen
Overcast Zahl Die Bewölkungsintensität als Prozentsatz von 0 bis 100.
OvercastVariation Zahl Die Variation der Bewölkungsintensität als Prozentsatz von 0 bis 100.
OvercastRate- OfChange Zahl Die Änderungsrate der Bewölkungsintensität als Skalierungsfaktor von 0 bis 1.
OvercastVisibility Zahl Die resultierende Sichtweite in Metern. Der Wert muss im Bereich von 10.000 bis 60.000 liegen.

12.8.3 Ereignis „Nebel“.


Ein Nebelereignis verringert die vorherrschende Sicht erheblich. Es zeichnet sich durch fließende Übergänge in und aus dem Nebel aus, vom vorherigen Wetterereignis zum nächsten Wetterereignis.

Objekt Typ Beschreibung
Time Zeichenfolge Die 24-Stunden-Zeit, zu der dieses Ereignis aktiviert wird.
FogVisibility Zeit Die resultierende Sichtweite in Metern. Maximalwert 1000. (Für höhere Werte verwenden Sie ein Clear-Ereignis.)
FogSet- Time Zeit Die Übergangszeit, bis Nebel einsetzt, in Sekunden. Der Wert muss im Bereich von 300 bis 3600 liegen.
FogLift- Time Zeit Die Übergangszeit, bis sich der Nebel lichtet, in Sekunden. Der Wert muss im Bereich von 360 bis 3600 liegen.
FogOvercast Zeit Die resultierende Bewölkungsintensität nach dem Aufziehen des Nebels in Prozent von 0 bis 100.

12.9 Beispiel einer Fahrplandatei


Hier ein Auszug aus einer Stundenplandatei (in Excel dargestellt):

12.10 Welche Tools stehen zur Entwicklung eines Stundenplans zur Verfügung?


Es wird empfohlen, ein leistungsstarkes eigenständiges Programm namens Timetable Editor zu verwenden (Excel ist nicht erforderlich). Es ist im OP-Paket enthalten und kann über die Schaltfläche „Extras“ im OP-Menü aufgerufen werden.

Share by: