Skip to content

Anforderungen an das Netzmodell (REQ-TOP) ​

Umgesetzt in crates/railit-topology, nachgewiesen in crates/railit-topology/tests/validation.rs. Jede Prüfung meldet ihre ID über TopologyError::requirement(). Stellbereiche, Betriebsstellen und Teilnetze sind in crates/railit-import/tests/areas.rs nachgewiesen, der Import von railML 3 in crates/railit-import/tests/railml.rs.

IDAnforderungGefährdungNachweis
REQ-TOP-001Jeder fachliche Name ist über alle Elementarten hinweg eindeutig.H-004duplicate_names_are_rejected_across_kinds
REQ-TOP-002Jeder Port ist genau einmal verbunden. Netzenden werden ausdrücklich als Prellbock oder Netzgrenze modelliert; ein offener Port ist ein Fehler.H-004open_and_double_connected_ports_are_rejected
REQ-TOP-003Verbindungen bestehen nur zwischen existierenden Ports der jeweiligen Elementart. Ein Port kann nicht mit sich selbst verbunden werden. IDs aus fremden Netzen werden abgewiesen.H-004invalid_ports_and_self_connections_are_rejected
REQ-TOP-004Gleisabschnitte haben eine Länge größer null. Die Anzahl Elemente je Art ist auf u32::MAX begrenzt.H-004zero_length_tracks_are_rejected
REQ-TOP-005Punktobjekte (Signale) liegen innerhalb ihres Gleisabschnitts.H-004signals_outside_their_track_are_rejected
REQ-TOP-006Jedes Gleis und jede Weiche gehört zu genau einem Gleisfreimeldeabschnitt; kein Abschnitt ist leer.H-001, H-005tvd_coverage_must_be_complete_and_unique
REQ-TOP-007Eine Weiche ist nur zwischen Spitze und linkem Strang (Lage links) oder Spitze und rechtem Strang (Lage rechts) befahrbar, nie zwischen den beiden Strängen. Jeder Weg durch eine Weiche nennt die erforderliche Lage.H-002points_can_only_be_traversed_tip_to_branch, Property-Test exits_stay_on_node
REQ-TOP-008Ein Netz ist nur nach vollständiger, erfolgreicher Validierung verfügbar und danach unveränderlich.H-004Typsystem: Topology hat keinen öffentlichen Konstruktor und keine verändernden Methoden.
REQ-TOP-009Die Validierung meldet alle gefundenen Fehler, nicht nur den ersten.– (Qualität)all_errors_are_collected_with_context (railit-import)
REQ-TOP-010Ein Netz aus mehreren nicht verbundenen Teilen erzeugt eine Warnung.H-004open_and_double_connected_ports_are_rejected
REQ-TOP-011Sind Stellbereiche festgelegt, gehört jeder Gleisfreimeldeabschnitt genau einem Stellbereich an; kein Stellbereich ist leer.H-004, H-012nordbahn_has_three_areas_and_two_links, every_tvd_needs_exactly_one_area
REQ-TOP-012Die Haltsignale eines Bahnsteigs sind Signale, an denen Fahrstraßen enden (Haupt- oder Mehrabschnittssignale).H-004platforms_need_route_signals
REQ-TOP-013Jeder Stellbereich lässt sich als eigenes, vollständig validiertes Teilnetz ausschneiden. Verbindungen zu Nachbarbereichen werden zu Grenzen (>Nachbar); welcher Bereich beim Anlauf die Erlaubnis übernimmt, ist eindeutig festgelegt. Die Abbildung der IDs auf das Gesamtnetz bleibt erhalten.H-004, H-012area_cut_replaces_neighbours_by_borders, border_terminals_can_be_written_by_hand
REQ-TOP-014Ein Netz aus railML 3 durchläuft dieselbe Validierung wie ein Netz aus rail-it-TOML. Fehlende oder widersprüchliche Angaben (Länge, Wirkrichtung, Verbindungen) sind Fehler mit Angabe des railML-Elements und werden nie ergänzt oder geraten. Elemente, die rail-it nicht übernimmt, werden als Warnung gemeldet. Export und erneuter Import ergeben dasselbe Netz und bitgleiche Plan-Images.H-004handmade_railml_is_imported, errors_are_collected_with_location, beispielstadt_survives_the_roundtrip, nordbahn_with_areas_and_stations_survives_the_roundtrip, railml_roundtrip_yields_identical_plans, railml_export_validate_compile
REQ-TOP-015Ein Netz aus PlanPro (1.9, 1.10; .ppxml) durchläuft dieselbe Validierung wie ein Netz aus rail-it-TOML. Gelesen werden LST_Zustand und die Zielzustände aller Ausgaben, nie ein Startzustand. Fehlende oder widersprüchliche Angaben (Länge, Lage auf der TOP_Kante, Wirkrichtung, Bezeichnung, Signalart, Signalsystem, Anschlüsse am Knoten) sind Fehler mit Angabe des PlanPro-Objekts und werden nie ergänzt oder geraten; Signalsysteme außer Ks und HV und widersprüchliche Weichenanschlüsse sind Fehler. Objekte, die rail-it nicht übernimmt (fiktive Signale, Gleissperren, Signale ohne Lichtsignalschirm), werden als Warnung gemeldet. Export und erneuter Import ergeben dasselbe Netz und ein bitgleiches Plan-Image.H-004handmade_planpro_is_imported, errors_are_collected_with_location, beispielstadt_survives_the_roundtrip, generated_corridor_survives_the_roundtrip, planpro_roundtrip_yields_identical_plans, Fuzz-Ziel planpro_network, Szenario 23
REQ-TOP-016Eine Kreuzung ohne bewegliche Teile verbindet keine Gleise; ihre beiden Kreuzungsstellen liegen auf verschiedenen Gleisen im selben Gleisfreimeldeabschnitt, sonst ist das Netz ungültig. Fahrstraßen und Durchrutschwege über die eine und die andere Kreuzungsstelle sind damit feindlich, und ein Zug auf der einen Kreuzungsstelle hält Fahrten über die andere fern. railML (crossing vom Typ simpleCrossing) und PlanPro (W_Kr_Gsp_Komponente mit Kreuzung) bilden Kreuzungen ab; ein Abschnitt aus mehreren nicht verbundenen Teilen wird dabei aus seinen begrenzenden Einrichtungen erkannt. Der Simulator meldet zwei Züge zugleich auf beiden Kreuzungsstellen als Zusammenstoß.H-001, H-004crossing_legs_share_one_tvd, crossing_survives_the_roundtrip (railML, PlanPro), Szenario 24
REQ-TOP-017Gekoppelte Weichen hängen an einem gemeinsamen Antrieb und laufen immer gemeinsam um, gleich- oder gegenläufig. Eine Weiche ist mit höchstens einer anderen gekoppelt, nie mit sich selbst; gekoppelte Weichen gehören demselben Stellbereich an. Eine Kreuzungsweiche (EKW, DKW) besteht aus Zungenpaaren (Weichen mit der Spitze nach außen, links gerade, rechts in den Bogen), den inneren Gleisen, einer Kreuzung der beiden geraden Gleise und einem eigenen Gleisfreimeldeabschnitt; die Zungenpaare eines Endes einer DKW sind gegenläufig, die beiden einer EKW gleichläufig gekoppelt. railML (railit:slip, railit:coupling) bildet beides ab, PlanPro Kreuzungsweichen als W_Kr_Anlage mit W_Kr_Art DKW bzw. EKW; eine Kreuzungsweiche, deren Teile anders verbunden sind, ist ein Fehler.H-001, H-002, H-004double_slip_is_built_from_coupled_points, invalid_couplings_are_rejected, slip_names_are_checked_first, slips_and_couplings_survive_the_roundtrip, slips_survive_the_planpro_roundtrip, broken_slip_is_rejected, Szenario 25

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