# 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` |