# TRO-Liste und TRO-Fluss - export.csv **Erzeugt:** 2026-08-14 12:52 von `lib/tro_flow.py` **Quelle:** `data\export.csv` **Typdefinition:** `lib/tro_catalog.py` (Stand 2026-07-20) > Automatisch aus dem CSV-Export erzeugt. Die TRO-Typen sind aus dem mechanischen Layout **abgeleitet** - ohne E-Planung (I/O-Liste) und ohne `FB_Main`-Aufrufstellen gibt es noch keine verbindliche TRO-Nummerierung. Die IDs unten sind laufende Nummern dieses Laufs. ## 1. Kurzfassung | | | |---|---| | Ermittelte TROs | 12 | | TRO-Verbindungen | 15 | | Nicht verbundene TROs | 0 | | Hinweise | 13 | | Manuelle Typkorrekturen | 8 | | Typ | FB-Baustein | Anzahl hier | Bauteile je TRO | Farbgruppe | |---|---|---:|---|---| | `1Sep` | `FB_ILS_MTRO_1Sep` | 3 | 1x Separator | sep | | `1Sep1Swi` | `FB_ILS_MTRO_1Sep1Swi` | 1 | 1x Separator, 1x Switch | swi | | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 3 | 1x SSCC, 1x Scanner, 1x Separator | sscc | | `2Sep2Swi` | `FB_ILS_MTRO_2Sep2Swi` | 1 | 2x Scanner, 2x Separator, 2x Switch | swi | | `PinStore_Auto` | `FB_ILS_MTRO_PinStore_Auto` | 1 | 1x Encoder, 1x Scanner, 1x Separator, 19x StorageLine | store | | `Vario` | `FB_ILS_MTRO_Vario` | 3 | 1x Separator, 1x VarioDrive | vario | ## 2. TRO-Flussdiagramm ```mermaid flowchart LR classDef sep fill:#d4e8ff,stroke:#3388cc,color:#111111 classDef swi fill:#ffe4a0,stroke:#cc8800,color:#111111 classDef sscc fill:#ffd4d4,stroke:#cc3333,color:#111111 classDef vario fill:#e8d4f0,stroke:#883388,color:#111111 classDef store fill:#d4f0d4,stroke:#338833,color:#111111 classDef ext fill:#f0f0f0,stroke:#888888,color:#404040 TRO01["TRO01
1Sep
Separator 0061 auf Kreisel1 Bahn R"]:::sep TRO02["TRO02
1Sep_SSCC
Separator 0003 auf Kreisel2 Bahn L"]:::sscc TRO03["TRO03
1Sep1Swi
Separator 0011 auf Kreisel2 Bahn L"]:::swi TRO04["TRO04
1Sep_SSCC
Separator 0012 auf Kreisel2 Bahn L"]:::sscc TRO05["TRO05
2Sep2Swi
Uebergabestelle Kreisel2/Kreisel1 (beide Sperren)"]:::swi TRO06["TRO06
1Sep_SSCC
Separator 0064 auf Kreisel3 Bahn R"]:::sscc TRO07["TRO07
1Sep
Separator 0065 auf Kreisel3 Bahn R"]:::sep TRO08["TRO08
1Sep
Separator 0066 auf Kreisel3 Bahn R"]:::sep TRO09["TRO09
Vario
VarioFoerderer :3"]:::vario TRO10["TRO10
Vario
VarioFoerderer :2"]:::vario TRO11["TRO11
Vario
VarioFoerderer :1"]:::vario TRO12["TRO12
PinStore_Auto
Speicher (20 Schwerkraftlinien)"]:::store TRO01 --> TRO05 TRO02 --> TRO09 TRO03 --> TRO02 TRO03 --> TRO11 TRO04 --> TRO03 TRO05 --> TRO01 TRO05 --> TRO04 TRO05 --> TRO10 TRO06 --> TRO08 TRO07 --> TRO06 TRO08 --> TRO12 TRO09 --> TRO07 TRO10 --> TRO12 TRO11 --> TRO02 TRO12 --> TRO05 ``` Gerendert: [`export_tro_flow.dot`](export_tro_flow.dot) - [`export_tro_flow.svg`](export_tro_flow.svg) ## 3. TRO-Liste | TRO | Typ | FB-Baustein | Bauteile laut Typ | X [mm] | Y [mm] | Z [mm] | Host-Knoten | Separatoren | Scanner | Begruendung | Vertrauen | |---|---|---|---|---:|---:|---:|---|---|---|---|---| | `TRO01` | `1Sep` | `FB_ILS_MTRO_1Sep` | 1x Separator | 5355 | -5878 | 1468 | `0001-R` | 0061 | - | einzelner Separator auf angetriebener Kreisel-Bahn | mittel | | `TRO02` | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 1x SSCC, 1x Scanner, 1x Separator | -220 | 13960 | 1468 | `0002-L` | 0003 | 0004 | Separator mit Scanner auf angetriebener Kreisel-Bahn; manuell auf 1Sep_SSCC gesetzt (Review 2026-08-12: Scanner-Stelle bestaetigt (Separator 0003 mit Scanner 0004)) | bestaetigt | | `TRO03` | `1Sep1Swi` | `FB_ILS_MTRO_1Sep1Swi` | 1x Separator, 1x Switch | -220 | -481 | 1468 | `0002-L` | 0011 | 0009 | Separator mit Scanner auf angetriebener Kreisel-Bahn; manuell auf 1Sep1Swi gesetzt (Weiche am Separator 0011 vor Ort bestaetigt (Review 2026-08-10) - hier wird die Fahrtrichtung umgestellt; im CSV-Export fehlt das Weichenelement) | bestaetigt | | `TRO04` | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 1x SSCC, 1x Scanner, 1x Separator | -220 | -3472 | 1468 | `0002-L` | 0012 | 0007 | Separator mit Scanner auf angetriebener Kreisel-Bahn; manuell auf 1Sep_SSCC gesetzt (Separator 0012 mit Scanner 0007 - im Review als Scanner-Stelle bestaetigt (Review 2026-08-10)) | bestaetigt | | `TRO05` | `2Sep2Swi` | `FB_ILS_MTRO_2Sep2Swi` | 2x Scanner, 2x Separator, 2x Switch | 1012 | -4650 | 1468 | `0002-R`, `0001-L` | 0005, 0057 | 0006, 0062 | Review 2026-08-10: liegt auf Kreisel2 Bahn R zwischen Linienspeicher und Foerderer. Vor Ort 1 Separator + 1 Scanner, keine mechanische Weiche - wird auf Wunsch als Schaltstelle (1Sep1Swi) gefuehrt, weil hier die Wegeentscheidung faellt. Export vom 2026-08-12: Position 400/-3978 (223 mm verschoben), Zuordnung jetzt Strecke 0014 statt Gefaellestrecke 0036 - der Separator wuerde also dem Vario-TRO zugeschlagen statt dem Linienspeicher.; manuell zusammengefasst (Review 2026-08-12: die Sperre auf Kreisel2 Bahn R und die am Beruehrpunkt bilden zusammen eine Uebergabestelle - als ein Steuerobjekt mit 2 Separatoren, 2 Scannern und 2 Weichen gefuehrt) | bestaetigt | | `TRO06` | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 1x SSCC, 1x Scanner, 1x Separator | 10490 | -525 | 1942 | `0010-R` | 0064 | 0008 | Separator mit Scanner auf angetriebener Kreisel-Bahn; manuell auf 1Sep_SSCC gesetzt (Review 2026-08-12: Scanner-Stelle, keine Weiche - Einstufung gegenueber dem ersten Review (1Sep1Swi) korrigiert. Separator mit Scanner 0008.) | bestaetigt | | `TRO07` | `1Sep` | `FB_ILS_MTRO_1Sep` | 1x Separator | 10310 | 160 | 1942 | `0010-R` | 0065 | - | einzelner Separator auf angetriebener Kreisel-Bahn | mittel | | `TRO08` | `1Sep` | `FB_ILS_MTRO_1Sep` | 1x Separator | 10310 | -5013 | 1942 | `0010-R` | 0066 | - | einzelner Separator auf angetriebener Kreisel-Bahn | mittel | | `TRO09` | `Vario` | `FB_ILS_MTRO_Vario` | 1x Separator, 1x VarioDrive | 9186 | 13892 | 1942 | `0013` | 0015, 0063 | - | angetriebenes Streckensegment (Antriebfahrtrichtung: Auf) | hoch | | `TRO10` | `Vario` | `FB_ILS_MTRO_Vario` | 1x Separator, 1x VarioDrive | 8665 | -4743 | 1942 | `0014` | 0067 | - | angetriebenes Streckensegment (Antriebfahrtrichtung: Auf) | hoch | | `TRO11` | `Vario` | `FB_ILS_MTRO_Vario` | 1x Separator, 1x VarioDrive | -1146 | 7128 | 1530 | `0016` | 0058, 0059 | 0060 | angetriebenes Streckensegment (Antriebfahrtrichtung: Auf) | hoch | | `TRO12` | `PinStore_Auto` | `FB_ILS_MTRO_PinStore_Auto` | 1x Encoder, 1x Scanner, 1x Separator, 19x StorageLine | 1817 | 3943 | 1596 | `0017` … `0036` (20 Knoten) | 0037 … 0068 (21) | 0069 | 20 Gefaellestrecken mit je eigenem Separator, gemeinsamer Zu-/Ablauf - Muster eines Linienspeichers | hoch | **X/Y/Z** ist der Mittelpunkt der Bauteile, aus denen der TRO gebildet wurde (Separatoren und Scanner) - beim Linienspeicher also der Mittelwert aller Linien-Separatoren. Koordinaten in mm im Anlagen-Koordinatensystem des CSV-Exports. | TRO | Koordinate aus | Anzahl Punkte | |---|---|---:| | `TRO01` | Bauteile | 1 | | `TRO02` | Bauteile | 2 | | `TRO03` | Bauteile | 2 | | `TRO04` | Bauteile | 2 | | `TRO05` | Bauteile | 4 | | `TRO06` | Bauteile | 2 | | `TRO07` | Bauteile | 1 | | `TRO08` | Bauteile | 1 | | `TRO09` | Bauteile | 2 | | `TRO10` | Bauteile | 1 | | `TRO11` | Bauteile | 3 | | `TRO12` | Bauteile | 22 | ## 4. TRO-Verbindungen Richtung des Materialflusses zwischen den Uebergabestellen. Passive Zwischenknoten ohne eigenen TRO sind zusammengefasst. | von | nach | Typ von -> Typ nach | |---|---|---| | `TRO01` | `TRO05` | `1Sep` -> `2Sep2Swi` | | `TRO02` | `TRO09` | `1Sep_SSCC` -> `Vario` | | `TRO03` | `TRO02` | `1Sep1Swi` -> `1Sep_SSCC` | | `TRO03` | `TRO11` | `1Sep1Swi` -> `Vario` | | `TRO04` | `TRO03` | `1Sep_SSCC` -> `1Sep1Swi` | | `TRO05` | `TRO01` | `2Sep2Swi` -> `1Sep` | | `TRO05` | `TRO04` | `2Sep2Swi` -> `1Sep_SSCC` | | `TRO05` | `TRO10` | `2Sep2Swi` -> `Vario` | | `TRO06` | `TRO08` | `1Sep_SSCC` -> `1Sep` | | `TRO07` | `TRO06` | `1Sep` -> `1Sep_SSCC` | | `TRO08` | `TRO12` | `1Sep` -> `PinStore_Auto` | | `TRO09` | `TRO07` | `Vario` -> `1Sep` | | `TRO10` | `TRO12` | `Vario` -> `PinStore_Auto` | | `TRO11` | `TRO02` | `Vario` -> `1Sep_SSCC` | | `TRO12` | `TRO05` | `PinStore_Auto` -> `2Sep2Swi` | ## 5. Hinweise - Scanner 0062 'Scanner :2': montiert an 0001-L, liest aber an Separator 0057 auf 0014 - Verbindung TRO02 -> TRO09 nur gesetzt, aus dem Layout nicht ableitbar - Verbindung TRO09 -> TRO07 nur gesetzt, aus dem Layout nicht ableitbar - Verbindung TRO11 -> TRO02 nur gesetzt, aus dem Layout nicht ableitbar - abgeleitete Verbindung TRO02 -> TRO11 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO04 -> TRO11 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO05 -> TRO02 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO05 -> TRO03 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO05 -> TRO09 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO06 -> TRO12 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO07 -> TRO12 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO09 -> TRO12 entfaellt - steht nicht in der gesetzten Topologie - abgeleitete Verbindung TRO11 -> TRO05 entfaellt - steht nicht in der gesetzten Topologie ## 6. Manuelle Korrekturen und offene Punkte Quelle: `cfg\tro_overrides.ini` ### 6.1 Angewandte Typkorrekturen Diese Typen stammen **nicht** aus dem Layout, sondern aus der Begehung bzw. dem Review - im Layout sind sie nicht erkennbar. | Korrektur | Begruendung | |---|---| | `neu Kreisel2_R_vor_Foerderer: 1Sep1Swi auf 0002-R mit Separator 0005, herausgeloest aus VarioFoerderer :2` | Review 2026-08-10: liegt auf Kreisel2 Bahn R zwischen Linienspeicher und Foerderer. Vor Ort 1 Separator + 1 Scanner, keine mechanische Weiche - wird auf Wunsch als Schaltstelle (1Sep1Swi) gefuehrt, weil hier die Wegeentscheidung faellt. Export vom 2026-08-12: Position 400/-3978 (223 mm verschoben), Zuordnung jetzt Strecke 0014 statt Gefaellestrecke 0036 - der Separator wuerde also dem Vario-TRO zugeschlagen statt dem Linienspeicher. | | `neu Beruehrpunkt_K2_K1: 1Sep1Swi auf 0001-L mit Separator 0057, herausgeloest aus VarioFoerderer :2` | Review 2026-08-10: Uebergabestelle am Beruehrpunkt der beiden Kreisel (ILS Weiche 0067 bei 400/-5478, Kreisel A 0002 / Kreisel B 0001). Hier faellt die Entscheidung Kreisel1 weiter oder auf den unteren Foerderer. Zuordnung im Export zeigt auf Strecke 0014, daher bisher Teil des Vario-TRO. | | `merge Beruehrpunkt_K2_K1_gesamt: 2 TROs -> ein 2Sep2Swi mit Separatoren 0005, 0057` | Review 2026-08-12: die Sperre auf Kreisel2 Bahn R und die am Beruehrpunkt bilden zusammen eine Uebergabestelle - als ein Steuerobjekt mit 2 Separatoren, 2 Scannern und 2 Weichen gefuehrt | | `TRO02: 1Sep -> 1Sep_SSCC` | Review 2026-08-12: Scanner-Stelle bestaetigt (Separator 0003 mit Scanner 0004) | | `TRO03: 1Sep -> 1Sep1Swi` | Weiche am Separator 0011 vor Ort bestaetigt (Review 2026-08-10) - hier wird die Fahrtrichtung umgestellt; im CSV-Export fehlt das Weichenelement | | `TRO04: 1Sep -> 1Sep_SSCC` | Separator 0012 mit Scanner 0007 - im Review als Scanner-Stelle bestaetigt (Review 2026-08-10) | | `TRO06: 1Sep -> 1Sep_SSCC` | Review 2026-08-12: Scanner-Stelle, keine Weiche - Einstufung gegenueber dem ersten Review (1Sep1Swi) korrigiert. Separator mit Scanner 0008. | | `Topologie gesetzt: 15 Verbindungen aus der Override-Datei ersetzen die abgeleiteten` | | ## 7. Ableitungsregeln und Typdefinition Ein TRO ist die Steuerungslogik **einer Uebergabestelle**. Ausgangspunkt ist der Separator und das, was an ihm haengt (Host-Objekt, Scanner). | Host des Separators | TRO-Typ | |---|---| | Gefaellestrecke, >= 2 Linien mit gemeinsamem Zu-/Ablauf | `PinStore_Auto` (ein Block je Liniengruppe) | | Gefaellestrecke, einzelne Linie | `1Sep` | | Strecke (angetrieben) | `Vario` (je Streckensegment) | | Kreisel-Bahn | `1Sep` | | zusaetzlich: 2 bzw. 3 abgehende Wege | Aufwertung zu `1Sep1Swi` / `1Sep2Swi` | Ein **Scanner** am Separator aendert den Typ nicht. In der Referenzanlage sind Separatoren mit Scanner ueberwiegend `1Sep`. `1Sep_SSCC` ist dem Sonderfall mit SSCC-Scanner, Endmessung und WCS-Telegramm vorbehalten und aus einem mechanischen Layout nicht erkennbar - betroffene Stellen stehen als Hinweis in Abschnitt 5. Was aus dem CSV **nicht** ableitbar ist: TRO-Nummerierung, Sensor- und Aktor-Tags, JamAreas, Zielsteuerung und Timing. Das kommt aus der E-Planung (I/O-Liste) bzw. aus `FB_Main`. Typen, FB-Bausteine, Bauteile und Farben stammen vollstaendig aus `TRO_CATALOG` in `lib/tro_catalog.py` (Stand 2026-07-20): | # | Typ | FB-Baustein | Bauteile je TRO | Farbgruppe | |---:|---|---|---|---| | 1 | `1Sep` | `FB_ILS_MTRO_1Sep` | 1x Separator | sep | | 2 | `1Sep1Swi` | `FB_ILS_MTRO_1Sep1Swi` | 1x Separator, 1x Switch | swi | | 3 | `1Sep2Swi` | `FB_ILS_MTRO_1Sep2Swi` | 1x Scanner, 1x Separator, 2x Switch | swi | | 4 | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 1x SSCC, 1x Scanner, 1x Separator | sscc | | 5 | `Vario` | `FB_ILS_MTRO_Vario` | 1x Separator, 1x VarioDrive | vario | | 6 | `PinStore_Auto` | `FB_ILS_MTRO_PinStore_Auto` | 1x Encoder, 1x Scanner, 1x Separator, 19x StorageLine | store | | 7 | `Vario_workStation` | `FB_ILS_MTRO_Vario_workStation` | 1x Accumulate, 1x Scanner, 1x Separator, 1x VarioDrive, 1x WorkStation | vario | | 8 | `EmptyCarrBuffer` | `FB_EmptyCarrBuffer` | 5x Accumulate, 5x StorageLine | store | | 9 | `LoadingBoom` | `FB_LoadingBoom_INBOUND` | 1x Boom, 1x Foot, 1x TiltSensor | ext | | 10 | `2Sep1Swi` | `FB_ILS_MTRO_2Sep1Swi` | 2x Scanner, 2x Separator, 1x Switch | swi | | 11 | `2Sep2Swi` | `FB_ILS_MTRO_2Sep2Swi` | 2x Scanner, 2x Separator, 2x Switch | swi | | Bauteil | Sub-FB | |---|---| | Accumulate | `FB_CarrAccumulate1Sep` | | Boom | `FB_BoomWorkStation` | | Encoder | _kein eigener FB_ | | Foot | `FB_DistanceFoot` | | SSCC | _kein eigener FB_ | | Scanner | `FB_BarcodeReaderCognex` | | Separator | `FB_ILS_STRO_Sep` | | StorageLine | `FB_ILS_STRO_Sep` | | Switch | `FB_ILS_STRO_Switch` | | TiltSensor | `FB_Tilt_TEST` | | VarioDrive | `FB_ILS_STRO_Vario` | | WorkStation | `FB_ILS_STRO_Vario_WorkStation` | | Farbgruppe | Bedeutung | Fuellfarbe | |---|---|---| | sep | Separator | `#d4e8ff` | | swi | Weiche | `#ffe4a0` | | sscc | Scanner (SSCC) | `#ffd4d4` | | vario | Kettenfoerderer | `#e8d4f0` | | store | Speicher / Puffer | `#d4f0d4` | | ext | Systemgrenze / extern | `#f0f0f0` |