Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


Seitenleiste



JavaScript ist deaktiviert!

stellwerksim:erbauer:themascripte:simparam

Dies ist eine alte Version des Dokuments!


Simparam

Mit Simparams kann das Verhalten eines Zuges im Sim stark verändern.

Das Setzen eines Wertes ergänzt die bestehenden Werte. Das heißt, dass die Werte NICHT überschrieben werden. Betritt ein Zug ein neues Stellwerk ist der Befehl wieder leer.

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.

Simparams sind wie folgt aufgebaut:
Blockkopf(Wert,Befehl,Fahrplanhalt,simparam);

Beispiel:

*:Bahnhof(20,minstop,any,simparam);

Übersicht der Befehle

Die aufgeführten Standard-Werte sind für jeden Zug „ab Werk“ voreingestellt. Mit 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
gleisfalschmax 600 Sekunden Maximale Haltezeit bei unangekündigter Gleisänderung
gleisfalschmitte 300 Sekunden Mittlere Haltezeit bei unangekündigter Gleisänderung
Soll ein Wert für alle Bahnsteige gelten, muss als Wert für den Bahnsteig any eingeben werden.

Anwendung und Auswirkung der Befehle

maxrandom

Funktion maxrandom ist Teil einer zufälligen Wartezeit-Berechnung. Die Einheit Minuten wird vom System auf Sekunden umgerechnet.
Standardwerte Die zufällige Wartezeit beträgt meistens etwa 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 Extremwert nach oben ist 1 und ergibt damit 60 Sekunden.
Auswirkungen Es kann erreicht werden, dass der Zufall auch sehr lange zufällige Wartezeiten ergibt.
Anwendungsbeispiel

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 etwa 30 Sekunden zufälliger Wartezeit bekommt an den Halten, es aber auch mal bis zu 5 Minuten werden können.

randomdevisor

Funktion randomdevisor ist Teil der Wartezeit-Berechnung auf Basis der im Fahrplan hinterlegten Standzeit.
Standardwerte Der voreingestellte Wert ist 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 ab 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 Minuten durch 5 geteilt wesentlich kleiner ist als durch 2.
Anwendungsbeispiel

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 10 Minuten steht. Der Standardwert würde hier mehrheitlich 20 Minuten ergeben.

minstop

Funktion minstop ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Minimum dar.
Standardwerte Der voreingestellte Wert ist 0, die Einheit 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.
Anwendungsbeispiel

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 eingebaut, die einen Wert zwischen 90 und 150 Sekunden ausgibt, sich also an 120 Sekunden orientiert. Schließlich gibt es flotte und gemütliche Lokführer.

minstop ist wirkungslos, wenn am Fahrplanhalt ein A-Flag gesetzt ist!
Soll ein Wert größer 300 gesetzt werden, muss auch maxstop überschrieben werden!

minstopR

Funktion minstopR ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Minimum dar an Bahnsteigen mit gesetztem R-Flag.
Standardwerte Der voreingestellte Wert ist 30, die Einheit Sekunden.
Einstellmöglichkeiten minstopR ermöglicht das Einstellen einer absoluten Mindestwendezeit. 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. Analog zu minstop aber eben für Richtungswechsel per R-Flag.
Anwendungsbeispiel

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!
Soll ein Wert größer 300 gesetzt werden, muss auch maxstop überschrieben werden!

maxstop

Funktion maxstop ist Teil der allgemeinen Wartezeit-Berechnung und stellt das absolute Maximum dar.
Standardwerte Der voreingestellte Wert ist 5, die Einheit 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ürde. maxstop begrenzt die anderen Wartezeitberechnungen.
Anwendungsbeispiel

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, weil eine pauschale Angabe dazu führen würde, 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.

soll_tempo

Funktion soll_tempo setzt eine manuelle, absolute Geschwindigkeit eines Zuges.
Standardwerte -
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 steht. Wird any verwendet gilt das angegebene Tempo von der Einfahrt des Zuges bis zu seiner Ausfahrt.
soll_tempo überschreibt alle anderen Geschwindigkeitsvorgaben. Abweichende Tempo-Werte aus dem Template, der Anlagen-Vmax, vmax-setzen-Elemente oder tempo eines ThemaScripts werden ignoriert!
Anwendungsbeispiel 1: relative Verringerung

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 wird bei Ausfahrt aus dem Stellwerk wieder zurückgesetzt!

Anwendungsbeispiel 2: relative Erhöhung

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 wird bei Ausfahrt aus dem Stellwerk wieder zurückgesetzt!

Anwendungsbeispiel 3: absolute Begrenzung zwischen zwei Betriebsstellen

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 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.

anrufwartezeit

Funktion anrufwartezeit ist die Zeit, die ein Zug abwartet, bis er sich beim Spieler über eine fehlende Zustimmung zur Fahrt beschwert.
Standardwerte Der voreingestellte Wert ist 3, die Einheit 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.
Anwendungsbeispiel

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);

gleisänderung

Funktion gleisänderung ermöglicht die Ankündigung an den Zug über ein anderes Gleis durch den Spieler.
Standardwerte Der voreingestellte Wert ist 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.
Wird ein Zug trotz deaktivertem 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.
Auf Halte mit D-Flag hat gleisänderung keine Auswirkung!
Anwendungsbeispiel

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 anlagentechnisch Alternativen zueinander sind. Für alle anderen Halte sind dann Wechsel noch zulässig.

gleisfalschmin, gleisfalschmitte & gleisfalschmax

Funktion Die drei Werte erlauben die „Strafzeit“ zu bestimmen, wenn ein Zug unangekündigt auf ein falsches Gleis geleitet wird.
Standardwerte Die voreingestellten Werte sind 90 für gleisfalschmin, 300 für gleisfalschmitte und 900 für gleisfalschmax, Einheit sind Sekunden.
Einstellmöglichkeiten gleisänderung kann mit 0 deaktiviert werden bzw. mit 1 aktiviert werden.
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.
Wenn Werte über 300 gesetzt sind, empfiehlt es sich auch maxstop zu setzen, da letzterer Wert immer Vorrang hat.
Anwendungsbeispiel

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 etwa 90 Sekunden Strafstandzeit bekommen, mindestens jedoch 60, höchstens aber 180 Sekunden.

So werden simparam berechnet

Abfahren wenn

(minStopTime() UND minStopANAB() UND minStopRandom()) ODER maxStop()

maxStop()

(aktzeit - warankunft) > VAR_MINUTEN_maxstop(zielgleis)

minStopRandom()

aktzeit - warankunft > gauss(-10 sec, 30 sec, VAR_MINUTEN_maxrandom(zielgleis))

minStopANAB()

(aktzeit - warankunft) > (ab - an) / gauss(2, VAR_randomdevisor(zielgleis), 5)

minStopTime()

Wenn Halt am richtigen Bahnsteig (bzw. mit Ankündigung)

(aktzeit - warankunft) > VAR_SEKUNDEN_minstop(zielgleis)

Sonst

(aktzeit - warankunft) > gauss(VAR_SEKUNDEN_gleisfalschmin, VAR_SEKUNDEN_gleisfalschmitte, VAR_SEKUNDEN_gleisfalschmax)

Legende

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
VAR_SEKUNDEN simparam Variable, Wert in Sekunden
1)
Case 2293
2)
Case 2281
stellwerksim/erbauer/themascripte/simparam.1628958178.txt.gz · Zuletzt geändert: 2021/08/14 18:22 von Wozzap