Mit Simparams kann das Verhalten eines Zuges im Sim stark verändert werden.
Die Werte des Simparams sind jeweils von der Abfahrt am vorhergehenden Bahnsteig bis zur Abfahrt am angegebenen Bahnsteig wirksam. Handelt es sich beim angegebenen Bahnsteig um den ersten im Stellwerk gilt das simparam ab der Einfahrt. Wurde der letzte Bahnsteig im Stellwerk angegeben, so gilt das simparam von der Abfahrt am vorhergehenden Bahnsteig bis zur Ausfahrt.1)
Bei nur einem Bahnsteig im Fahrplan gilt der simparam von der Einfahrt bis zur Ausfahrt.
Dieser Befehl kann nur in der Klasse bahnhof
verwendet werden.
Blockkopf(Wert,Befehl,Fahrplanhalt,simparam);
Beispiel:
*:Bahnhof(20,minstop,any,simparam);
Die meisten Zeiten haben einen festen Mittelwert - die Standzeit an einem Halt zum Beispiel dauert immer etwa 30 Sekunden. Damit es nicht langweilig wird (und weil die Fahrgäste auch manchmal etwas länger oder kürzer brauchen), schwankt der tatsächliche Wert immer etwas um diesen Mittelwert herum. Je näher die Zeit am Mittelwert ist, desto wahrscheinlicher wird sie auftreten - Züge werden also deutlich häufiger 29 Sekunden stehen als 20 Sekunden, weil das näher am Mittelwert von 30 Sekunden liegt.
Mathematisch wird das mit einer Normalverteilung oder Gauß-Verteilung abgebildet, die im STS immer 3 Werte hat: Minimum, Mittelwert und Maximum. Die erzeugten Zufallswerte schwanken immer um den Mittelwert, und mit Minimum und Maximum kann man beeinflussen, wie stark die Werte vom Mittelwert abweichen.
Für gleisfalsch (also die Standzeit, wenn ein Zug ohne Gleisänderung am falschen Bahnsteig steht) kann man alle 3 Werte konfigurieren. Bei Standardwerten schwankt der Wert um 300 Sekunden (das sind die bekannten 5 Minuten) mit einer Streuung von 90 bis 600 Sekunden. Das ist sehr breit und damit sind Werte von 260 oder 350 Sekunden durchaus häufig, Werte von 100 oder 540 jedoch nicht (weil sie weit vom Mittelwert weg liegen).
Erhöhen wir nun gleisfalschmax auf 900, wird die Abweichung nach oben auch wieder wahrscheinlicher - es ist dann also wahrscheinlicher, dass ein Zug länger als 400 Sekunden steht, als wenn gleisfalschmax auf 600 bleibt. Etwa die Hälfte der Züge werden aber trotzdem nur 300 Sekunden oder kürzer stehen, weil das unser Mittelwert ist. Erhöhen wir aber gleisfalschmitte auch noch auf 350, wird ein Wert von 400 Sekunden plötzlich sehr realistisch, weil es nah am Mittelwert und weit weg vom Maximum ist.
Für die Mathematiker: Der Sim verwendet eine beschnittene Gauß-Kurve, dadurch sind auch die Extremwerte deutlich wahrscheinlicher als 0.
simparam
können einzelne und alle Werte überschrieben werden.
Befehl | Standardwert | Einheit | Kurzbeschreibung (ausführlicher weiter unten) |
---|---|---|---|
maxrandom | 4 | Minuten | Obergrenze der zufälligen Wartezeit |
randomdevisor | 2 | Mittelwert zur Kürzung der Haltezeit bei Verspätung | |
minstop | 0 | Sekunden | Minimale Haltezeit |
minstopR | 30 | Sekunden | Minimale Haltezeit bei Richtungswechsel (muss grösser 30 sein)2) |
maxstop | 5 | Minuten | Maximale Haltezeit (sofern Abfahrtszeit überschritten) |
soll_tempo | Tempo des Zuges (mit diesem Befehl kann auch die v-max überschritten werden | ||
anrufwartezeit | 3 | Minuten | Wartezeit bis zum Anruf bei Halt an einem roten Signal |
gleisänderung | 1 | Legt fest ob Gleisänderungen erlaubt sind. 1 steht für „ja“ 0 steht für „nein“ | |
gleisfalschmin | 90 | Sekunden | Minimale Haltezeit bei unangekündigter Gleisänderung |
gleisfalschmitte | 300 | Sekunden | Mittlere Haltezeit bei unangekündigter Gleisänderung |
gleisfalschmax | 600 | Sekunden | Maximale Haltezeit bei unangekündigter Gleisänderung |
any
eingeben werden.
Funktion | maxrandom ist Teil einer zufälligen Wartezeit-Berechnung nach dem Gauß-Verfahren. Die Einheit Minuten wird vom System auf Sekunden umgerechnet. |
Standardwert | Die mittlere zufällige Wartezeit beträgt um die 30 Sekunden. Die Extremwerte sind auf 10 Sek. nach unten und 4 Min. (= 240 Sek.) nach oben festgelegt. |
Einstellmöglichkeiten | maxrandom ermöglicht das Einstellen eines abweichenden Extremwertes nach oben. Kleinster einstellbarer oberer Extremwert ist 1 und ergibt damit 60 Sekunden. |
Auswirkungen | Es kann erreicht werden, dass der Zufall auch sehr lange zufällige Wartezeiten ergibt. |
Angenommen in der fiktiven Anlage Kleinstadt (AID 987) verkehrt das Template 23456, welches einen Zug mit Fahrradwagen darstellt. Möchte man im Sommer einen großen Andrang simulieren an allen Halten in der Anlage könnte man diese Zeile z.B. in den Regionshook schreiben:
sommer:bahnhof:987:23456(5,maxrandom,any,simparam);
Das würde dazu führen, dass der Zug zwar im Schnitt weiterhin um die 30 Sekunden zufälliger Wartezeit bekommt an den Halten, es aber auch mal bis zu 5 Minuten werden können und die Wahrscheinlichkeit dafür auch größer wird.
Funktion | randomdevisor ist Teil der Wartezeit-Berechnung auf Basis der im Fahrplan hinterlegten Standzeit. |
Standardwert | 2 . Da es nur ein Devisor für eine mathematische Rechnung ist, gibt es keine Einheit. |
Einstellmöglichkeiten | randomdevisor ermöglicht die Einkürzung der Haltezeit. Der Wert bildet die Mitte einer Zufallsberechnung (Gauß lässt grüßen) zwischen den Extremwerten 2 und 5 ab. Daher können auch nur die Werte 2, 3, 4 oder 5 eingestellt werden. |
Auswirkungen | Je höher der Zufallsdevisor gesetzt wird, desto kürzer wird die Wartezeit auf Basis der Standzeit laut Fahrplan, da eine Standzeit von 10 Min / 5 = 2 min wesentlich kleiner ist als 10 Min / 2 = 5 Min. |
Angenommen in der fiktiven Anlage Kleinstadt (AID 987) sollen alle Templates der Region ABC am Bahnsteig Innenreinigung 1
nur eine ganz schnelle Reinigung bekommen und die betrieblich notwendige Standzeit kann deswegen auch deutlich eingekürzt werden. Dann könnte man im Zughook der Region ABC schreiben:
*:bahnhof:987(4,randomdevisor,Innenreinigung 1,simparam);
Das würde dazu führen, dass z.B. ein Zug mit geplanten 40 Minuten Standzeit dort durchschnittlich bei Verspätung etwa 40 / 4 = 10 Minuten steht. Der Standardwert würde hier mehrheitlich 40 / 2 = 20 Minuten ergeben.
Funktion | minstop ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Minimum dar. |
Standardwert | 0 Sekunden |
Einstellmöglichkeiten | minstop ermöglicht das Einstellen einer absoluten Mindesthaltezeit. Dabei muss die Angabe immer in Sekunden angegeben werden. |
Auswirkungen | Wenn alle anderen Berechnungen zur Wartezeit eines Zuges bereits die Abfahrt erlauben würden, kann dieser Wert sie noch verzögern. |
Angenommen für eine besondere Zuggattung gibt es ein extra ThemaScript. Um die notwendige Standzeit bei einem Personalwechsel zu simulieren, der immer auf Gleis 5 in Anlage 987 stattfindet, könnte im ThemaScript stehen:
*:bahnhof:987(90,150,rnd,minstop,5,simparam);
Das würde dazu führen, dass alle Züge, denen das ThemaScript zugewiesen ist, in der Anlage 987 auf Gleis 5 stets eine absolute Mindeststandzeit haben. In diesem Beispiel wurde sogar noch eine Zufallsberechnung (ohne Gauß, d.h. für alle Halte in der Anlage gleich) eingebaut, die einen Wert zwischen 90 und 150 Sekunden ausgibt, im Mittel also 120 Sekunden. Schließlich gibt es flotte und gemütliche Lokführer.
minstop
ist wirkungslos, wenn am Fahrplanhalt ein A-Flag gesetzt ist! minstopR
funktioniert hingegen.
300
gesetzt werden, muss auch maxstop
überschrieben werden!
Funktion | minstopR ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Minimum dar an Bahnsteigen mit gesetztem R-Flag. |
Standardwert | 30 Sekunden |
Einstellmöglichkeiten | minstopR ermöglicht das Einstellen einer absoluten Mindestwendezeit. Dabei muss die Angabe immer in Sekunden angegeben werden und mindestens 30 betragen. |
Auswirkungen | Dieser Wert verzögert die Ausführung des R-Flags. Andere Flags können, wenn vorhanden, zusätzlich Zeit brauchen - etwa E-Flags. |
Angenommen für ein S-Bahn-Netz gibt es ein extra ThemaScript. Um die notwendige Wendezeit bei einem Richtungswechsel zu simulieren, der immer mindestens etwa 2 Minuten dauert, könnte im ThemaScript stehen:
*:bahnhof(100,160,rnd,minstopR,any,simparam);
Das würde dazu führen, dass alle Züge, denen das ThemaScript zugewiesen ist und an allen Bahnsteien, wo ein R-Flag gesetzt ist, dort eine Mindestwendezeit zwischen 100 und 160 Sekunden bekommen.
minstopR
wirkt auch, wenn am Fahrplanhalt ein A-Flag gesetzt ist!
300
gesetzt werden, muss auch maxstop
überschrieben werden!
Funktion | maxstop ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Maximum dar. |
Standardwert | 5 Minuten |
Einstellmöglichkeiten | maxstop ermöglicht das Einstellen einer absoluten Höchstwartezeit an einem Halt, sofern die Abfahrtszeit bereits erreicht ist. Dabei muss die Angabe immer in Minuten angegeben werden. |
Auswirkungen | Es kann erreicht werden, dass der Zug bereit ist zur Abfahrt, wenn alle anderen Berechnungen, es noch nicht erlauben würden. maxstop begrenzt alle anderen Wartezeitberechnungen nach oben. |
Angenommen in einer Anlage wird eine Baustelle simuliert und dieser Bauzug (Template 12345) fährt immer wieder ein Stück weiter, soll aber auch bei Verspätung nicht immer sofort wieder abfahren, damit etwa das Abladen von Material simuliert werden kann. Um nicht für alle Halte Bauzughalt 1
bis Bauzughalt 6
Scriptzeilen schreiben zu müssen und weil eine pauschale Angabe dazu führt, dass die Ankunft am Halt der Zuführung zur Baustelle (AB 21
) auch verlängert würde, kann man es andersrum angehen und in den Regionshook etwa schreiben:
*:bahnhof:*:12345(500,700,rnd,minstop,any,simparam); *:bahnhof:*:12345(2,maxstop,AB 21,simparam);
Das würde dazu führen, dass alle Züge des Templates 12345 in jeder Anlage an jedem Halt 500-700 Sekunden Mindeststandzeit haben, am Halt AB 21
aber maximal 2 Minuten.
Funktion | soll_tempo setzt eine manuelle, absolute Geschwindigkeit eines Zuges. |
Standardwert | - |
Einstellmöglichkeiten | soll_tempo ermöglicht das Einstellen eines Geschwindigkeitswertes für Züge. Keine Einheit, Werte analog zu allen anderen Tempo-Angaben. |
Auswirkungen | Es kann erreicht werden, dass ein Zug in seiner Geschwindigkeit begrenzt oder sogar beschleunigt wird. Der Wert greift dann, wenn der angegebene Bahnsteig im Fahrplan des Spielers (also der nächste abzuarbeitende Eintrag) ganz oben steht. Wird any verwendet gilt das angegebene Tempo von der Einfahrt des Zuges bis zu seiner Ausfahrt. |
soll_tempo
überschreibt Geschwindigkeitsvorgaben. Abweichende Tempo-Werte aus dem Template, tempo
eines ThemaScripts oder der Anlagen-Vmax werden ignoriert!
Angenommen wir wollen im schweren Winter in der Anlage 987 alle Züge etwas langsamer fahren lassen, dann könnte im Regionshook stehen:
schwerer_winter:bahnhof:987($tempo,1,-,soll_tempo,any,simparam);
Das würde dazu führen, dass alle Züge in der Anlage 987 im schweren Winter eine Stufe langsamer fahren als es ihr eigentliches Tempo vorsieht. Die Änderung per soll_tempo
gilt höchstens bis zur Ausfahrt des Stellwerks.
Angenommen es gibt Züge, die mit GNT ausgestattet (Templates 12345 und 23456) sind und diese sollen in diversen Anlagen (987, 876 und 765) schneller fahren, als die übrigen Züge. So könnte man im Regionshook schreiben:
*:bahnhof:987,876,765:12345,23456($tempo,1,+,soll_tempo,any,simparam);
Das würde dazu führen, dass alle Züge dieser Templates in den genannten Anlagen eine Stufe schneller fahren als es ihr eigentliches Tempo vorsieht. Die Änderung per soll_tempo
gilt höchstens bis zur Ausfahrt des Stellwerks.
Voraussetzung: alle Templates haben in dem Stellwerk für alle Bahnhöfe Durchfahrtszeiten eingetragen. Die Bahnhöfe haben nur durchgehende Gleise und alle Templates haben das selbe Gleis im Fahrplan je Richtung. Fiktiv angenommen jeweils Gleise 1 oder 2 pro Richtung.
Angenommen in der Anlage 987 wird bei Thema baustelle
(Bauarbeiten in einigen Regionen) zwischen den Bahnhöfen EFG
und KLM
ein Streckengleis gesperrt anlagenseitig. Zum Schutz der Arbeiten auf der Baustelle wird dann auf dem anderen Gleis langsamer gefahren, weil dort eine fiktive Langsamfahrstelle eingerichtet ist. So könnte es im Regionshook lauten:
baustelle:bahnhof:987($tempo,4,>,(4,soll_tempo,EFG 1,simparam),(nop),if); baustelle:bahnhof:987($tempo,4,>,(4,soll_tempo,KLM 2,simparam),(nop),if);
Das führt dann dazu, dass wenn der Zug bei Durchfahrt des ersten Bahnhofs vor der Sperrung ein Tempo über 4 hat dieses bis zum nächsten Bahnhof auf 4 begrenzt wird und im Anschluss der Zug wieder normal weiter fährt.
Funktion | anrufwartezeit ist die Zeit, die ein Zug abwartet, bis er sich beim Spieler über eine fehlende Zustimmung zur Fahrt beschwert. |
Standardwert | 3 Minuten |
Einstellmöglichkeiten | anrufwartezeit ermöglicht das händische Einstellen der Wartezeit, bis sich der Zug bei einem Spieler beschwert über den außerplanmäßigen Halt oder die fehlende Zustimmung zur Abfahrt. |
Auswirkungen | Es kann erreicht werden, dass der Zug erst nach langer Zeit meckert oder sehr schnell. |
Tf von Güterzügen sind es oft gewohnt, dass sie oft nicht informiert werden über einen außerplanmäßigen Halt. Darum kann man z.B. in einem Güterzug-ThemaScript schreiben, dass auch die Meldung für den Spieler erst verspätet kommen soll:
*:bahnhof(5,anrufwartezeit,any,simparam);
Funktion | gleisänderung ermöglicht die Ankündigung an den Zug über ein anderes Gleis durch den Spieler. |
Standardwert | 1 , keine Einheit |
Einstellmöglichkeiten | gleisänderung kann mit 0 deaktiviert werden bzw. mit 1 aktiviert werden. |
Auswirkungen | Wird gleisänderung auf 0 gesetzt, so können die Spielenden keine Gleisänderung mehr im Funkmenü vornehmen. Es erscheint lediglich der Hinweis lt. Fahrplan, keine Gleisänderung möglich . |
gleisänderung
auf einen Alternativbahnsteig geleitet, so wird der Halt dort erkannt, aber er wird wie ein unangekündigter Gleiswechsel behandelt und bekommt dementsprechend ggf. lange Standzeiten.
gleisänderung
keine Auswirkung!
Angenommen in einer Anlage 987 gibt es zwei Bahnsteige Ladestraße 1
und Ladestraße 2
. Es soll verboten sein, die Ladestraßen zu wechseln. So könnte im Regionshook stehen:
*:bahnhof:987(0,gleisänderung,Ladestraße 1,simparam); *:bahnhof:987(0,gleisänderung,Ladestraße 2,simparam);
Das würde dazu führen, dass an den beiden Bahnsteigen keine Gleisänderung erlaubt ist, obwohl beide Gleise anlagentechnisch Alternativen zueinander sind. Für alle anderen Halte sind dann Wechsel noch zulässig.
Funktion | Die drei Werte erlauben die „Strafzeit“ zu bestimmen, wenn ein Zug unangekündigt auf ein falsches Gleis geleitet wird. |
Standardwerte | gleisfalschmin : 90 Sekunden gleisfalschmitte : 300 Sekunden gleisfalschmax : 600 Sekunden. |
Einstellmöglichkeiten | Alle drei Werte für Berechnung nach dem Gauß-Verfahren |
Auswirkungen | Mit diesen Werten wird die Strafzeit berechnet bei unangekündigten Gleiswechseln. Mit gleisfalschmin und gleisfalschmax werden dabei die Extremwerte nach unten und oben gesetzt. Mit gleisfalschmitte wird angegeben, welchen Tendenzwert die Zufallsberechnung haben soll. (Gauß-Verfahren) |
300
gesetzt sind, empfiehlt es sich auch maxstop
zu setzen, da maxstop
immer Vorrang hat.
Angenommen für ein S-Bahn-Netz existiert ein eigenes ThemaScript. Es soll darin festgelegt werden, dass S-Bahnen nie lange warten, auch wenn der Wechsel unangekündigt war. So könnte es darin heißen:
*:bahnhof(60,gleisfalschmin,any,simparam); *:bahnhof(90,gleisfalschmitte,any,simparam); *:bahnhof(180,gleisfalschmax,any,simparam);
Das würde dazu führen, dass Züge bei unangekündigten Gleiswechseln meistens um die 90 Sekunden Standzeit bekommen, mindestens jedoch 60, höchstens aber 180 Sekunden.
(minStopTime() UND minStopANAB() UND minStopRandom()) ODER maxStop()
(aktzeit - warankunft) > maxstop(zielgleis)
aktzeit - warankunft > gauss(-10 sec, 30 sec, maxrandom(zielgleis))
(aktzeit - warankunft) > (ab - an) / gauss(2, randomdevisor(zielgleis), 5)
Wenn Halt am richtigen Bahnsteig (bzw. mit Ankündigung)
(aktzeit - warankunft) > minstop(zielgleis)
Sonst
(aktzeit - warankunft) > gauss(gleisfalschmin, gleisfalschmitte, gleisfalschmax)
Variable | Erklärung |
---|---|
aktzeit | aktuelle Spielzeit |
warankunft | tatsächliche Ankunftszeit |
an | Ankunft laut Fahrplan |
ab | Abfahrt laut Fahrplan |
gauss(a,b,c) | Zufallszahl zwischen a und c, wobei b die Mitte darstellt |