Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


Seitenleiste



JavaScript ist deaktiviert!

stellwerksim:erbauer:zugbau:zugscript

Zugscript

Zugscripte (kurz ZS) werden mit dem Takt-Befehl geschrieben. Jeder Befehl bekommt eine eigene Zeile, am Schluss jeder Zeile muss ein Semikolon gesetzt werden.

Die Taktbefehle sehen wie folgt aus:

takt(<Takt in Minuten>,weitere Parameter);

Der <Takt in Minuten> muss immer als erstes im Befehl stehen und einen Mindestwert von 1 haben. Auf keinen Fall darf der <Takt in Minuten> weg gelassen werden. Sollte es sich nur um eine Einzelfahrt handeln, so ist der Wert 60 oder ähnliches einzugeben.

Das Wort takt muss immer klein, die Befehle innerhalb der Klammern immer groß geschrieben werden. Alle anderen Schreibweisen funktionieren höchstens zufällig und werden nicht unterstützt.

Die weiteren Parameter werden dabei im Format „Befehl=Zuweisung“ angegeben. Einzelne Parameter werden voneinander mit einem Komma getrennt und können in beliebiger Reihenfolge angegeben werden.

Befehl Zuweisung Bemerkung Pflichtangabe Anzahl pro Zugscript
ID Referenz-AID AID des Referenz-Stellwerks (in welchem die Zeiten des Script gelten) angegeben Ja Genau einmal
GLEIS Referenzbahnsteig Name des Referenz-Bahnsteiges Ja Genau einmal
STUNDE std1 oder std1..std2 std1 = Stunde der ersten Abfahrt, std2 = Stunde vor der letzten Abfahrt Ja Mindestens einmal, beliebig viele, auch gemischt
MILZEIT stdmin1 oder stdmin1..stdmin2 stdmin1 = Stunde und Minute der ersten Abfahrt, stdmin2 = Stunde und Minute vor der letzten Abfahrt
MULTI Referenz-Flag Wird das Multiflag eingetragen welches in den durch diese Scriptzeile erzeugten Züge verwendet wird Nein Höchstens zweimal (1x für F-Flag, 1x für K-Flag oder E-Flag)
MARKER Ein Großbuchstabe Nur Fahrplaneinträge mit diesem Themamarker werden für den Zug übernommen Nein Höchstens einmal
NAME Namensmuster Wenn vorhanden, muss der Parameter in jedem Zugscript vorhanden und das Namensmuster-Feld des Zugtemplates leer sein. Nein Höchstens einmal
Der im Zugscript angegebene Referenzbahnsteig darf nur einmal als Fahrplaneintrag enthalten sein!
Das Zugscript darf nicht aus der Historie oder einem Textverarbeitungsprogramm wie Word kopiert werden! Ansonsten kann es sein, dass das Zugscript in mehrere Teile zerrissen wird, da hier nicht sichtbare Zeichen mitkopiert werden.

Referenzbahnsteig (ID und GLEIS)

Der Referenzbahnsteig wird genutzt, um die Fahrplanzeile festzulegen, auf die sich die STUNDE bzw. MILZEIT beziehen. Angegeben wird hier die Anlagen-ID (in ID) und der Name des Bahnsteig- bzw. Haltepunktelements. Die Schreibweise muss dabei genau so wie im Fahrplan sein.

Der Referenzbahnsteig darf nicht mehrfach im Fahrplan vorkommen, außer an im jeweiligen Zugscript nicht genutzten MULTI-Zeilen.

Beispiel

Zugscript:

takt(60,ID=123,GLEIS=A1,STUNDE=5,MULTI=E1);
takt(60,ID=123,GLEIS=A1,STUNDE=6,MULTI=E2);

Fahrplan:

an ab AID Gleis Flag
05:00 05:00 123 A1 E1(1234)
05:00 05:00 123 A1 E2(4321)

Hier darf Gleis A1 als Referenzbahnsteig verwendet werden, weil es zusammen mit dem MULTI eindeutig ist (die andere Zeile wird entfernt). Das Gleis A1 darf dann aber außerhalb der MULTI-Verknüpfung nicht auftreten.

Haben die MULTI-Verknüpfungen unterschiedliche Bahnsteige, muss natürlich der Referenzbahnsteig ebenfalls unterschiedlich sein.

Abfahrtszeit (STUNDE und MILZEIT)

Mit den Parametern STUNDE und MILZEIT wird festgelegt, zu welche Uhrzeit die erzeugten Züge am Referenzbahnsteig abfahren sollen. Dabei haben sie folgendes Format (hh ist die Stunde, mm die Minute):

STUNDE=hh
MILZEIT=hhmm

Zeitangaben nach 23:59 (also z. B. STUNDE=05..26 oder MILZEIT=2420) werden nicht unterstützt, sofern Sie derzeit funktionieren, kann sich dieses Verhalten in Zukunft ohne Ankündigung ändern. In solchen Fällen sollte das Referenzgleis verlegt werden.

Folgendes sind also valide Beispiele:

takt(60,ID=123,GLEIS=A1,STUNDE=5);
takt(60,ID=123,GLEIS=A1,STUNDE=05); (führende 0 wird ignoriert)
takt(60,ID=123,GLEIS=A1,STUNDE=16);
takt(60,ID=123,GLEIS=A1,MILZEIT=500);
takt(60,ID=123,GLEIS=A1,MILZEIT=0500); (führende 0 wird ignoriert)
takt(60,ID=123,GLEIS=A1,MILZEIT=1659);

Innerhalb eines takt()-Befehls dürfen mehrere STUNDE und MILZEIT vorkommen und auch gemischt werden:

takt(60,ID=123,GLEIS=A1,STUNDE=5,MILZEIT=1022,STUNDE=18);


Zeitbereiche

Es können mit einem STUNDE oder MILZEIT mehrere Züge im Takt erzeugt werden:

takt(60,ID=123,GLEIS=A1,STUNDE=6..12);

Folgende Besonderheiten sind hier zu beachten:

  • zwischen Start- und Endzeit sind genau 2 Punkte ..
  • Der letzte Zug fährt vor der Endzeit

Im obrigen Beispiel werden also folgende Züge erzeugt:

Zug 1 (06:25)
Zug 2 (07:25)
Zug 3 (08:25)
Zug 4 (09:25)
Zug 5 (10:25)
Zug 6 (11:25)

In MILZEIT könnte das Ganze so aussehen:

takt(60,ID=123,GLEIS=A1,MILZEIT=625..1126);
takt(60,ID=123,GLEIS=A1,MILZEIT=625..1225);
takt(60,ID=123,GLEIS=A1,MILZEIT=625..1200);

Alle Zugscripte erzeugen die oben genannten Züge. Zur besseren Übersicht sollte eine der beiden oberen Versionen (eine Minute später oder einen Takt später) verwendet werden.

Bei Takten kleiner 60 Minuten spielt MILZEIT sein Können aus:

takt(20,ID=123,GLEIS=A1,MILZEIT=625..806);

Erzeugt werden folgende Züge:

Zug 1 (06:25)
Zug 2 (06:45)
Zug 3 (07:05)
Zug 4 (07:25)
Zug 5 (07:45)
Zug 6 (08:05)

STUNDE fängt in diesen Fällen mit der Minute des Referenzbahnsteigs im Fahrplan an (hier: 25) und hört mit der letzten Abfahrt vor der vollen Stunde auf. Folgende Zugscripte sind also äquivalent:

takt(20,ID=123,GLEIS=A1,STUNDE=6..8);
takt(20,ID=123,GLEIS=A1,MILZEIT=625..800);

MILZEIT vs. STUNDE

Grundsätzlich ließen sich alle Züge mit MILZEIT bauen. Allerdings ergeben sich bei kleinen Zeit-Verschiebungen am Referenzbahnsteig schnell Fehler, weil der gesamte restliche Fahrplan verschoben wird. Deshalb soll nur in folgenden Fällen MILZEIT verwendet werden:

  • Mehrere Zugfahrten sollen in einem Takt unter 60 Minuten erzeugt werden.

Beispiel: Eine S-Bahn verkehrt im 20 Minuten-Takt und die erste und/oder die letzte Zugfahrt innerhalb der laufenden Stunden verkehren soll.

  • Mehrere Zugfahrten sollen zu wechselnden Ankunfts- oder Abfahrtzeiten in einem nicht synchronen Takt erzeugt werden

Beispiel: Eine RB verkehrt von 8 Uhr bis 20 Uhr im Stundentakt am Referenzbahnsteig zur Minute 16, jedoch zur Stunde 14 soll die RB zur Minute 12 fahren. Die Zugscriptzeile könnte hierfür wie folgt aussehen:

takt(60,ID=999,GLEIS=Adorf,STUNDE=8..14,MILZEIT=1412,STUNDE=15..21);

Trotzdem kann es zu diesen Verschiebungseffekten auch bei STUNDE kommen!

Beispiel

Eine RB fährt wie folgt:

an ab Gleis
09:30 09:30 A-Dorf
09:40 09:40 B-Stadt
09:50 09:50 C-Heim
10:00 10:00 D-Kirchen

Zugscript:

takt(60,ID=123,GLEIS=C,MILZEIT=0950);

Wird jetzt der Zugtemplate-Fahrplan in C-Heim auf 09:52 geändert, fahren die erzeugten Züge nicht um 09:52 in C-Heim ab, sondern nach Zugscript um 09:50 - und dafür an allen anderen Halten 2 Minuten früher:

an ab Gleis
09:28 09:28 A-Dorf
09:38 09:38 B-Stadt
09:50 09:50 C-Heim
09:58 09:58 D-Kirchen

Dadurch ergeben sich insbesondere Änderungen in anderen Stellwerken und Regionen.

Mehrfache Verknüpfungen (MULTI)

Wenn in einem Zugtemplate mehrere Züge vorhanden sind, die auf unterschiedliche Nachfolger verknüpft werden sollen, kann pro Zugscript-Zeile festgelegt werden, welche Verknüpfung verwendet werden soll. Die Beschreibung und Regeln dafür finden sich beim Multi-Flag.

Themamarker (MARKER)

Ist ein MARKER gesetzt, werden für den Zug nur diejenigen Fahrplanhalte übernommen, die diesen Themamarker gesetzt haben. Damit kann für einzelne Züge ein abweichender Fahrplan definiert werden, ohne ein eigenes Zugtemplate verwenden zu müssen - auf Kosten der Lesbarkeit des Fahrplans. Dabei sind folgende Regeln zu beachten:

  • Jeder Zug kann höchstens einen MARKER haben.
  • Hat mindestens ein Zugscript einen MARKER gesetzt, muss jedes Zugscript in diesem Zugtemplate einen MARKER gesetzt haben. Es müssen also entweder alle Zugscripte oder kein Zugscript MARKER enthalten.
  • Wird MARKER verwendet müssen alle Referenzgleise Themamarker A-Z gesetzt hat.

Der Zugscriptlauf übernimmt dann pro Zug nur diejenigen Fahrplaneinträge, die den gewählten Marker gesetzt haben, und setzt im Zug den Themamarker A-Z.

Die Züge haben also andere Themamarker als das Zugtemplate. Damit ist das Setzen eines Themamarkers per ThemaScript (Befehl themamarker) ohne Auswirkung, weil der Fahrplan des Zuges für alle Themamarker gleich ist.
Die Regeln für Verknüpfungsbahnsteige gelten unabhängig von MARKER - Verknüpfungsbahnsteige müssen also auch im Zugtemplate immer Themamarker A-Z gesetzt haben. Das gilt insbesondere auch für Zielbahnsteige von E/F/K-Flags!

Beispiel

Ein Zug im Zugtemplate soll an einem Halt einen anderen Bahnsteig verwenden. Im Fahrplaneditor werden zwei Fahrplanhalte für diesen Bahnhof angelegt:

  • Ein Fahrplanhalt mit dem Standard-Gleis mit Themamarker A und C-Z
  • Ein Fahrplanhalt mit dem abweichenden Gleis mit Themamarker B

Im Zugscript gibt es dann folgende Zeilen:

takt(60,ID=123,GLEIS=A1,STUNDE=6..8,MARKER=A);
takt(60,ID=123,GLEIS=A1,STUNDE=8,MARKER=B);
takt(60,ID=123,GLEIS=A1,STUNDE=9..20,MARKER=A);

Damit hat der Zug zur Stunde 8 den abweichenden Bahnsteig, alle anderen den normalen Bahnsteig.

Namensmuster im Zugscript (NAME)

Mit dem Parameter NAME kann das Namensmuster in die Zugscript-Zeile aufgenommen werden. Dadurch ist es möglich, verschiedene Namen oder Lücken innerhalb eines Zugtemplates darzustellen.

Die genaue Erklärung steht auf der Seite des Namensmusters.

stellwerksim/erbauer/zugbau/zugscript.txt · Zuletzt geändert: 2023/01/22 21:09 von PhilippK