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 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.
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.
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);
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:
..
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);
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:
Beispiel: Eine S-Bahn verkehrt im 20 Minuten-Takt und die erste und/oder die letzte Zugfahrt innerhalb der laufenden Stunden verkehren soll.
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!
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.
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.
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:
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.
Ein Zug im Zugtemplate soll an einem Halt einen anderen Bahnsteig verwenden. Im Fahrplaneditor werden zwei Fahrplanhalte für diesen Bahnhof angelegt:
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.
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.