tro_flow: Weichen-Separator nach Laufrichtung, Weichen-Slots mit Bauteil

Steuernder Separator einer ILS Weiche (_find_weiche_separators) ist der
letzte freie Separator in Laufrichtung VOR der Weiche, gemessen auf dem
Kreisel-Umlauf aus Lage und Drehrichtung (kreisel_junctions.separators_before)
- nicht mehr der CSV-Nachbar. Ein Nachbar hinter der Weiche steuert sie nie;
Hoechstabstand weiche_vorlauf_max in cfg/parameter.ini [tro_flow]. Mubea
(Export 2026-10-16): 2Sep2Swi = 0005 (Ausschleus 0061) + 0036 (Weiche 0130)
statt 0005 + 0012; 0012 bleibt 1Sep, Kreisel1 wieder angebunden. Dematic,
HundM05, showroom, test_system unveraendert.

TRO-JSON: DerivedTro.switches (optional) nennt die Weichen-Bauteile in
Slot-Reihenfolge (switch<i> gehoert bei 2Sep-Typen zu separator<i>);
derive_slots traegt sie in die switch<n>-Slots, merge_hw_layout bindet das
Ventil dort. e_planning.ini: Rollen ventil -> valve (Slot-Rolle der SCL),
neue Regel Ausschleus_Weiche.valve fuer Ausschleusventile an Kreisel-Weichen.
Mubea: MB0715, MB0724, MB0627, MB0671 statt TODO(E-Planung).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 13:42:16 +02:00
parent 39b445a7c4
commit d414bd6cf3
8 changed files with 297 additions and 46 deletions
+18 -3
View File
@@ -11,6 +11,9 @@
;
; Jeder Abschnitt "<Art>.<Rolle>" ist eine Regel; sie werden in dieser
; Reihenfolge angewendet, ein E-Bauteil wird hoechstens einmal vergeben.
; <Rolle> ist zugleich die Slot-Rolle der TRO-JSON (sensor, stopper, valve,
; exitSensor): nur bei gleichem Namen landet die Zuordnung im Slot und damit
; in der SCL, sonst bleibt sie "ohne_slot" (z. B. Ausschleus.stau).
; layout Muster fuer die Layout-Art (Separator, Ausschleus,
; Einschleus, Weiche, Scanner, Beladung, Entladung).
; Standard: der Teil vor dem Punkt im Abschnittsnamen.
@@ -67,7 +70,8 @@ max_mm = 1600
soll_mm = 1390
; Ausschleusventil (Mubea: konstant ~1414 mm, Nummer = Stausensor + 1)
[Ausschleus.ventil]
; -> Slot switch<n>.valve des TRO, dessen switches das Element nennt (xOutSwitch)
[Ausschleus.valve]
verw = AE ABZW*
praefix = MB
nummer_von = Ausschleus.stau
@@ -75,8 +79,19 @@ nummer_versatz = 1
max_mm = 1600
soll_mm = 1414
; Weichenventil an einer Kreisel-Weiche
[Weiche.ventil]
; Ausschleusventil an einer Kreisel-Weiche (Ausschleuselement einer Strecke,
; nicht einer Speicherlinie): liegt nicht im festen Raster der Speicherlinien
; und hat keinen Stausensor mit Nummer - 1 (Mubea MB0627/MB0715/MB0671:
; 350-900 mm neben dem Element). Laeuft nach [Ausschleus.valve], nimmt also
; nur, was dort uebrig bleibt: das naechste "AE ABZW*"-Ventil.
[Ausschleus_Weiche.valve]
layout = Ausschleus
verw = AE ABZW*
praefix = MB
max_mm = 1000
; Weichenventil an einer Kreisel-Weiche -> Slot switch<n>.valve
[Weiche.valve]
verw = ABZWEIG-*, WEICHE*
praefix = MB
max_mm = 1000
+7
View File
@@ -72,6 +72,13 @@ min_store_lanes = 2
; auf 0,5m). 30mm liegt bewusst weit unter dem Befund und ueber dem Rauschen.
gefaelle_drop_mm = 30.0
; Steuernder Separator einer ILS Weiche (_find_weiche_separators): der letzte
; Separator in Laufrichtung vor der Weiche, auf dem Kreisel-Umlauf gemessen
; (Lage + Drehrichtung, nicht TrackIds). Liegt er weiter davor, steuert er die
; Weiche nicht. Mubea 0036 -> Weiche: ~1300mm; die naechste Alternative bei
; falscher Drehrichtung von Kreisel1 (0040) laege ~5200mm davor.
weiche_vorlauf_max = 3000.0
; Zeichnungsmassstab fuer --use-cords in pt/mm: Graphviz rechnet in Punkt, die
; Anlage in Millimeter. Seit die Symbole eine feste Groesse haben, reichen
; 0.1 pt/mm: ~11 x 20 m Anlage ergeben etwa 1100 x 2000 pt. Vorher 0.25