Simulator Forum Handbuch 
Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


Seitenleiste


stellwerksim:erbauer:zugbau:namensmuster

Namensmuster § kommentieren

Mit dem Namensmuster wird jedem erzeugten Zug ein Name zugewiesen. Die Zugnamen müssen Systemweit einmalig sein. Diese werden vorzugsweise aus variablen Blöcken berechneten Zugnummern erzeugt (alle Rechenoperationen, ausser der Division, stehen dafür zur Verfügung).   kommentieren

Die Zugnamen bzw. die Namensmuster zu deren Berechnung können entweder im Feld Namensmuster oder dem Zugscript angegeben werden.  kommentieren

Mit folgenden Variablen kann gerechnet werden:  kommentieren

Variable Bedeutung
$i Laufende Nummer über alle Züge des aktuellen Scriptlaufs (von 0 an gezählt)
$zi Laufende Nummer über alle Züge des Zugtemplates (von 0 an gezählt) (Verwendung im Namensmusterfeld)
$ti Laufende Nummer über alle Züge des aktuellen takt()-Befehls (von 0 an gezählt) (Verwendung nur im Taktbefehl)
$zid Die vom System vergebene eindeutige ID des Zuges (ungleich der Zugtemplate-ID (TID))
$sec Die Minutenzahl seit 0:00, welche der Abfahrtszeit am ersten Halt im ersten Stellwerk entspricht.
$time Abfahrtszeit des Zuges am Referenzbahnsteig als vierstellige Zahl (z. B. 1252)

Zusätzlich zu den Variablen Blöcken können weitere fixe Blöcke eingefügt werden, welche für jeden Zug des Zugtemplates gleich sind.  kommentieren

Alle Blöcke müssen durch ein Leerzeichen voneinander getrennt sein.
Variable Blöcke dürfen keine Buchstaben enthalten. Weiter ist keine führende 0 erlaubt.

Wird ein %-Zeichen eingefügt wird alles dahinter im Fahrplan nicht dargestellt.  kommentieren

Beispiele § kommentieren

RB 12101 erzeugt  kommentieren

RB 12101  kommentieren

RB 12101+$zi*2 erzeugt  kommentieren

RB 12101
RB 12103
RB 12105  kommentieren

RB 12101+$ti*2 erzeugt ebenfalls  kommentieren

RB 12101
RB 12103
RB 12105  kommentieren

S 1 % A-B $time erzeugt zum Beispiel  kommentieren

S 1 % A-B 0915
S 1 % A-B 0935
S 1 % A-B 0955
S 1 % A-B 1015
S 1 % A-B 1035  kommentieren


  kommentieren

Einbindung des Namensmusters in ZugScript § kommentieren

Im Feld Namensmuster kann ein Namensmuster festgelegt werden, welches dann für alle Züge des Zugtemplates gilt.  kommentieren

Alternativ kann das Namensmuster auch direkt im takt()-Befehl festgelegt werden. Somit können für das gleiche Zugtemplate mehrere Namensmuster verwendet werden. Dabei ist folgendes zu Beachten:  kommentieren

Bei der Verwendung von Namensmustern im takt()-Befehl sollte als Variable für die laufende Nummer $ti verwendet werden. Nur $ti fängt für jeden Befehl neu zu zählen an.  kommentieren

Beispiele § kommentieren

Im folgenden Beispiel werden die nur zweistündig verkehrenden Zwischenzüge (06:30…) in das Nummernschema der stündlich verkehrenden Züge eingereiht:  kommentieren

takt(60,ID=1,GLEIS=1,MILZEIT=0600..1200,NAME=RB 2000+$ti*4);
takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$ti*8);  kommentieren

Es würden folgende Züge erstellen:  kommentieren

RB 2000 (06:00) ($ti = 0)
RB 2004 (07:00) ($ti = 1)
RB 2008 (08:00) ($ti = 2)
RB 2012 (09:00) ($ti = 3)
RB 2016 (10:00) ($ti = 4)
RB 2020 (11:00) ($ti = 5)

RB 2002 (06:30) ($ti = 0)
RB 2010 (08:30) ($ti = 1)
RB 2018 (10:30) ($ti = 2)  kommentieren

Die Verwendung von $zi würde hier unerwartete Ergebnisse produzieren:  kommentieren

takt(60,ID=1,GLEIS=1,MILZEIT=0600..1200,NAME=RB 2000+$zi*4);
takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$zi*8);  kommentieren

Es würden folgende Züge erstellen:  kommentieren

RB 2000 (06:00) ($zi = 0)
RB 2004 (07:00) ($zi = 1)
RB 2008 (08:00) ($zi = 2)
RB 2012 (09:00) ($zi = 3)
RB 2016 (10:00) ($zi = 4)
RB 2020 (11:00) ($zi = 5)

RB 2050 (06:30) ($zi = 6) !!!
RB 2058 (08:30) ($zi = 7) !!!
RB 2066 (10:30) ($zi = 8) !!!  kommentieren


  kommentieren

Berechnungen auf Basis der Stunde § kommentieren

Die folgenden Hinweise sollen denen dienen, die sich schon mit den grundlegenden Funktionen des Namensmusters vertraut gemacht haben und auch vor komplexeren Namensmustern nicht zurückschrecken.  kommentieren

Die Division (/) ist normalerweise beim Namensmuster nicht zugelassen, da hier Zahlen entstehen können, die keine ganze Zahl sind. Diese sind als Zugname nicht zulässig. In Zusammenhang mit dem Befehl floor() ist sie jedoch zulässig. Dieser Befehl schneidet die Nachkommastellen ab, so dass sich immer Ganzzahlen ergeben. Bei der Nutzung der Division sind zwei Punkte zu beachten:  kommentieren

  • Die Division darf nur innerhalb des floor()-Befehls erfolgen.  kommentieren
  • Es darf nicht zweimal das gleiche Ergebnis entstehen.  kommentieren

Sinnvoll ist diese Möglichkeit z.B., wenn der Name anhand der Stunde berechnet werden soll, zu der er verkehrt. Der Befehl floor($time/100) ergibt die Stunde am Referenzbahnsteig. Ein Beispiel:  kommentieren

Das Namensmuster IC 775+floor($time/100)*4 mit dem takt()-Befehl takt(120,ID=583,GLEIS=2,MILZEIT=0705..1106,MILZEIT=1705..2106); ergibt folgende Züge:  kommentieren

IC 803 (07:05)
IC 811 (09:05)
IC 819 (11:05)
IC 843 (17:05)
IC 851 (19:05)
IC 859 (21:05)  kommentieren

Am Beispiel des ersten Zuges sei das Verfahren erläutert:  kommentieren

  • $time ist die Abfahrtszeit des Zuges am Referenzbahnsteig in der Form 0705 kommentieren
  • $time/100 ergibt somit 7,05  kommentieren
  • floor($time/100) schneidet die Nachkommastellen ab, wir haben 7 als Ergebnis  kommentieren
  • floor($time/100)*4 multipliziert das mit 4 - also haben wir 28  kommentieren
  • 775+floor($time/100)*4 addiert dann 775 dazu - so dass sich die Zugnummer 803 ergibt  kommentieren

Weitere Informationen zu diesem Berechnugnsverfahren gibt es im Tipps & Tricks-Forum kommentieren

stellwerksim/erbauer/zugbau/namensmuster.txt · Zuletzt geändert: 2019/01/23 10:06 von billy