Skip to content

Szenarien ​

Ein Szenario ist eine TOML-Datei aus einem Kopf [scenario] und Schritten [[step]]. Es läuft deterministisch mit Kern und Simulator in simulierter Zeit. Einführung und Beispiele: Szenarien; über zwanzig Szenarien liegen unter tests/scenarios/.

sh
railit scenario run tests/scenarios/*.toml [--channels 2|3] [--node] [--journal] [--ils]

[scenario] ​

SchlüsselTypVorgabeBedeutung
nameTextName
descriptionTextBeschreibung
networkPfadNetz (TOML oder railML), relativ zur Szenariodatei
cycle_msZahl100Zykluszeit
point_move_time_msZahlSimulatorUmlaufzeit der Weichen
pzb_classO · M · USimulatorZugart der PZB 90 (Vorgabe M)
pzb_acknowledgeboolSimulatorWer Halt missachtet, drückt am 1000-Hz-Magneten die Wachsamkeitstaste (Vorgabe true)
lx_close_time_msZahlSimulatorSchließzeit der Bahnübergänge
pointsTabelleAnfangslagen: { W1 = "left" }
rulesTabelleLehrregelwerkZeiten des Regelwerks, siehe unten
timetablePfadFahrplan, relativ zur Szenariodatei; schaltet die Betriebsführung ein
arsboolfalseZuglenkung
opsboolfalseNur Zugnummernmeldung und Selbstblock
fielddirect · eulynxdirectStellbefehle und Meldungen über EULYNX SCI und RaSTA zu Objektsteuerungen
channels1 · 2 · 31Kanäle je Stellbereich (2-von-2, 2-von-3)
nodeboolfalseJeder Bereich auf einem Knoten des sicheren Rechners
bordersdirect · ilsdirectGrenzmeldungen zwischen den Stellbereichen über EULYNX SCI-ILS und RaSTA

--channels und --node auf der Kommandozeile gelten für Szenarien ohne eigene Angabe; --journal schreibt jeden Bereich mit und spielt das Journal am Ende ab; --ils überträgt die Grenzmeldungen aller Szenarien über SCI-ILS.

rules ​

Alle Werte in Millisekunden: point_move_timeout_ms, report_timeout_ms, cancel_time_lock_ms, overlap_release_time_ms, aux_confirm_timeout_ms, substitute_duration_ms, border_settle_time_ms.

[[step]] ​

Ein Schritt führt seine Aktionen aus, läuft dann

  • eine feste Zeit (wait_s) oder
  • bis until gilt, höchstens timeout_s (Vorgabe 300 s; sonst schlägt das Szenario fehl),

und prüft danach expect. note beschreibt den Schritt in der Ausgabe.

Aktionen des Stellwerks ​

AktionWertWirkung
set_routeFahrstraßeFahrstraße anfordern
cancel_routeFahrstraßeFahrstraße zurücknehmen
move_point{ point, position }Einzelne Weiche umstellen (left/right)
request_permissionGrenzeErlaubnis an einer Bereichsgrenze anfordern (z. B. "Adorf>Strecke")
aux{ kind, element, position, operator }Hilfshandlung anfordern
confirm_aux{ operator } bzw. { operator, kind, element, position }Zuletzt angeforderte Hilfshandlung bestätigen; mit Angaben nennt der zweite Bediener sie selbst

Hilfshandlungen (kind): release_route (Fahrstraße), reset_tvd (Abschnitt), substitute (Ersatzsignal, Fahrstraße), force_point (Weiche mit position), take_permission (Grenze). Weicht eine selbst genannte Bestätigung ab, lehnt der Kern mit aux_mismatch ab und die Hilfshandlung verfällt.

Simulation ​

AktionWertWirkung
add_train{ name, signal, length_m, speed_kmh, ignore_signals, etcs, pzb }Zug vor einem Signal einsetzen; ignore_signals überfährt Halt (Prüfung des Schutzes); pzb bremst ihn dann an wirksamen Gleismagneten zwangsweise (REQ-MOV-007)
fault / clear_fault{ kind, element }Störung setzen bzw. aufheben
link{ controller, down, loss_percent, corrupt_percent, delay_ms }Übertragungsstrecke zu einer Objektsteuerung stören (nur field = "eulynx")
ils_link{ link, down, loss_percent, corrupt_percent, delay_ms }SCI-ILS-Strecke zwischen zwei Stellwerken stören, z. B. link = "Adorf-Strecke" (nur borders = "ils")

Störungen (kind): point_disturbed, tvd_disturbed, tvd_occupied, signal_defective, lx_disturbed.

Betriebsführung ​

AktionWertWirkung
describe{ train, signal }Zugnummer an einem Signal eintragen
eraseZugnummerZugnummer löschen
hold / releaseZugnummerZug zurückhalten bzw. freigeben
platform{ train, station, platform }Bahnsteiggleis ändern
delay{ train, s }Verspätung in Sekunden
set_arsboolZuglenkung ein- oder ausschalten

Mit eingeschalteter Betriebsführung trägt add_train die Zugnummer am Signal ein.

Redundanz ​

AktionWertWirkung
channel_fault{ channel, fault, area }Kanal stören: drop_inputs, stray_command, stall
reintegrate{ channel, area }Ausgeschlossenen Kanal wieder aufnehmen
reset_safetytrue oder BereichSicherheitsschicht aller bzw. eines Bereichs zurücksetzen

area ist optional; ohne Angabe gilt der erste bzw. einzige Bereich.

Bedingungen (until, expect) ​

BedingungFormWerte
route{ Fahrstraße = Phase }idle, setting, locked, proceed, occupied, arrived, cancelling
signal{ Signal = Begriff }stop, proceed (befohlener Begriff)
picture{ Signal = Bild }Signalbild, z. B. "Ks1 Zs3(4)"
substitute{ Signal = bool }Ersatzsignal an
point{ Weiche = Meldung }left, right, no_end_position, disturbed
tvd{ Abschnitt = Meldung }clear, occupied, disturbed
lx{ BÜ = Meldung }open, closing, closed, disturbed
train{ Zug = Zustand }running, waiting, arrived, left, derailed, tripped, braked (nach PZB-Zwangsbremsung)
permission{ Grenze = bool }Erlaubnis gehalten
acceptedboolLetzte Anforderung angenommen
rejectedGrundLetzte Anforderung abgelehnt, mit Grund (API)
alarm, no_alarmListeMeldungen der Kerne vorhanden bzw. nicht vorhanden
sim_eventListeEreignisse des Simulators, z. B. signal_passed_at_danger, point_trailed, crossing_collision, pzb_brake, pzb_stopped
aux_counterZahlStand des Zählwerks für Hilfshandlungen
safe_stateboolKern im sicheren Zustand
berth{ Zugnummer = Signal }Zugnummer steht am Signal; "left" nach Verlassen des Netzes
at_stop{ Zugnummer = "Betriebsstelle/Gleis" }Zug hält am Bahnsteig
ops_eventListeEreignisarten der Betriebsführung
etcs{ Zug = Betriebsart }stand_by, full_supervision, trip
etcs_end{ Zug = Ende }Ende der Fahrerlaubnis, Signalname oder "Netzgrenze"
etcs_eventListeEreignisarten des RBC
link_up{ Objektsteuerung = bool }Verbindung steht
ils_up{ Verbindung = bool }SCI-ILS-Verbindung zwischen zwei Stellwerken steht, z. B. { "Adorf-Strecke" = true }
safety_tripboolEine Sicherheitsschicht hat abgeschaltet
safety_eventListechannel_excluded, tripped
active_channelsListe von boolMitwählende Kanäle, z. B. [true, true, false]

Lizenz: NCSL v1.0 · Nicht zugelassen für den realen Bahnbetrieb.