erste Fassung eines TRO Katalogs erstellt. Analyse des Graphen von HundM neu gezeichnet

This commit is contained in:
2026-07-21 16:57:31 +02:00
parent e901857869
commit 94c69cbd0c
40 changed files with 14952 additions and 0 deletions
+493
View File
@@ -0,0 +1,493 @@
# TRO Catalog — Building Blocks of the Skeleton Program (UH01UH05)
**As of: 2026-07-20**
This document is the **central image/concept catalog** for all TRO types of the
Fortna conveyor system. Goal: one place where, per TRO type, everything the
skeleton program needs comes together — **schematic diagram, real layout image,
SCL template, JSON example, and BricsCAD symbol attributes**. It links the
existing individual documents:
- [TRO_Typen.md](../TRO_Typen.md) — type overview + JSON proposals per type
- [Json_Layout-Konzept.md](../Json_Layout-Konzept.md) — full JSON layout model
- [BricsCAD_TRO_Symbol.md](../BricsCAD_TRO_Symbol.md) — symbol / attribute definition
- [TRO_overview_table.md](../TRO_overview_table.md) — all 250 TRO instances with topology
- [scl_templates/](scl_templates/) — the 11 SCL template files (copied into this catalog)
---
## How to populate the catalog (images)
Each type now carries a **generated connection schematic** (`tro_graphs/<type>.svg`)
next to its Mermaid diagram — it shows the block with its *possible* connecting edges
(normal / dir2 / dir3 / bypass / finger / PLC / EXTERN), each drawn with its own colour
and line style (see the [line-type legend](#edge--connection-line-types) below). These
SVGs, the shared `edge_legend.svg`, and the per-controller topology graphs
([UH01UH05](#controller-topology-graphs-uh01uh05)) are all produced by
[`tro_graphs/gen_tro_graphs.py`](tro_graphs/gen_tro_graphs.py) from
[`connect.ini`](connect.ini) — re-run it after editing the topology:
```
py doc/TRO_Katalog/tro_graphs/gen_tro_graphs.py
```
The **real layout images** must still come from BricsCAD — the DWG layouts
(`ST500592_10_5-13_ILS.dwg`, `..._Omniflo.dwg`, ~265 MB) live under
`Documents\Fortna-Layout\` and can only be opened in BricsCAD.
**Procedure per type:**
1. In BricsCAD, locate the **example TRO** named in each table
(the instance lists below tell you which TROs are of that type).
2. Export/screenshot the view (`EXPORT` → PNG, or a screen capture).
3. Place the image as `img/<filename>.png` in this folder — the filename is already
given in each `![…]` placeholder. Once the file exists, the image appears.
See the consolidated [Capture Checklist](#capture-checklist) at the end.
---
## Color legend (as in the layout / Mermaid)
Analogous to the `classDef` colors in Json_Layout-Konzept.md and the recommendation
to color the BricsCAD symbol per `TRO_TYPE`:
| Color | Type group |
|---|---|
| 🔵 Blue | Separator (`1Sep`) |
| 🟠 Orange | Switch (`1Sep1Swi`, `1Sep2Swi`) |
| 🟣 Purple | Vario / chain conveyor (`Vario`, `Vario_workStation`) |
| 🔴 Red | Scanner (`1Sep_SSCC`) |
| 🟢 Green | Buffer / storage (`EmptyCarrBuffer`, `PinStore_Auto`) |
| ⚪ Gray | System infeed/outfeed, external, Loading Boom |
---
## Edge / connection line types
The connecting edges between TROs come in the kinds tracked in
[`connect.ini`](connect.ini) (`kind` column). Each is drawn with a consistent colour
and line style in both the per-type schematics and the controller graphs:
![Edge / connection line-type legend](tro_graphs/edge_legend.svg)
| Kind | Style | Meaning |
|---|---|---|
| `normal` | solid dark | standard transfer between two jam areas |
| `dir2` | orange dashed | switch output, direction 2 (from `FC_Direction`) |
| `dir3` | brown dotted | switch output, direction 3 (from `FC_Direction`) |
| `bypass` | blue long-dash | bypass around a storage block (`PinStore_Auto`) |
| `finger` | purple dash-dot | chain-conveyor finger / index transfer (`Vario`) |
| `PLC` | gray dotted | PLC / WCS boundary — telegram or storage handshake |
| `EXTERN` | blue-gray solid | infeed / outfeed to another PLC (system boundary) |
---
## Overview of all TRO types
| # | Type | FB block | Instances | Example | Source | Detail |
|---|---|---|---:|---|---|---|
| 1 | `1Sep` | `FB_ILS_MTRO_1Sep` | 96 | TRO100 | `.liblink` | [](#1-1sep--standard-separator) |
| 2 | `1Sep1Swi` | `FB_ILS_MTRO_1Sep1Swi` | 49 | TRO107 | `.liblink` | [](#2-1sep1swi--separator--1-switch) |
| 3 | `1Sep2Swi` | `FB_ILS_MTRO_1Sep2Swi` | 2 | TRO267 | `.liblink` | [](#3-1sep2swi--separator--2-switches) |
| 4 | `1Sep_SSCC` | `FB_ILS_MTRO_1Sep_SSCC` | 2 | TRO105 | `.liblink` | [](#4-1sep_sscc--separator--sscc-scanner) |
| 5 | `Vario` | `FB_ILS_MTRO_Vario` | 70 | TRO115 | `.liblink` | [](#5-vario--chain-conveyor) |
| 6 | `PinStore_Auto` | `FB_ILS_MTRO_PinStore_Auto` | 24 | TRO208 | `.liblink` | [](#6-pinstore_auto--automatic-pin-storage) |
| 7 | `Vario_workStation` | `FB_ILS_MTRO_Vario_workStation` | 3 | TRO421 | local | [](#7-vario_workstation--manual-work-station) |
| 8 | `EmptyCarrBuffer` | `FB_EmptyCarrBuffer` | 2 | TRO101 | local | [](#8-emptycarrbuffer--empty-carrier-buffer) |
| 9 | `LoadingBoom` | `FB_LoadingBoom_INBOUND` | 2 | fbLoadingBoom1 | local | [](#9-loadingboom--loading-boom) |
| 10 | `2Sep1Swi` | `FB_ILS_MTRO_2Sep1Swi` | 0 | — | local | [](#10-2sep1swi--unused-concept-block) |
**Total: 250 TRO instances across 9 actively used types** (`2Sep1Swi` prepared, never instantiated).
---
## 1. `1Sep` — Standard Separator
**FB:** `FB_ILS_MTRO_1Sep` · **Example:** TRO100 (UH01) · **96 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_1Sep.scl](scl_templates/FB_ILS_MTRO_1Sep.scl)
· **JSON:** [TRO_Typen.md §1](../TRO_Typen.md#1-tro-typ-1sep)
A separator: holds the carrier at the stopper, then (after an optional scan) releases
exactly one carrier onward. One entry, one exit.
**Schematic:**
```mermaid
flowchart LR
classDef sep fill:#d4e8ff,stroke:#3388cc
IN([Entry JamArea]) -->|sensorInSep BG| S["1Sep<br/>Stopper MB"]:::sep
S -->|"release"| OUT([Exit JamArea])
```
**Connection schematic:**
![1Sep connection schematic](tro_graphs/1sep.svg)
**Real layout image:**
![1Sep layout example TRO100](img/1sep_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO100** (or any other 1Sep instance). File: `img/1sep_layout.png`._
**Key symbol attributes:** `TRO_ID`, `TRO_TYPE=1Sep`, `SENSOR_IN_SEP`, `SENSOR_JAM2` (opt.), `STOPPER_OUTPUT`, `PRIORITY_TYPE`.
**All instances (96):**
TRO100, TRO101_IN, TRO102_IN, TRO103, TRO104, TRO106, TRO108, TRO109, TRO111, TRO113, TRO116, TRO117, TRO122, TRO125, TRO129, TRO130, TRO201, TRO207, TRO210, TRO213, TRO216, TRO219, TRO221, TRO227, TRO230, TRO233, TRO236, TRO239, TRO241, TRO247, TRO250, TRO253, TRO256, TRO259, TRO261, TRO263, TRO265, TRO266, TRO269, TRO274, TRO275, TRO301, TRO304, TRO309, TRO310, TRO311, TRO312, TRO315, TRO316, TRO323, TRO325, TRO326, TRO329, TRO332, TRO335, TRO338, TRO345, TRO347, TRO348, TRO351, TRO354, TRO357, TRO360, TRO367, TRO369, TRO370, TRO373, TRO376, TRO379, TRO382, TRO386, TRO402, TRO404, TRO406, TRO409, TRO412, TRO415, TRO416, TRO417, TRO424, TRO501, TRO503, TRO504, TRO507, TRO509, TRO511, TRO513, TRO515, TRO517, TRO519, TRO521, TRO523, TRO525, TRO526, TRO528, TRO529.
---
## 2. `1Sep1Swi` — Separator + 1 Switch
**FB:** `FB_ILS_MTRO_1Sep1Swi` · **Example:** TRO107 (UH01) · **49 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_1Sep1Swi.scl](scl_templates/FB_ILS_MTRO_1Sep1Swi.scl)
· **JSON:** [TRO_Typen.md §2](../TRO_Typen.md#2-tro-typ-1sep1swi)
Separator with one switch → two routed exits (Dir1/Dir2). The routing decision comes
from `FC_Direction`. A priority manager is possible (`PRIORITY_TYPE=Dir2Manager`).
**Schematic:**
```mermaid
flowchart LR
classDef swi fill:#ffe4a0,stroke:#cc8800
IN([Entry JamArea]) -->|sensorInSep| S["1Sep1Swi<br/>Stopper + Switch"]:::swi
S -->|"Dir1 · exit2"| O2([Exit JamArea 2])
S -->|"Dir2 · exit3"| O3([Exit JamArea 3])
```
**Connection schematic:**
![1Sep1Swi connection schematic](tro_graphs/1sep1swi.svg)
**Real layout image:**
![1Sep1Swi layout example TRO107](img/1sep1swi_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO107** (Switch Boom 1). File: `img/1sep1swi_layout.png`._
**Key symbol attributes:** in addition to `1Sep`: `SWITCH_OUTPUT`, `SENSOR_JAM3`, `N_TO_1_DESTINATIONS`, `PRIORITY_TYPE=Dir2Manager`.
**All instances (49):**
TRO107, TRO112, TRO114, TRO124, TRO202, TRO203, TRO204, TRO205, TRO206, TRO222, TRO223, TRO224, TRO225, TRO226, TRO242, TRO243, TRO244, TRO245, TRO246, TRO313, TRO314, TRO317, TRO318, TRO319, TRO320, TRO321, TRO322, TRO339, TRO340, TRO341, TRO342, TRO343, TRO344, TRO361, TRO362, TRO363, TRO364, TRO365, TRO366, TRO405, TRO407, TRO410, TRO413, TRO505, TRO510, TRO514, TRO518, TRO522, TRO527.
---
## 3. `1Sep2Swi` — Separator + 2 Switches
**FB:** `FB_ILS_MTRO_1Sep2Swi` · **Example:** TRO267 (UH02) · **2 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_1Sep2Swi.scl](scl_templates/FB_ILS_MTRO_1Sep2Swi.scl)
· **JSON:** [TRO_Typen.md §3](../TRO_Typen.md#3-tro-typ-1sep2swi)
Separator with two switches (`switch1`, `switch2`) and up to 34 exits
(`exit2``exit4`); additionally a barcode scanner at the entry.
**Schematic:**
```mermaid
flowchart LR
classDef swi fill:#ffe4a0,stroke:#cc8800
IN([Entry JamArea]) -->|"sensorInSep + scanner"| S["1Sep2Swi<br/>Stopper + 2 switches"]:::swi
S -->|"exit2 · dir3"| O2([Exit 2])
S -->|"exit3"| O3([Exit 3])
S -->|"exit4"| O4([Exit 4])
```
**Connection schematic:**
![1Sep2Swi connection schematic](tro_graphs/1sep2swi.svg)
**Real layout image:**
![1Sep2Swi layout example TRO267](img/1sep2swi_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO267** or **TRO268** (UH02). File: `img/1sep2swi_layout.png`._
**Key symbol attributes:** like `1Sep1Swi`, but two switch exits + `SCANNER_ID`.
**All instances (2):** TRO267, TRO268.
---
## 4. `1Sep_SSCC` — Separator + SSCC Scanner
**FB:** `FB_ILS_MTRO_1Sep_SSCC` · **Example:** TRO105 (UH01) · **2 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_1Sep_SSCC.scl](scl_templates/FB_ILS_MTRO_1Sep_SSCC.scl)
· **JSON:** [TRO_Typen.md §4](../TRO_Typen.md#4-tro-typ-1sep_sscc)
`1Sep` + a second SSCC scanner + end-measurement sensor + WCS `DReqM` telegram
(dock request).
**Schematic:**
```mermaid
flowchart LR
classDef sscc fill:#ffd4d4,stroke:#cc3333
IN([Entry JamArea]) -->|"sensorInSep"| S["1Sep_SSCC<br/>Barcode + SSCC + end-meas."]:::sscc
S -.->|"DReqM telegram"| WCS([WCS/WES])
S -->|"release"| OUT([Exit JamArea])
```
**Connection schematic:**
![1Sep_SSCC connection schematic](tro_graphs/1sep_sscc.svg)
**Real layout image:**
![1Sep_SSCC layout example TRO105](img/1sep_sscc_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO105** (SSCC Boom 1) or **TRO110** (Boom 2). File: `img/1sep_sscc_layout.png`._
**Key symbol attributes:** like `1Sep` + `SCANNER_ID`, `HAS_SSCC_SCANNER=true`.
**All instances (2):** TRO105, TRO110.
---
## 5. `Vario` — Chain Conveyor
**FB:** `FB_ILS_MTRO_Vario` · **Example:** TRO115 (UH01) · **70 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_Vario.scl](scl_templates/FB_ILS_MTRO_Vario.scl)
· **JSON:** [TRO_Typen.md §5](../TRO_Typen.md#5-tro-typ-vario)
Driven chain conveyor segment with finger/position sensors (accumulate/index), motor
protection. In UH03 it is also reused for F2H segments (marked by comment only).
**Schematic:**
```mermaid
flowchart LR
classDef vario fill:#e8d4f0,stroke:#883388
IN([Entry JamArea]) -->|"sensorInSep"| V["Vario<br/>chain · finger/pos · motor MA"]:::vario
V -->|"finger · finger jam"| OUT([Finger Exit JamArea])
```
**Connection schematic:**
![Vario connection schematic](tro_graphs/vario.svg)
**Real layout image:**
![Vario layout example TRO115](img/vario_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO115** (Loaded to Storage). File: `img/vario_layout.png`._
**Key symbol attributes:** `SENSOR_IN_SEP`, `STOPPER_OUTPUT` (vario motor), `IS_BORNER` (at infeed points), Vario sensors via topology.
**All instances (70):**
TRO115, TRO120, TRO121, TRO123, TRO126, TRO127, TRO128, TRO131, TRO133, TRO134, TRO200, TRO209, TRO212, TRO215, TRO218, TRO220, TRO229, TRO232, TRO235, TRO238, TRO240, TRO249, TRO252, TRO255, TRO258, TRO260, TRO262, TRO264, TRO270, TRO272, TRO300, TRO302, TRO303, TRO305, TRO306, TRO307, TRO308, TRO324, TRO328, TRO331, TRO334, TRO337, TRO346, TRO350, TRO353, TRO356, TRO359, TRO368, TRO372, TRO375, TRO378, TRO381, TRO400, TRO401, TRO403, TRO408, TRO411, TRO414, TRO418, TRO420, TRO500, TRO502, TRO506, TRO508, TRO512, TRO516, TRO520, TRO524, TRO530, TRO531.
---
## 6. `PinStore_Auto` — Automatic Pin Storage
**FB:** `FB_ILS_MTRO_PinStore_Auto` · **Example:** TRO208 (UH02, block 1.1.1) · **24 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_PinStore_Auto.scl](scl_templates/FB_ILS_MTRO_PinStore_Auto.scl)
· **JSON:** [TRO_Typen.md §6](../TRO_Typen.md#6-tro-typ-pinstore_auto)
Storage block: pin-band infeed + up to 19 line separators + encoder position sensing +
scanner. Interfaces with the restacking / storage-removal logic
(`FB_StockRemovalBLKModul` etc.). **Outlier** — really a storage controller, not a
routing TRO.
**Schematic:**
```mermaid
flowchart LR
classDef store fill:#d4f0d4,stroke:#338833
IN([Entry JamArea]) -->|"pin sep + encoder + scanner"| P["PinStore_Auto<br/>up to 19 storage lines"]:::store
P -->|"bypass / exit"| OUT([Exit JamArea])
P <-.->|"StorageRemoval handshake"| MFR([restacking intelligence])
```
**Connection schematic:**
![PinStore_Auto connection schematic](tro_graphs/pinstore_auto.svg)
**Real layout image:**
![PinStore_Auto layout example TRO208](img/pinstore_auto_layout.png)
> _Placeholder — BricsCAD screenshot of a storage block, e.g. **TRO208** (block 1.1.1). File: `img/pinstore_auto_layout.png`._
**Key symbol attributes:** special case — mostly via storage configuration (lines, encoder, scanner station) rather than the standard TRO symbol.
**All instances (24):**
TRO208, TRO211, TRO214, TRO217, TRO228, TRO231, TRO234, TRO237, TRO248, TRO251, TRO254, TRO257, TRO327, TRO330, TRO333, TRO336, TRO349, TRO352, TRO355, TRO358, TRO371, TRO374, TRO377, TRO380.
---
## 7. `Vario_workStation` — Manual Work Station
**FB:** `FB_ILS_MTRO_Vario_workStation` · **Example:** TRO421 (UH04) · **3 instances**
· **Template:** [scl_templates/FB_ILS_MTRO_Vario_workStation.scl](scl_templates/FB_ILS_MTRO_Vario_workStation.scl) · [CallSite](scl_templates/FB_ILS_MTRO_Vario_workStation_CallSite.scl)
· **JSON:** [TRO_Typen.md §7](../TRO_Typen.md#7-tro-typ-vario_workstation)
`Vario` variant for a manual work station: additional station sensor + release button +
load-error sensor.
**Schematic:**
```mermaid
flowchart LR
classDef vario fill:#e8d4f0,stroke:#883388
IN([Entry JamArea]) -->|"sensorInSep"| V["Vario_workStation<br/>chain + manual station"]:::vario
OP(["👤 operator · release button"]) -.-> V
V -->|"finger"| OUT([Finger Exit JamArea])
```
**Connection schematic:**
![Vario_workStation connection schematic](tro_graphs/vario_workstation.svg)
**Real layout image:**
![Vario_workStation layout example TRO421](img/vario_workstation_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO421/422/423** (work stations, UH04). File: `img/vario_workstation_layout.png`._
**All instances (3):** TRO421, TRO422, TRO423.
---
## 8. `EmptyCarrBuffer` — Empty Carrier Buffer
**FB:** `FB_EmptyCarrBuffer` · **Example:** TRO101 (UH01) · **2 instances**
· **Template:** [scl_templates/FB_EmptyCarrBuffer.scl](scl_templates/FB_EmptyCarrBuffer.scl)
· **JSON:** [TRO_Typen.md §8](../TRO_Typen.md#8-tro-typ-emptycarrbuffer) · [Json_Layout-Konzept.md §6](../Json_Layout-Konzept.md)
Multi-line buffer for empty carriers with a distribution switch and a preceding TRO
(`inTro`, a borner).
**Schematic:**
```mermaid
flowchart LR
classDef buf fill:#d4f0d4,stroke:#338833
IN([inTro · borner]) --> B["EmptyCarrBuffer<br/>N lines + line separators"]:::buf
B --> L1[Line 1]:::buf
B --> L2[Line 2]:::buf
B --> LN[Line n]:::buf
B -->|"exit"| OUT([Exit JamArea])
```
**Connection schematic:**
![EmptyCarrBuffer connection schematic](tro_graphs/emptycarrbuffer.svg)
**Real layout image:**
![EmptyCarrBuffer layout example TRO101](img/emptycarrbuffer_layout.png)
> _Placeholder — BricsCAD screenshot of **TRO101** (buffer right) or **TRO102** (left). File: `img/emptycarrbuffer_layout.png`._
**All instances (2):** TRO101, TRO102.
---
## 9. `LoadingBoom` — Loading Boom
**FB:** `FB_LoadingBoom_INBOUND` · **Example:** fbLoadingBoom1 (UH01) · **2 instances**
· **Template:** [scl_templates/FB_LoadingBoom_INBOUND.scl](scl_templates/FB_LoadingBoom_INBOUND.scl)
· **JSON:** [TRO_Typen.md §9](../TRO_Typen.md#9-tro-typ-loadingboom) · [Json_Layout-Konzept.md §5](../Json_Layout-Konzept.md)
System infeed loading boom: boom, foot, stopper, tilt/distance sensing. No `TROnnn`
instance name (it is called `fbLoadingBoom1`), but it has a direct TRO link (`relatedTro`).
**Schematic:**
```mermaid
flowchart LR
classDef ext fill:#f0f0f0,stroke:#888,stroke-dasharray:5
IN([Stopper JamArea]) --> LB["LoadingBoom<br/>boom + foot + tilt/distance"]:::ext
LB -->|"exit"| OUT([Exit JamArea])
```
**Connection schematic:**
![LoadingBoom connection schematic](tro_graphs/loadingboom.svg)
**Real layout image:**
![LoadingBoom layout example Boom1](img/loadingboom_layout.png)
> _Placeholder — BricsCAD screenshot of **LoadingBoom1** (at TRO104) or **LoadingBoom2** (at TRO109). File: `img/loadingboom_layout.png`._
**All instances (2):** fbLoadingBoom1 (→ TRO104), fbLoadingBoom2 (→ TRO109).
---
## 10. `2Sep1Swi` — Unused (Concept Block)
**FB:** `FB_ILS_MTRO_2Sep1Swi` · **Example:** — · **0 instances (never instantiated)**
· **Template:** [scl_templates/FB_ILS_MTRO_2Sep1Swi.scl](scl_templates/FB_ILS_MTRO_2Sep1Swi.scl)
· **JSON:** [TRO_Typen.md §10](../TRO_Typen.md#10-tro-typ-2sep1swi-unbenutzt)
Dual separator + 1 switch, not wired in any `FB_Main.scl`, step chain mostly commented
out. **No layout image needed** (not in production).
```mermaid
flowchart LR
classDef swi fill:#ffe4a0,stroke:#cc8800
IN1([Entry 1]) --> S["2Sep1Swi<br/>2 separators + switch"]:::swi
IN2([Entry 2]) --> S
S --> O2([Exit 2])
S --> O3([Exit 3])
```
**Connection schematic:**
![2Sep1Swi connection schematic](tro_graphs/2sep1swi.svg)
---
## Controller topology graphs (UH01UH05)
Full per-controller topology, generated from [`connect.ini`](connect.ini) via
[`tro_graphs/gen_tro_graphs.py`](tro_graphs/gen_tro_graphs.py). Nodes are coloured by TRO
type (see [colour legend](#color-legend-as-in-the-layout--mermaid)); edges are styled by
connection kind (see [line-type legend](#edge--connection-line-types)). `EXTERN` boundary
nodes mark infeed/outfeed to another PLC. Each `.svg` is scalable; the `.dot` source can
be re-rendered in any Graphviz viewer.
| Controller | Focus | Nodes | Graph | Dot source |
|---|---|---:|---|---|
| UH01 | Inbound, loading booms, SSCC, empty-carrier buffers | 36 | [uh01.svg](tro_graphs/uh01.svg) | [uh01.dot](tro_graphs/uh01.dot) |
| UH02 | 3× PinStore blocks (automated storage) | 74 | [uh02.svg](tro_graphs/uh02.svg) | [uh02.dot](tro_graphs/uh02.dot) |
| UH03 | 3× PinStore blocks + F2H | 84 | [uh03.svg](tro_graphs/uh03.svg) | [uh03.dot](tro_graphs/uh03.dot) |
| UH04 | 3× manual work stations | 24 | [uh04.svg](tro_graphs/uh04.svg) | [uh04.dot](tro_graphs/uh04.dot) |
| UH05 | Length measurement + distribution | 32 | [uh05.svg](tro_graphs/uh05.svg) | [uh05.dot](tro_graphs/uh05.dot) |
**UH01 — Inbound / loading booms / empty-carrier buffers:**
![UH01 topology graph](tro_graphs/uh01.svg)
**UH02 — automated storage (3× PinStore):**
![UH02 topology graph](tro_graphs/uh02.svg)
**UH03 — automated storage + F2H:**
![UH03 topology graph](tro_graphs/uh03.svg)
**UH04 — manual work stations:**
![UH04 topology graph](tro_graphs/uh04.svg)
**UH05 — length measurement / distribution:**
![UH05 topology graph](tro_graphs/uh05.svg)
---
## Capture Checklist
Export all images from BricsCAD (`Documents\Fortna-Layout\ST500592_10_5-13_ILS.dwg`, or
`..._Omniflo.dwg` if needed) and save them as `img/<file>.png`:
| ✅ | Type | Example TRO (UH) | Target file |
|---|---|---|---|
| ☐ | `1Sep` | TRO100 (UH01) | `img/1sep_layout.png` |
| ☐ | `1Sep1Swi` | TRO107 (UH01) | `img/1sep1swi_layout.png` |
| ☐ | `1Sep2Swi` | TRO267 (UH02) | `img/1sep2swi_layout.png` |
| ☐ | `1Sep_SSCC` | TRO105 (UH01) | `img/1sep_sscc_layout.png` |
| ☐ | `Vario` | TRO115 (UH01) | `img/vario_layout.png` |
| ☐ | `PinStore_Auto` | TRO208 (UH02) | `img/pinstore_auto_layout.png` |
| ☐ | `Vario_workStation` | TRO421 (UH04) | `img/vario_workstation_layout.png` |
| ☐ | `EmptyCarrBuffer` | TRO101 (UH01) | `img/emptycarrbuffer_layout.png` |
| ☐ | `LoadingBoom` | fbLoadingBoom1 (UH01) | `img/loadingboom_layout.png` |
| — | `2Sep1Swi` | *(unused — no image)* | — |
> Tip: In addition to the per-type example image, a full-layout screenshot per
> controller (UH01UH05) is worth capturing as context — e.g. `img/uh01_overview.png`.
+646
View File
@@ -0,0 +1,646 @@
; ============================================================
; connect.ini — Routing / Zusammenhalt der TROs (hmf-connect-v1)
; Quelle: doc/img/TRO_Graph/ (inhaltsgleich zu connect.json)
;
; [UHxx.nodes] TRO = <FB-Kurztyp> | <Kommentar>
; [UHxx.connections] cNNN = <von> -> <nach> | <JamArea> | <kind>
; kind: normal | dir2 | dir3 | bypass | finger
; (dir2/dir3 = Weichenausgang, Richtung aus FC_Direction)
; [UHxx.externals] eNNN = EXTERN -> <TRO> | <JamArea> (Zulauf)
; eNNN = <TRO> -> EXTERN | <JamArea> (Ablauf)
; JamArea JAxxxx_y entspricht "DB_JamAreaxxxx".stJamxxxx_y
; ============================================================
[UH01.nodes]
TRO100 = 1Sep | TRO 100 (1Sep)
TRO101 = EmptyCarrBuffer | TRO101 (Empty Buffer rechts)
TRO101_IN = 1Sep | TRO 101_IN(1Sep)
TRO102 = EmptyCarrBuffer | TRO102 (Empty Buffer links)
TRO102_IN = 1Sep | TRO 102_IN(1Sep)
TRO103 = 1Sep | TRO 103 (1Sep)
TRO104 = 1Sep | TRO 104 (1Sep)+Scanner
TRO105 = 1Sep_SSCC | TRO 105 (1Sep)+Scanner
TRO106 = 1Sep | TRO 106 (1Sep)
TRO107 = 1Sep1Swi | TRO 107(1Sep1Swi)
TRO108 = 1Sep | TRO 108 (1Sep)
TRO109 = 1Sep | TRO 109 (1Sep)+Scanner
TRO110 = 1Sep_SSCC | TRO 110 (1Sep)+Scanner
TRO111 = 1Sep | TRO 111 (1Sep)
TRO112 = 1Sep1Swi | TRO 112 (1Sep1Swi)
TRO113 = 1Sep | TRO 113 (1Sep)+Scanner
TRO114 = 1Sep1Swi | TRO 114 (1Sep1Switch)+Scanner
TRO115 = Vario | TRO 115 (Vario)
TRO116 = 1Sep | TRO 116 (1Sep)
TRO117 = 1Sep | TRO 117 (1Sep) + Scanner
TRO120 = Vario | TRO 120 (Vario)
TRO121 = Vario | TRO 121(Vario)
TRO122 = 1Sep | TRO 122 (1Sep)
TRO123 = Vario | TRO 123 (Vario)
TRO124 = 1Sep1Swi | TRO 124 (1Sep1Switch)
TRO125 = 1Sep | TRO 125 (1Sep)
TRO126 = Vario | TRO 126 (Vario)
TRO127 = Vario | TRO 127 (Vario)
TRO128 = Vario | TRO 128 (Vario)
TRO129 = 1Sep | TRO 129 (1Sep)
TRO130 = 1Sep | TRO 130 (1Sep)
TRO131 = Vario | TRO 131 (Vario)
TRO133 = Vario | TRO 133 (Vario)
TRO134 = Vario | TRO 134 (Vario)
fbLoadingBoom1 = LoadingBoom_INBOUND | LoadingBoom 1
fbLoadingBoom2 = LoadingBoom_INBOUND | LoadingBoom 2
[UH01.connections]
c001 = TRO128 -> TRO100 | JA0100_1 | finger
c002 = TRO100 -> TRO101_IN | JA0101_1 | normal
c003 = TRO101_IN -> TRO102_IN | JA0101_2 | normal
c004 = TRO102 -> TRO107 | JA0102_1 | normal
c005 = TRO117 -> TRO107 | JA0102_1 | normal
c006 = TRO101 -> TRO112 | JA0102_2 | normal
c007 = TRO106 -> TRO112 | JA0102_2 | normal
c008 = TRO107 -> TRO112 | JA0102_2 | dir2
c009 = TRO111 -> TRO113 | JA0102_3 | normal
c010 = TRO112 -> TRO113 | JA0102_3 | dir2
c011 = TRO113 -> TRO114 | JA0102_4 | normal
c012 = TRO114 -> TRO116 | JA0102_5 | dir2
c013 = TRO116 -> TRO117 | JA0102_6 | normal
c014 = TRO107 -> TRO103 | JA0103_1 | normal
c015 = TRO103 -> TRO104 | JA0104_1 | normal
c016 = TRO104 -> fbLoadingBoom1 | JA0104_2 | normal
c017 = fbLoadingBoom1 -> TRO105 | JA0104_3 | normal
c018 = TRO105 -> TRO106 | JA0106_2 | normal
c019 = TRO112 -> TRO108 | JA0107_1 | normal
c020 = TRO108 -> TRO109 | JA0108_1 | normal
c021 = TRO109 -> fbLoadingBoom2 | JA0108_2 | normal
c022 = fbLoadingBoom2 -> TRO110 | JA0108_3 | normal
c023 = TRO110 -> TRO111 | JA0110_2 | normal
c024 = TRO115 -> TRO120 | JA4103_1 | finger
c025 = TRO125 -> TRO126 | JA4203_1 | normal
c026 = TRO129 -> TRO130 | JA4204_1 | normal
c027 = TRO124 -> TRO125 | JA4204_2 | normal
c028 = TRO133 -> TRO129 | JA4302_2 | finger
c029 = TRO134 -> TRO131 | JA4403_1 | finger
c030 = TRO124 -> TRO127 | JA4501_1 | dir2
c031 = TRO130 -> TRO127 | JA4501_1 | normal
c032 = TRO127 -> TRO128 | JA4501_2 | finger
c033 = TRO122 -> TRO123 | JA4502_1 | normal
c034 = TRO123 -> TRO124 | JA4502_2 | finger
c035 = TRO121 -> TRO122 | JA4503_2 | finger
c036 = TRO101_IN -> TRO101 | JamBuffer101 | normal
c037 = TRO102_IN -> TRO102 | JamBuffer102 | normal
[UH01.externals]
e001 = EXTERN -> TRO115 | JA4104_1
e002 = EXTERN -> TRO133 | JA4302_1
e003 = EXTERN -> TRO134 | JA4402_1
e004 = EXTERN -> TRO121 | JA4503_1
[UH02.nodes]
TRO200 = Vario | TRO 200 (Vario)
TRO201 = 1Sep | TRO 201 (1Sep)
TRO202 = 1Sep1Swi | TRO 202 (1Sep1Switch)+Scanner(BX2103)
TRO203 = 1Sep1Swi | TRO 203 (1Sep1Switch) + Scanner (BX2111)
TRO204 = 1Sep1Swi | TRO 204(1Sep1Switch) + Scanner(BX2112)
TRO205 = 1Sep1Swi | TRO 205 (1Sep1Switch) + Scanner(BX2114)
TRO206 = 1Sep1Swi | TRO 206 (1Sep1Switch)+Scanner(BX2113)
TRO207 = 1Sep | TRO 207(1Sep)
TRO208 = PinStore_Auto | Aufruf: TRO208
TRO209 = Vario | TRO 209 (Vario)
TRO210 = 1Sep | TRO 210 (1Sep)
TRO211 = PinStore_Auto | Aufruf: TRO211
TRO212 = Vario | TRO 212 (Vario)
TRO213 = 1Sep | TRO 213 (1Sep)
TRO214 = PinStore_Auto | Aufruf: TRO214
TRO215 = Vario | TRO 215 (Vario)
TRO216 = 1Sep | TRO 216 (1Sep)
TRO217 = PinStore_Auto | Aufruf: TRO217
TRO218 = Vario | TRO 218 (Vario)
TRO219 = 1Sep | TRO 219(1Sep)
TRO220 = Vario | TRO 220 (Vario)
TRO221 = 1Sep | TRO 221 (1Sep)
TRO222 = 1Sep1Swi | TRO 222 (1Sep1Switch)+Scanner(BX2121)
TRO223 = 1Sep1Swi | TRO 223 (1Sep1Switch)+Scanner(BX2126)
TRO224 = 1Sep1Swi | TRO 224 (1Sep1Switch)+Scanner(BX2127)
TRO225 = 1Sep1Swi | TRO 225(1Sep1Switch)+Scanner(BX2129)
TRO226 = 1Sep1Swi | TRO 226 (1Sep1Switch)+Scanner(BX2128)
TRO227 = 1Sep | TRO 227 (1Sep)
TRO228 = PinStore_Auto | Aufruf: TRO228
TRO229 = Vario | TRO 229 (Vario)
TRO230 = 1Sep | TRO 230 (1Sep)
TRO231 = PinStore_Auto | Aufruf: TRO231
TRO232 = Vario | TRO 232 (Vario)
TRO233 = 1Sep | TRO 233 (1Sep)
TRO234 = PinStore_Auto | Aufruf: TRO234
TRO235 = Vario | TRO 235 (Vario)
TRO236 = 1Sep | TRO 236 (1Sep)
TRO237 = PinStore_Auto | Aufruf: TRO237
TRO238 = Vario | TRO 238 (Vario)
TRO239 = 1Sep | TRO 239 (1Sep)
TRO240 = Vario | TRO 240 (Vario)
TRO241 = 1Sep | TRO 241(1Sep)
TRO242 = 1Sep1Swi | TRO 242 (1Sep1Switch)+Scanner(BX2130)
TRO243 = 1Sep1Swi | TRO 243 (1Sep1Switch)+Scanner(BX3137)
TRO244 = 1Sep1Swi | TRO 244 (1Sep1Switch)+Scanner(BX2136)
TRO245 = 1Sep1Swi | TRO 245 (1Sep1Switch)+Scanner(BX2138)
TRO246 = 1Sep1Swi | TRO 246 (1Sep1Switch)+Scanner(BX2137)
TRO247 = 1Sep | TRO 247(1Sep)
TRO248 = PinStore_Auto | Aufruf: TRO248
TRO249 = Vario | TRO 249 (Vario)
TRO250 = 1Sep | TRO 250 (1Sep)
TRO251 = PinStore_Auto | Aufruf: TRO251
TRO252 = Vario | TRO 252 (Vario)
TRO253 = 1Sep | TRO 253 (1Sep)
TRO254 = PinStore_Auto | Aufruf: TRO254
TRO255 = Vario | TRO 255 (Vario)
TRO256 = 1Sep | TRO 256 (1Sep)
TRO257 = PinStore_Auto | Aufruf: TRO257
TRO258 = Vario | TRO 258 (Vario)
TRO259 = 1Sep | TRO 259 (1Sep)
TRO260 = Vario | TRO 260 (Vario) + Scanner (BX2115)
TRO261 = 1Sep | TRO 261 (1Sep)
TRO262 = Vario | TRO 262 (Vario) + Scanner (BX2109)
TRO263 = 1Sep | TRO 263 (1Sep)
TRO264 = Vario | TRO 264 (Vario) + Scanner (BX2108)
TRO265 = 1Sep | TRO 265 (1Sep)
TRO266 = 1Sep | TRO 266(1Sep)
TRO267 = 1Sep2Swi | TRO 267 (1Sep2Switch)+Scanner(BX2100)
TRO268 = 1Sep2Swi | TRO 268 (1Sep2Switch)+Scanner(BX2101)
TRO269 = 1Sep | TRO 269 (1Sep)+Scanner (BX2102)
TRO270 = Vario | TRO 270 (Vario)
TRO272 = Vario | TRO 272 (Vario)
TRO274 = 1Sep | TRO 274 (1Sep)
TRO275 = 1Sep | TRO 275 (1Sep)
[UH02.connections]
c001 = TRO202 -> TRO211 | JA1101_1 | dir2
c002 = TRO213 -> TRO211 | JA1101_1 | normal
c003 = TRO211 -> TRO208 | JA1101_2 | bypass
c004 = TRO210 -> TRO208 | JA1101_2 | normal
c005 = TRO201 -> TRO202 | JA1102_1 | normal
c006 = TRO202 -> TRO214 | JA1102_2 | normal
c007 = TRO216 -> TRO214 | JA1102_2 | normal
c008 = TRO214 -> TRO217 | JA1102_3 | bypass
c009 = TRO219 -> TRO217 | JA1102_3 | normal
c010 = TRO208 -> TRO203 | JA1103_1 | normal
c011 = TRO211 -> TRO204 | JA1103_2 | normal
c012 = TRO203 -> TRO204 | JA1103_2 | dir2
c013 = TRO217 -> TRO205 | JA1104_1 | normal
c014 = TRO214 -> TRO206 | JA1104_2 | normal
c015 = TRO205 -> TRO206 | JA1104_2 | normal
c016 = TRO204 -> TRO207 | JA1104_3 | dir2
c017 = TRO206 -> TRO207 | JA1104_3 | normal
c018 = TRO203 -> TRO209 | JA1105_1 | normal
c019 = TRO209 -> TRO210 | JA1105_2 | finger
c020 = TRO204 -> TRO212 | JA1106_1 | normal
c021 = TRO212 -> TRO213 | JA1106_2 | finger
c022 = TRO206 -> TRO215 | JA1107_1 | dir2
c023 = TRO215 -> TRO216 | JA1107_2 | finger
c024 = TRO205 -> TRO218 | JA1108_1 | dir2
c025 = TRO218 -> TRO219 | JA1108_2 | finger
c026 = TRO200 -> TRO201 | JA1109_2 | finger
c027 = TRO268 -> TRO269 | JA1110_1 | dir3
c028 = TRO261 -> TRO274 | JA1110_2 | normal
c029 = TRO269 -> TRO274 | JA1110_2 | normal
c030 = TRO263 -> TRO266 | JA1110_3 | normal
c031 = TRO274 -> TRO266 | JA1110_3 | normal
c032 = TRO265 -> TRO267 | JA1110_4 | normal
c033 = TRO266 -> TRO267 | JA1110_4 | normal
c034 = TRO267 -> TRO275 | JA1110_5 | dir3
c035 = TRO275 -> TRO268 | JA1110_6 | normal
c036 = TRO222 -> TRO231 | JA1201_1 | dir2
c037 = TRO233 -> TRO231 | JA1201_1 | normal
c038 = TRO231 -> TRO228 | JA1201_2 | bypass
c039 = TRO230 -> TRO228 | JA1201_2 | normal
c040 = TRO221 -> TRO222 | JA1202_1 | normal
c041 = TRO222 -> TRO234 | JA1202_2 | normal
c042 = TRO236 -> TRO234 | JA1202_2 | normal
c043 = TRO234 -> TRO237 | JA1202_3 | bypass
c044 = TRO239 -> TRO237 | JA1202_3 | normal
c045 = TRO228 -> TRO223 | JA1203_1 | normal
c046 = TRO231 -> TRO224 | JA1203_2 | normal
c047 = TRO223 -> TRO224 | JA1203_2 | dir2
c048 = TRO237 -> TRO225 | JA1204_1 | normal
c049 = TRO234 -> TRO226 | JA1204_2 | normal
c050 = TRO225 -> TRO226 | JA1204_2 | normal
c051 = TRO224 -> TRO227 | JA1204_3 | dir2
c052 = TRO226 -> TRO227 | JA1204_3 | normal
c053 = TRO223 -> TRO229 | JA1205_1 | normal
c054 = TRO229 -> TRO230 | JA1205_2 | finger
c055 = TRO224 -> TRO232 | JA1206_1 | normal
c056 = TRO232 -> TRO233 | JA1206_2 | finger
c057 = TRO226 -> TRO235 | JA1207_1 | dir2
c058 = TRO235 -> TRO236 | JA1207_2 | finger
c059 = TRO225 -> TRO238 | JA1208_1 | dir2
c060 = TRO238 -> TRO239 | JA1208_2 | finger
c061 = TRO220 -> TRO221 | JA1209_2 | finger
c062 = TRO248 -> TRO243 | JA1301_1 | normal
c063 = TRO251 -> TRO244 | JA1301_2 | normal
c064 = TRO243 -> TRO244 | JA1301_2 | normal
c065 = TRO257 -> TRO245 | JA1302_1 | normal
c066 = TRO254 -> TRO246 | JA1302_2 | normal
c067 = TRO245 -> TRO246 | JA1302_2 | dir2
c068 = TRO242 -> TRO251 | JA1303_1 | normal
c069 = TRO253 -> TRO251 | JA1303_1 | normal
c070 = TRO251 -> TRO248 | JA1303_2 | bypass
c071 = TRO250 -> TRO248 | JA1303_2 | normal
c072 = TRO241 -> TRO242 | JA1304_1 | normal
c073 = TRO242 -> TRO254 | JA1304_2 | dir2
c074 = TRO256 -> TRO254 | JA1304_2 | normal
c075 = TRO254 -> TRO257 | JA1304_3 | bypass
c076 = TRO259 -> TRO257 | JA1304_3 | normal
c077 = TRO243 -> TRO249 | JA1305_1 | dir2
c078 = TRO249 -> TRO250 | JA1305_2 | finger
c079 = TRO244 -> TRO252 | JA1306_1 | dir2
c080 = TRO252 -> TRO253 | JA1306_2 | finger
c081 = TRO246 -> TRO255 | JA1307_1 | normal
c082 = TRO255 -> TRO256 | JA1307_2 | finger
c083 = TRO245 -> TRO258 | JA1308_1 | normal
c084 = TRO258 -> TRO259 | JA1308_2 | finger
c085 = TRO240 -> TRO241 | JA1309_2 | finger
c086 = TRO264 -> TRO265 | JA1401_2 | finger
c087 = TRO262 -> TRO263 | JA1501_2 | finger
c088 = TRO260 -> TRO261 | JA1601_2 | finger
[UH02.externals]
e001 = EXTERN -> TRO200 | JA1109_1
e002 = EXTERN -> TRO220 | JA1209_1
e003 = TRO244 -> EXTERN | JA1302_3
e004 = TRO246 -> EXTERN | JA1302_3
e005 = EXTERN -> TRO240 | JA1309_1
e006 = EXTERN -> TRO264 | JA1401_1
e007 = EXTERN -> TRO262 | JA1501_1
e008 = EXTERN -> TRO260 | JA1601_1
e009 = EXTERN -> TRO272 | JA1801_1
e010 = EXTERN -> TRO270 | JA4701_1
e011 = EXTERN -> TRO208 | Storage1.1.1
e012 = EXTERN -> TRO211 | Storage1.1.2
e013 = EXTERN -> TRO214 | Storage1.1.3
e014 = EXTERN -> TRO217 | Storage1.1.4
e015 = EXTERN -> TRO228 | Storage1.2.1
e016 = EXTERN -> TRO231 | Storage1.2.2
e017 = EXTERN -> TRO234 | Storage1.2.3
e018 = EXTERN -> TRO237 | Storage1.2.4
e019 = EXTERN -> TRO248 | Storage1.3.1
e020 = EXTERN -> TRO251 | Storage1.3.2
e021 = EXTERN -> TRO254 | Storage1.3.3
e022 = EXTERN -> TRO257 | Storage1.3.4
e023 = TRO207 -> EXTERN | IO_Device_UH02_TO_UH01.stCARRIER_INFO
e024 = TRO227 -> EXTERN | IO_Device_UH02_TO_UH01.stCARRIER_INFO_1
e025 = TRO247 -> EXTERN | IO_Device_UH02_TO_UH01.stCARRIER_INFO_2
[UH03.nodes]
TRO300 = Vario | TRO 300 (Vario)
TRO301 = 1Sep | TRO 301(1Sep)
TRO302 = Vario | TRO 302 (Vario)
TRO303 = Vario | TRO 303 (Vario)
TRO304 = 1Sep | TRO 304(1Sep)
TRO305 = Vario | TRO 305 (Vario)
TRO306 = Vario | TRO 306 (Vario)
TRO307 = Vario | TRO 307 (Vario)
TRO308 = Vario | TRO 308 (Vario)
TRO309 = 1Sep | TRO 309 (1Sep)
TRO310 = 1Sep | TRO 310 (1Sep)+Scanner (BX3102)
TRO311 = 1Sep | TRO 311 (1Sep)+Scanner(BX3101)
TRO312 = 1Sep | TRO 312 (1Sep)+Scanner(BX3100)
TRO313 = 1Sep1Swi | TRO 313 (1Sep1Switch)+Scanner(BX3103)
TRO314 = 1Sep1Swi | TRO 314 (1Sep1Switch)+Scanner(BX3104)
TRO315 = 1Sep | TRO 315 (1Sep)
TRO316 = 1Sep | TRO 316 (1Sep)
TRO317 = 1Sep1Swi | TRO 317 (1Sep1Switch)+Scanner(BX3105)
TRO318 = 1Sep1Swi | TRO 318 (1Sep1Switch) + Scanner(BX3106)
TRO319 = 1Sep1Swi | TRO 319 (1Sep1Switch) + Scanner (BX3111)
TRO320 = 1Sep1Swi | TRO 320 (1Sep1Switch) + Scanner(BX3112)
TRO321 = 1Sep1Swi | TRO 321 (1Sep1Switch) + Scanner(BX3114)
TRO322 = 1Sep1Swi | TRO 322 (1Sep1Switch)+Scanner(BX3113)
TRO323 = 1Sep | TRO 323 (1Sep)
TRO324 = Vario | TRO 324 (Vario)
TRO325 = 1Sep | TRO 325 (1Sep)
TRO326 = 1Sep | TRO 326 (1Sep)
TRO327 = PinStore_Auto | Aufruf: TRO327
TRO328 = Vario | TRO 328 (Vario)
TRO329 = 1Sep | TRO 329 (1Sep)
TRO330 = PinStore_Auto | Aufruf: TRO330
TRO331 = Vario | TRO 331 (Vario)
TRO332 = 1Sep | TRO 332 (1Sep)
TRO333 = PinStore_Auto | Aufruf: TRO333
TRO334 = Vario | TRO 334 (Vario)
TRO335 = 1Sep | TRO 335 (1Sep)
TRO336 = PinStore_Auto | Aufruf: TRO336
TRO337 = Vario | TRO 337 (Vario)
TRO338 = 1Sep | TRO 338 (1Sep)
TRO339 = 1Sep1Swi | TRO 339 (1Sep1Switch)+Scanner(BX3120)
TRO340 = 1Sep1Swi | TRO 340 (1Sep1Switch)+Scanner(BX3121)
TRO341 = 1Sep1Swi | TRO 341 (1Sep1Switch)+Scanner(BX3126)
TRO342 = 1Sep1Swi | TRO 342 (1Sep1Switch)+Scanner(BX3127)
TRO343 = 1Sep1Swi | TRO 343 (1Sep1Switch)+Scanner(BX3129)
TRO344 = 1Sep1Swi | TRO 344 (1Sep1Switch)+Scanner(BX3128)
TRO345 = 1Sep | TRO 345 (1Sep)
TRO346 = Vario | TRO 346 (Vario)
TRO347 = 1Sep | TRO 347 (1Sep)
TRO348 = 1Sep | TRO 348 (1Sep)
TRO349 = PinStore_Auto | Aufruf: TRO349
TRO350 = Vario | TRO 350 (Vario)
TRO351 = 1Sep | TRO 351 (1Sep)
TRO352 = PinStore_Auto | Aufruf: TRO352
TRO353 = Vario | TRO 353 (Vario)
TRO354 = 1Sep | TRO 354 (1Sep)
TRO355 = PinStore_Auto | Aufruf: TRO355
TRO356 = Vario | TRO 356 (Vario)
TRO357 = 1Sep | TRO 357 (1Sep)
TRO358 = PinStore_Auto | Aufruf: TRO358
TRO359 = Vario | TRO 359 (Vario)
TRO360 = 1Sep | TRO 360 (1Sep)
TRO361 = 1Sep1Swi | TRO 361 (1Sep1Switch)+Scanner(BX3131)
TRO362 = 1Sep1Swi | TRO 362 (1Sep1Switch)+Scanner(BX3132)
TRO363 = 1Sep1Swi | TRO 363 (1Sep1Switch)+Scanner(BX3137)
TRO364 = 1Sep1Swi | TRO 364 (1Sep1Switch)+Scanner(BX3138)
TRO365 = 1Sep1Swi | TRO 365 (1Sep1Switch)+Scanner(BX3140)
TRO366 = 1Sep1Swi | TRO 366 (1Sep1Switch)+Scanner(BX3139)
TRO367 = 1Sep | TRO 367 (1Sep)
TRO368 = Vario | TRO 368 (Vario, from Lvl1)
TRO369 = 1Sep | TRO 369 (1Sep)
TRO370 = 1Sep | TRO 370 (1Sep)
TRO371 = PinStore_Auto | Aufruf: TRO371
TRO372 = Vario | TRO 372 (Vario)
TRO373 = 1Sep | TRO 373 (1Sep)
TRO374 = PinStore_Auto | Aufruf: TRO374
TRO375 = Vario | TRO 375 (Vario)
TRO376 = 1Sep | TRO 376 (1Sep)
TRO377 = PinStore_Auto | Aufruf: TRO377
TRO378 = Vario | TRO 378 (Vario)
TRO379 = 1Sep | TRO 379 (1Sep)
TRO380 = PinStore_Auto | Aufruf: TRO380
TRO381 = Vario | TRO 381 (Vario)
TRO382 = 1Sep | TRO 382 (1Sep)
TRO386 = 1Sep | TRO 386 (1Sep) - kam später dazu
[UH03.connections]
c001 = TRO318 -> TRO330 | JA2101_1 | dir2
c002 = TRO332 -> TRO330 | JA2101_1 | normal
c003 = TRO330 -> TRO327 | JA2101_2 | bypass
c004 = TRO329 -> TRO327 | JA2101_2 | normal
c005 = TRO315 -> TRO317 | JA2102_1 | normal
c006 = TRO317 -> TRO318 | JA2102_2 | normal
c007 = TRO318 -> TRO333 | JA2102_3 | normal
c008 = TRO335 -> TRO333 | JA2102_3 | normal
c009 = TRO333 -> TRO336 | JA2102_4 | bypass
c010 = TRO338 -> TRO336 | JA2102_4 | normal
c011 = TRO327 -> TRO319 | JA2103_1 | normal
c012 = TRO330 -> TRO320 | JA2103_2 | normal
c013 = TRO319 -> TRO320 | JA2103_2 | dir2
c014 = TRO336 -> TRO321 | JA2104_1 | normal
c015 = TRO333 -> TRO322 | JA2104_2 | normal
c016 = TRO321 -> TRO322 | JA2104_2 | normal
c017 = TRO320 -> TRO323 | JA2104_3 | dir2
c018 = TRO322 -> TRO323 | JA2104_3 | normal
c019 = TRO323 -> TRO326 | JA2104_4 | normal
c020 = TRO325 -> TRO326 | JA2104_4 | normal
c021 = TRO319 -> TRO328 | JA2105_1 | normal
c022 = TRO328 -> TRO329 | JA2105_2 | finger
c023 = TRO320 -> TRO331 | JA2106_1 | normal
c024 = TRO331 -> TRO332 | JA2106_2 | finger
c025 = TRO322 -> TRO334 | JA2107_1 | dir2
c026 = TRO334 -> TRO335 | JA2107_2 | finger
c027 = TRO321 -> TRO337 | JA2108_1 | dir2
c028 = TRO337 -> TRO338 | JA2108_2 | finger
c029 = TRO324 -> TRO325 | JA2109_2 | finger
c030 = TRO386 -> TRO310 | JA2110_1 | normal
c031 = TRO310 -> TRO313 | JA2110_2 | normal
c032 = TRO311 -> TRO313 | JA2110_2 | normal
c033 = TRO312 -> TRO313 | JA2110_2 | normal
c034 = TRO313 -> TRO314 | JA2110_3 | dir2
c035 = TRO314 -> TRO315 | JA2110_4 | dir2
c036 = TRO309 -> TRO386 | JA2110_5 | normal
c037 = TRO308 -> TRO309 | JA2111_2 | finger
c038 = TRO313 -> TRO316 | JA2112_1 | normal
c039 = TRO340 -> TRO352 | JA2201_1 | dir2
c040 = TRO354 -> TRO352 | JA2201_1 | normal
c041 = TRO352 -> TRO349 | JA2201_2 | bypass
c042 = TRO351 -> TRO349 | JA2201_2 | normal
c043 = TRO314 -> TRO339 | JA2202_1 | normal
c044 = TRO339 -> TRO340 | JA2202_2 | normal
c045 = TRO340 -> TRO355 | JA2202_3 | normal
c046 = TRO357 -> TRO355 | JA2202_3 | normal
c047 = TRO355 -> TRO358 | JA2202_4 | bypass
c048 = TRO360 -> TRO358 | JA2202_4 | normal
c049 = TRO349 -> TRO341 | JA2203_1 | normal
c050 = TRO352 -> TRO342 | JA2203_2 | normal
c051 = TRO341 -> TRO342 | JA2203_2 | dir2
c052 = TRO358 -> TRO343 | JA2204_1 | normal
c053 = TRO355 -> TRO344 | JA2204_2 | normal
c054 = TRO343 -> TRO344 | JA2204_2 | normal
c055 = TRO342 -> TRO345 | JA2204_3 | dir2
c056 = TRO344 -> TRO345 | JA2204_3 | normal
c057 = TRO345 -> TRO348 | JA2204_4 | normal
c058 = TRO347 -> TRO348 | JA2204_4 | normal
c059 = TRO341 -> TRO350 | JA2205_1 | normal
c060 = TRO350 -> TRO351 | JA2205_2 | finger
c061 = TRO342 -> TRO353 | JA2206_1 | normal
c062 = TRO353 -> TRO354 | JA2206_2 | finger
c063 = TRO344 -> TRO356 | JA2207_1 | dir2
c064 = TRO356 -> TRO357 | JA2207_2 | finger
c065 = TRO343 -> TRO359 | JA2208_1 | dir2
c066 = TRO359 -> TRO360 | JA2208_2 | finger
c067 = TRO346 -> TRO347 | JA2209_2 | finger
c068 = TRO371 -> TRO363 | JA2301_1 | normal
c069 = TRO374 -> TRO364 | JA2301_2 | normal
c070 = TRO363 -> TRO364 | JA2301_2 | normal
c071 = TRO380 -> TRO365 | JA2302_1 | normal
c072 = TRO377 -> TRO366 | JA2302_2 | normal
c073 = TRO365 -> TRO366 | JA2302_2 | dir2
c074 = TRO364 -> TRO367 | JA2302_3 | normal
c075 = TRO366 -> TRO367 | JA2302_3 | dir2
c076 = TRO367 -> TRO370 | JA2302_4 | normal
c077 = TRO369 -> TRO370 | JA2302_4 | normal
c078 = TRO362 -> TRO374 | JA2303_1 | normal
c079 = TRO376 -> TRO374 | JA2303_1 | normal
c080 = TRO374 -> TRO371 | JA2303_2 | bypass
c081 = TRO373 -> TRO371 | JA2303_2 | normal
c082 = TRO316 -> TRO361 | JA2304_1 | normal
c083 = TRO361 -> TRO362 | JA2304_2 | dir2
c084 = TRO362 -> TRO377 | JA2304_3 | dir2
c085 = TRO379 -> TRO377 | JA2304_3 | normal
c086 = TRO377 -> TRO380 | JA2304_4 | bypass
c087 = TRO382 -> TRO380 | JA2304_4 | normal
c088 = TRO363 -> TRO372 | JA2305_1 | dir2
c089 = TRO372 -> TRO373 | JA2305_2 | finger
c090 = TRO364 -> TRO375 | JA2306_1 | dir2
c091 = TRO375 -> TRO376 | JA2306_2 | finger
c092 = TRO366 -> TRO378 | JA2307_1 | normal
c093 = TRO378 -> TRO379 | JA2307_2 | finger
c094 = TRO365 -> TRO381 | JA2308_1 | normal
c095 = TRO381 -> TRO382 | JA2308_2 | finger
c096 = TRO368 -> TRO369 | JA2309_2 | finger
c097 = TRO300 -> TRO302 | JA4101_1 | finger
c098 = TRO301 -> TRO302 | JA4101_1 | normal
c099 = TRO302 -> TRO311 | JA4101_2 | finger
c100 = TRO303 -> TRO305 | JA4201_1 | finger
c101 = TRO304 -> TRO305 | JA4201_1 | normal
c102 = TRO305 -> TRO312 | JA4201_2 | finger
[UH03.externals]
e001 = TRO336 -> EXTERN | JA2102_5
e002 = EXTERN -> TRO324 | JA2109_1
e003 = EXTERN -> TRO308 | JA2111_1
e004 = TRO358 -> EXTERN | JA2202_5
e005 = EXTERN -> TRO346 | JA2209_1
e006 = EXTERN -> TRO368 | JA2309_1
e007 = EXTERN -> TRO300 | JA4102_1
e008 = EXTERN -> TRO301 | JA4102_2
e009 = EXTERN -> TRO303 | JA4202_1
e010 = EXTERN -> TRO304 | JA4202_2
e011 = EXTERN -> TRO306 | JA4301_1
e012 = EXTERN -> TRO307 | JA4401_1
e013 = EXTERN -> TRO327 | Storage2.1.1
e014 = EXTERN -> TRO330 | Storage2.1.2
e015 = EXTERN -> TRO333 | Storage2.1.3
e016 = EXTERN -> TRO336 | Storage2.1.4
e017 = EXTERN -> TRO349 | Storage2.2.1
e018 = EXTERN -> TRO352 | Storage2.2.2
e019 = EXTERN -> TRO355 | Storage2.2.3
e020 = EXTERN -> TRO358 | Storage2.2.4
e021 = EXTERN -> TRO371 | Storage2.3.1
e022 = EXTERN -> TRO374 | Storage2.3.2
e023 = EXTERN -> TRO377 | Storage2.3.3
e024 = EXTERN -> TRO380 | Storage2.3.4
e025 = TRO326 -> EXTERN | IO_Device_UH03_TO_UH01.stCARRIER_INFO
e026 = TRO348 -> EXTERN | IO_Device_UH03_TO_UH01.stCARRIER_INFO_1
e027 = TRO370 -> EXTERN | IO_Device_UH03_TO_UH01.stCARRIER_INFO_2
e028 = TRO317 -> EXTERN | IO_Device_UH03_TO_UH01.stCarrierL2toL1
e029 = TRO339 -> EXTERN | IO_Device_UH03_TO_UH01.stCarrierL2toL1_2
e030 = TRO361 -> EXTERN | IO_Device_UH03_TO_UH01.stCarrierL2toL1_3
[UH04.nodes]
TRO400 = Vario | TRO 400 (Vario)
TRO401 = Vario | TRO 401 (Vario)
TRO402 = 1Sep | TRO 402 (1Sep) (Vor Brandschutztor)
TRO403 = Vario | TRO 403 (Vario)
TRO404 = 1Sep | TRO 404 (1Sep)
TRO405 = 1Sep1Swi | TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle
TRO406 = 1Sep | TRO 406 (1Sep) + Scanner (BX4101)
TRO407 = 1Sep1Swi | TRO 407 (1Sep1Switch) + Scanner (BX4102)
TRO408 = Vario | TRO 408 (Vario)
TRO409 = 1Sep | TRO 409 (1Sep)
TRO410 = 1Sep1Swi | TRO 410 (1Sep1Switch) + Scanner (BX4104)
TRO411 = Vario | TRO 411 (Vario)
TRO412 = 1Sep | TRO 412 (1Sep)
TRO413 = 1Sep1Swi | TRO 413(1Sep1Switch)+Scanner(BX4106)
TRO414 = Vario | TRO 414 (Vario)
TRO415 = 1Sep | TRO 415 (1Sep)
TRO416 = 1Sep | TRO 416 (1Sep) + Beladeprüfung
TRO417 = 1Sep | TRO 417 (1Sep)
TRO418 = Vario | TRO 418 (Vario)
TRO420 = Vario | TRO 420 (Vario)
TRO421 = Vario_workStation | TRO 421 (Vario)
TRO422 = Vario_workStation | TRO 422 (Vario)
TRO423 = Vario_workStation | TRO 423 (Vario)
TRO424 = 1Sep | TRO 424 (1Sep) vor Behangskontrolle
[UH04.connections]
c001 = TRO400 -> TRO401 | JA4001_1 | finger
c002 = TRO401 -> TRO402 | JA4001_2 | finger
c003 = TRO402 -> TRO403 | JA4002_1 | normal
c004 = TRO403 -> TRO404 | JA4002_2 | finger
c005 = TRO424 -> TRO405 | JA4003_1 | normal
c006 = TRO405 -> TRO406 | JA4003_2 | dir2
c007 = TRO406 -> TRO407 | JA4003_3 | normal
c008 = TRO407 -> TRO410 | JA4003_4 | dir2
c009 = TRO409 -> TRO410 | JA4003_4 | normal
c010 = TRO410 -> TRO413 | JA4003_5 | dir2
c011 = TRO412 -> TRO413 | JA4003_5 | normal
c012 = TRO413 -> TRO416 | JA4003_6 | dir2
c013 = TRO415 -> TRO416 | JA4003_6 | normal
c014 = TRO416 -> TRO417 | JA4003_7 | normal
c015 = TRO404 -> TRO424 | JA4003_8 | normal
c016 = TRO417 -> TRO424 | JA4003_8 | normal
c017 = TRO407 -> TRO408 | JA4004_1 | normal
c018 = TRO408 -> TRO421 | JA4004_2 | finger
c019 = TRO410 -> TRO411 | JA4006_1 | normal
c020 = TRO411 -> TRO422 | JA4006_2 | finger
c021 = TRO422 -> TRO412 | JA4007_1 | finger
c022 = TRO413 -> TRO414 | JA4008_1 | normal
c023 = TRO414 -> TRO423 | JA4008_2 | finger
c024 = TRO423 -> TRO415 | JA4009_1 | finger
c025 = TRO418 -> TRO420 | JA4011_1 | finger
[UH04.externals]
e001 = EXTERN -> TRO400 | JA4000_1
e002 = TRO421 -> EXTERN | JA4005_1
e003 = EXTERN -> TRO418 | JA4010_1
[UH05.nodes]
TRO500 = Vario | TRO 500 (Vario) - Stand: Vorbereitet für Umbau!
TRO501 = 1Sep | TRO 501 (1Sep) + Scanner (BX5101)
TRO502 = Vario | TRO 502 (Vario) - Stand: Vorbereitet für Umbau!
TRO503 = 1Sep | TRO 503 (1Sep)+ Scanner (BX5100)
TRO504 = 1Sep | TRO 504 (1Sep)
TRO505 = 1Sep1Swi | TRO 505 (1Sep1Switch) + Scanner (BX5102)
TRO506 = Vario | TRO 506 (Vario)
TRO507 = 1Sep | TRO 507 (1Sep)
TRO508 = Vario | TRO 508 (Vario)+Scanner(BX5103)
TRO509 = 1Sep | TRO 509 (1Sep)
TRO510 = 1Sep1Swi | TRO 510 (1Sep1Switch) + Scanner (BX5104)
TRO511 = 1Sep | TRO 511 (1Sep)
TRO512 = Vario | TRO 512 (Vario)+Scanner(BX5105)
TRO513 = 1Sep | TRO 513 (1Sep)
TRO514 = 1Sep1Swi | TRO 514 (1Sep1Switch) + Scanner (BX5106)
TRO515 = 1Sep | TRO 515 (1Sep)
TRO516 = Vario | TRO 516(Vario)+Scanner(BX5107)
TRO517 = 1Sep | TRO 517 (1Sep)
TRO518 = 1Sep1Swi | TRO 518 (1Sep1Switch) + Scanner (BX5108)
TRO519 = 1Sep | TRO 519 (1Sep)
TRO520 = Vario | TRO 520 (Vario)+Scanner(BX5109)
TRO521 = 1Sep | TRO 521(1Sep)
TRO522 = 1Sep1Swi | TRO 522 (1Sep1Switch) + Scanner (BX5110)
TRO523 = 1Sep | TRO 523 (1Sep)
TRO524 = Vario | TRO 524 (Vario)+Scanner(BX5231)
TRO525 = 1Sep | TRO 525(1Sep)
TRO526 = 1Sep | TRO 526 (1Sep) + Scanner (BX5112)
TRO527 = 1Sep1Swi | TRO 527 (1Sep1Switch)
TRO528 = 1Sep | TRO 528 (1Sep)
TRO529 = 1Sep | TRO 529 (1Sep) + Scanner (BX5113)
TRO530 = Vario | TRO 530 (Vario)
TRO531 = Vario | TRO 531 (Vario)
[UH05.connections]
c001 = TRO502 -> TRO531 | JA5000_2 | finger
c002 = TRO531 -> TRO503 | JA5000_3 | finger
c003 = TRO500 -> TRO530 | JA5001_2 | finger
c004 = TRO530 -> TRO501 | JA5001_3 | finger
c005 = TRO501 -> TRO504 | JA5002_1 | normal
c006 = TRO503 -> TRO504 | JA5002_1 | normal
c007 = TRO529 -> TRO504 | JA5002_1 | normal
c008 = TRO528 -> TRO529 | JA5002_10 | normal
c009 = TRO504 -> TRO505 | JA5002_2 | normal
c010 = TRO505 -> TRO510 | JA5002_3 | dir2
c011 = TRO509 -> TRO510 | JA5002_3 | normal
c012 = TRO510 -> TRO514 | JA5002_4 | dir2
c013 = TRO513 -> TRO514 | JA5002_4 | normal
c014 = TRO514 -> TRO518 | JA5002_5 | dir2
c015 = TRO517 -> TRO518 | JA5002_5 | normal
c016 = TRO518 -> TRO522 | JA5002_6 | dir2
c017 = TRO521 -> TRO522 | JA5002_6 | normal
c018 = TRO522 -> TRO526 | JA5002_7 | dir2
c019 = TRO525 -> TRO526 | JA5002_7 | normal
c020 = TRO526 -> TRO527 | JA5002_8 | normal
c021 = TRO527 -> TRO528 | JA5002_9 | dir2
c022 = TRO505 -> TRO506 | JA5003_1 | normal
c023 = TRO506 -> TRO507 | JA5003_2 | finger
c024 = TRO507 -> TRO508 | JA5004_1 | normal
c025 = TRO510 -> TRO511 | JA5005_1 | normal
c026 = TRO511 -> TRO512 | JA5005_2 | normal
c027 = TRO514 -> TRO515 | JA5006_1 | normal
c028 = TRO515 -> TRO516 | JA5006_2 | normal
c029 = TRO518 -> TRO519 | JA5007_1 | normal
c030 = TRO519 -> TRO520 | JA5007_2 | normal
c031 = TRO522 -> TRO523 | JA5008_1 | normal
c032 = TRO523 -> TRO524 | JA5008_2 | normal
[UH05.externals]
e001 = EXTERN -> TRO502 | JA5000_1
e002 = EXTERN -> TRO500 | JA5001_1
e003 = TRO508 -> EXTERN | JA5004_2
e004 = TRO512 -> EXTERN | JA5005_3
e005 = TRO516 -> EXTERN | JA5006_3
e006 = TRO520 -> EXTERN | JA5007_3
e007 = TRO524 -> EXTERN | JA5008_3
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+18
View File
@@ -0,0 +1,18 @@
# Bilder-Ordner (Layout-Screenshots)
Hier liegen die realen BricsCAD-Layout-Bilder je TRO-Typ. Dateinamen und
Beispiel-TROs siehe [Capture-Checkliste in TRO_Katalog.md](../TRO_Katalog.md#capture-checkliste).
Erwartete Dateien:
- `1sep_layout.png`
- `1sep1swi_layout.png`
- `1sep2swi_layout.png`
- `1sep_sscc_layout.png`
- `vario_layout.png`
- `pinstore_auto_layout.png`
- `vario_workstation_layout.png`
- `emptycarrbuffer_layout.png`
- `loadingboom_layout.png`
Quelle: `Documents\Fortna-Layout\ST500592_10_5-13_ILS.dwg` (nur in BricsCAD zu öffnen).
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,43 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_1Sep
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_1Sep ist ausschliesslich als .liblink (externe ILSLib-Bibliothek)
// im Repository vorhanden, der FB-Quellcode selbst liegt NICHT im Git-Repo (siehe CLAUDE.md).
// Dieses Template zeigt daher den realen AUFRUF (Parametrierung) des Bausteins in FB_Main,
// extrahiert aus:
// =A01+UH01-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "TRO 100 (1Sep)")
// Es dient als Vorlage für die Ableitung der JSON-Attribute (siehe Json_Layout-Konzept.md
// Abschnitt 4 und TRO_Typen.md).
// ------------------------------------------------------------------------------------------
REGION TRO 100 (1Sep)
#TRO100.stInSeparator1.Settings.nSeparatorNo := "cSep100.1";
#TRO100.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO100.stInSeparator1.Settings.tTrailingTime := t#600ms;
#TRO100.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO100.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO100.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO100.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO100.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO100.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3242"];
#TRO100.stInSenJam2 := "DB_Inputs".Sensors["cInBG3243"];
#TRO100.stInSeparator1.Settings.tSenFree := T#1500ms;
#TRO100.stInSeparator1.Settings.tSenWait := T#4000ms;
#TRO100.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO100(nInMainTroNo := "cMainTro100",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCarouselRun := #fbCarousel0101.xOutConveyorFullSpeed,
xInRelease := "DB_TRO_TEST".TRO100,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea0100".stJam0100_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea0100".stJam0100_1.stData,
arInOutJamExit2 := "DB_JamArea0101".stJam0101_1.arCarrier,
stInOutJamExit2 := "DB_JamArea0101".stJam0101_1.stData,
xOutStopper1 => "MB3242",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro100"],
stInOutHMI := "DB_Interface_HMI".stTRO.TRO100);
END_REGION
@@ -0,0 +1,56 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_1Sep1Swi
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_1Sep1Swi ist ausschliesslich als .liblink (externe ILSLib-Bibliothek)
// im Repository vorhanden, der FB-Quellcode selbst liegt NICHT im Git-Repo.
// Dieses Template zeigt den realen AUFRUF (Parametrierung) des Bausteins in FB_Main,
// extrahiert aus:
// =A01+UH01-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "TRO 107(1Sep1Swi)")
// inkl. der zugehörigen FC_Direction-Weichenlogik.
// ------------------------------------------------------------------------------------------
REGION TRO 107(1Sep1Swi)
#TRO107.stInSeparator1.Settings.nSeparatorNo := "cSep107.1";
#TRO107.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO107.stInSeparator1.Settings.tTrailingTime := t#100ms;
#TRO107.stInSeparator1.Settings.tHandlingTime := t#50ms;
#TRO107.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO107.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO107.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO107.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO107.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3306"];
#TRO107.stInSenJam2 := "DB_Inputs".Sensors["cInBG3305"];
#TRO107.stInSenJam3 := "DB_Inputs".Sensors["cInBG3330"];
#TRO107.stInSwitch1.Settings.nSwitchNo := "cSwi107.1";
#TRO107.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO107.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO107.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO107.stInSettings.xPrioDir2 := TRUE;
#TRO107(stInPriorityManagerDir2 := "DB_Prozessdaten".stPriorityManager.udt_TRO107.TroIn,
stOutPriorityManagerDir2 => "DB_Prozessdaten".stPriorityManager.udt_TRO107.TroOut,
nInMainTroNo := "cMainTro107",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCarouselRun1 := #fbCarousel0102.xOutConveyorFullSpeed,
xInRelease := TRUE,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
arInOutJamEntr1 := "DB_JamArea0102".stJam0102_1.arCarrier,
stInOutJamEntr1 := "DB_JamArea0102".stJam0102_1.stData,
arInOutJamExit2 := "DB_JamArea0103".stJam0103_1.arCarrier,
stInOutJamExit2 := "DB_JamArea0103".stJam0103_1.stData,
arInOutJamExit3 := "DB_JamArea0102".stJam0102_2.arCarrier,
stInOutJamExit3 := "DB_JamArea0102".stJam0102_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO107,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro107"],
xOutStopper1 => "MB3306",
xOutSw1ExTo3 => "MB3304");
REGION Direction
"FC_Direction"(nInSwitchNo := "cSwi107.1",
nOutDirection => #TRO107.nInDirection,
InOutCarrier := "DB_JamArea0102".stJam0102_1.arCarrier[1]);
END_REGION
END_REGION
@@ -0,0 +1,75 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_1Sep2Swi
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_1Sep2Swi ist ausschliesslich als .liblink vorhanden (nur UH02,
// =A01+UH02-KF00\Programmbausteine\ILSLib\Prepare\FB_ILS_MTRO_1Sep2Swi.liblink),
// der FB-Quellcode liegt NICHT im Git-Repo. Dieses Template zeigt den realen AUFRUF,
// extrahiert aus:
// =A01+UH02-KF00\Programmbausteine\100_Main\FB_Main.scl
// (REGION "TRO 267 (1Sep2Switch)+Scanner(BX2100)")
// Separator + 2 Weichen (Switch1/Switch2) mit je eigenen Settings und Exit-Slots.
// ------------------------------------------------------------------------------------------
REGION TRO 267 (1Sep2Switch)+Scanner(BX2100)
#TRO267.stInSeparator1.Settings.nSeparatorNo := "cSep267.1";
#TRO267.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Medium";
#TRO267.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO267.stInSeparator1.Settings.xPluggedPart := TRUE;
#TRO267.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO267.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG4440"];
#TRO267.stInSeparator1.stSenPart := "DB_Inputs".Sensors["cInBG4465"];
#TRO267.stInSenJam2 := "DB_Inputs".Sensors["cInBG4444"];
#TRO267.stInSenJam3 := "DB_Inputs".Sensors["cInBG4455"];
#TRO267.stInSenJam4 := "DB_Inputs".Sensors["cInBG4454"];
#TRO267.stInSwitch1.Settings.nSwitchNo := "cSwi267.1";
#TRO267.stInSwitch1.Settings.xPluggedExSen3 := FALSE;
#TRO267.stInSwitch1.Settings.xPluggedExSen4 := FALSE;
#TRO267.stInSwitch1.Settings.xNewSwitch := TRUE;
#TRO267.stInSwitch1.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO267.stInSwitch2.Settings.xPluggedExSen3 := FALSE;
#TRO267.stInSwitch2.Settings.xPluggedExSen4 := FALSE;
#TRO267.stInSwitch2.Settings.xNewSwitch := TRUE;
#TRO267.stInSwitch2.Settings.nTo1Destinations := 3; //Info nötig für HMI
#TRO267.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO267.stInBarcodeReader.Settings.tTimeout := T#5s;
#arCognexInterface["cScannerBX2100"].xInCamTriggerReady := "bx2100-TriggerReady";
#arCognexInterface["cScannerBX2100"].xInCamTriggerAck := "bx2100-TriggerAck";
#arCognexInterface["cScannerBX2100"].xInCamResultsAvailable := "bx2100-Results Available";
#arCognexInterface["cScannerBX2100"].xInCamGeneralFault := "bx2100-General Fault";
#arCognexInterface["cScannerBX2100"].hwInCamInspectionResults := "=A01+UC021-BX2100~Ergebnisse__64_Bytes_1";
#TRO267.stInPriorityManager.xReleaseOk := TRUE; // braucht keine Vorfahrtsregelung
#TRO267.stInSettings.bSepType.%X2 := TRUE;
#TRO267(nInMainTroNo := "cMainTro267",
xInSftyOk := "cTodoTRUE",
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO267,
xInCarouselRun1 := #fbCarousel1110.xOutConveyorFullSpeed,
xInCarouselRun2 := #fbCarousel1110.xOutConveyorFullSpeed,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX2100"],
arInOutJamEntr1 := "DB_JamArea1110".stJam1110_4.arCarrier,
stInOutJamEntr1 := "DB_JamArea1110".stJam1110_4.stData,
arInOutJamExit2 := #arCarrierHandoverJam5001,
stInOutJamExit2 := #stJamDataHandoverJam5001,
arInOutJamExit3 := #arCarrierHandoverJam5000,
stInOutJamExit3 := #stJamDataHandoverJam5000,
arInOutJamExit4 := "DB_JamArea1110".stJam1110_5.arCarrier,
stInOutJamExit4 := "DB_JamArea1110".stJam1110_5.stData,
xOutStopper1 => "MB4440",
xOutSw1ExTo3 => "MB4444",
xOutSw2ExTo3 => "MB4455",
stInOutHMI := "DB_Interface_HMI".stTRO.TRO267);
"bx2100-TriggerEnable" := #arCognexInterface["cScannerBX2100"].xOutCamTriggerEnable;
"bx2100-Trigger" := #arCognexInterface["cScannerBX2100"].xOutCamTrigger;
"bx2100-ResultsAck" := #arCognexInterface["cScannerBX2100"].xOutCamResultsAck;
// Fortsetzung im Original: IF #TRO267.xOutNewScan THEN "FC_Send_GOHDReqM"(...) -> WCS-Telegramm
END_REGION
@@ -0,0 +1,93 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_1Sep_SSCC
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_1Sep_SSCC ist ausschliesslich als .liblink (nur in UH01) vorhanden,
// der FB-Quellcode liegt NICHT im Git-Repo. Dieses Template zeigt den realen AUFRUF,
// extrahiert aus:
// =A01+UH01-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "TRO 105 (1Sep)+Scanner")
// inkl. Cognex-Scanner- und SSCC-Scanner-Verdrahtung sowie Korrektur- und HMI-Bindung.
// ------------------------------------------------------------------------------------------
REGION TRO 105 (1Sep)+Scanner
#TRO105.stInSeparator1.Settings.nSeparatorNo := "cSep105.1";
#TRO105.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO105.stInSeparator1.Settings.tTrailingTime := t#600ms;
#TRO105.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO105.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO105.stInSeparator1.Settings.xPluggedConfirm := FALSE;
#TRO105.stInSeparator1.Settings.xPluggedNullBT := FALSE;
#TRO105.stInSeparator1.Settings.xPluggedJam := TRUE;
#TRO105.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO105.stInSeparator1.Settings.xPluggedScanner := TRUE;
#TRO105.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3280"];
#TRO105.stInSenJam2 := "DB_Inputs".Sensors["cInBG3281"];
#TRO105.stInSeparator1.Settings.tSenFree := T#1500ms;
#TRO105.stInSeparator1.Settings.tSenWait := T#4000ms;
#TRO105.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#TRO105.stInBarcodeReader.Settings.tTimeout := T#3000ms;
#arCognexInterface["cScannerBX1104"].xInCamTriggerReady := "bx1104-TriggerReady";
#arCognexInterface["cScannerBX1104"].xInCamTriggerAck := "bx1104-TriggerAck";
#arCognexInterface["cScannerBX1104"].xInCamResultsAvailable := "bx1104-Results Available";
#arCognexInterface["cScannerBX1104"].xInCamGeneralFault := "bx1104-General Fault";
#arCognexInterface["cScannerBX1104"].hwInCamInspectionResults := "BX1104~Ergebnisse__64_Bytes_1";
//SSCC
#stCognexIntfTro105.xInCamTriggerReady := "bx1107-TriggerReady";
#stCognexIntfTro105.xInCamTriggerAck := "bx1107-TriggerAck";
#stCognexIntfTro105.xInCamResultsAvailable := "bx1107-Results Available";
#stCognexIntfTro105.xInCamGeneralFault := "bx1107-General Fault";
#stCognexIntfTro105.hwInCamInspectionResults := "BX1107~Ergebnisse__64_Bytes_1";
#TRO105.stInBarcodeReaderSSCC.Settings.xActivateCheckASCI := TRUE;
#TRO105.stInBarcodeReaderSSCC.Settings.tTimeout := T#3s;
#TRO105.stInBarcodeReaderSSCC.xInPluggedSSCC := TRUE;
#TRO105.stInBarcodeReaderSSCC.stSenEndMeasurement := "DB_Inputs".Sensors["cInBG3281"];
#TRO105.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO105(nInMainTroNo := "cMainTro105",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInCarouselRun := TRUE,// Gefälle
xInRelease := "FB_CommunicationWCSBL_DB".fbTeleHandler.xOutConnectionActive OR "IBN".xFahrenOhneTcpPartner,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #arCognexInterface["cScannerBX1104"],
stInOutCognexInterfaceSSCC := #stCognexIntfTro105,
arInOutJamEntr1 := "DB_JamArea0104".stJam0104_3.arCarrier,
stInOutJamEntr1 := "DB_JamArea0104".stJam0104_3.stData,
arInOutJamExit2 := "DB_JamArea0106".stJam0106_2.arCarrier,
stInOutJamExit2 := "DB_JamArea0106".stJam0106_2.stData,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO105,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro105"],
xOutStopper1 => "MB3280");
"bx1104-TriggerEnable" := #arCognexInterface["cScannerBX1104"].xOutCamTriggerEnable;
"bx1104-Trigger" := #arCognexInterface["cScannerBX1104"].xOutCamTrigger;
"bx1104-ResultsAck" := #arCognexInterface["cScannerBX1104"].xOutCamResultsAck;
//SSCC
"bx1107-TriggerEnable" := #stCognexIntfTro105.xOutCamTriggerEnable;
"bx1107-Trigger" := #stCognexIntfTro105.xOutCamTrigger;
"bx1107-ResultsAck" := #stCognexIntfTro105.xOutCamResultsAck;
REGION Carr_Glob_Correction
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO105.xOutCorrection, //Führe Korrektur aus
nInBarcodeScan := #TRO105.nBarcodeResult,
nInStation := 0,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea0104".stJam0104_3.arCarrier[1]);
END_REGION
REGION Write SSCC result TO HMI Interface
IF #TRO105.xOutNewScanSSCC THEN
"DB_Interface_HMI".stSSCC.SSCC1107.stLastMeasurement.nBarcodeTrolley := "DB_JamArea0104".stJam0104_3.arCarrier[1].nBarcode;
"DB_Interface_HMI".stSSCC.SSCC1107.stLastMeasurement.sSSCC := LINT_TO_STRING(#TRO105.nOutScanResultSSCC);
END_IF;
END_REGION
// Fortsetzung im Original: REGION "Send DReqM to Fortna WCS (SSCC)" -> WCS-Telegrammversand,
// siehe Json_Layout-Konzept.md Abschnitt 4 "wcsTelegram"
END_REGION
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,138 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_PinStore_Auto
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_PinStore_Auto ist ausschliesslich als .liblink vorhanden
// (UH02: ...\ILSLib\FB\MTRO\FB_ILS_MTRO_PinStore_Auto.liblink, ebenso UH03),
// der FB-Quellcode liegt NICHT im Git-Repo. Dieses Template zeigt den realen AUFRUF,
// extrahiert aus:
// =A01+UH02-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "BLOCK 1.1.1 (TRO 208)")
// Automatisches Pin-Lager (19 Speicherlinien "arInSep[1..19]" je Block). Zur Übersicht
// sind hier nur Sep Store 1-3 als repräsentatives Muster ausgeschrieben; Store 4-19 und
// arInJamSensor[4..19] folgen demselben Schema (siehe Original für alle 19 Zeilen).
// ------------------------------------------------------------------------------------------
REGION BLOCK 1.1.1 (TRO 208)
REGION Encoder Settings
#TRO208.stInEncoderParameter.nPosActDif := #fbEncoderGF2200.nOutPosActDif;
#TRO208.stInEncoderParameter.nPosPitchPart := #fbEncoderGF2200.nOutPosPitchPart;
END_REGION
REGION ConveyorStation Settings
#TRO208.stInSettings.nDestGeneral := "cDest11100";
#TRO208.stInSettings.nConvStations := "cHooksSorterMaxPin111";
#TRO208.stInSettings.nStationsMax := "cStationsMax111";
#TRO208.stInSettings.nStorageThreshold := "cNoPositionsBlock1";
#TRO208.stInSettings.nNoOfLines := 19;
END_REGION
REGION Pin Query / "Zappler"
#TRO208.stInSensorReference := "DB_Inputs".Sensors["cInBG3001"];
END_REGION
REGION Barcode Reader In (BX2104)
#TRO208.stInBarcodeReader.Settings.nStation := 111;
#TRO208.stInBarcodeReader.Settings.nScannerPurpose := 0;
#TRO208.stInBarcodeReader.Settings.tTimeout := T#5s;
#TRO208.stInBarcodeReader.Settings.xActivateCheckASCI := TRUE;
#arCognexInterface["cScannerBX2104"].xInCamTriggerReady := "bx2104-TriggerReady";
#arCognexInterface["cScannerBX2104"].xInCamTriggerAck := "bx2104-TriggerAck";
#arCognexInterface["cScannerBX2104"].xInCamResultsAvailable := "bx2104-Results Available";
#arCognexInterface["cScannerBX2104"].xInCamGeneralFault := "bx2104-General Fault";
#arCognexInterface["cScannerBX2104"].hwInCamInspectionResults := "=A01+UH02-BX2104~Ergebnisse__64_Bytes_1";
END_REGION
REGION Separator Settings
REGION Sep Pin
#TRO208.stInSeparatorPin.stSenTrolley := "DB_Inputs".Sensors["cInBG3000"];
#TRO208.stInSeparatorPin.stSettings.tHandlingTime := T#0ms;
#TRO208.stInSeparatorPin.stSettings.tTrailingTime := T#50ms;
#TRO208.stInSeparatorPin.stSettings.xPluggedScanner := TRUE;
END_REGION
REGION Sep Store 1
#nActNo := 1;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := 4;
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3270"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 2
#nActNo := 2;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam2";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3271"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
REGION Sep Store 3
#nActNo := 3;
#TRO208.arInSep[#nActNo].stSettings.nJamLength := "cStorage111ExitJam3";
#TRO208.arInSep[#nActNo].stSenTrolley := "DB_Inputs".Sensors["cInBG3272"];
#TRO208.arInSep[#nActNo].stSettings.tHandlingTime := "cTimeSepHandlingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.tTrailingTime := "cTimeSepTrailingStorageLine";
#TRO208.arInSep[#nActNo].stSettings.xPluggedScanner := FALSE;
END_REGION
// ... REGION "Sep Store 4" bis "Sep Store 19" folgen demselben Schema
// (nActNo hochzählend, stSenTrolley auf fortlaufende BG-Sensoradressen,
// arInSep[7..19] zusätzlich mit stSettings.stSimu.* für Simulationsmodus)
END_REGION
REGION UnloadingStations Settings
#TRO208.xInQuitLocal := "SF0121" OR "SF0117";
#TRO208.arInJamSensor[1] := "DB_Inputs".Sensors["cInBG3030"];
#TRO208.arInJamSensor[2] := "DB_Inputs".Sensors["cInBG3031"];
#TRO208.arInJamSensor[3] := "DB_Inputs".Sensors["cInBG3032"];
// ... arInJamSensor[4] bis arInJamSensor[19] folgen fortlaufenden BG-Sensoradressen
END_REGION
REGION Aufruf: TRO208
#TRO208.stInPriorityManager.xReleaseOk := TRUE;
#TRO208(xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF2.Q,
nInTestTarget := "IBN".nTestTarget111,
xInAllRdyToStart := TRUE,
xInCancel := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO208,
xInConveyorRunIn := #fbSortConv1101.xOutConveyorFullSpeed,
xInConveyorRunOut := #fbExitConv1103.xOutConveyorFullSpeed,
stInOutControlUnitCabinet := #stInOutControlUnitCabinetOF2,
arInOutStorageLines := "DB_Storage1.1.1".arLine,
arInOutJamEntr := "DB_JamArea1101".stJam1101_2.arCarrier,
stInOutJamEntr := "DB_JamArea1101".stJam1101_2.stData,
arInOutJamExit := "DB_JamArea1103".stJam1103_1.arCarrier,
stInOutJamExit := "DB_JamArea1103".stJam1103_1.stData,
arInOutJamBypass := #arCarrierPlaceHolder,
stInOutJamBypass := #stJamDataPlaceHolder,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO208,
stMFRStorageRemovalInterface := "DB_HandshakeStorage".Str_StorageRemoval.arrudt_StorageRemovalHandshakeTROsLvl1[1],
xOutSeparatorPin => "MB3000",
stCognexInterfacePin := #arCognexInterface["cScannerBX2104"],
stConveyorStations:= "DB_ConveyorStations".stConveyorStations111);
END_REGION
REGION CARR_GLOB_CORRECTION
"FC_CARR_GLOB_CORRECTION"(xInStart := #TRO208.xOutCorrection,
nInBarcodeScan := #TRO208.nBarcodeResult,
nInStation := 1,
arOutEventLogInfo => #arDummyEventCorrectionInfo,
InOutCarrierExpect := "DB_JamArea1101".stJam1101_2.arCarrier[1]);
END_REGION
REGION Barcode Reader Out (BX2104)
"bx2104-TriggerEnable" := #arCognexInterface["cScannerBX2104"].xOutCamTriggerEnable;
"bx2104-Trigger" := #arCognexInterface["cScannerBX2104"].xOutCamTrigger;
"bx2104-ResultsAck" := #arCognexInterface["cScannerBX2104"].xOutCamResultsAck;
END_REGION
REGION Separator Store Out
"MB3270" := #TRO208.arOutSeparatorStore[1];
// ... weitere arOutSeparatorStore[n] -> MBxxxx analog für Store 2-19
END_REGION
// stMFRStorageRemovalInterface koppelt an FB_StockRemovalBLKModul / FB_StorageManagement
// (siehe SCL_Analyse_Standardisierung.md, Abschnitt "Sonderanalyse: StockRemoval")
END_REGION
@@ -0,0 +1,66 @@
// TEMPLATE: Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_Vario
// ------------------------------------------------------------------------------------------
// HINWEIS: FB_ILS_MTRO_Vario ist ausschliesslich als .liblink (externe ILSLib-Bibliothek)
// im Repository vorhanden, der FB-Quellcode selbst liegt NICHT im Git-Repo.
// Dieses Template zeigt den realen AUFRUF, extrahiert aus:
// =A01+UH01-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "TRO 115 (Vario)")
// Derselbe FB-Typ wird in UH03 auch für F2H-Streckenabschnitte wiederverwendet
// (z.B. TRO308, TRO383 - Kommentar "Vario von F2H" in FB_Main UH03), ohne eigene Variante.
// ------------------------------------------------------------------------------------------
REGION TRO 115 (Vario)
#TRO115.stInSeparator1.Settings.nSeparatorNo := "cSep115.1";
#TRO115.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO115.stInSeparator1.Settings.tTrailingTime := t#800ms;
#TRO115.stInSeparator1.Settings.tHandlingTime := t#300ms;
#TRO115.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO115.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO115.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO115.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO115.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3025"];
#TRO115.stInSeparator1.Settings.tSenFree := t#2000ms;
#TRO115.stInSeparator1.Settings.tSenWait := T#5000ms;
#TRO115.stInVario.Settings.xContinousEmptying := FALSE;
#TRO115.stInVario.Settings.tWaitForJog := T#300ms;
#TRO115.stInVario.Settings.tConvEmpty := T#45000ms;
#TRO115.stInVario.Settings.nCountCarrier := 1;
#TRO115.stInVario.Settings.tWaitForStop := t#3s;
#TRO115.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO115.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO115.stInVario.Settings.tRasterHigh := t#5s;
#TRO115.stInVario.Settings.tRasterLow := t#5s;
#TRO115.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3026"]; // MT in Pos
#TRO115.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3027"]; // Pusher Dog in Pos
#TRO115.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3000"]; // Conveyor full
#TRO115.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3001"]; // Jam detector
#TRO115.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO115.stInVario.Settings.xJamSenDelayActive := TRUE;
#TRO115.stInVario.Settings.tJamSenDelay := T#2s;
#TRO115.stInSettings.xIsBorner := TRUE;
#TRO115(nInMainTroNo := "cMainTro115",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMainOF1.Q,
xInMotorProtection := "FC0145",
xInAllRdyToStart := TRUE,
xInReset := "cTodoFalse",
xInErrorQuit := "SF0002",
xInAutomatic := #t_Automatik_OF1 AND "SF0120",
xInRelease := "DB_TRO_TEST".TRO115,
arInOutJamEntr := "DB_JamArea4104".stJam4104_1.arCarrier,
stInOutJamEntr := "DB_JamArea4104".stJam4104_1.stData,
arInOutJamFinger := "DB_JamArea4103".stJam4103_1.arCarrier,
stInOutJamFinger := "DB_JamArea4103".stJam4103_1.stData,
stInOutMachineState := #stInOutControlUnitCabinetOF1,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO115,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro115"],
xOutStopper => "MB3025",
xOutVarioMotor => "MA0145");
END_REGION
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,62 @@
// TEMPLATE (ERGÄNZEND): Realer Instanziierungs-/Aufruf-Code für FB_ILS_MTRO_Vario_workStation
// ------------------------------------------------------------------------------------------
// Der volle FB-Körper liegt bereits lokal vor: FB_ILS_MTRO_Vario_workStation.scl (dieser Ordner).
// Diese Datei ergänzt zusätzlich die reale AUFRUFSTELLE (Parametrierung) aus:
// =A01+UH04-KF00\Programmbausteine\100_Main\FB_Main.scl (REGION "TRO 421 (Vario)")
// ------------------------------------------------------------------------------------------
REGION TRO 421 (Vario)
#TRO421.stInSeparator1.Settings.nSeparatorNo := "cSep421.1";
#TRO421.stInSeparator1.Settings.tTrailingTime := "cTimeSepTrailing";
#TRO421.stInSeparator1.Settings.tHandlingTime := t#200ms;
#TRO421.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#TRO421.stInSeparator1.Settings.tJam := "TimeForSepJam";
#TRO421.stInSeparator1.Settings.xPluggedJam := FALSE;
#TRO421.stInSeparator1.Settings.xPluggedPart := FALSE;
#TRO421.stInSeparator1.Settings.xPluggedScanner := FALSE;
#TRO421.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cInBG3326"];
#TRO421.stInSeparator1.Settings.tSenFree := T#1200ms;
#TRO421.stInSeparator1.Settings.tSenWait := T#4300ms;
#TRO421.stInVario.stSenFinger := "DB_Inputs".Sensors["cInBG3315"]; //Finger in Pos
#TRO421.stInVario.stSenLastPos := "DB_Inputs".Sensors["cInBG3317"]; // Conveyor full
#TRO421.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cInBG3324"]; // MT in Position
#TRO421.stInVario.stSenJam := "DB_Inputs".Sensors["cInBG3320"]; // Jam Detector
#TRO421.stInVario.Settings.xContinousEmptying := FALSE;
#TRO421.stInVario.Settings.tWaitForJog := T#400ms;
#TRO421.stInVario.Settings.tConvEmpty := T#30000ms;
#TRO421.stInVario.Settings.nCountCarrier := 1;
#TRO421.stInVario.Settings.tWaitForStop := T#3s;
#TRO421.stInVario.Settings.xJamSenDelayActive := TRUE;
#TRO421.stInVario.Settings.tJamSenDelay := T#2s;
#TRO421.stInVario.Settings.tCarrierInPosDelay := t#1200ms;
#TRO421.stInVario.Settings.tCarrierInPosEdgeDelay := t#100ms;
#TRO421.stInPriorityManager.xReleaseOk := TRUE; //braucht keine Vorfahrtsregelung
#TRO421.fbConvVario.xBeladenError := "DB_Inputs".Sensors["cInBG3325"].xDirectSensor;
#TRO421(nInMainTroNo := "cMainTro421",
xInSftyOk := "DB_InterfaceSafety".stFromSafety.EStopMain.Q,
xInAllRdyToStart := TRUE,
xInAutomatic := #t_automatik,
xInReset := "cTodoFalse",
xInRelease := "DB_TRO_Test".TRO421,
xInMotorProtection := "FC0062",
stInStationSensor:="DB_Inputs".Sensors["cInBG3314"],
xInReleaseStation:= #"rTrig_Workstation 1".CLK,
arInOutJamEntr := "DB_JamArea4004".stJam4004_2.arCarrier,
stInOutJamEntr := "DB_JamArea4004".stJam4004_2.stData,
arInOutJamFinger := "DB_JamArea4005".stJam4005_1.arCarrier,
stInOutJamFinger := "DB_JamArea4005".stJam4005_1.stData,
stInOutMachineState := #stInOutControlUnitCabinet,
stInOutCognexInterface := #stCognexInterfaceDummy,
stInOutHMI := "DB_Interface_HMI".stTRO.TRO421,
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro421"],
xOutStopper => "MB3326",
xOutVarioMotor => "MA0062");
END_REGION
@@ -0,0 +1,898 @@
FUNCTION_BLOCK "FB_LoadingBoom_INBOUND"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
stInControl : Struct // Bedienelemente
xBtnReleaseMT1 : Bool; // Taster 1 Freigabe für MT
xSwitchLoadingPos2 : Bool; // Knebelschalter Loading Pos 1 oder 2, true=2, false=1
xBtnBack : Bool; // Taster "Einfahren"
xBtnForth : Bool; // Taster "Ausfahren"
xBtnReleaseMT2 : Bool; // Taster 2 Freigabe für MT
xSwitchFootUp : Bool; // Knebelschalter "Hochfahren"
xSwitchFootDown : Bool; // Knebelschalter "Runterfahren"
xSwitchLightOnOff : Bool; // Knebelschalter Licht AN/AUS
xBtnBoomActive : Bool; // Taster Ladeschleife AN/AUS
xBtnReset : Bool; // Taster Reset
xSwitchFootManual : Bool; // Schlüsselschalter "Stützfuß verfahren"
END_STRUCT;
stInBoom : Struct // In Signale für Ausleger
xMotorProtection1 : Bool; // Meldekontakt Motorschutzschalter Motor 1
xMotorProtection2 : Bool; // **NIU**Meldekontakt Motorschutzschalter Motor 2
xLimitForth : Bool; // Endlage Vorne normal
xLimitForthEmergency : Bool; // Endlage Vorne NOT (normal überschritten)
xLimitBack : Bool; // Endlage Hinten normal
xLimitBackEmergency : Bool; // Endlage Hinten NOT (normal überschritten)
xBumperOk : Bool; // Bumper Stirnseitig
END_STRUCT;
stInFoot : Struct // In Signale für Stützfuß
xMotorProtection : Bool; // Meldekontakt Motorschutzschalter Stützfuß
xLimitUp : Bool; // Obere Endlage
xLimitDown : Bool; // Untere Endlage
END_STRUCT;
stInSettings : Struct
tBoomInput : Time := T#3500ms; // Zeit für Bediener-Eingabe Boom
tWheelInput : Time := T#3500ms; // Zeit für Bediener-Eingabe Wheel
tWaitForMove : Time := T#2500ms; // Zeit die bei Bewegungswunsch gewartet wird
tSenWaitStopper1 : Time := T#300ms; // Wartezeit zwischen Sensor und Stopper Clamp
tWaitAfterReleaseStopper1 : Time := T#4000ms; // Wartezeit nach MT Release
tWaitBeforeSwitchStopper2 : Time := T#4000ms;
tTrailingStopper2 : Time := T#1500ms; // Zeit wie lange ohne Belegung offen sein muss
END_STRUCT;
stInTilt : Struct // Neigungssensorik
wTilt : Word; // Eingangswert von Sensor
xClock : Bool; // Frequenz für Mittelwert Ermittlung
tDiff : Time; // Solange muss Abweichung bestehen damit nachgeregelt wird
tZero : Time; // Solange muss ca. Null bestehen damit gestoppt wird
nDiff : Int; // Abweichung > oder < als nDiff? ---> Nachregeln
nZeroOk : Int; // Bereich um Null in welchem nachregeln aufgehört wird
xComp : Bool; // Flanke um Kompensationswert einzustellen
nTiltComp : Int; // Wert von User um Tilt zu kompensieren, +X um größer zu werden, -X um kleiner zu werden
END_STRUCT;
stInDistance : Struct // Signale für Distanzsensor
wDistance : Word; // Rohwerte von Sensor
nStartSlow : Int; // Unterhalb diesen Wertes wird langsam gefahren
nStartFast : Int; // Oberhalb diesen Wertes wird schnell gefahren
nDistanceZero : Int; // Abstand der für Bodenkontakt steht
nDiff : Int; // Dieser Wert +- ist die Grenze ab der ein Fehler generiert wird bei Bodenkontakt
tDiff : Time; // Zeit wie lange die Differenz ansteht bis ein Fehler generiert wird
xComp : Bool; // Teach Bit um die Werte beizubringen
END_STRUCT;
stInSen2mThreshold : "UDT_Sensor"; // Induktiver Sensor Position 2m, true= unter 2m. false=über 2m
stInSenJamEntr : "UDT_Sensor"; // Sensor Stau nach Vario am Eingang
stInSenJamExit1 : "UDT_Sensor"; // Sensor Stau vor Vario am Ausgang
stInSenJamExit2 : "UDT_Sensor"; // Sensor Stau am Ende von Vario
stInSenStopper1 : "UDT_Sensor"; // Sensor KURZ VOR Stopper 1 von Arbeitsplatz
stInSenStopper2 : "UDT_Sensor"; // Sensor IN Stopper 2 von Arbeitsplatz
stInSenGrid : "UDT_Sensor"; // Sensor "Karussell dreht sich"
xInMachineRunning : Bool; // Machine Running
xInTrolleyInSep : Bool; // Separator vor dem Stopper hat einen Trolley
xInSafety : Bool; // Safety ok
END_VAR
VAR_OUTPUT
xOutLedMovement : Bool; // Orangene Warn Leuchte für Bewegung der Ladeschleife
xOutLight : Bool; // Beleuchtung Ladeschleife an der Decke
xOutBoomActive : Bool; // LS eingeschaltet, ready for use
xOutReady : Bool; // Bereit für TROs
xOutMoveReq : Bool; // Bereit um auf Bewegung der Ladeschleife umzuschalten
END_VAR
VAR_OUTPUT RETAIN
stOutStopper : Struct // Ausgänge Stopper allgemein
xStopper1Clamp : Bool; // Schiebe Stopper 1 vor
xStopper1Finger : Bool; // Schalte Stopper 1 runter
xStopper2 : Bool; // Öffne Stopper 2
xStopperEmpty : Bool; // Stopperstatus leer
xStopperFreeEdge : Bool; // Flanke dass Stopper frei wird
xStopperReceive : Bool; // Flanke dass Stopper aufnehmen will
END_STRUCT;
END_VAR
VAR_OUTPUT
stOutBoom : Struct // Ausgänge Ladeschleife allgemein
xBoomForth1 : Bool; // Rausfahren Motor 1
xBoomForth2 : Bool; // Rausfahren Motor 2
xBoomBack1 : Bool; // Zurückfahren Motor 1
xBoomBack2 : Bool; // Zurückfahren Motor 2
END_STRUCT;
stOutFoot : Struct // Ausgänge Stützfuß allgemein
xFootUp : Bool; // Hochfahren
xFootDown : Bool; // Runterfahren
xFootSpeed1 : Bool; // Geschwindigkeit 1 (Kriechgang)
END_STRUCT;
xOutCarousel : Bool; // Rechtslauf drehen
nOutState : Int; // Zustand des Bausteins
xOutLedBumper : Bool; // LED Bumper ausgelöst
xOutStopperState : Bool;
END_VAR
VAR_IN_OUT
arInOutCarrierStopper : Array[1..1] of "stCarrier"; // Carrierdaten im Stopper
arInOutCarrierExit : Array[*] of "stCarrier"; // Carrierdaten im Exitbereich
stInOutCarrierExit : "stJamData"; // JamStatus im Exitbereich
END_VAR
VAR
fbTiltSensor : "FB_Tilt_TEST";
fbDistanceFoot : "FB_DistanceFoot";
fbWorkSation : "FB_BoomWorkStation";
END_VAR
VAR RETAIN
nState : Int;
END_VAR
VAR
fbStateManager : "FB_StateManager";
rTrigBoomActive {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke von Ladeschleife einschalten
rTrigBtnForth {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für VOR-Taster
rTrigBtnBack {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für ZURÜCK-Taster
rTrigBtnReleaseMT {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Taster 1 und 2 am Arbeitsplatz
rTrigBtnReset {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Resettaster
rTrigLimitForth {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Vorne
rTrigLimitForthEmergency {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Vorne Rollenschalter
rTrigLimitBack {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Hinten
rTrigLimitBackEmergency {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Hinten Rollenschalter
rTrigLimitUp {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Oben
rTrigLimitDown {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für Endlage Unten
rTrigStopperFull {InstructionName := 'R_TRIG'; LibVersion := '1.0'} : R_TRIG; // Flanke für das Einfahren in den Stopper
tOnBoomInput {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Timer der abläuft wenn länger keine Eingabe durch Bediener erfolgt
tOnFootInput {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Timer der abläuft wenn länger keine Eingabe durch Bediener erfolgt
END_VAR
VAR RETAIN
tOnStopper2 {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Timer für Stopper 2 Release
tOnStopper1 {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME; // Timer für Stopper 1 Release
xBoomActive : Bool; // Ladeschleife ist eingeschaltet
xErrorLogical : Bool; // Fehlerbit Schrittkette
xErrorSensor : Bool; // **NIU**Fehlerbit Sensorik
xHightInvalid : Bool; // Höhenanpassung notwendig
xFloorReached : Bool; // Bodenhöhe erreicht für Schleichfahrt
xAbove2m : Bool; // Ausleger 2 m überschritten
xLight : Bool; // Lichtbit
xStopper1Active : Bool; // Stopper 1 ist aktiviert
xStopperBusy : Bool; // jeweiliger Stopper belegt
stTilt : Struct
nTiltRaw : Int;
nTiltMed : Int;
nTiltComp : Int;
xTiltPositive : Bool; // Neigungssensor zu hoch
xTiltNegative : Bool; // Neigungssensor zu niedrig
END_STRUCT;
END_VAR
VAR_TEMP
stTmpActuator : Struct
xForth : Bool;
xBack : Bool;
xUp : Bool;
xDown : Bool;
xCarousel : Bool;
END_STRUCT;
xTmpReady : Bool; // Signal dass Ausleger einsatzbereit bereit
xTmpMoveReq : Bool;
xTmpActUnivTon : Bool;
xTmpMtOnTheWay : Bool; // Es wird MT an Stopper geschickt
END_VAR
VAR CONSTANT
cStepOff : Int := 0;
cStepUndefined : Int := 100;
cStepIdle : Int := 200;
cStepStopper : Int := 250;
cStepWait : Int := 300;
cStepWaitForBoom : Int := 1000;
cStepMoveBoom : Int := 1500;
cStepWaitForFootMan : Int := 2000;
cStepMoveFootMan : Int := 2500;
cStepWaitForFootAutUp : Int := 3000;
cStepMoveFootAutUp : Int := 3500;
cStepWaitForFootAutDown : Int := 4000;
cStepMoveFootAutDown : Int := 4500;
cStepError : Int := 9999;
END_VAR
BEGIN
(*
Vor- und Zurückfahren: Nur manuell per Button. Nach Bumperauslösung nur zurück.
Normale induktive Endlagen melden Limit. Werden diese überfahren, dann kommt Rollenschalter der Strom abschaltet.
Hoch- und Runterfahren: 4 Bit => 1 oder 2 entspr. L oder R, beide false oder beide true entspr. AUS. 3 oder 4 entspr. v1 oder v2, 3 und 4 entspr. v1+v2
Nach induktivem 2m-Sensor -> automatisches Ausfahren
Baustein managed:
- das Verfahren vor/zurück/hoch/runter
- die Logik für den Arbeitsplatz
- das Regeln des Auslegers
- den Zustand des Auslegers (bereit aufzunehmen, Anforderung das Teile benötigt werden, busy, Position des Auslegers, Stoppen aller MTROs wenn gerade verfahren wird, Kreisel fahren/stoppen)
TROs auf dem Ausleger sind separat und kommunizieren extern mit ihm. Aufwand zu groß, die Schnittstellen der MainTROs nach außen zu führen,
sowie extra für Loading Boom alles extra mit SubTROs intern zu realisieren.
-Wenn zu viel MT nach Vario sind, dann darf nicht zurückgefahren werden
-normaler Separator vor Arbeiter hat Scanner
-Am Arbeitsplatz NACH Separator ist ein besonderer Stopper an der Strinseite und danach zusätzlich ein einfacher Stopper (Sep mit nur einem Stachel)
-Wird begonnen seitlich -> MT fährt an offenem ersten Stopper vorbei und Taster 1 lässt MT am zweiten Stopper raus
-Später wenn Boom weiter draußen ist wird am geschlossnem ersten Stopper gearbeitet und MT mit Taster 2 rausgelassen, worauf MT danach durch offenen zweiten Stopper fährt
*)
REGION Eingänge
(*
Beispiel:
c==========================Ausleger
|___ Abstand zu Boden 2 m
|
|___ Abstand zu Boden 60cm (>= 60cm schnell fahren - xFloorReachedEnd)
|
|___ Abstand zu Boden 50cm (<= 40cm langsam fahren - xFloorReachedStart)
|
O
///////////////////////////////Boden
*)
IF #fbDistanceFoot.xOutBelowThreshold(* #stInFoot.xFloorReachedStart *) THEN
#xFloorReached := TRUE;
ELSIF #fbDistanceFoot.xOutAboveThreshold (* #stInFoot.xFloorReachedEnd *) THEN
#xFloorReached := FALSE;
END_IF;
//ab 2 m ist Verwendung des Stützrades notwenig
// #x2mReached := #stInSen2mThreshold.xDbncdSensor; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Regelung für Foot außerhalb von Schrittkette mit FB aufrufen!!!!!!!!!!!!!
IF (#stInSen2mThreshold.xDbncdEdgeNeg AND #stInControl.xBtnForth) OR (NOT #stInSen2mThreshold.xDbncdSensor AND #stInSen2mThreshold.tDirectChangeLast > T#500ms) THEN
#xAbove2m := TRUE; //provisorisch
ELSIF (#stInSen2mThreshold.xDbncdEdgePos AND #stInControl.xBtnBack) OR (#stInSen2mThreshold.xDbncdSensor AND #stInSen2mThreshold.tDirectChangeLast > T#500ms) THEN
#xAbove2m := FALSE;
// ELSIF #rTrigBtnBack.Q OR #rTrigBtnForth.Q THEN
// #xAbove2m := FALSE; //provisorisch
END_IF;
REGION Flanken
#rTrigBoomActive(CLK:=#stInControl.xBtnBoomActive); //Ladeschleife einschalten
#rTrigBtnForth(CLK := #stInControl.xBtnForth); //Flanke für VOR-Taster
#rTrigBtnBack(CLK := #stInControl.xBtnBack); //Flanke für ZURÜCK-Taster
#rTrigBtnReleaseMT(CLK := #stInControl.xBtnReleaseMT1 OR #stInControl.xBtnReleaseMT2); //Flanke für Taster 1 und 2 am Arbeitsplatz
#rTrigBtnReset(CLK := #stInControl.xBtnReset); //Flanke für Resettaster
#rTrigLimitForth(CLK := #stInBoom.xLimitForth); //Flanke für Endlage Vorne
#rTrigLimitForthEmergency(CLK := #stInBoom.xLimitForthEmergency); //Flanke für Endlage Vorne Rollenschalter
#rTrigLimitBack(CLK := #stInBoom.xLimitBack); //Flanke für Endlage Hinten
#rTrigLimitBackEmergency(CLK := #stInBoom.xLimitBackEmergency); //Flanke für Endlage Hinten Rollenschalter
#rTrigLimitUp(CLK := #stInFoot.xLimitUp); //Flanke für Endlage Oben
#rTrigLimitDown(CLK := #stInFoot.xLimitDown); //Flanke für Endlage Unten
END_REGION
END_REGION
REGION Timer
//In Schritt MoveBoom wird Eingabe erwartet, wenn nichts kommt -> Schrittwechsel
#tOnBoomInput(IN := #nState = #cStepMoveBoom AND NOT #stInControl.xBtnForth AND NOT #stInControl.xBtnBack,
PT := #stInSettings.tBoomInput);
//In Schritt MoveWheel wird Eingabe erwartet, wenn nichts kommt -> Schrittwechsel
#tOnFootInput(IN := #nState = #cStepMoveFootMan AND NOT #stInControl.xSwitchFootUp AND NOT #stInControl.xSwitchFootDown,
PT := #stInSettings.tWheelInput);
// #tOnStopper1(IN:=#xStopper1Active AND #fbStopper1.nOutState >= 500,
// PT:=_time_in_);
END_REGION
REGION Distance Sensor
//IBN
// IF #fbDistanceFoot.nDistanceZero = 0 THEN
// //Entsrpicht in LL ungefähr dem Distance Abstand am Boden
// #fbDistanceFoot.nDistanceZero := 2460;
// END_IF;
// IF #fbDistanceFoot.nDiff = 0 THEN
// #fbDistanceFoot.nDiff := 50;
// END_IF;
//IBN
#fbDistanceFoot(xInUp:=#stOutFoot.xFootUp,
xInDown:=#stOutFoot.xFootDown,
wInDistance := #stInDistance.wDistance,
nInStartSlow := #stInDistance.nStartSlow, // Format z.B. 2799 für 2799mm
nInStartFast := #stInDistance.nStartFast,
nInDistanceZero := #stInDistance.nDistanceZero,
nInDiff := #stInDistance.nDiff,
tInDiff := #stInDistance.tDiff,
xInComp := #stInDistance.xComp,
xInOver2m := NOT #stInSen2mThreshold.xDbncdSensor);
// nOutDistance => "IBN".nDistance); VERSCHALTEN!!!!!!!!
END_REGION
REGION Logik Regelung / Neigung
//Ab Winkel +-X starte Nachregeln
// #xHightInvalid := "cTodoFalse"; //Höhenanpassung notwendig - to do
#fbTiltSensor.stInSettings.tDiff := #stInTilt.tDiff;//"DB_Interface_HMI_INBOUND".stBoomData1.tDiff;
#fbTiltSensor.stInSettings.tZero := #stInTilt.tZero;//"DB_Interface_HMI_INBOUND".stBoomData1.tZero;
#fbTiltSensor.stInSettings.nDiff := #stInTilt.nDiff;//"DB_Interface_HMI_INBOUND".stBoomData1.nTiltAbweichung;
#fbTiltSensor.stInSettings.nZeroOk := #stInTilt.nZeroOk;//"DB_Interface_HMI_INBOUND".stBoomData1.nTiltBereichZero;
#fbTiltSensor.stInSettings.xComp := #stInTilt.xComp;//"DB_Interface_HMI_INBOUND".stBoomData1.xComp;
#fbTiltSensor.stInSettings.nTiltComp := #stInTilt.nTiltComp;//"DB_Interface_HMI_INBOUND".stBoomData1.nTiltNullen;
#fbTiltSensor(wInTilt := #stInTilt.wTilt, //"wTiltSensor"
xInClock := #stInTilt.xClock, //"Clock_10Hz",//
xInTiltActive:= NOT #stInSen2mThreshold.xDbncdSensor,//"DB_Interface_HMI_INBOUND".stBoomData1.xTiltÜberwachungActive,
xInTiltAdjust:= #nState = #cStepWait);
#stTilt.nTiltMed := #fbTiltSensor.stOutTilt.nTiltCompMed;
#xHightInvalid := #fbTiltSensor.xOutToHigh OR #fbTiltSensor.xOutToLow;
//Format 1/100 Grad
//Beispiel:
//+4 = +0.04 Grad
//+14 = +0.14 Grad
//+114 = +1.14 Grad
//etc.
END_REGION
REGION Schrittkette
CASE #nState OF
#cStepOff:
REGION 000: Off
#nOutState := #cStepOff;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
END_REGION
#cStepUndefined:
REGION 100: Undefined
#nOutState := #cStepUndefined;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
//////////////////////////////////////
IF NOT #xErrorLogical AND #fbStateManager.tOutTimeInStep > T#1000ms THEN
#nState := #cStepIdle;
END_IF;
END_REGION
#cStepIdle:
REGION 200: Idle
//Idle Zustand in welchem Kreisel bereit ist und die MTROs normal arbeiten können
#nOutState := #cStepIdle;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := TRUE;
#xTmpMoveReq := FALSE;
///////////////////////////////////////
IF ((#rTrigBtnBack.Q AND NOT #stInBoom.xLimitBack) OR (#rTrigBtnForth.Q AND NOT #stInBoom.xLimitForth) OR NOT #stInBoom.xBumperOk) AND
NOT #fbWorkSation.xOutStationMovement THEN
#nState := #cStepWaitForBoom;
END_IF;
IF (#stInControl.xSwitchFootManual AND ((#stInControl.xSwitchFootUp AND NOT #stInFoot.xLimitUp) OR (#stInControl.xSwitchFootDown AND NOT #stInFoot.xLimitDown (* AND NOT #fbDistanceFoot.xOutGroundContact *)))) AND
NOT #fbWorkSation.xOutStationMovement THEN
#nState := #cStepWaitForFootMan;
END_IF;
// IF #xStopperBusy THEN
// #xTmpMtOnTheWay := TRUE;
// #nState := #cStepStopper;
// END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
// #cStepStopper:
// REGION 250: Stopper arbeitet
// // Warten für Stopperarbeit
// #nOutState := #cStepStopper;
// #stTmpActuator.xForth := FALSE;
// #stTmpActuator.xBack := FALSE;
// #stTmpActuator.xUp := FALSE;
// #stTmpActuator.xDown := FALSE;
// #stTmpActuator.xCarousel := FALSE;
// #xTmpReady := TRUE;
// #xTmpMoveReq := FALSE;
// //////////////////////////////////////////////
// // IF NOT #xHightInvalid THEN
// // #nState := #cStepMoveBoom;//#cStepUndefined;
// // END_IF;
// // AND NOT #fbWorkSation.xOutStationMovement ....
// // IF ((#rTrigBtnBack.Q AND NOT #stInBoom.xLimitBack) OR (#rTrigBtnForth.Q AND NOT #stInBoom.xLimitForth) OR NOT #stInBoom.xBumperOk) AND
// // ((#xStopper1Active AND NOT #fbStopper1.xOutStopper) OR (NOT #xStopper1Active AND NOT #fbStopper2.xOutStopper)) THEN
// // #nState := #cStepWaitForBoom;
// // END_IF;
// // IF (#stInControl.xSwitchFootManual AND ((#stInControl.xSwitchFootUp AND NOT #stInFoot.xLimitUp) OR (#stInControl.xSwitchFootDown AND NOT #stInFoot.xLimitDown AND NOT #fbDistanceFoot.xOutGroundContact))) AND
// // ((#xStopper1Active AND NOT #fbStopper1.xOutStopper) OR (NOT #xStopper1Active AND NOT #fbStopper2.xOutStopper)) THEN
// // #nState := #cStepWaitForFootMan;
// // END_IF;
// // IF (NOT #xStopper1Active AND #fbStopper2.xOutReleaseDone) OR
// // (#xStopper1Active AND #fbStopper1.xOutReleaseDone) THEN
// // #xStopperBusy := FALSE;
// // #xTmpStopperFreeEdge := TRUE;
// // #nState := #cStepIdle;
// // END_IF;
// IF #xErrorLogical THEN
// #nState := #cStepError;
// END_IF;
// END_REGION
#cStepWait:
REGION 300: Wait
// Warten für Zustandswechsel
#nOutState := #cStepWait;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := #fbTiltSensor.xOutToHigh;
#stTmpActuator.xDown := #fbTiltSensor.xOutToLow;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
//////////////////////////////////////////////
IF NOT #xHightInvalid THEN
#nState := #cStepMoveBoom;//#cStepUndefined;
END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepWaitForBoom:
REGION 1000: Wait for Boom
#nOutState := #cStepWaitForBoom;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := TRUE;
///////////////////////////////////////////////
IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForMove OR NOT #stInBoom.xBumperOk THEN
#nState := #cStepMoveBoom;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepMoveBoom:
REGION 1500: Move Boom
#nOutState := #cStepMoveBoom;
#stTmpActuator.xForth := #stInControl.xBtnForth AND NOT #stInControl.xBtnBack AND NOT #stInBoom.xLimitForth AND NOT #fbDistanceFoot.xOutError AND ((NOT #xAbove2m AND #stInFoot.xLimitUp) OR (#xAbove2m AND #fbDistanceFoot.xOutGroundContact));
#stTmpActuator.xBack := #stInControl.xBtnBack AND NOT #stInControl.xBtnForth AND NOT #stInBoom.xLimitBack AND NOT #fbDistanceFoot.xOutError AND ((NOT #xAbove2m AND #stInFoot.xLimitUp) OR (#xAbove2m AND #fbDistanceFoot.xOutGroundContact));
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
////////////////////////////////////////////
// IF #stInLimitBoom.stSenThreshold.xDbncdSensor
IF #tOnBoomInput.Q AND #stInBoom.xBumperOk THEN
#nState := #cStepIdle;
END_IF;
IF #stInSen2mThreshold.xDbncdEdgeNeg AND #stInControl.xBtnForth THEN
#nState := #cStepWaitForFootAutDown;
END_IF;
IF (#stInSen2mThreshold.xDbncdEdgePos AND #stInControl.xBtnBack) OR
(#stInSen2mThreshold.xDirectSensor AND NOT #stInFoot.xLimitUp AND #stInControl.xBtnBack) THEN
#nState := #cStepWaitForFootAutUp;
END_IF;
IF #xHightInvalid THEN
#nState := #cStepWait;
END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepWaitForFootMan:
REGION 2000: Wait for Foot Manually
#nOutState := #cStepWaitForFootMan;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;//#stInControl.xSwitchFootUp AND NOT #stInControl.xSwitchFootDown AND NOT #stInFoot.xLimitUp;
#stTmpActuator.xDown := FALSE;//#stInControl.xSwitchFootDown AND NOT #stInControl.xSwitchFootUp AND NOT #stInFoot.xLimitDown;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := TRUE;
///////////////////////////////////////////////
IF NOT #stInControl.xSwitchFootManual THEN
#nState := #cStepIdle;
END_IF;
IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForMove THEN
#nState := #cStepMoveFootMan;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepMoveFootMan:
REGION 2500: Move Foot Manually
#nOutState := #cStepMoveFootMan;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := #stInControl.xSwitchFootUp AND NOT #stInControl.xSwitchFootDown AND NOT #stInFoot.xLimitUp;
#stTmpActuator.xDown := #stInControl.xSwitchFootDown AND NOT #stInControl.xSwitchFootUp AND NOT #stInFoot.xLimitDown(* AND NOT #fbDistanceFoot.xOutGroundContact *);
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
/////////////////////////////////////////////
IF #tOnFootInput.Q OR NOT #stInControl.xSwitchFootManual THEN
#nState := #cStepIdle;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepWaitForFootAutUp:
REGION 3000: Wait for Foot Automatic Up
#nOutState := #cStepWaitForFootAutUp;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
///////////////////////////////////////////////
IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForMove THEN
#nState := #cStepMoveFootAutUp;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepMoveFootAutUp:
REGION 3500: Move Foot Automatic Up
#nOutState := #cStepMoveFootAutUp;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := NOT #stInFoot.xLimitUp;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
/////////////////////////////////////////////
//Nur zum Testen dieses IF
IF #stInFoot.xLimitUp THEN
#nState := #cStepIdle;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepWaitForFootAutDown:
REGION 4000: Wait for Foot Automatic Down
#nOutState := #cStepWaitForFootAutDown;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
///////////////////////////////////////////////
IF #fbStateManager.tOutTimeInStep > #stInSettings.tWaitForMove THEN
#nState := #cStepMoveFootAutDown;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepMoveFootAutDown:
REGION 4500: Move Foot Automatic Down
#nOutState := #cStepMoveFootAutDown;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := NOT (#fbDistanceFoot.nOutDistance <= 2460 AND #fbDistanceFoot.nOutDistance >= 2455) AND #stInControl.xBtnForth;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
/////////////////////////////////////////////
IF #fbDistanceFoot.nOutDistance <= 2460 AND #fbDistanceFoot.nOutDistance >= 2455 THEN
#nState := #cStepIdle;
END_IF;
// IF #xHightInvalid THEN
// #nState := #cStepWait;
// END_IF;
IF #xErrorLogical THEN
#nState := #cStepError;
END_IF;
END_REGION
#cStepError:
REGION 9999: Error
#nOutState := #cStepError;
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
/////////////////////////////////////////////////
IF NOT #xErrorLogical THEN
#nState := #cStepUndefined;
END_IF;
END_REGION
ELSE // Statement section ELSE
#stTmpActuator.xForth := FALSE;
#stTmpActuator.xBack := FALSE;
#stTmpActuator.xUp := FALSE;
#stTmpActuator.xDown := FALSE;
#stTmpActuator.xCarousel := FALSE;
#xTmpReady := FALSE;
#xTmpMoveReq := FALSE;
#nState := #cStepUndefined;
END_CASE;
END_REGION
REGION State Manager
IF #rTrigBoomActive.Q AND #xInMachineRunning AND #xInSafety(* AND NOT #xAbove2m AND #stInBoom.xLimitBack AND #stInFoot.xLimitUp AND NOT #xErrorLogical *) THEN
// IF #nState = #cStepIdle THEN
#xBoomActive := NOT #xBoomActive;
// END_IF;
ELSIF NOT #xInMachineRunning OR NOT #xInSafety THEN
#xBoomActive := FALSE;
END_IF;
#fbStateManager.stInSettings.nStartState := #cStepUndefined;
#fbStateManager.stInSettings.xActUnivTOn := TRUE;
#fbStateManager.stInSettings.xRestartAtStartState := FALSE;
#fbStateManager(xInFunctionEnabled := #xBoomActive,// stInControl.xBtnBoomActive
xInRunUnivTOn := #xTmpActUnivTon,
nInOutState := #nState);
END_REGION
REGION Stopper Arbeitsplatz
#fbWorkSation(xInRunning := #xBoomActive,
xInSwitchPosition2 := #stInControl.xSwitchLoadingPos2,
xInReceivingMT := #xInTrolleyInSep,
xInReleaseMT := #rTrigBtnReleaseMT.Q AND #nState = #cStepIdle,
stInSenStopper1 := #stInSenStopper1,
stInSenStopper2 := #stInSenStopper2,
stInSenJamExit1:= #stInSenJamExit1,
stInSenJamExit2:= #stInSenJamExit2,
tInSenWaitStopper1 := #stInSettings.tSenWaitStopper1,
tInWaitAfterReleaseStopper1 := #stInSettings.tWaitAfterReleaseStopper1,
tInWaitBeforeSwitchStopper2:=#stInSettings.tWaitBeforeSwitchStopper2,
tInTrailingStopper2 := #stInSettings.tTrailingStopper2,
// xOutReadyForReceiving => #stOutStopper.xStopperReceive,
xOutStopper1Clamp => #stOutStopper.xStopper1Clamp,
xOutStopper1 => #stOutStopper.xStopper1Finger,
xOutStopper2 => #stOutStopper.xStopper2,
arInOutCarrierStopper := #arInOutCarrierStopper,
arInOutCarrierExit := #arInOutCarrierExit,
stInOutCarrierExit:= #stInOutCarrierExit);
#xOutStopperState := #fbWorkSation.xStopperFull;
// #rTrigStopperFull(CLK:=#arInOutCarrierStopper[1].bStatus.%X0 OR #xInTrolleyInSep);
// IF #rTrigStopperFull.Q THEN
// #xStopperBusy := TRUE;
// //wird in Schrittkette zurückgesetzt
// END_IF;
// IF #nState = #cStepIdle THEN
// IF #stInControl.xSwitchLoadingPos1 AND NOT #xStopperBusy THEN
// #xStopper1Active := TRUE;
// ELSIF NOT #stInControl.xSwitchLoadingPos1 AND NOT #xStopperBusy THEN
// #xStopper1Active := FALSE;
// END_IF;
// END_IF;
// #fbStopper1(stInSensor := #stInSenStopper1,
// stInSensorNext:=#stInSenStopper2,
// tInSenWait := #stInSettings.tStopper1SenWait,//T#300ms,
// tInWaitAfterRelease := #stInSettings.tStopper1WaitAfterRelease,//T#4000ms,
// xInActive:=#xStopper1Active,
// xInSwitchReq:=NOT #stInControl.xSwitchLoadingPos1,
// xInRelease := #rTrigBtnReleaseMT.Q AND #nState = #cStepStopper,
// xInReceive := #xTmpMtOnTheWay,
// xOutClamp => #stOutStopper.xStopper1Clamp,
// xOutStopper => #stOutStopper.xStopper1Finger);
// #fbStopper2(stInSensor := #stInSenStopper2,
// tInTrailing := #stInSettings.tStopper2Trailing,//T#1500ms,
// xInActive := NOT #xStopper1Active,
// xInRelease := #rTrigBtnReleaseMT.Q AND #nState = #cStepStopper,
// xInReceive := #xTmpMtOnTheWay,
// xOutStopper => #stOutStopper.xStopper2);
END_REGION
REGION Fehler Handling
IF (* NOT #xInSafety OR *) NOT #stInBoom.xMotorProtection1 OR NOT #stInFoot.xMotorProtection OR
#fbTiltSensor.xOutTeachNec OR #fbDistanceFoot.xOutTeachNec OR
(#stInBoom.xLimitForth AND #stInBoom.xLimitBack) OR
(#stInBoom.xLimitForthEmergency AND #stInBoom.xLimitBackEmergency) OR
(#stInFoot.xLimitUp AND #stInFoot.xLimitDown) OR
(#stTmpActuator.xForth AND (#rTrigLimitBack.Q OR #rTrigLimitBackEmergency.Q OR #rTrigLimitForthEmergency.Q)) OR
(#stTmpActuator.xBack AND (#rTrigLimitForth.Q OR #rTrigLimitForthEmergency.Q OR #rTrigLimitBackEmergency.Q)) OR
(#stTmpActuator.xUp AND #rTrigLimitDown.Q) OR
(#stTmpActuator.xDown AND #rTrigLimitUp.Q) THEN
#xErrorLogical := TRUE; //Fehler
ELSIF #xInSafety AND #stInBoom.xMotorProtection1 AND #stInFoot.xMotorProtection AND #stInControl.xBtnReset THEN
#xErrorLogical := FALSE;
END_IF;
END_REGION
REGION Ausgänge
REGION Licht / Leuchtmelder
// IF #rTrigBtnLight.Q THEN
// #xLight := NOT #xLight;
// END_IF;
//Licht an-/ausschalten am Arbeitsplatz
#xOutLight := #xLight := #stInControl.xSwitchLightOnOff;
//LED Boom ready for use
#xOutBoomActive := #xBoomActive;
#xOutLedMovement :=
//Dauerleuchten=Boom wartet und Sep stoppt
//Langsam blinken=Nivellieren
//Schnell blinken=Boom oder Foot fährt
//Sehr schnell blinken = Endlage bereits erreicht
(#nState = #cStepWaitForBoom OR #nState = #cStepWaitForFootMan OR #nState = #cStepWaitForFootAutDown OR #nState = #cStepWaitForFootAutUp) OR
(#nState = #cStepWait AND "Clock_1Hz") OR
((#nState = #cStepMoveBoom OR #nState = #cStepMoveFootMan OR #nState = #cStepMoveFootAutUp OR #nState = #cStepMoveFootAutDown) AND "Clock_2.5Hz") OR
(((#nState = #cStepIdle (* OR #nState = #cStepStopper *)) AND ((#stInControl.xBtnBack AND #stInBoom.xLimitBack) OR (#stInControl.xBtnForth AND #stInBoom.xLimitForth) OR (#stInControl.xSwitchFootDown AND #fbDistanceFoot.xOutGroundContact AND #stInControl.xSwitchFootManual) OR (#stInControl.xSwitchFootUp AND #stInFoot.xLimitUp AND #stInControl.xSwitchFootManual))) AND "Clock_10Hz");
#xOutLedBumper := NOT #stInBoom.xBumperOk;
END_REGION
REGION Antriebe
#xOutCarousel := #stTmpActuator.xCarousel;
#stOutBoom.xBoomForth2 := #stOutBoom.xBoomForth1 := #stTmpActuator.xForth AND #stInBoom.xBumperOk;
#stOutBoom.xBoomBack2 := #stOutBoom.xBoomBack1 := #stTmpActuator.xBack;
// #xOutFoot400V := "cTodoFalse"; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#stOutFoot.xFootUp := #stTmpActuator.xUp;
#stOutFoot.xFootDown := #stTmpActuator.xDown;
IF #xFloorReached THEN //Boden erreicht
#stOutFoot.xFootSpeed1 := TRUE; //langsam
// #xOutFootSpeed2 := FALSE; //schnell NIU
ELSE //Boden noch nicht erreicht
#stOutFoot.xFootSpeed1 := FALSE; //langsam
// #xOutFootSpeed2 := TRUE; //schnell NIU
END_IF;
END_REGION
#xOutReady := #xTmpReady;
#xOutMoveReq := #xTmpMoveReq;
#stOutStopper.xStopperEmpty := NOT #xStopperBusy;
#stOutStopper.xStopperReceive := #nState = #cStepIdle AND NOT #fbWorkSation.xOutStationMovement AND #fbWorkSation.xOutReadyForReceiving;
END_REGION
END_FUNCTION_BLOCK
+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 200" width="720" height="200" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>1Sep - standard separator</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
</defs>
<rect x="0" y="0" width="720" height="200" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#d4e8ff" stroke="#3388cc" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">1Sep</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_1Sep</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="100" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="127.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="285" y="88" width="150" height="68" rx="10" ry="10" fill="#d4e8ff" stroke="#3388cc" stroke-width="2.2"/>
<text x="360.0" y="119.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">1Sep</text>
<text x="360.0" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">Stopper MB · sensor BG</text>
<rect x="540" y="100" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="615.0" y="127.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit JamArea</text>
<line x1="180" y1="122" x2="285" y2="122" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="221.3" y="104.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="232.5" y="116.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="435" y1="122" x2="540" y2="122" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="458.3" y="104.0" width="58.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="487.5" y="116.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">release</text>
<text x="360" y="180" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">one entry → one exit; holds carrier at the stopper, releases one</text>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

+31
View File
@@ -0,0 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 240" width="720" height="240" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>1Sep1Swi - separator + 1 switch</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_cc8800" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#cc8800"/></marker>
</defs>
<rect x="0" y="0" width="720" height="240" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#ffe4a0" stroke="#cc8800" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">1Sep1Swi</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_1Sep1Swi</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="100" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="127.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="275" y="88" width="165" height="68" rx="10" ry="10" fill="#ffe4a0" stroke="#cc8800" stroke-width="2.2"/>
<text x="357.5" y="119.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">1Sep1Swi</text>
<text x="357.5" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">Stopper + Switch</text>
<rect x="545" y="58" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="620.0" y="84.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit · Dir1</text>
<rect x="545" y="148" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="620.0" y="174.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit · Dir2</text>
<line x1="180" y1="122" x2="275" y2="122" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="216.3" y="104.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="227.5" y="116.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="440" y1="112" x2="545" y2="79" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="474.1" y="77.5" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="492.5" y="89.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">Dir1</text>
<line x1="440" y1="132" x2="545" y2="169" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<rect x="474.1" y="132.5" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="492.5" y="144.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#cc8800">Dir2</text>
<text x="360" y="222" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">switch routes to two exits; direction from FC_Direction</text>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

+43
View File
@@ -0,0 +1,43 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" width="760" height="300" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>1Sep2Swi - separator + 2 switches</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_777777" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#777777"/></marker>
<marker id="arw_b35900" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#b35900"/></marker>
<marker id="arw_cc8800" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#cc8800"/></marker>
</defs>
<rect x="0" y="0" width="760" height="300" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#ffe4a0" stroke="#cc8800" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">1Sep2Swi</text>
<text x="748" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_1Sep2Swi</text>
<line x1="12" y1="34" x2="748" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="24" y="128" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="99.0" y="154.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="24" y="46" width="150" height="36" rx="18.0" ry="18.0" fill="#ffecec" stroke="#cc3333" stroke-width="2.2"/>
<text x="99.0" y="69.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Scanner (barcode)</text>
<rect x="260" y="116" width="175" height="70" rx="10" ry="10" fill="#ffe4a0" stroke="#cc8800" stroke-width="2.2"/>
<text x="347.5" y="148.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">1Sep2Swi</text>
<text x="347.5" y="166.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">Stopper + 2 switches</text>
<rect x="575" y="44" width="160" height="40" rx="20.0" ry="20.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="655.0" y="69.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit 2 · dir</text>
<rect x="575" y="130" width="160" height="40" rx="20.0" ry="20.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="655.0" y="155.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit 3</text>
<rect x="575" y="216" width="160" height="40" rx="20.0" ry="20.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="655.0" y="241.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit 4</text>
<line x1="174" y1="149" x2="260" y2="149" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="205.8" y="131.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="217.0" y="143.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="174" y1="64" x2="300" y2="116" stroke="#777777" stroke-width="2.0" stroke-dasharray="1,4" marker-end="url(#arw_777777)"/>
<rect x="218.6" y="72.0" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="237.0" y="84.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#777777">scan</text>
<line x1="435" y1="138" x2="575" y2="64" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<rect x="483.0" y="83.0" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="505.0" y="95.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#cc8800">exit2</text>
<line x1="435" y1="151" x2="575" y2="150" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="483.0" y="132.5" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="505.0" y="144.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">exit3</text>
<line x1="435" y1="164" x2="575" y2="236" stroke="#b35900" stroke-width="2.0" stroke-dasharray="2,3" marker-end="url(#arw_b35900)"/>
<rect x="483.0" y="182.0" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="505.0" y="194.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#b35900">exit4</text>
<text x="380" y="288" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">two switches → up to three routed exits + entry scanner</text>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

+31
View File
@@ -0,0 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 240" width="760" height="240" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>1Sep_SSCC - separator + SSCC scanner</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_777777" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#777777"/></marker>
</defs>
<rect x="0" y="0" width="760" height="240" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#ffd4d4" stroke="#cc3333" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">1Sep_SSCC</text>
<text x="748" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_1Sep_SSCC</text>
<line x1="12" y1="34" x2="748" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="24" y="110" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="99.0" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="265" y="96" width="190" height="72" rx="10" ry="10" fill="#ffd4d4" stroke="#cc3333" stroke-width="2.2"/>
<text x="360.0" y="129.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">1Sep_SSCC</text>
<text x="360.0" y="147.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">Barcode + SSCC + end-meas.</text>
<rect x="585" y="110" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="660.0" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit JamArea</text>
<rect x="300" y="24" width="150" height="36" rx="18.0" ry="18.0" fill="#eef2f7" stroke="#557799" stroke-width="2.2"/>
<text x="375.0" y="47.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">WCS / WES</text>
<line x1="174" y1="132" x2="265" y2="132" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="208.3" y="114.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="219.5" y="126.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="455" y1="132" x2="585" y2="132" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="490.8" y="114.0" width="58.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="520.0" y="126.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">release</text>
<line x1="360" y1="96" x2="375" y2="60" stroke="#777777" stroke-width="2.0" stroke-dasharray="1,4" marker-end="url(#arw_777777)"/>
<rect x="345.5" y="60.0" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="367.5" y="72.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#777777">DReqM</text>
<text x="380" y="220" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">1Sep + second SSCC scanner + dock-request telegram to WCS</text>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

+32
View File
@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 250" width="720" height="250" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>2Sep1Swi - unused concept block</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_cc8800" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#cc8800"/></marker>
</defs>
<rect x="0" y="0" width="720" height="250" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#ffe4a0" stroke="#cc8800" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">2Sep1Swi</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_2Sep1Swi</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="48" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="74.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry 1</text>
<rect x="30" y="150" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="176.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry 2</text>
<rect x="285" y="96" width="165" height="70" rx="10" ry="10" fill="#ffe4a0" stroke="#cc8800" stroke-width="2.2"/>
<text x="367.5" y="128.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">2Sep1Swi</text>
<text x="367.5" y="146.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">2 separators + switch</text>
<rect x="545" y="60" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="620.0" y="86.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit 2</text>
<rect x="545" y="150" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="620.0" y="176.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit 3</text>
<line x1="180" y1="69" x2="285" y2="115" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<line x1="180" y1="171" x2="285" y2="150" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<line x1="450" y1="118" x2="545" y2="81" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="475.5" y="81.5" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="497.5" y="93.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">exit2</text>
<line x1="450" y1="142" x2="545" y2="171" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<rect x="475.5" y="138.5" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="497.5" y="150.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#cc8800">exit3</text>
<text x="360" y="232" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">prepared but never instantiated in any FB_Main (concept only)</text>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 298" width="560" height="298" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>Edge / connection line-type legend</title>
<defs>
<marker id="arw_3388cc" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#3388cc"/></marker>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_557799" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#557799"/></marker>
<marker id="arw_777777" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#777777"/></marker>
<marker id="arw_883388" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#883388"/></marker>
<marker id="arw_b35900" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#b35900"/></marker>
<marker id="arw_cc8800" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#cc8800"/></marker>
</defs>
<rect x="0" y="0" width="560" height="298" fill="#ffffff"/>
<text x="16" y="30" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="17" font-weight="700" fill="#111">Connection line types</text>
<line x1="16" y1="42" x2="544" y2="42" stroke="#e0e0e0" stroke-width="1"/>
<line x1="20" y1="66" x2="120" y2="66" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<text x="134" y="70" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#444444">normal</text>
<text x="210" y="70" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">standard transfer (jam area to jam area)</text>
<line x1="20" y1="100" x2="120" y2="100" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<text x="134" y="104" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#cc8800">dir2</text>
<text x="210" y="104" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">switch output, direction 2 (FC_Direction)</text>
<line x1="20" y1="134" x2="120" y2="134" stroke="#b35900" stroke-width="2.0" stroke-dasharray="2,3" marker-end="url(#arw_b35900)"/>
<text x="134" y="138" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#b35900">dir3</text>
<text x="210" y="138" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">switch output, direction 3 (FC_Direction)</text>
<line x1="20" y1="168" x2="120" y2="168" stroke="#3388cc" stroke-width="2.6" stroke-dasharray="13,5" marker-end="url(#arw_3388cc)"/>
<text x="134" y="172" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#3388cc">bypass</text>
<text x="210" y="172" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">bypass around a storage block (PinStore)</text>
<line x1="20" y1="202" x2="120" y2="202" stroke="#883388" stroke-width="2.6" stroke-dasharray="9,3,2,3" marker-end="url(#arw_883388)"/>
<text x="134" y="206" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#883388">finger</text>
<text x="210" y="206" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">chain-conveyor finger / index transfer</text>
<line x1="20" y1="236" x2="120" y2="236" stroke="#777777" stroke-width="2.0" stroke-dasharray="1,4" marker-end="url(#arw_777777)"/>
<text x="134" y="240" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#777777">PLC</text>
<text x="210" y="240" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">PLC / WCS boundary, telegram or handshake</text>
<line x1="20" y1="270" x2="120" y2="270" stroke="#557799" stroke-width="2.6" marker-end="url(#arw_557799)"/>
<text x="134" y="274" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#557799">EXTERN</text>
<text x="210" y="274" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#555">infeed / outfeed to another PLC (EXTERN)</text>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

@@ -0,0 +1,37 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 290" width="760" height="290" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>EmptyCarrBuffer - empty carrier buffer</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_cc8800" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#cc8800"/></marker>
</defs>
<rect x="0" y="0" width="760" height="290" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#d4f0d4" stroke="#338833" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">EmptyCarrBuffer</text>
<text x="748" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_EmptyCarrBuffer</text>
<line x1="12" y1="34" x2="748" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="24" y="120" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="99.0" y="146.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">inTro · borner</text>
<rect x="250" y="108" width="175" height="70" rx="10" ry="10" fill="#d4f0d4" stroke="#338833" stroke-width="2.2"/>
<text x="337.5" y="140.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">EmptyCarrBuffer</text>
<text x="337.5" y="158.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">distribution switch</text>
<rect x="560" y="44" width="120" height="36" rx="18.0" ry="18.0" fill="#eef7ee" stroke="#338833" stroke-width="2.2"/>
<text x="620.0" y="67.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Line 1</text>
<rect x="560" y="108" width="120" height="36" rx="18.0" ry="18.0" fill="#eef7ee" stroke="#338833" stroke-width="2.2"/>
<text x="620.0" y="131.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Line 2</text>
<rect x="560" y="172" width="120" height="36" rx="18.0" ry="18.0" fill="#eef7ee" stroke="#338833" stroke-width="2.2"/>
<text x="620.0" y="195.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Line n</text>
<rect x="560" y="236" width="120" height="36" rx="18.0" ry="18.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="620.0" y="259.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit JamArea</text>
<line x1="174" y1="141" x2="250" y2="141" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="200.8" y="123.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="212.0" y="135.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="425" y1="128" x2="560" y2="62" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<line x1="425" y1="140" x2="560" y2="126" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<line x1="425" y1="152" x2="560" y2="190" stroke="#cc8800" stroke-width="2.0" stroke-dasharray="7,4" marker-end="url(#arw_cc8800)"/>
<rect x="470.5" y="153.0" width="44.0" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="492.5" y="165.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#cc8800">lines</text>
<line x1="425" y1="165" x2="560" y2="254" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="474.1" y="191.5" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="492.5" y="203.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">exit</text>
<text x="380" y="282" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">multi-line buffer for empty carriers, fed by a preceding borner (inTro)</text>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

@@ -0,0 +1,509 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
gen_tro_graphs.py -- Documentation image generator for the TRO catalog.
Produces two families of pictures into this folder (doc/TRO_Katalog/tro_graphs/):
1. Schematic SVGs, one per TRO type, showing the block together with its
*possible* connecting edges (normal / dir2 / dir3 / bypass / finger / PLC-EXTERN),
each edge drawn with its own colour + line style. Plus a shared `edge_legend.svg`.
2. One Graphviz `.dot` file per controller (uh01..uh05) built from `../connect.ini`,
rendered to `.svg`. Nodes are coloured by TRO type, edges styled by connection kind.
This is a *doc tooling* script (not the SCL generator that belongs in lib/).
Re-run after editing connect.ini:
py doc/TRO_Katalog/tro_graphs/gen_tro_graphs.py
Requires Graphviz `dot` on PATH or at the default Windows install location.
"""
from __future__ import annotations
import configparser
import os
import shutil
import subprocess
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
CONNECT_INI = os.path.join(HERE, "..", "connect.ini")
# ----------------------------------------------------------------------------
# Shared style system (kept identical between the schematics and the dot graphs)
# ----------------------------------------------------------------------------
# TRO type -> (fill, stroke) -- matches the colour legend in TRO_Katalog.md
TYPE_STYLE = {
"1Sep": ("#d4e8ff", "#3388cc"),
"1Sep1Swi": ("#ffe4a0", "#cc8800"),
"1Sep2Swi": ("#ffe4a0", "#cc8800"),
"1Sep_SSCC": ("#ffd4d4", "#cc3333"),
"Vario": ("#e8d4f0", "#883388"),
"Vario_workStation": ("#e8d4f0", "#883388"),
"PinStore_Auto": ("#d4f0d4", "#338833"),
"EmptyCarrBuffer": ("#d4f0d4", "#338833"),
"LoadingBoom": ("#f0f0f0", "#888888"),
"LoadingBoom_INBOUND": ("#f0f0f0", "#888888"),
"2Sep1Swi": ("#ffe4a0", "#cc8800"),
}
# connection kind -> (colour, svg-dash, dot-style, label, human description)
EDGE = {
"normal": ("#444444", None, "solid", "normal", "standard transfer (jam area to jam area)"),
"dir2": ("#cc8800", "7,4", "dashed", "dir2", "switch output, direction 2 (FC_Direction)"),
"dir3": ("#b35900", "2,3", "dotted", "dir3", "switch output, direction 3 (FC_Direction)"),
"bypass": ("#3388cc", "13,5", "dashed", "bypass", "bypass around a storage block (PinStore)"),
"finger": ("#883388", "9,3,2,3", "dashdot","finger", "chain-conveyor finger / index transfer"),
"plc": ("#777777", "1,4", "dashed", "PLC", "PLC / WCS boundary, telegram or handshake"),
"extern": ("#557799", None, "solid", "EXTERN", "infeed / outfeed to another PLC (EXTERN)"),
}
FONT = "Segoe UI, Helvetica, Arial, sans-serif"
# ----------------------------------------------------------------------------
# Minimal SVG builder for the per-type schematics
# ----------------------------------------------------------------------------
class Svg:
def __init__(self, w, h, title):
self.w, self.h = w, h
self.title = title
self.body = []
self._markers = set()
def marker_id(self, color):
mid = "arw_" + color.lstrip("#")
self._markers.add(color)
return mid
def node(self, x, y, w, h, fill, stroke, title, sub=None, rx=10, dash=None,
title_size=15, sub_size=11):
d = f' stroke-dasharray="{dash}"' if dash else ""
self.body.append(
f'<rect x="{x}" y="{y}" width="{w}" height="{h}" rx="{rx}" ry="{rx}" '
f'fill="{fill}" stroke="{stroke}" stroke-width="2.2"{d}/>')
cx = x + w / 2
if sub:
self.body.append(
f'<text x="{cx}" y="{y+h/2-3}" text-anchor="middle" '
f'font-family="{FONT}" font-size="{title_size}" font-weight="600" '
f'fill="#1a1a1a">{esc(title)}</text>')
self.body.append(
f'<text x="{cx}" y="{y+h/2+15}" text-anchor="middle" '
f'font-family="{FONT}" font-size="{sub_size}" fill="#555">{esc(sub)}</text>')
else:
self.body.append(
f'<text x="{cx}" y="{y+h/2+5}" text-anchor="middle" '
f'font-family="{FONT}" font-size="{title_size}" font-weight="600" '
f'fill="#1a1a1a">{esc(title)}</text>')
def stadium(self, x, y, w, h, title, fill="#f4f4f4", stroke="#999", size=11):
self.node(x, y, w, h, fill, stroke, title, rx=h / 2, title_size=size)
def edge(self, x1, y1, x2, y2, kind, label=None, label_dy=-6, curve=0):
color, dash, _, _, _ = EDGE[kind]
mid = self.marker_id(color)
d = f' stroke-dasharray="{dash}"' if dash else ""
w = 2.6 if kind in ("finger", "bypass", "extern") else 2.0
if curve:
mx = (x1 + x2) / 2
path = f'M {x1} {y1} C {mx} {y1+curve}, {mx} {y2+curve}, {x2} {y2}'
self.body.append(
f'<path d="{path}" fill="none" stroke="{color}" stroke-width="{w}"{d} '
f'marker-end="url(#{mid})"/>')
else:
self.body.append(
f'<line x1="{x1}" y1="{y1}" x2="{x2}" y2="{y2}" stroke="{color}" '
f'stroke-width="{w}"{d} marker-end="url(#{mid})"/>')
if label:
lx, ly = (x1 + x2) / 2, (y1 + y2) / 2 + label_dy
self.body.append(
f'<rect x="{lx-len(label)*3.6-4}" y="{ly-12}" width="{len(label)*7.2+8}" '
f'height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>')
self.body.append(
f'<text x="{lx}" y="{ly}" text-anchor="middle" font-family="{FONT}" '
f'font-size="11" font-weight="600" fill="{color}">{esc(label)}</text>')
def text(self, x, y, s, size=12, anchor="start", color="#333", weight="400", italic=False):
st = ' font-style="italic"' if italic else ""
self.body.append(
f'<text x="{x}" y="{y}" text-anchor="{anchor}" font-family="{FONT}" '
f'font-size="{size}" font-weight="{weight}" fill="{color}"{st}>{esc(s)}</text>')
def render(self):
defs = ['<defs>']
for color in sorted(self._markers):
mid = "arw_" + color.lstrip("#")
defs.append(
f'<marker id="{mid}" viewBox="0 0 10 10" refX="9" refY="5" '
f'markerWidth="7" markerHeight="7" orient="auto-start-reverse">'
f'<path d="M 0 0 L 10 5 L 0 10 z" fill="{color}"/></marker>')
defs.append('</defs>')
return (
f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {self.w} {self.h}" '
f'width="{self.w}" height="{self.h}" font-family="{FONT}">\n'
f'<title>{esc(self.title)}</title>\n'
+ "\n".join(defs) + "\n"
f'<rect x="0" y="0" width="{self.w}" height="{self.h}" fill="#ffffff"/>\n'
+ "\n".join(self.body) + "\n</svg>\n")
def esc(s):
return (str(s).replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;"))
def write(name, content):
path = os.path.join(HERE, name)
with open(path, "w", encoding="utf-8") as f:
f.write(content)
print(" wrote", os.path.relpath(path, HERE))
# ----------------------------------------------------------------------------
# Per-type schematic diagrams
# ----------------------------------------------------------------------------
def hdr(svg, ttype, fb):
fill, stroke = TYPE_STYLE[ttype]
svg.body.append(
f'<rect x="12" y="12" width="16" height="16" rx="3" fill="{fill}" stroke="{stroke}" stroke-width="2"/>')
svg.text(36, 25, ttype, size=16, weight="700", color="#111")
svg.text(svg.w - 12, 25, fb, size=12, anchor="end", color="#888")
svg.body.append(f'<line x1="12" y1="34" x2="{svg.w-12}" y2="34" stroke="#e0e0e0" stroke-width="1"/>')
def type_block(svg, ttype, x, y, w, h, title, sub, dash=None):
fill, stroke = TYPE_STYLE[ttype]
svg.node(x, y, w, h, fill, stroke, title, sub, dash=dash)
def gen_type_svgs():
print("Type schematics:")
# 1) 1Sep -----------------------------------------------------------------
s = Svg(720, 200, "1Sep - standard separator")
hdr(s, "1Sep", "FB_ILS_MTRO_1Sep")
s.stadium(30, 100, 150, 44, "Entry JamArea")
type_block(s, "1Sep", 285, 88, 150, 68, "1Sep", "Stopper MB · sensor BG")
s.stadium(540, 100, 150, 44, "Exit JamArea")
s.edge(180, 122, 285, 122, "normal", "in")
s.edge(435, 122, 540, 122, "normal", "release")
s.text(360, 180, "one entry → one exit; holds carrier at the stopper, releases one",
size=11, anchor="middle", color="#777", italic=True)
write("1sep.svg", s.render())
# 2) 1Sep1Swi -------------------------------------------------------------
s = Svg(720, 240, "1Sep1Swi - separator + 1 switch")
hdr(s, "1Sep1Swi", "FB_ILS_MTRO_1Sep1Swi")
s.stadium(30, 100, 150, 44, "Entry JamArea")
type_block(s, "1Sep1Swi", 275, 88, 165, 68, "1Sep1Swi", "Stopper + Switch")
s.stadium(545, 58, 150, 42, "Exit · Dir1")
s.stadium(545, 148, 150, 42, "Exit · Dir2")
s.edge(180, 122, 275, 122, "normal", "in")
s.edge(440, 112, 545, 79, "normal", "Dir1")
s.edge(440, 132, 545, 169, "dir2", "Dir2")
s.text(360, 222, "switch routes to two exits; direction from FC_Direction",
size=11, anchor="middle", color="#777", italic=True)
write("1sep1swi.svg", s.render())
# 3) 1Sep2Swi -------------------------------------------------------------
s = Svg(760, 300, "1Sep2Swi - separator + 2 switches")
hdr(s, "1Sep2Swi", "FB_ILS_MTRO_1Sep2Swi")
s.stadium(24, 128, 150, 42, "Entry JamArea")
s.stadium(24, 46, 150, 36, "Scanner (barcode)", fill="#ffecec", stroke="#cc3333")
type_block(s, "1Sep2Swi", 260, 116, 175, 70, "1Sep2Swi", "Stopper + 2 switches")
s.stadium(575, 44, 160, 40, "Exit 2 · dir")
s.stadium(575, 130, 160, 40, "Exit 3")
s.stadium(575, 216, 160, 40, "Exit 4")
s.edge(174, 149, 260, 149, "normal", "in")
s.edge(174, 64, 300, 116, "plc", "scan")
s.edge(435, 138, 575, 64, "dir2", "exit2")
s.edge(435, 151, 575, 150, "normal", "exit3")
s.edge(435, 164, 575, 236, "dir3", "exit4")
s.text(380, 288, "two switches → up to three routed exits + entry scanner",
size=11, anchor="middle", color="#777", italic=True)
write("1sep2swi.svg", s.render())
# 4) 1Sep_SSCC ------------------------------------------------------------
s = Svg(760, 240, "1Sep_SSCC - separator + SSCC scanner")
hdr(s, "1Sep_SSCC", "FB_ILS_MTRO_1Sep_SSCC")
s.stadium(24, 110, 150, 44, "Entry JamArea")
type_block(s, "1Sep_SSCC", 265, 96, 190, 72, "1Sep_SSCC", "Barcode + SSCC + end-meas.")
s.stadium(585, 110, 150, 44, "Exit JamArea")
s.stadium(300, 24, 150, 36, "WCS / WES", fill="#eef2f7", stroke="#557799")
s.edge(174, 132, 265, 132, "normal", "in")
s.edge(455, 132, 585, 132, "normal", "release")
s.edge(360, 96, 375, 60, "plc", "DReqM")
s.text(380, 220, "1Sep + second SSCC scanner + dock-request telegram to WCS",
size=11, anchor="middle", color="#777", italic=True)
write("1sep_sscc.svg", s.render())
# 5) Vario ----------------------------------------------------------------
s = Svg(720, 210, "Vario - chain conveyor")
hdr(s, "Vario", "FB_ILS_MTRO_Vario")
s.stadium(30, 104, 150, 44, "Entry JamArea")
type_block(s, "Vario", 280, 92, 160, 68, "Vario", "chain · pos/finger · motor MA")
s.stadium(545, 104, 155, 44, "Finger Exit")
s.edge(180, 126, 280, 126, "normal", "in")
s.edge(440, 126, 545, 126, "finger", "finger")
s.text(360, 192, "driven chain segment; transfers to the next block via finger/index",
size=11, anchor="middle", color="#777", italic=True)
write("vario.svg", s.render())
# 6) PinStore_Auto --------------------------------------------------------
s = Svg(760, 270, "PinStore_Auto - automatic pin storage")
hdr(s, "PinStore_Auto", "FB_ILS_MTRO_PinStore_Auto")
s.stadium(24, 60, 150, 42, "Entry JamArea")
s.stadium(24, 150, 150, 42, "Bypass in")
type_block(s, "PinStore_Auto", 265, 90, 190, 78, "PinStore_Auto", "up to 19 storage lines")
s.stadium(585, 100, 150, 44, "Exit JamArea")
s.stadium(300, 210, 170, 40, "restacking intelligence", fill="#eef7ee", stroke="#338833")
s.edge(174, 81, 265, 110, "normal", "normal")
s.edge(174, 171, 265, 150, "bypass", "bypass")
s.edge(455, 128, 585, 122, "normal", "exit")
s.edge(360, 168, 375, 210, "plc", "handshake")
s.text(380, 262, "storage block: pin-band infeed + line separators + encoder + scanner",
size=11, anchor="middle", color="#777", italic=True)
write("pinstore_auto.svg", s.render())
# 7) Vario_workStation ----------------------------------------------------
s = Svg(720, 240, "Vario_workStation - manual work station")
hdr(s, "Vario_workStation", "FB_ILS_MTRO_Vario_workStation")
s.stadium(30, 110, 150, 44, "Entry JamArea")
type_block(s, "Vario_workStation", 270, 98, 175, 68, "Vario_workStation", "chain + manual station")
s.stadium(555, 110, 150, 44, "Finger Exit")
s.stadium(285, 30, 175, 38, "operator · release button", fill="#f4f4f4", stroke="#999")
s.edge(180, 132, 270, 132, "normal", "in")
s.edge(445, 132, 555, 132, "finger", "finger")
s.edge(357, 68, 357, 98, "plc", None)
s.text(360, 222, "Vario variant: station sensor + release button + load-error sensor",
size=11, anchor="middle", color="#777", italic=True)
write("vario_workstation.svg", s.render())
# 8) EmptyCarrBuffer ------------------------------------------------------
s = Svg(760, 290, "EmptyCarrBuffer - empty carrier buffer")
hdr(s, "EmptyCarrBuffer", "FB_EmptyCarrBuffer")
s.stadium(24, 120, 150, 42, "inTro · borner")
type_block(s, "EmptyCarrBuffer", 250, 108, 175, 70, "EmptyCarrBuffer", "distribution switch")
for i, ly in enumerate((44, 108, 172)):
lbl = "Line 1" if i == 0 else ("Line 2" if i == 1 else "Line n")
s.stadium(560, ly, 120, 36, lbl, fill="#eef7ee", stroke="#338833")
s.stadium(560, 236, 120, 36, "Exit JamArea")
s.edge(174, 141, 250, 141, "normal", "in")
s.edge(425, 128, 560, 62, "dir2", None)
s.edge(425, 140, 560, 126, "dir2", None)
s.edge(425, 152, 560, 190, "dir2", "lines")
s.edge(425, 165, 560, 254, "normal", "exit")
s.text(380, 282, "multi-line buffer for empty carriers, fed by a preceding borner (inTro)",
size=11, anchor="middle", color="#777", italic=True)
write("emptycarrbuffer.svg", s.render())
# 9) LoadingBoom ----------------------------------------------------------
s = Svg(720, 210, "LoadingBoom - system infeed loading boom")
hdr(s, "LoadingBoom", "FB_LoadingBoom_INBOUND")
s.stadium(30, 104, 150, 44, "Stopper JamArea")
type_block(s, "LoadingBoom", 275, 92, 175, 68, "LoadingBoom", "boom + foot + tilt/dist", dash="6,4")
s.stadium(560, 104, 145, 44, "Exit JamArea")
s.edge(180, 126, 275, 126, "extern", "infeed")
s.edge(450, 126, 560, 126, "normal", "exit")
s.text(360, 192, "system infeed boom (fbLoadingBoomN); linked to a TRO via relatedTro",
size=11, anchor="middle", color="#777", italic=True)
write("loadingboom.svg", s.render())
# 10) 2Sep1Swi ------------------------------------------------------------
s = Svg(720, 250, "2Sep1Swi - unused concept block")
hdr(s, "2Sep1Swi", "FB_ILS_MTRO_2Sep1Swi")
s.stadium(30, 48, 150, 42, "Entry 1")
s.stadium(30, 150, 150, 42, "Entry 2")
type_block(s, "2Sep1Swi", 285, 96, 165, 70, "2Sep1Swi", "2 separators + switch")
s.stadium(545, 60, 150, 42, "Exit 2")
s.stadium(545, 150, 150, 42, "Exit 3")
s.edge(180, 69, 285, 115, "normal", None)
s.edge(180, 171, 285, 150, "normal", None)
s.edge(450, 118, 545, 81, "normal", "exit2")
s.edge(450, 142, 545, 171, "dir2", "exit3")
s.text(360, 232, "prepared but never instantiated in any FB_Main (concept only)",
size=11, anchor="middle", color="#777", italic=True)
write("2sep1swi.svg", s.render())
# ----------------------------------------------------------------------------
# Edge / line-type legend
# ----------------------------------------------------------------------------
def gen_edge_legend():
order = ["normal", "dir2", "dir3", "bypass", "finger", "plc", "extern"]
row_h = 34
s = Svg(560, 60 + row_h * len(order), "Edge / connection line-type legend")
s.text(16, 30, "Connection line types", size=17, weight="700", color="#111")
s.body.append(f'<line x1="16" y1="42" x2="544" y2="42" stroke="#e0e0e0" stroke-width="1"/>')
y = 66
for kind in order:
color, dash, _, label, desc = EDGE[kind]
mid = s.marker_id(color)
d = f' stroke-dasharray="{dash}"' if dash else ""
w = 2.6 if kind in ("finger", "bypass", "extern") else 2.0
s.body.append(
f'<line x1="20" y1="{y}" x2="120" y2="{y}" stroke="{color}" stroke-width="{w}"{d} '
f'marker-end="url(#{mid})"/>')
s.text(134, y + 4, label, size=13, weight="700", color=color)
s.text(210, y + 4, desc, size=12, color="#555")
y += row_h
write("edge_legend.svg", s.render())
# ----------------------------------------------------------------------------
# Controller topology .dot files from connect.ini
# ----------------------------------------------------------------------------
def parse_ini():
cp = configparser.ConfigParser()
cp.optionxform = str # keep key case (TRO101_IN etc.)
with open(CONNECT_INI, encoding="utf-8") as f:
cp.read_file(f)
controllers = {}
for sec in cp.sections():
uh, kind = sec.split(".", 1)
controllers.setdefault(uh, {"nodes": {}, "connections": [], "externals": []})
if kind == "nodes":
for key, val in cp.items(sec):
ttype = val.split("|", 1)[0].strip()
comment = val.split("|", 1)[1].strip() if "|" in val else ""
controllers[uh]["nodes"][key] = (ttype, comment)
elif kind == "connections":
for key, val in cp.items(sec):
parts = [p.strip() for p in val.split("|")]
endpoints = [e.strip() for e in parts[0].split("->")]
jam = parts[1] if len(parts) > 1 else ""
ck = parts[2] if len(parts) > 2 else "normal"
controllers[uh]["connections"].append((endpoints[0], endpoints[1], jam, ck))
elif kind == "externals":
for key, val in cp.items(sec):
parts = [p.strip() for p in val.split("|")]
endpoints = [e.strip() for e in parts[0].split("->")]
jam = parts[1] if len(parts) > 1 else ""
controllers[uh]["externals"].append((key, endpoints[0], endpoints[1], jam))
return controllers
def dot_edge_attrs(ck):
color, _, style, label, _ = EDGE.get(ck, EDGE["normal"])
pen = "2.2" if ck in ("finger", "bypass") else ("1.8" if ck == "dir3" else "1.3")
attrs = [f'color="{color}"', f'penwidth={pen}']
if style != "solid":
attrs.append(f'style="{style}"')
if ck != "normal":
attrs.append(f'label="{label}"')
attrs.append(f'fontcolor="{color}"')
return ", ".join(attrs)
def build_dot(uh, data):
lines = []
lines.append(f'digraph {uh} {{')
lines.append(' rankdir=LR;')
lines.append(' bgcolor="white";')
lines.append(' labelloc="t";')
lines.append(f' label=<<b>{uh}</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;')
lines.append(' fontname="Segoe UI"; fontsize=18;')
lines.append(' node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];')
lines.append(' edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];')
lines.append('')
# nodes
for tro, (ttype, comment) in data["nodes"].items():
fill, stroke = TYPE_STYLE.get(ttype, ("#f0f0f0", "#888888"))
shape = "box"
extra = 'style="rounded,filled"'
if ttype in ("PinStore_Auto", "EmptyCarrBuffer"):
shape = "box3d"; extra = 'style="filled"'
elif ttype.startswith("LoadingBoom"):
extra = 'style="rounded,filled,dashed"'
tip = comment.replace('"', "'")
lines.append(
f' "{tro}" [label="{tro}\\n{ttype}", fillcolor="{fill}", color="{stroke}", '
f'shape={shape}, {extra}, tooltip="{tip}"];')
lines.append('')
# external boundary nodes (one per external record)
for key, a, b, jam in data["externals"]:
node = f'EXT_{uh}_{key}'
lines.append(
f' "{node}" [label="EXTERN\\n{jam}", shape=cds, fillcolor="#eef2f7", '
f'color="#557799", style="filled", fontsize=9];')
lines.append('')
# connections
for a, b, jam, ck in data["connections"]:
lines.append(f' "{a}" -> "{b}" [{dot_edge_attrs(ck)}, tooltip="{jam} ({ck})"];')
lines.append('')
# externals as edges
for key, a, b, jam in data["externals"]:
node = f'EXT_{uh}_{key}'
if a == "EXTERN":
lines.append(f' "{node}" -> "{b}" [{dot_edge_attrs("extern")}, tooltip="{jam}"];')
else:
lines.append(f' "{a}" -> "{node}" [{dot_edge_attrs("extern")}, tooltip="{jam}"];')
lines.append('')
# legend cluster
lines.append(' subgraph cluster_legend {')
lines.append(' label="Legend"; fontsize=12; color="#cccccc"; style="rounded";')
lines.append(' node [shape=plaintext, style="", fillcolor="none", fontsize=10];')
lines.append(' legend [label=<')
lines.append(' <table border="0" cellborder="0" cellspacing="2">')
for kind in ["normal", "dir2", "dir3", "bypass", "finger", "extern"]:
color, _, _, label, desc = EDGE[kind]
lines.append(
f' <tr><td align="right"><font color="{color}"><b>&#8212;&#8212; {label}</b></font></td>'
f'<td align="left">{desc}</td></tr>')
lines.append(' </table>>];')
lines.append(' }')
lines.append('}')
return "\n".join(lines) + "\n"
def find_dot():
exe = shutil.which("dot")
if exe:
return exe
for cand in (r"C:\Program Files\Graphviz\bin\dot.exe",
r"C:\Program Files (x86)\Graphviz\bin\dot.exe"):
if os.path.exists(cand):
return cand
return None
def gen_controllers():
print("Controller dot graphs:")
controllers = parse_ini()
dot_exe = find_dot()
for uh in sorted(controllers):
data = controllers[uh]
dot_src = build_dot(uh, data)
dot_name = f"{uh.lower()}.dot"
write(dot_name, dot_src)
if dot_exe:
svg_path = os.path.join(HERE, f"{uh.lower()}.svg")
try:
subprocess.run([dot_exe, "-Tsvg", os.path.join(HERE, dot_name),
"-o", svg_path], check=True, capture_output=True)
print(" rendered", f"{uh.lower()}.svg",
f"({len(data['nodes'])} nodes, "
f"{len(data['connections'])+len(data['externals'])} edges)")
except subprocess.CalledProcessError as e:
print(" !! dot failed for", uh, e.stderr.decode(errors="replace")[:400])
if not dot_exe:
print(" !! Graphviz 'dot' not found - .dot files written but not rendered.")
def main():
print("Generating TRO catalog graphs into", HERE)
gen_edge_legend()
gen_type_svgs()
gen_controllers()
print("Done.")
if __name__ == "__main__":
main()
@@ -0,0 +1,26 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 210" width="720" height="210" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>LoadingBoom - system infeed loading boom</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_557799" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#557799"/></marker>
</defs>
<rect x="0" y="0" width="720" height="210" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#f0f0f0" stroke="#888888" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">LoadingBoom</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_LoadingBoom_INBOUND</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="104" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="131.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Stopper JamArea</text>
<rect x="275" y="92" width="175" height="68" rx="10" ry="10" fill="#f0f0f0" stroke="#888888" stroke-width="2.2" stroke-dasharray="6,4"/>
<text x="362.5" y="123.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">LoadingBoom</text>
<text x="362.5" y="141.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">boom + foot + tilt/dist</text>
<rect x="560" y="104" width="145" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="632.5" y="131.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit JamArea</text>
<line x1="180" y1="126" x2="275" y2="126" stroke="#557799" stroke-width="2.6" marker-end="url(#arw_557799)"/>
<rect x="201.9" y="108.0" width="51.2" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="227.5" y="120.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#557799">infeed</text>
<line x1="450" y1="126" x2="560" y2="126" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="486.6" y="108.0" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="505.0" y="120.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">exit</text>
<text x="360" y="192" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">system infeed boom (fbLoadingBoomN); linked to a TRO via relatedTro</text>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -0,0 +1,37 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 270" width="760" height="270" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>PinStore_Auto - automatic pin storage</title>
<defs>
<marker id="arw_3388cc" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#3388cc"/></marker>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_777777" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#777777"/></marker>
</defs>
<rect x="0" y="0" width="760" height="270" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#d4f0d4" stroke="#338833" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">PinStore_Auto</text>
<text x="748" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_PinStore_Auto</text>
<line x1="12" y1="34" x2="748" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="24" y="60" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="99.0" y="86.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="24" y="150" width="150" height="42" rx="21.0" ry="21.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="99.0" y="176.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Bypass in</text>
<rect x="265" y="90" width="190" height="78" rx="10" ry="10" fill="#d4f0d4" stroke="#338833" stroke-width="2.2"/>
<text x="360.0" y="126.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">PinStore_Auto</text>
<text x="360.0" y="144.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">up to 19 storage lines</text>
<rect x="585" y="100" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="660.0" y="127.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Exit JamArea</text>
<rect x="300" y="210" width="170" height="40" rx="20.0" ry="20.0" fill="#eef7ee" stroke="#338833" stroke-width="2.2"/>
<text x="385.0" y="235.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">restacking intelligence</text>
<line x1="174" y1="81" x2="265" y2="110" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="193.9" y="77.5" width="51.2" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="219.5" y="89.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">normal</text>
<line x1="174" y1="171" x2="265" y2="150" stroke="#3388cc" stroke-width="2.6" stroke-dasharray="13,5" marker-end="url(#arw_3388cc)"/>
<rect x="193.9" y="142.5" width="51.2" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="219.5" y="154.5" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#3388cc">bypass</text>
<line x1="455" y1="128" x2="585" y2="122" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="501.6" y="107.0" width="36.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="520.0" y="119.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">exit</text>
<line x1="360" y1="168" x2="375" y2="210" stroke="#777777" stroke-width="2.0" stroke-dasharray="1,4" marker-end="url(#arw_777777)"/>
<rect x="331.1" y="171.0" width="72.8" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="367.5" y="183.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#777777">handshake</text>
<text x="380" y="262" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">storage block: pin-band infeed + line separators + encoder + scanner</text>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

+108
View File
@@ -0,0 +1,108 @@
digraph UH01 {
rankdir=LR;
bgcolor="white";
labelloc="t";
label=<<b>UH01</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;
fontname="Segoe UI"; fontsize=18;
node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];
edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];
"TRO100" [label="TRO100\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 100 (1Sep)"];
"TRO101" [label="TRO101\nEmptyCarrBuffer", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="TRO101 (Empty Buffer rechts)"];
"TRO101_IN" [label="TRO101_IN\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 101_IN(1Sep)"];
"TRO102" [label="TRO102\nEmptyCarrBuffer", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="TRO102 (Empty Buffer links)"];
"TRO102_IN" [label="TRO102_IN\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 102_IN(1Sep)"];
"TRO103" [label="TRO103\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 103 (1Sep)"];
"TRO104" [label="TRO104\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 104 (1Sep)+Scanner"];
"TRO105" [label="TRO105\n1Sep_SSCC", fillcolor="#ffd4d4", color="#cc3333", shape=box, style="rounded,filled", tooltip="TRO 105 (1Sep)+Scanner"];
"TRO106" [label="TRO106\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 106 (1Sep)"];
"TRO107" [label="TRO107\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 107(1Sep1Swi)"];
"TRO108" [label="TRO108\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 108 (1Sep)"];
"TRO109" [label="TRO109\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 109 (1Sep)+Scanner"];
"TRO110" [label="TRO110\n1Sep_SSCC", fillcolor="#ffd4d4", color="#cc3333", shape=box, style="rounded,filled", tooltip="TRO 110 (1Sep)+Scanner"];
"TRO111" [label="TRO111\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 111 (1Sep)"];
"TRO112" [label="TRO112\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 112 (1Sep1Swi)"];
"TRO113" [label="TRO113\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 113 (1Sep)+Scanner"];
"TRO114" [label="TRO114\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 114 (1Sep1Switch)+Scanner"];
"TRO115" [label="TRO115\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 115 (Vario)"];
"TRO116" [label="TRO116\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 116 (1Sep)"];
"TRO117" [label="TRO117\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 117 (1Sep) + Scanner"];
"TRO120" [label="TRO120\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 120 (Vario)"];
"TRO121" [label="TRO121\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 121(Vario)"];
"TRO122" [label="TRO122\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 122 (1Sep)"];
"TRO123" [label="TRO123\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 123 (Vario)"];
"TRO124" [label="TRO124\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 124 (1Sep1Switch)"];
"TRO125" [label="TRO125\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 125 (1Sep)"];
"TRO126" [label="TRO126\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 126 (Vario)"];
"TRO127" [label="TRO127\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 127 (Vario)"];
"TRO128" [label="TRO128\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 128 (Vario)"];
"TRO129" [label="TRO129\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 129 (1Sep)"];
"TRO130" [label="TRO130\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 130 (1Sep)"];
"TRO131" [label="TRO131\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 131 (Vario)"];
"TRO133" [label="TRO133\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 133 (Vario)"];
"TRO134" [label="TRO134\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 134 (Vario)"];
"fbLoadingBoom1" [label="fbLoadingBoom1\nLoadingBoom_INBOUND", fillcolor="#f0f0f0", color="#888888", shape=box, style="rounded,filled,dashed", tooltip="LoadingBoom 1"];
"fbLoadingBoom2" [label="fbLoadingBoom2\nLoadingBoom_INBOUND", fillcolor="#f0f0f0", color="#888888", shape=box, style="rounded,filled,dashed", tooltip="LoadingBoom 2"];
"EXT_UH01_e001" [label="EXTERN\nJA4104_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH01_e002" [label="EXTERN\nJA4302_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH01_e003" [label="EXTERN\nJA4402_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH01_e004" [label="EXTERN\nJA4503_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"TRO128" -> "TRO100" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA0100_1 (finger)"];
"TRO100" -> "TRO101_IN" [color="#444444", penwidth=1.3, tooltip="JA0101_1 (normal)"];
"TRO101_IN" -> "TRO102_IN" [color="#444444", penwidth=1.3, tooltip="JA0101_2 (normal)"];
"TRO102" -> "TRO107" [color="#444444", penwidth=1.3, tooltip="JA0102_1 (normal)"];
"TRO117" -> "TRO107" [color="#444444", penwidth=1.3, tooltip="JA0102_1 (normal)"];
"TRO101" -> "TRO112" [color="#444444", penwidth=1.3, tooltip="JA0102_2 (normal)"];
"TRO106" -> "TRO112" [color="#444444", penwidth=1.3, tooltip="JA0102_2 (normal)"];
"TRO107" -> "TRO112" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA0102_2 (dir2)"];
"TRO111" -> "TRO113" [color="#444444", penwidth=1.3, tooltip="JA0102_3 (normal)"];
"TRO112" -> "TRO113" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA0102_3 (dir2)"];
"TRO113" -> "TRO114" [color="#444444", penwidth=1.3, tooltip="JA0102_4 (normal)"];
"TRO114" -> "TRO116" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA0102_5 (dir2)"];
"TRO116" -> "TRO117" [color="#444444", penwidth=1.3, tooltip="JA0102_6 (normal)"];
"TRO107" -> "TRO103" [color="#444444", penwidth=1.3, tooltip="JA0103_1 (normal)"];
"TRO103" -> "TRO104" [color="#444444", penwidth=1.3, tooltip="JA0104_1 (normal)"];
"TRO104" -> "fbLoadingBoom1" [color="#444444", penwidth=1.3, tooltip="JA0104_2 (normal)"];
"fbLoadingBoom1" -> "TRO105" [color="#444444", penwidth=1.3, tooltip="JA0104_3 (normal)"];
"TRO105" -> "TRO106" [color="#444444", penwidth=1.3, tooltip="JA0106_2 (normal)"];
"TRO112" -> "TRO108" [color="#444444", penwidth=1.3, tooltip="JA0107_1 (normal)"];
"TRO108" -> "TRO109" [color="#444444", penwidth=1.3, tooltip="JA0108_1 (normal)"];
"TRO109" -> "fbLoadingBoom2" [color="#444444", penwidth=1.3, tooltip="JA0108_2 (normal)"];
"fbLoadingBoom2" -> "TRO110" [color="#444444", penwidth=1.3, tooltip="JA0108_3 (normal)"];
"TRO110" -> "TRO111" [color="#444444", penwidth=1.3, tooltip="JA0110_2 (normal)"];
"TRO115" -> "TRO120" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4103_1 (finger)"];
"TRO125" -> "TRO126" [color="#444444", penwidth=1.3, tooltip="JA4203_1 (normal)"];
"TRO129" -> "TRO130" [color="#444444", penwidth=1.3, tooltip="JA4204_1 (normal)"];
"TRO124" -> "TRO125" [color="#444444", penwidth=1.3, tooltip="JA4204_2 (normal)"];
"TRO133" -> "TRO129" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4302_2 (finger)"];
"TRO134" -> "TRO131" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4403_1 (finger)"];
"TRO124" -> "TRO127" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA4501_1 (dir2)"];
"TRO130" -> "TRO127" [color="#444444", penwidth=1.3, tooltip="JA4501_1 (normal)"];
"TRO127" -> "TRO128" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4501_2 (finger)"];
"TRO122" -> "TRO123" [color="#444444", penwidth=1.3, tooltip="JA4502_1 (normal)"];
"TRO123" -> "TRO124" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4502_2 (finger)"];
"TRO121" -> "TRO122" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4503_2 (finger)"];
"TRO101_IN" -> "TRO101" [color="#444444", penwidth=1.3, tooltip="JamBuffer101 (normal)"];
"TRO102_IN" -> "TRO102" [color="#444444", penwidth=1.3, tooltip="JamBuffer102 (normal)"];
"EXT_UH01_e001" -> "TRO115" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4104_1"];
"EXT_UH01_e002" -> "TRO133" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4302_1"];
"EXT_UH01_e003" -> "TRO134" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4402_1"];
"EXT_UH01_e004" -> "TRO121" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4503_1"];
subgraph cluster_legend {
label="Legend"; fontsize=12; color="#cccccc"; style="rounded";
node [shape=plaintext, style="", fillcolor="none", fontsize=10];
legend [label=<
<table border="0" cellborder="0" cellspacing="2">
<tr><td align="right"><font color="#444444"><b>&#8212;&#8212; normal</b></font></td><td align="left">standard transfer (jam area to jam area)</td></tr>
<tr><td align="right"><font color="#cc8800"><b>&#8212;&#8212; dir2</b></font></td><td align="left">switch output, direction 2 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#b35900"><b>&#8212;&#8212; dir3</b></font></td><td align="left">switch output, direction 3 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#3388cc"><b>&#8212;&#8212; bypass</b></font></td><td align="left">bypass around a storage block (PinStore)</td></tr>
<tr><td align="right"><font color="#883388"><b>&#8212;&#8212; finger</b></font></td><td align="left">chain-conveyor finger / index transfer</td></tr>
<tr><td align="right"><font color="#557799"><b>&#8212;&#8212; EXTERN</b></font></td><td align="left">infeed / outfeed to another PLC (EXTERN)</td></tr>
</table>>];
}
}
+814
View File
@@ -0,0 +1,814 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 15.1.0 (20260618.0150)
-->
<!-- Title: UH01 Pages: 1 -->
<svg width="3101pt" height="494pt"
viewBox="0.00 0.00 3101.00 494.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 489.75)">
<title>UH01</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-489.75 3096.5,-489.75 3096.5,4 -4,4"/>
<text xml:space="preserve" text-anchor="start" x="1242.12" y="-465.65" font-family="Segoe UI" font-weight="bold" font-size="18.00">UH01</text>
<text xml:space="preserve" text-anchor="start" x="1289.38" y="-465.65" font-family="Segoe UI" font-size="18.00"> — TRO topology (nodes coloured by type, edges by connection kind)</text>
<g id="clust1" class="cluster">
<title>cluster_legend</title>
<path fill="white" stroke="#cccccc" d="M20,-272C20,-272 290.25,-272 290.25,-272 296.25,-272 302.25,-278 302.25,-284 302.25,-284 302.25,-433 302.25,-433 302.25,-439 296.25,-445 290.25,-445 290.25,-445 20,-445 20,-445 14,-445 8,-439 8,-433 8,-433 8,-284 8,-284 8,-278 14,-272 20,-272"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-429.6" font-family="Segoe UI" font-size="12.00">Legend</text>
</g>
<!-- TRO100 -->
<g id="node1" class="node">
<title>TRO100</title>
<g id="a_node1"><a xlink:title="TRO 100 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1097.75,-95C1097.75,-95 1066.75,-95 1066.75,-95 1060.75,-95 1054.75,-89 1054.75,-83 1054.75,-83 1054.75,-69 1054.75,-69 1054.75,-63 1060.75,-57 1066.75,-57 1066.75,-57 1097.75,-57 1097.75,-57 1103.75,-57 1109.75,-63 1109.75,-69 1109.75,-69 1109.75,-83 1109.75,-83 1109.75,-89 1103.75,-95 1097.75,-95"/>
<text xml:space="preserve" text-anchor="middle" x="1082.25" y="-80.55" font-family="Segoe UI" font-size="11.00">TRO100</text>
<text xml:space="preserve" text-anchor="middle" x="1082.25" y="-65.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO101_IN -->
<g id="node3" class="node">
<title>TRO101_IN</title>
<g id="a_node3"><a xlink:title="TRO 101_IN(1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1205.5,-95C1205.5,-95 1158.75,-95 1158.75,-95 1152.75,-95 1146.75,-89 1146.75,-83 1146.75,-83 1146.75,-69 1146.75,-69 1146.75,-63 1152.75,-57 1158.75,-57 1158.75,-57 1205.5,-57 1205.5,-57 1211.5,-57 1217.5,-63 1217.5,-69 1217.5,-69 1217.5,-83 1217.5,-83 1217.5,-89 1211.5,-95 1205.5,-95"/>
<text xml:space="preserve" text-anchor="middle" x="1182.12" y="-80.55" font-family="Segoe UI" font-size="11.00">TRO101_IN</text>
<text xml:space="preserve" text-anchor="middle" x="1182.12" y="-65.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO100&#45;&gt;TRO101_IN -->
<g id="edge2" class="edge">
<title>TRO100&#45;&gt;TRO101_IN</title>
<g id="a_edge2"><a xlink:title="JA0101_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1110.51,-76C1118.57,-76 1127.61,-76 1136.45,-76"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1136.34,-78.8 1144.34,-76 1136.34,-73.2 1136.34,-78.8"/>
</a>
</g>
</g>
<!-- TRO101 -->
<g id="node2" class="node">
<title>TRO101</title>
<g id="a_node2"><a xlink:title="TRO101 (Empty Buffer rechts)">
<polygon fill="#d4f0d4" stroke="#338833" stroke-width="1.6" points="1350,-126 1258.5,-126 1254.5,-122 1254.5,-88 1346,-88 1350,-92 1350,-126"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1346,-122 1254.5,-122"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1346,-122 1346,-88"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1346,-122 1350,-126"/>
<text xml:space="preserve" text-anchor="middle" x="1302.25" y="-111.55" font-family="Segoe UI" font-size="11.00">TRO101</text>
<text xml:space="preserve" text-anchor="middle" x="1302.25" y="-96.55" font-family="Segoe UI" font-size="11.00">EmptyCarrBuffer</text>
</a>
</g>
</g>
<!-- TRO112 -->
<g id="node15" class="node">
<title>TRO112</title>
<g id="a_node15"><a xlink:title="TRO 112 (1Sep1Swi)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1454.75,-132C1454.75,-132 1414.75,-132 1414.75,-132 1408.75,-132 1402.75,-126 1402.75,-120 1402.75,-120 1402.75,-106 1402.75,-106 1402.75,-100 1408.75,-94 1414.75,-94 1414.75,-94 1454.75,-94 1454.75,-94 1460.75,-94 1466.75,-100 1466.75,-106 1466.75,-106 1466.75,-120 1466.75,-120 1466.75,-126 1460.75,-132 1454.75,-132"/>
<text xml:space="preserve" text-anchor="middle" x="1434.75" y="-117.55" font-family="Segoe UI" font-size="11.00">TRO112</text>
<text xml:space="preserve" text-anchor="middle" x="1434.75" y="-102.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO101&#45;&gt;TRO112 -->
<g id="edge6" class="edge">
<title>TRO101&#45;&gt;TRO112</title>
<g id="a_edge6"><a xlink:title="JA0102_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1350.73,-109.18C1364.32,-109.81 1379.02,-110.48 1392.23,-111.09"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1391.9,-113.88 1400.02,-111.45 1392.16,-108.28 1391.9,-113.88"/>
</a>
</g>
</g>
<!-- TRO101_IN&#45;&gt;TRO101 -->
<g id="edge36" class="edge">
<title>TRO101_IN&#45;&gt;TRO101</title>
<g id="a_edge36"><a xlink:title="JamBuffer101 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1218.25,-85.22C1226.44,-87.37 1235.37,-89.71 1244.24,-92.04"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1243.45,-94.72 1251.89,-94.05 1244.87,-89.31 1243.45,-94.72"/>
</a>
</g>
</g>
<!-- TRO102_IN -->
<g id="node5" class="node">
<title>TRO102_IN</title>
<g id="a_node5"><a xlink:title="TRO 102_IN(1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1325.62,-68C1325.62,-68 1278.88,-68 1278.88,-68 1272.88,-68 1266.88,-62 1266.88,-56 1266.88,-56 1266.88,-42 1266.88,-42 1266.88,-36 1272.88,-30 1278.88,-30 1278.88,-30 1325.62,-30 1325.62,-30 1331.62,-30 1337.62,-36 1337.62,-42 1337.62,-42 1337.62,-56 1337.62,-56 1337.62,-62 1331.62,-68 1325.62,-68"/>
<text xml:space="preserve" text-anchor="middle" x="1302.25" y="-53.55" font-family="Segoe UI" font-size="11.00">TRO102_IN</text>
<text xml:space="preserve" text-anchor="middle" x="1302.25" y="-38.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO101_IN&#45;&gt;TRO102_IN -->
<g id="edge3" class="edge">
<title>TRO101_IN&#45;&gt;TRO102_IN</title>
<g id="a_edge3"><a xlink:title="JA0101_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1218.25,-67.97C1230.39,-65.2 1244.15,-62.05 1256.93,-59.13"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1257.37,-61.9 1264.55,-57.39 1256.13,-56.44 1257.37,-61.9"/>
</a>
</g>
</g>
<!-- TRO102 -->
<g id="node4" class="node">
<title>TRO102</title>
<g id="a_node4"><a xlink:title="TRO102 (Empty Buffer links)">
<polygon fill="#d4f0d4" stroke="#338833" stroke-width="1.6" points="1482.5,-38 1391,-38 1387,-34 1387,0 1478.5,0 1482.5,-4 1482.5,-38"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1478.5,-34 1387,-34"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1478.5,-34 1478.5,0"/>
<polyline fill="none" stroke="#338833" stroke-width="1.6" points="1478.5,-34 1482.5,-38"/>
<text xml:space="preserve" text-anchor="middle" x="1434.75" y="-23.55" font-family="Segoe UI" font-size="11.00">TRO102</text>
<text xml:space="preserve" text-anchor="middle" x="1434.75" y="-8.55" font-family="Segoe UI" font-size="11.00">EmptyCarrBuffer</text>
</a>
</g>
</g>
<!-- TRO107 -->
<g id="node10" class="node">
<title>TRO107</title>
<g id="a_node10"><a xlink:title="TRO 107(1Sep1Swi)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M2521.5,-169C2521.5,-169 2481.5,-169 2481.5,-169 2475.5,-169 2469.5,-163 2469.5,-157 2469.5,-157 2469.5,-143 2469.5,-143 2469.5,-137 2475.5,-131 2481.5,-131 2481.5,-131 2521.5,-131 2521.5,-131 2527.5,-131 2533.5,-137 2533.5,-143 2533.5,-143 2533.5,-157 2533.5,-157 2533.5,-163 2527.5,-169 2521.5,-169"/>
<text xml:space="preserve" text-anchor="middle" x="2501.5" y="-154.55" font-family="Segoe UI" font-size="11.00">TRO107</text>
<text xml:space="preserve" text-anchor="middle" x="2501.5" y="-139.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO102&#45;&gt;TRO107 -->
<g id="edge4" class="edge">
<title>TRO102&#45;&gt;TRO107</title>
<g id="a_edge4"><a xlink:title="JA0102_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1483.23,-17.76C1502.68,-17.35 1525.42,-17 1546,-17 1546,-17 1546,-17 2406,-17 2456.55,-17 2482.55,-81.64 2493.66,-120.79"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2490.94,-121.47 2495.72,-128.47 2496.35,-120.02 2490.94,-121.47"/>
</a>
</g>
</g>
<!-- TRO102_IN&#45;&gt;TRO102 -->
<g id="edge37" class="edge">
<title>TRO102_IN&#45;&gt;TRO102</title>
<g id="a_edge37"><a xlink:title="JamBuffer102 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1338.22,-40.96C1350.13,-38.22 1363.77,-35.09 1376.94,-32.06"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1377.32,-34.84 1384.49,-30.32 1376.07,-29.39 1377.32,-34.84"/>
</a>
</g>
</g>
<!-- TRO103 -->
<g id="node6" class="node">
<title>TRO103</title>
<g id="a_node6"><a xlink:title="TRO 103 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2613.5,-178C2613.5,-178 2582.5,-178 2582.5,-178 2576.5,-178 2570.5,-172 2570.5,-166 2570.5,-166 2570.5,-152 2570.5,-152 2570.5,-146 2576.5,-140 2582.5,-140 2582.5,-140 2613.5,-140 2613.5,-140 2619.5,-140 2625.5,-146 2625.5,-152 2625.5,-152 2625.5,-166 2625.5,-166 2625.5,-172 2619.5,-178 2613.5,-178"/>
<text xml:space="preserve" text-anchor="middle" x="2598" y="-163.55" font-family="Segoe UI" font-size="11.00">TRO103</text>
<text xml:space="preserve" text-anchor="middle" x="2598" y="-148.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO104 -->
<g id="node7" class="node">
<title>TRO104</title>
<g id="a_node7"><a xlink:title="TRO 104 (1Sep)+Scanner">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2705.5,-178C2705.5,-178 2674.5,-178 2674.5,-178 2668.5,-178 2662.5,-172 2662.5,-166 2662.5,-166 2662.5,-152 2662.5,-152 2662.5,-146 2668.5,-140 2674.5,-140 2674.5,-140 2705.5,-140 2705.5,-140 2711.5,-140 2717.5,-146 2717.5,-152 2717.5,-152 2717.5,-166 2717.5,-166 2717.5,-172 2711.5,-178 2705.5,-178"/>
<text xml:space="preserve" text-anchor="middle" x="2690" y="-163.55" font-family="Segoe UI" font-size="11.00">TRO104</text>
<text xml:space="preserve" text-anchor="middle" x="2690" y="-148.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO103&#45;&gt;TRO104 -->
<g id="edge15" class="edge">
<title>TRO103&#45;&gt;TRO104</title>
<g id="a_edge15"><a xlink:title="JA0104_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2626,-159C2634.12,-159 2643.16,-159 2651.81,-159"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2651.74,-161.8 2659.74,-159 2651.74,-156.2 2651.74,-161.8"/>
</a>
</g>
</g>
<!-- fbLoadingBoom1 -->
<g id="node35" class="node">
<title>fbLoadingBoom1</title>
<g id="a_node35"><a xlink:title="LoadingBoom 1">
<path fill="#f0f0f0" stroke="#888888" stroke-width="1.6" stroke-dasharray="5,2" d="M2880.75,-178C2880.75,-178 2766.5,-178 2766.5,-178 2760.5,-178 2754.5,-172 2754.5,-166 2754.5,-166 2754.5,-152 2754.5,-152 2754.5,-146 2760.5,-140 2766.5,-140 2766.5,-140 2880.75,-140 2880.75,-140 2886.75,-140 2892.75,-146 2892.75,-152 2892.75,-152 2892.75,-166 2892.75,-166 2892.75,-172 2886.75,-178 2880.75,-178"/>
<text xml:space="preserve" text-anchor="middle" x="2823.62" y="-163.55" font-family="Segoe UI" font-size="11.00">fbLoadingBoom1</text>
<text xml:space="preserve" text-anchor="middle" x="2823.62" y="-148.55" font-family="Segoe UI" font-size="11.00">LoadingBoom_INBOUND</text>
</a>
</g>
</g>
<!-- TRO104&#45;&gt;fbLoadingBoom1 -->
<g id="edge16" class="edge">
<title>TRO104&#45;&gt;fbLoadingBoom1</title>
<g id="a_edge16"><a xlink:title="JA0104_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2718.27,-159C2726.04,-159 2734.92,-159 2744.13,-159"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2743.87,-161.8 2751.87,-159 2743.87,-156.2 2743.87,-161.8"/>
</a>
</g>
</g>
<!-- TRO105 -->
<g id="node8" class="node">
<title>TRO105</title>
<g id="a_node8"><a xlink:title="TRO 105 (1Sep)+Scanner">
<path fill="#ffd4d4" stroke="#cc3333" stroke-width="1.6" d="M2988.5,-178C2988.5,-178 2941.75,-178 2941.75,-178 2935.75,-178 2929.75,-172 2929.75,-166 2929.75,-166 2929.75,-152 2929.75,-152 2929.75,-146 2935.75,-140 2941.75,-140 2941.75,-140 2988.5,-140 2988.5,-140 2994.5,-140 3000.5,-146 3000.5,-152 3000.5,-152 3000.5,-166 3000.5,-166 3000.5,-172 2994.5,-178 2988.5,-178"/>
<text xml:space="preserve" text-anchor="middle" x="2965.12" y="-163.55" font-family="Segoe UI" font-size="11.00">TRO105</text>
<text xml:space="preserve" text-anchor="middle" x="2965.12" y="-148.55" font-family="Segoe UI" font-size="11.00">1Sep_SSCC</text>
</a>
</g>
</g>
<!-- TRO106 -->
<g id="node9" class="node">
<title>TRO106</title>
<g id="a_node9"><a xlink:title="TRO 106 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M3080.5,-201C3080.5,-201 3049.5,-201 3049.5,-201 3043.5,-201 3037.5,-195 3037.5,-189 3037.5,-189 3037.5,-175 3037.5,-175 3037.5,-169 3043.5,-163 3049.5,-163 3049.5,-163 3080.5,-163 3080.5,-163 3086.5,-163 3092.5,-169 3092.5,-175 3092.5,-175 3092.5,-189 3092.5,-189 3092.5,-195 3086.5,-201 3080.5,-201"/>
<text xml:space="preserve" text-anchor="middle" x="3065" y="-186.55" font-family="Segoe UI" font-size="11.00">TRO106</text>
<text xml:space="preserve" text-anchor="middle" x="3065" y="-171.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO105&#45;&gt;TRO106 -->
<g id="edge18" class="edge">
<title>TRO105&#45;&gt;TRO106</title>
<g id="a_edge18"><a xlink:title="JA0106_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M3001.18,-167.24C3009.62,-169.22 3018.66,-171.34 3027.17,-173.35"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="3026.52,-176.07 3034.95,-175.17 3027.8,-170.62 3026.52,-176.07"/>
</a>
</g>
</g>
<!-- TRO106&#45;&gt;TRO112 -->
<g id="edge7" class="edge">
<title>TRO106&#45;&gt;TRO112</title>
<g id="a_edge7"><a xlink:title="JA0102_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M3037.01,-192.32C3017.59,-198.82 2990.62,-206 2966.12,-206 1546,-206 1546,-206 1546,-206 1505.15,-206 1471.6,-168.24 1452.62,-140.84"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1455.07,-139.46 1448.3,-134.36 1450.41,-142.57 1455.07,-139.46"/>
</a>
</g>
</g>
<!-- TRO107&#45;&gt;TRO103 -->
<g id="edge14" class="edge">
<title>TRO107&#45;&gt;TRO103</title>
<g id="a_edge14"><a xlink:title="JA0103_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2534.23,-153.02C2542.55,-153.81 2551.6,-154.68 2560.17,-155.49"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2559.74,-158.26 2567.97,-156.24 2560.27,-152.69 2559.74,-158.26"/>
</a>
</g>
</g>
<!-- TRO107&#45;&gt;TRO112 -->
<g id="edge8" class="edge">
<title>TRO107&#45;&gt;TRO112</title>
<g id="a_edge8"><a xlink:title="JA0102_2 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M2468.77,-157.59C2450.52,-161.31 2427.1,-165 2406,-165 1546,-165 1546,-165 1546,-165 1518.29,-165 1490.08,-151.39 1469.13,-138.1"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1470.76,-135.82 1462.55,-133.74 1467.67,-140.49 1470.76,-135.82"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2014" y="-169.2" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO108 -->
<g id="node11" class="node">
<title>TRO108</title>
<g id="a_node11"><a xlink:title="TRO 108 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1562.5,-132C1562.5,-132 1531.5,-132 1531.5,-132 1525.5,-132 1519.5,-126 1519.5,-120 1519.5,-120 1519.5,-106 1519.5,-106 1519.5,-100 1525.5,-94 1531.5,-94 1531.5,-94 1562.5,-94 1562.5,-94 1568.5,-94 1574.5,-100 1574.5,-106 1574.5,-106 1574.5,-120 1574.5,-120 1574.5,-126 1568.5,-132 1562.5,-132"/>
<text xml:space="preserve" text-anchor="middle" x="1547" y="-117.55" font-family="Segoe UI" font-size="11.00">TRO108</text>
<text xml:space="preserve" text-anchor="middle" x="1547" y="-102.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO109 -->
<g id="node12" class="node">
<title>TRO109</title>
<g id="a_node12"><a xlink:title="TRO 109 (1Sep)+Scanner">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1654.5,-132C1654.5,-132 1623.5,-132 1623.5,-132 1617.5,-132 1611.5,-126 1611.5,-120 1611.5,-120 1611.5,-106 1611.5,-106 1611.5,-100 1617.5,-94 1623.5,-94 1623.5,-94 1654.5,-94 1654.5,-94 1660.5,-94 1666.5,-100 1666.5,-106 1666.5,-106 1666.5,-120 1666.5,-120 1666.5,-126 1660.5,-132 1654.5,-132"/>
<text xml:space="preserve" text-anchor="middle" x="1639" y="-117.55" font-family="Segoe UI" font-size="11.00">TRO109</text>
<text xml:space="preserve" text-anchor="middle" x="1639" y="-102.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO108&#45;&gt;TRO109 -->
<g id="edge20" class="edge">
<title>TRO108&#45;&gt;TRO109</title>
<g id="a_edge20"><a xlink:title="JA0108_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1575,-113C1583.12,-113 1592.16,-113 1600.81,-113"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1600.74,-115.8 1608.74,-113 1600.74,-110.2 1600.74,-115.8"/>
</a>
</g>
</g>
<!-- fbLoadingBoom2 -->
<g id="node36" class="node">
<title>fbLoadingBoom2</title>
<g id="a_node36"><a xlink:title="LoadingBoom 2">
<path fill="#f0f0f0" stroke="#888888" stroke-width="1.6" stroke-dasharray="5,2" d="M1829.75,-132C1829.75,-132 1715.5,-132 1715.5,-132 1709.5,-132 1703.5,-126 1703.5,-120 1703.5,-120 1703.5,-106 1703.5,-106 1703.5,-100 1709.5,-94 1715.5,-94 1715.5,-94 1829.75,-94 1829.75,-94 1835.75,-94 1841.75,-100 1841.75,-106 1841.75,-106 1841.75,-120 1841.75,-120 1841.75,-126 1835.75,-132 1829.75,-132"/>
<text xml:space="preserve" text-anchor="middle" x="1772.62" y="-117.55" font-family="Segoe UI" font-size="11.00">fbLoadingBoom2</text>
<text xml:space="preserve" text-anchor="middle" x="1772.62" y="-102.55" font-family="Segoe UI" font-size="11.00">LoadingBoom_INBOUND</text>
</a>
</g>
</g>
<!-- TRO109&#45;&gt;fbLoadingBoom2 -->
<g id="edge21" class="edge">
<title>TRO109&#45;&gt;fbLoadingBoom2</title>
<g id="a_edge21"><a xlink:title="JA0108_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1667.27,-113C1675.04,-113 1683.92,-113 1693.13,-113"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1692.87,-115.8 1700.87,-113 1692.87,-110.2 1692.87,-115.8"/>
</a>
</g>
</g>
<!-- TRO110 -->
<g id="node13" class="node">
<title>TRO110</title>
<g id="a_node13"><a xlink:title="TRO 110 (1Sep)+Scanner">
<path fill="#ffd4d4" stroke="#cc3333" stroke-width="1.6" d="M1937.5,-130C1937.5,-130 1890.75,-130 1890.75,-130 1884.75,-130 1878.75,-124 1878.75,-118 1878.75,-118 1878.75,-104 1878.75,-104 1878.75,-98 1884.75,-92 1890.75,-92 1890.75,-92 1937.5,-92 1937.5,-92 1943.5,-92 1949.5,-98 1949.5,-104 1949.5,-104 1949.5,-118 1949.5,-118 1949.5,-124 1943.5,-130 1937.5,-130"/>
<text xml:space="preserve" text-anchor="middle" x="1914.12" y="-115.55" font-family="Segoe UI" font-size="11.00">TRO110</text>
<text xml:space="preserve" text-anchor="middle" x="1914.12" y="-100.55" font-family="Segoe UI" font-size="11.00">1Sep_SSCC</text>
</a>
</g>
</g>
<!-- TRO111 -->
<g id="node14" class="node">
<title>TRO111</title>
<g id="a_node14"><a xlink:title="TRO 111 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2029.5,-129C2029.5,-129 1998.5,-129 1998.5,-129 1992.5,-129 1986.5,-123 1986.5,-117 1986.5,-117 1986.5,-103 1986.5,-103 1986.5,-97 1992.5,-91 1998.5,-91 1998.5,-91 2029.5,-91 2029.5,-91 2035.5,-91 2041.5,-97 2041.5,-103 2041.5,-103 2041.5,-117 2041.5,-117 2041.5,-123 2035.5,-129 2029.5,-129"/>
<text xml:space="preserve" text-anchor="middle" x="2014" y="-114.55" font-family="Segoe UI" font-size="11.00">TRO111</text>
<text xml:space="preserve" text-anchor="middle" x="2014" y="-99.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO110&#45;&gt;TRO111 -->
<g id="edge23" class="edge">
<title>TRO110&#45;&gt;TRO111</title>
<g id="a_edge23"><a xlink:title="JA0110_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1950.18,-110.64C1958.53,-110.56 1967.46,-110.47 1975.89,-110.38"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1975.92,-113.18 1983.89,-110.3 1975.87,-107.58 1975.92,-113.18"/>
</a>
</g>
</g>
<!-- TRO113 -->
<g id="node16" class="node">
<title>TRO113</title>
<g id="a_node16"><a xlink:title="TRO 113 (1Sep)+Scanner">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2121.5,-129C2121.5,-129 2090.5,-129 2090.5,-129 2084.5,-129 2078.5,-123 2078.5,-117 2078.5,-117 2078.5,-103 2078.5,-103 2078.5,-97 2084.5,-91 2090.5,-91 2090.5,-91 2121.5,-91 2121.5,-91 2127.5,-91 2133.5,-97 2133.5,-103 2133.5,-103 2133.5,-117 2133.5,-117 2133.5,-123 2127.5,-129 2121.5,-129"/>
<text xml:space="preserve" text-anchor="middle" x="2106" y="-114.55" font-family="Segoe UI" font-size="11.00">TRO113</text>
<text xml:space="preserve" text-anchor="middle" x="2106" y="-99.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO111&#45;&gt;TRO113 -->
<g id="edge9" class="edge">
<title>TRO111&#45;&gt;TRO113</title>
<g id="a_edge9"><a xlink:title="JA0102_3 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2042,-110C2050.12,-110 2059.16,-110 2067.81,-110"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2067.74,-112.8 2075.74,-110 2067.74,-107.2 2067.74,-112.8"/>
</a>
</g>
</g>
<!-- TRO112&#45;&gt;TRO108 -->
<g id="edge19" class="edge">
<title>TRO112&#45;&gt;TRO108</title>
<g id="a_edge19"><a xlink:title="JA0107_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1467.34,-113C1480.32,-113 1495.45,-113 1508.95,-113"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1508.92,-115.8 1516.92,-113 1508.92,-110.2 1508.92,-115.8"/>
</a>
</g>
</g>
<!-- TRO112&#45;&gt;TRO113 -->
<g id="edge10" class="edge">
<title>TRO112&#45;&gt;TRO113</title>
<g id="a_edge10"><a xlink:title="JA0102_3 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1462.33,-93.24C1483.77,-79.26 1515.32,-63 1546,-63 1546,-63 1546,-63 2015,-63 2036.51,-63 2057.96,-73.68 2074.53,-84.86"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="2072.5,-86.85 2080.64,-89.2 2075.74,-82.28 2072.5,-86.85"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1772.62" y="-67.2" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO114 -->
<g id="node17" class="node">
<title>TRO114</title>
<g id="a_node17"><a xlink:title="TRO 114 (1Sep1Switch)+Scanner">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M2222.5,-129C2222.5,-129 2182.5,-129 2182.5,-129 2176.5,-129 2170.5,-123 2170.5,-117 2170.5,-117 2170.5,-103 2170.5,-103 2170.5,-97 2176.5,-91 2182.5,-91 2182.5,-91 2222.5,-91 2222.5,-91 2228.5,-91 2234.5,-97 2234.5,-103 2234.5,-103 2234.5,-117 2234.5,-117 2234.5,-123 2228.5,-129 2222.5,-129"/>
<text xml:space="preserve" text-anchor="middle" x="2202.5" y="-114.55" font-family="Segoe UI" font-size="11.00">TRO114</text>
<text xml:space="preserve" text-anchor="middle" x="2202.5" y="-99.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO113&#45;&gt;TRO114 -->
<g id="edge11" class="edge">
<title>TRO113&#45;&gt;TRO114</title>
<g id="a_edge11"><a xlink:title="JA0102_4 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2134.08,-110C2142.16,-110 2151.22,-110 2160,-110"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2159.77,-112.8 2167.77,-110 2159.77,-107.2 2159.77,-112.8"/>
</a>
</g>
</g>
<!-- TRO116 -->
<g id="node19" class="node">
<title>TRO116</title>
<g id="a_node19"><a xlink:title="TRO 116 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2328.5,-130C2328.5,-130 2297.5,-130 2297.5,-130 2291.5,-130 2285.5,-124 2285.5,-118 2285.5,-118 2285.5,-104 2285.5,-104 2285.5,-98 2291.5,-92 2297.5,-92 2297.5,-92 2328.5,-92 2328.5,-92 2334.5,-92 2340.5,-98 2340.5,-104 2340.5,-104 2340.5,-118 2340.5,-118 2340.5,-124 2334.5,-130 2328.5,-130"/>
<text xml:space="preserve" text-anchor="middle" x="2313" y="-115.55" font-family="Segoe UI" font-size="11.00">TRO116</text>
<text xml:space="preserve" text-anchor="middle" x="2313" y="-100.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO114&#45;&gt;TRO116 -->
<g id="edge12" class="edge">
<title>TRO114&#45;&gt;TRO116</title>
<g id="a_edge12"><a xlink:title="JA0102_5 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M2235.17,-110.29C2247.74,-110.41 2262.26,-110.54 2275.28,-110.66"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="2274.89,-113.46 2282.91,-110.73 2274.94,-107.86 2274.89,-113.46"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2260" y="-114.79" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO115 -->
<g id="node18" class="node">
<title>TRO115</title>
<g id="a_node18"><a xlink:title="TRO 115 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-207C404,-207 373,-207 373,-207 367,-207 361,-201 361,-195 361,-195 361,-181 361,-181 361,-175 367,-169 373,-169 373,-169 404,-169 404,-169 410,-169 416,-175 416,-181 416,-181 416,-195 416,-195 416,-201 410,-207 404,-207"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-192.55" font-family="Segoe UI" font-size="11.00">TRO115</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-177.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO120 -->
<g id="node21" class="node">
<title>TRO120</title>
<g id="a_node21"><a xlink:title="TRO 120 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M525.75,-207C525.75,-207 494.75,-207 494.75,-207 488.75,-207 482.75,-201 482.75,-195 482.75,-195 482.75,-181 482.75,-181 482.75,-175 488.75,-169 494.75,-169 494.75,-169 525.75,-169 525.75,-169 531.75,-169 537.75,-175 537.75,-181 537.75,-181 537.75,-195 537.75,-195 537.75,-201 531.75,-207 525.75,-207"/>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-192.55" font-family="Segoe UI" font-size="11.00">TRO120</text>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-177.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO115&#45;&gt;TRO120 -->
<g id="edge24" class="edge">
<title>TRO115&#45;&gt;TRO120</title>
<g id="a_edge24"><a xlink:title="JA4103_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-188C432.75,-188 453.36,-188 471.06,-188"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="470.85,-190.8 478.85,-188 470.85,-185.2 470.85,-190.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="449.38" y="-192.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO117 -->
<g id="node20" class="node">
<title>TRO117</title>
<g id="a_node20"><a xlink:title="TRO 117 (1Sep) + Scanner">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2420.5,-133C2420.5,-133 2389.5,-133 2389.5,-133 2383.5,-133 2377.5,-127 2377.5,-121 2377.5,-121 2377.5,-107 2377.5,-107 2377.5,-101 2383.5,-95 2389.5,-95 2389.5,-95 2420.5,-95 2420.5,-95 2426.5,-95 2432.5,-101 2432.5,-107 2432.5,-107 2432.5,-121 2432.5,-121 2432.5,-127 2426.5,-133 2420.5,-133"/>
<text xml:space="preserve" text-anchor="middle" x="2405" y="-118.55" font-family="Segoe UI" font-size="11.00">TRO117</text>
<text xml:space="preserve" text-anchor="middle" x="2405" y="-103.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO116&#45;&gt;TRO117 -->
<g id="edge13" class="edge">
<title>TRO116&#45;&gt;TRO117</title>
<g id="a_edge13"><a xlink:title="JA0102_6 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2341,-111.9C2349.12,-112.17 2358.16,-112.47 2366.81,-112.76"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2366.65,-115.56 2374.74,-113.02 2366.84,-109.96 2366.65,-115.56"/>
</a>
</g>
</g>
<!-- TRO117&#45;&gt;TRO107 -->
<g id="edge5" class="edge">
<title>TRO117&#45;&gt;TRO107</title>
<g id="a_edge5"><a xlink:title="JA0102_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2433.08,-124.32C2441.34,-127.46 2450.61,-130.99 2459.57,-134.41"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2458.43,-136.97 2466.9,-137.2 2460.42,-131.74 2458.43,-136.97"/>
</a>
</g>
</g>
<!-- TRO121 -->
<g id="node22" class="node">
<title>TRO121</title>
<g id="a_node22"><a xlink:title="TRO 121(Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-151C404,-151 373,-151 373,-151 367,-151 361,-145 361,-139 361,-139 361,-125 361,-125 361,-119 367,-113 373,-113 373,-113 404,-113 404,-113 410,-113 416,-119 416,-125 416,-125 416,-139 416,-139 416,-145 410,-151 404,-151"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-136.55" font-family="Segoe UI" font-size="11.00">TRO121</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-121.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO122 -->
<g id="node23" class="node">
<title>TRO122</title>
<g id="a_node23"><a xlink:title="TRO 122 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M525.75,-151C525.75,-151 494.75,-151 494.75,-151 488.75,-151 482.75,-145 482.75,-139 482.75,-139 482.75,-125 482.75,-125 482.75,-119 488.75,-113 494.75,-113 494.75,-113 525.75,-113 525.75,-113 531.75,-113 537.75,-119 537.75,-125 537.75,-125 537.75,-139 537.75,-139 537.75,-145 531.75,-151 525.75,-151"/>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-136.55" font-family="Segoe UI" font-size="11.00">TRO122</text>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-121.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO121&#45;&gt;TRO122 -->
<g id="edge35" class="edge">
<title>TRO121&#45;&gt;TRO122</title>
<g id="a_edge35"><a xlink:title="JA4503_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-132C432.75,-132 453.36,-132 471.06,-132"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="470.85,-134.8 478.85,-132 470.85,-129.2 470.85,-134.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="449.38" y="-136.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO123 -->
<g id="node24" class="node">
<title>TRO123</title>
<g id="a_node24"><a xlink:title="TRO 123 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M640,-151C640,-151 609,-151 609,-151 603,-151 597,-145 597,-139 597,-139 597,-125 597,-125 597,-119 603,-113 609,-113 609,-113 640,-113 640,-113 646,-113 652,-119 652,-125 652,-125 652,-139 652,-139 652,-145 646,-151 640,-151"/>
<text xml:space="preserve" text-anchor="middle" x="624.5" y="-136.55" font-family="Segoe UI" font-size="11.00">TRO123</text>
<text xml:space="preserve" text-anchor="middle" x="624.5" y="-121.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO122&#45;&gt;TRO123 -->
<g id="edge33" class="edge">
<title>TRO122&#45;&gt;TRO123</title>
<g id="a_edge33"><a xlink:title="JA4502_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M538.42,-132C552.9,-132 570.92,-132 586.64,-132"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="586.61,-134.8 594.61,-132 586.61,-129.2 586.61,-134.8"/>
</a>
</g>
</g>
<!-- TRO124 -->
<g id="node25" class="node">
<title>TRO124</title>
<g id="a_node25"><a xlink:title="TRO 124 (1Sep1Switch)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M763.25,-151C763.25,-151 723.25,-151 723.25,-151 717.25,-151 711.25,-145 711.25,-139 711.25,-139 711.25,-125 711.25,-125 711.25,-119 717.25,-113 723.25,-113 723.25,-113 763.25,-113 763.25,-113 769.25,-113 775.25,-119 775.25,-125 775.25,-125 775.25,-139 775.25,-139 775.25,-145 769.25,-151 763.25,-151"/>
<text xml:space="preserve" text-anchor="middle" x="743.25" y="-136.55" font-family="Segoe UI" font-size="11.00">TRO124</text>
<text xml:space="preserve" text-anchor="middle" x="743.25" y="-121.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO123&#45;&gt;TRO124 -->
<g id="edge34" class="edge">
<title>TRO123&#45;&gt;TRO124</title>
<g id="a_edge34"><a xlink:title="JA4502_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M652.58,-132C666.56,-132 683.95,-132 699.68,-132"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="699.44,-134.8 707.44,-132 699.44,-129.2 699.44,-134.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="681.62" y="-136.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO125 -->
<g id="node26" class="node">
<title>TRO125</title>
<g id="a_node26"><a xlink:title="TRO 125 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M869.25,-154C869.25,-154 838.25,-154 838.25,-154 832.25,-154 826.25,-148 826.25,-142 826.25,-142 826.25,-128 826.25,-128 826.25,-122 832.25,-116 838.25,-116 838.25,-116 869.25,-116 869.25,-116 875.25,-116 881.25,-122 881.25,-128 881.25,-128 881.25,-142 881.25,-142 881.25,-148 875.25,-154 869.25,-154"/>
<text xml:space="preserve" text-anchor="middle" x="853.75" y="-139.55" font-family="Segoe UI" font-size="11.00">TRO125</text>
<text xml:space="preserve" text-anchor="middle" x="853.75" y="-124.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO124&#45;&gt;TRO125 -->
<g id="edge27" class="edge">
<title>TRO124&#45;&gt;TRO125</title>
<g id="a_edge27"><a xlink:title="JA4204_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M775.92,-132.88C788.49,-133.22 803.01,-133.62 816.03,-133.98"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="815.59,-136.77 823.66,-134.2 815.74,-131.18 815.59,-136.77"/>
</a>
</g>
</g>
<!-- TRO127 -->
<g id="node28" class="node">
<title>TRO127</title>
<g id="a_node28"><a xlink:title="TRO 127 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M869.25,-95C869.25,-95 838.25,-95 838.25,-95 832.25,-95 826.25,-89 826.25,-83 826.25,-83 826.25,-69 826.25,-69 826.25,-63 832.25,-57 838.25,-57 838.25,-57 869.25,-57 869.25,-57 875.25,-57 881.25,-63 881.25,-69 881.25,-69 881.25,-83 881.25,-83 881.25,-89 875.25,-95 869.25,-95"/>
<text xml:space="preserve" text-anchor="middle" x="853.75" y="-80.55" font-family="Segoe UI" font-size="11.00">TRO127</text>
<text xml:space="preserve" text-anchor="middle" x="853.75" y="-65.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO124&#45;&gt;TRO127 -->
<g id="edge30" class="edge">
<title>TRO124&#45;&gt;TRO127</title>
<g id="a_edge30"><a xlink:title="JA4501_1 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M775.92,-115.65C788.73,-109.04 803.58,-101.38 816.79,-94.56"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="818.06,-97.06 823.88,-90.9 815.49,-92.08 818.06,-97.06"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="800.75" y="-109.88" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO126 -->
<g id="node27" class="node">
<title>TRO126</title>
<g id="a_node27"><a xlink:title="TRO 126 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M983.5,-154C983.5,-154 952.5,-154 952.5,-154 946.5,-154 940.5,-148 940.5,-142 940.5,-142 940.5,-128 940.5,-128 940.5,-122 946.5,-116 952.5,-116 952.5,-116 983.5,-116 983.5,-116 989.5,-116 995.5,-122 995.5,-128 995.5,-128 995.5,-142 995.5,-142 995.5,-148 989.5,-154 983.5,-154"/>
<text xml:space="preserve" text-anchor="middle" x="968" y="-139.55" font-family="Segoe UI" font-size="11.00">TRO126</text>
<text xml:space="preserve" text-anchor="middle" x="968" y="-124.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO125&#45;&gt;TRO126 -->
<g id="edge25" class="edge">
<title>TRO125&#45;&gt;TRO126</title>
<g id="a_edge25"><a xlink:title="JA4203_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M881.92,-135C896.4,-135 914.42,-135 930.14,-135"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="930.11,-137.8 938.11,-135 930.11,-132.2 930.11,-137.8"/>
</a>
</g>
</g>
<!-- TRO128 -->
<g id="node29" class="node">
<title>TRO128</title>
<g id="a_node29"><a xlink:title="TRO 128 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M983.5,-95C983.5,-95 952.5,-95 952.5,-95 946.5,-95 940.5,-89 940.5,-83 940.5,-83 940.5,-69 940.5,-69 940.5,-63 946.5,-57 952.5,-57 952.5,-57 983.5,-57 983.5,-57 989.5,-57 995.5,-63 995.5,-69 995.5,-69 995.5,-83 995.5,-83 995.5,-89 989.5,-95 983.5,-95"/>
<text xml:space="preserve" text-anchor="middle" x="968" y="-80.55" font-family="Segoe UI" font-size="11.00">TRO128</text>
<text xml:space="preserve" text-anchor="middle" x="968" y="-65.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO127&#45;&gt;TRO128 -->
<g id="edge32" class="edge">
<title>TRO127&#45;&gt;TRO128</title>
<g id="a_edge32"><a xlink:title="JA4501_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M881.92,-76C895.99,-76 913.39,-76 928.78,-76"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="928.75,-78.8 936.75,-76 928.75,-73.2 928.75,-78.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="910.88" y="-80.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO128&#45;&gt;TRO100 -->
<g id="edge1" class="edge">
<title>TRO128&#45;&gt;TRO100</title>
<g id="a_edge1"><a xlink:title="JA0100_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M996.17,-76C1010.24,-76 1027.64,-76 1043.03,-76"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="1043,-78.8 1051,-76 1043,-73.2 1043,-78.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1025.12" y="-80.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO129 -->
<g id="node30" class="node">
<title>TRO129</title>
<g id="a_node30"><a xlink:title="TRO 129 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M640,-93C640,-93 609,-93 609,-93 603,-93 597,-87 597,-81 597,-81 597,-67 597,-67 597,-61 603,-55 609,-55 609,-55 640,-55 640,-55 646,-55 652,-61 652,-67 652,-67 652,-81 652,-81 652,-87 646,-93 640,-93"/>
<text xml:space="preserve" text-anchor="middle" x="624.5" y="-78.55" font-family="Segoe UI" font-size="11.00">TRO129</text>
<text xml:space="preserve" text-anchor="middle" x="624.5" y="-63.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO130 -->
<g id="node31" class="node">
<title>TRO130</title>
<g id="a_node31"><a xlink:title="TRO 130 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M758.75,-93C758.75,-93 727.75,-93 727.75,-93 721.75,-93 715.75,-87 715.75,-81 715.75,-81 715.75,-67 715.75,-67 715.75,-61 721.75,-55 727.75,-55 727.75,-55 758.75,-55 758.75,-55 764.75,-55 770.75,-61 770.75,-67 770.75,-67 770.75,-81 770.75,-81 770.75,-87 764.75,-93 758.75,-93"/>
<text xml:space="preserve" text-anchor="middle" x="743.25" y="-78.55" font-family="Segoe UI" font-size="11.00">TRO130</text>
<text xml:space="preserve" text-anchor="middle" x="743.25" y="-63.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO129&#45;&gt;TRO130 -->
<g id="edge26" class="edge">
<title>TRO129&#45;&gt;TRO130</title>
<g id="a_edge26"><a xlink:title="JA4204_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M652.58,-74C668.35,-74 688.44,-74 705.6,-74"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="705.35,-76.8 713.35,-74 705.35,-71.2 705.35,-76.8"/>
</a>
</g>
</g>
<!-- TRO130&#45;&gt;TRO127 -->
<g id="edge31" class="edge">
<title>TRO130&#45;&gt;TRO127</title>
<g id="a_edge31"><a xlink:title="JA4501_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M771.35,-74.5C784.81,-74.75 801.28,-75.05 815.88,-75.32"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="815.6,-78.12 823.65,-75.46 815.71,-72.52 815.6,-78.12"/>
</a>
</g>
</g>
<!-- TRO131 -->
<g id="node32" class="node">
<title>TRO131</title>
<g id="a_node32"><a xlink:title="TRO 131 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M525.75,-263C525.75,-263 494.75,-263 494.75,-263 488.75,-263 482.75,-257 482.75,-251 482.75,-251 482.75,-237 482.75,-237 482.75,-231 488.75,-225 494.75,-225 494.75,-225 525.75,-225 525.75,-225 531.75,-225 537.75,-231 537.75,-237 537.75,-237 537.75,-251 537.75,-251 537.75,-257 531.75,-263 525.75,-263"/>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-248.55" font-family="Segoe UI" font-size="11.00">TRO131</text>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-233.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO133 -->
<g id="node33" class="node">
<title>TRO133</title>
<g id="a_node33"><a xlink:title="TRO 133 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M525.75,-93C525.75,-93 494.75,-93 494.75,-93 488.75,-93 482.75,-87 482.75,-81 482.75,-81 482.75,-67 482.75,-67 482.75,-61 488.75,-55 494.75,-55 494.75,-55 525.75,-55 525.75,-55 531.75,-55 537.75,-61 537.75,-67 537.75,-67 537.75,-81 537.75,-81 537.75,-87 531.75,-93 525.75,-93"/>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-78.55" font-family="Segoe UI" font-size="11.00">TRO133</text>
<text xml:space="preserve" text-anchor="middle" x="510.25" y="-63.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO133&#45;&gt;TRO129 -->
<g id="edge28" class="edge">
<title>TRO133&#45;&gt;TRO129</title>
<g id="a_edge28"><a xlink:title="JA4302_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M538.42,-74C552.49,-74 569.89,-74 585.28,-74"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="585.25,-76.8 593.25,-74 585.25,-71.2 585.25,-76.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="567.38" y="-78.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO134 -->
<g id="node34" class="node">
<title>TRO134</title>
<g id="a_node34"><a xlink:title="TRO 134 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-263C404,-263 373,-263 373,-263 367,-263 361,-257 361,-251 361,-251 361,-237 361,-237 361,-231 367,-225 373,-225 373,-225 404,-225 404,-225 410,-225 416,-231 416,-237 416,-237 416,-251 416,-251 416,-257 410,-263 404,-263"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-248.55" font-family="Segoe UI" font-size="11.00">TRO134</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-233.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO134&#45;&gt;TRO131 -->
<g id="edge29" class="edge">
<title>TRO134&#45;&gt;TRO131</title>
<g id="a_edge29"><a xlink:title="JA4403_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-244C432.75,-244 453.36,-244 471.06,-244"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="470.85,-246.8 478.85,-244 470.85,-241.2 470.85,-246.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="449.38" y="-248.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- fbLoadingBoom1&#45;&gt;TRO105 -->
<g id="edge17" class="edge">
<title>fbLoadingBoom1&#45;&gt;TRO105</title>
<g id="a_edge17"><a xlink:title="JA0104_3 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2893.15,-159C2902.06,-159 2911.01,-159 2919.39,-159"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2919.34,-161.8 2927.34,-159 2919.34,-156.2 2919.34,-161.8"/>
</a>
</g>
</g>
<!-- fbLoadingBoom2&#45;&gt;TRO110 -->
<g id="edge22" class="edge">
<title>fbLoadingBoom2&#45;&gt;TRO110</title>
<g id="a_edge22"><a xlink:title="JA0108_3 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1842.15,-112.02C1851.06,-111.89 1860.01,-111.76 1868.39,-111.64"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1868.38,-114.44 1876.34,-111.53 1868.3,-108.84 1868.38,-114.44"/>
</a>
</g>
</g>
<!-- EXT_UH01_e001 -->
<g id="node37" class="node">
<title>EXT_UH01_e001</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-200 128.12,-200 128.12,-176 170.12,-176 182.12,-188 170.12,-200"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-192.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-179.45" font-family="Segoe UI" font-size="9.00">JA4104_1</text>
</g>
<!-- EXT_UH01_e001&#45;&gt;TRO115 -->
<g id="edge38" class="edge">
<title>EXT_UH01_e001&#45;&gt;TRO115</title>
<g id="a_edge38"><a xlink:title="JA4104_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-188C224.03,-188 303.96,-188 350.81,-188"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-190.8 358.59,-188 350.59,-185.2 350.59,-190.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-192.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- EXT_UH01_e002 -->
<g id="node38" class="node">
<title>EXT_UH01_e002</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="403.5,-86 361.5,-86 361.5,-62 403.5,-62 415.5,-74 403.5,-86"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-78.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-65.45" font-family="Segoe UI" font-size="9.00">JA4302_1</text>
</g>
<!-- EXT_UH01_e002&#45;&gt;TRO133 -->
<g id="edge39" class="edge">
<title>EXT_UH01_e002&#45;&gt;TRO133</title>
<g id="a_edge39"><a xlink:title="JA4302_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M416.08,-74C432.7,-74 454.36,-74 472.6,-74"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="472.37,-76.8 480.37,-74 472.37,-71.2 472.37,-76.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="449.38" y="-78.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- EXT_UH01_e003 -->
<g id="node39" class="node">
<title>EXT_UH01_e003</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-256 128.12,-256 128.12,-232 170.12,-232 182.12,-244 170.12,-256"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-248.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-235.45" font-family="Segoe UI" font-size="9.00">JA4402_1</text>
</g>
<!-- EXT_UH01_e003&#45;&gt;TRO134 -->
<g id="edge40" class="edge">
<title>EXT_UH01_e003&#45;&gt;TRO134</title>
<g id="a_edge40"><a xlink:title="JA4402_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-244C224.03,-244 303.96,-244 350.81,-244"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-246.8 358.59,-244 350.59,-241.2 350.59,-246.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-248.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- EXT_UH01_e004 -->
<g id="node40" class="node">
<title>EXT_UH01_e004</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-144 128.12,-144 128.12,-120 170.12,-120 182.12,-132 170.12,-144"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-136.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-123.45" font-family="Segoe UI" font-size="9.00">JA4503_1</text>
</g>
<!-- EXT_UH01_e004&#45;&gt;TRO121 -->
<g id="edge41" class="edge">
<title>EXT_UH01_e004&#45;&gt;TRO121</title>
<g id="a_edge41"><a xlink:title="JA4503_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-132C224.03,-132 303.96,-132 350.81,-132"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-134.8 358.59,-132 350.59,-129.2 350.59,-134.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-136.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- legend -->
<g id="node41" class="node">
<title>legend</title>
<text xml:space="preserve" text-anchor="start" x="33.25" y="-395.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#444444">—— normal</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-392.5" font-family="Segoe UI" font-size="10.00">standard transfer (jam area to jam area)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-375" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#cc8800">—— dir2</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-372.25" font-family="Segoe UI" font-size="10.00">switch output, direction 2 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-354.75" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#b35900">—— dir3</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-352" font-family="Segoe UI" font-size="10.00">switch output, direction 3 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="34.75" y="-334.5" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#3388cc">—— bypass</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-331.75" font-family="Segoe UI" font-size="10.00">bypass around a storage block (PinStore)</text>
<text xml:space="preserve" text-anchor="start" x="38.5" y="-314.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#883388">—— finger</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-311.5" font-family="Segoe UI" font-size="10.00">chain&#45;conveyor finger / index transfer</text>
<text xml:space="preserve" text-anchor="start" x="28" y="-294" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#557799">—— EXTERN</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-291.25" font-family="Segoe UI" font-size="10.00">infeed / outfeed to another PLC (EXTERN)</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 50 KiB

+239
View File
@@ -0,0 +1,239 @@
digraph UH02 {
rankdir=LR;
bgcolor="white";
labelloc="t";
label=<<b>UH02</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;
fontname="Segoe UI"; fontsize=18;
node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];
edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];
"TRO200" [label="TRO200\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 200 (Vario)"];
"TRO201" [label="TRO201\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 201 (1Sep)"];
"TRO202" [label="TRO202\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 202 (1Sep1Switch)+Scanner(BX2103)"];
"TRO203" [label="TRO203\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 203 (1Sep1Switch) + Scanner (BX2111)"];
"TRO204" [label="TRO204\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 204(1Sep1Switch) + Scanner(BX2112)"];
"TRO205" [label="TRO205\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 205 (1Sep1Switch) + Scanner(BX2114)"];
"TRO206" [label="TRO206\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 206 (1Sep1Switch)+Scanner(BX2113)"];
"TRO207" [label="TRO207\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 207(1Sep)"];
"TRO208" [label="TRO208\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO208"];
"TRO209" [label="TRO209\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 209 (Vario)"];
"TRO210" [label="TRO210\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 210 (1Sep)"];
"TRO211" [label="TRO211\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO211"];
"TRO212" [label="TRO212\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 212 (Vario)"];
"TRO213" [label="TRO213\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 213 (1Sep)"];
"TRO214" [label="TRO214\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO214"];
"TRO215" [label="TRO215\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 215 (Vario)"];
"TRO216" [label="TRO216\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 216 (1Sep)"];
"TRO217" [label="TRO217\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO217"];
"TRO218" [label="TRO218\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 218 (Vario)"];
"TRO219" [label="TRO219\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 219(1Sep)"];
"TRO220" [label="TRO220\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 220 (Vario)"];
"TRO221" [label="TRO221\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 221 (1Sep)"];
"TRO222" [label="TRO222\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 222 (1Sep1Switch)+Scanner(BX2121)"];
"TRO223" [label="TRO223\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 223 (1Sep1Switch)+Scanner(BX2126)"];
"TRO224" [label="TRO224\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 224 (1Sep1Switch)+Scanner(BX2127)"];
"TRO225" [label="TRO225\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 225(1Sep1Switch)+Scanner(BX2129)"];
"TRO226" [label="TRO226\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 226 (1Sep1Switch)+Scanner(BX2128)"];
"TRO227" [label="TRO227\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 227 (1Sep)"];
"TRO228" [label="TRO228\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO228"];
"TRO229" [label="TRO229\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 229 (Vario)"];
"TRO230" [label="TRO230\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 230 (1Sep)"];
"TRO231" [label="TRO231\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO231"];
"TRO232" [label="TRO232\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 232 (Vario)"];
"TRO233" [label="TRO233\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 233 (1Sep)"];
"TRO234" [label="TRO234\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO234"];
"TRO235" [label="TRO235\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 235 (Vario)"];
"TRO236" [label="TRO236\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 236 (1Sep)"];
"TRO237" [label="TRO237\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO237"];
"TRO238" [label="TRO238\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 238 (Vario)"];
"TRO239" [label="TRO239\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 239 (1Sep)"];
"TRO240" [label="TRO240\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 240 (Vario)"];
"TRO241" [label="TRO241\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 241(1Sep)"];
"TRO242" [label="TRO242\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 242 (1Sep1Switch)+Scanner(BX2130)"];
"TRO243" [label="TRO243\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 243 (1Sep1Switch)+Scanner(BX3137)"];
"TRO244" [label="TRO244\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 244 (1Sep1Switch)+Scanner(BX2136)"];
"TRO245" [label="TRO245\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 245 (1Sep1Switch)+Scanner(BX2138)"];
"TRO246" [label="TRO246\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 246 (1Sep1Switch)+Scanner(BX2137)"];
"TRO247" [label="TRO247\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 247(1Sep)"];
"TRO248" [label="TRO248\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO248"];
"TRO249" [label="TRO249\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 249 (Vario)"];
"TRO250" [label="TRO250\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 250 (1Sep)"];
"TRO251" [label="TRO251\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO251"];
"TRO252" [label="TRO252\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 252 (Vario)"];
"TRO253" [label="TRO253\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 253 (1Sep)"];
"TRO254" [label="TRO254\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO254"];
"TRO255" [label="TRO255\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 255 (Vario)"];
"TRO256" [label="TRO256\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 256 (1Sep)"];
"TRO257" [label="TRO257\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO257"];
"TRO258" [label="TRO258\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 258 (Vario)"];
"TRO259" [label="TRO259\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 259 (1Sep)"];
"TRO260" [label="TRO260\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 260 (Vario) + Scanner (BX2115)"];
"TRO261" [label="TRO261\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 261 (1Sep)"];
"TRO262" [label="TRO262\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 262 (Vario) + Scanner (BX2109)"];
"TRO263" [label="TRO263\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 263 (1Sep)"];
"TRO264" [label="TRO264\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 264 (Vario) + Scanner (BX2108)"];
"TRO265" [label="TRO265\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 265 (1Sep)"];
"TRO266" [label="TRO266\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 266(1Sep)"];
"TRO267" [label="TRO267\n1Sep2Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 267 (1Sep2Switch)+Scanner(BX2100)"];
"TRO268" [label="TRO268\n1Sep2Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 268 (1Sep2Switch)+Scanner(BX2101)"];
"TRO269" [label="TRO269\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 269 (1Sep)+Scanner (BX2102)"];
"TRO270" [label="TRO270\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 270 (Vario)"];
"TRO272" [label="TRO272\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 272 (Vario)"];
"TRO274" [label="TRO274\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 274 (1Sep)"];
"TRO275" [label="TRO275\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 275 (1Sep)"];
"EXT_UH02_e001" [label="EXTERN\nJA1109_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e002" [label="EXTERN\nJA1209_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e003" [label="EXTERN\nJA1302_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e004" [label="EXTERN\nJA1302_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e005" [label="EXTERN\nJA1309_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e006" [label="EXTERN\nJA1401_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e007" [label="EXTERN\nJA1501_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e008" [label="EXTERN\nJA1601_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e009" [label="EXTERN\nJA1801_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e010" [label="EXTERN\nJA4701_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e011" [label="EXTERN\nStorage1.1.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e012" [label="EXTERN\nStorage1.1.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e013" [label="EXTERN\nStorage1.1.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e014" [label="EXTERN\nStorage1.1.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e015" [label="EXTERN\nStorage1.2.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e016" [label="EXTERN\nStorage1.2.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e017" [label="EXTERN\nStorage1.2.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e018" [label="EXTERN\nStorage1.2.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e019" [label="EXTERN\nStorage1.3.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e020" [label="EXTERN\nStorage1.3.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e021" [label="EXTERN\nStorage1.3.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e022" [label="EXTERN\nStorage1.3.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e023" [label="EXTERN\nIO_Device_UH02_TO_UH01.stCARRIER_INFO", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e024" [label="EXTERN\nIO_Device_UH02_TO_UH01.stCARRIER_INFO_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH02_e025" [label="EXTERN\nIO_Device_UH02_TO_UH01.stCARRIER_INFO_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"TRO202" -> "TRO211" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1101_1 (dir2)"];
"TRO213" -> "TRO211" [color="#444444", penwidth=1.3, tooltip="JA1101_1 (normal)"];
"TRO211" -> "TRO208" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1101_2 (bypass)"];
"TRO210" -> "TRO208" [color="#444444", penwidth=1.3, tooltip="JA1101_2 (normal)"];
"TRO201" -> "TRO202" [color="#444444", penwidth=1.3, tooltip="JA1102_1 (normal)"];
"TRO202" -> "TRO214" [color="#444444", penwidth=1.3, tooltip="JA1102_2 (normal)"];
"TRO216" -> "TRO214" [color="#444444", penwidth=1.3, tooltip="JA1102_2 (normal)"];
"TRO214" -> "TRO217" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1102_3 (bypass)"];
"TRO219" -> "TRO217" [color="#444444", penwidth=1.3, tooltip="JA1102_3 (normal)"];
"TRO208" -> "TRO203" [color="#444444", penwidth=1.3, tooltip="JA1103_1 (normal)"];
"TRO211" -> "TRO204" [color="#444444", penwidth=1.3, tooltip="JA1103_2 (normal)"];
"TRO203" -> "TRO204" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1103_2 (dir2)"];
"TRO217" -> "TRO205" [color="#444444", penwidth=1.3, tooltip="JA1104_1 (normal)"];
"TRO214" -> "TRO206" [color="#444444", penwidth=1.3, tooltip="JA1104_2 (normal)"];
"TRO205" -> "TRO206" [color="#444444", penwidth=1.3, tooltip="JA1104_2 (normal)"];
"TRO204" -> "TRO207" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1104_3 (dir2)"];
"TRO206" -> "TRO207" [color="#444444", penwidth=1.3, tooltip="JA1104_3 (normal)"];
"TRO203" -> "TRO209" [color="#444444", penwidth=1.3, tooltip="JA1105_1 (normal)"];
"TRO209" -> "TRO210" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1105_2 (finger)"];
"TRO204" -> "TRO212" [color="#444444", penwidth=1.3, tooltip="JA1106_1 (normal)"];
"TRO212" -> "TRO213" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1106_2 (finger)"];
"TRO206" -> "TRO215" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1107_1 (dir2)"];
"TRO215" -> "TRO216" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1107_2 (finger)"];
"TRO205" -> "TRO218" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1108_1 (dir2)"];
"TRO218" -> "TRO219" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1108_2 (finger)"];
"TRO200" -> "TRO201" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1109_2 (finger)"];
"TRO268" -> "TRO269" [color="#b35900", penwidth=1.8, style="dotted", label="dir3", fontcolor="#b35900", tooltip="JA1110_1 (dir3)"];
"TRO261" -> "TRO274" [color="#444444", penwidth=1.3, tooltip="JA1110_2 (normal)"];
"TRO269" -> "TRO274" [color="#444444", penwidth=1.3, tooltip="JA1110_2 (normal)"];
"TRO263" -> "TRO266" [color="#444444", penwidth=1.3, tooltip="JA1110_3 (normal)"];
"TRO274" -> "TRO266" [color="#444444", penwidth=1.3, tooltip="JA1110_3 (normal)"];
"TRO265" -> "TRO267" [color="#444444", penwidth=1.3, tooltip="JA1110_4 (normal)"];
"TRO266" -> "TRO267" [color="#444444", penwidth=1.3, tooltip="JA1110_4 (normal)"];
"TRO267" -> "TRO275" [color="#b35900", penwidth=1.8, style="dotted", label="dir3", fontcolor="#b35900", tooltip="JA1110_5 (dir3)"];
"TRO275" -> "TRO268" [color="#444444", penwidth=1.3, tooltip="JA1110_6 (normal)"];
"TRO222" -> "TRO231" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1201_1 (dir2)"];
"TRO233" -> "TRO231" [color="#444444", penwidth=1.3, tooltip="JA1201_1 (normal)"];
"TRO231" -> "TRO228" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1201_2 (bypass)"];
"TRO230" -> "TRO228" [color="#444444", penwidth=1.3, tooltip="JA1201_2 (normal)"];
"TRO221" -> "TRO222" [color="#444444", penwidth=1.3, tooltip="JA1202_1 (normal)"];
"TRO222" -> "TRO234" [color="#444444", penwidth=1.3, tooltip="JA1202_2 (normal)"];
"TRO236" -> "TRO234" [color="#444444", penwidth=1.3, tooltip="JA1202_2 (normal)"];
"TRO234" -> "TRO237" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1202_3 (bypass)"];
"TRO239" -> "TRO237" [color="#444444", penwidth=1.3, tooltip="JA1202_3 (normal)"];
"TRO228" -> "TRO223" [color="#444444", penwidth=1.3, tooltip="JA1203_1 (normal)"];
"TRO231" -> "TRO224" [color="#444444", penwidth=1.3, tooltip="JA1203_2 (normal)"];
"TRO223" -> "TRO224" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1203_2 (dir2)"];
"TRO237" -> "TRO225" [color="#444444", penwidth=1.3, tooltip="JA1204_1 (normal)"];
"TRO234" -> "TRO226" [color="#444444", penwidth=1.3, tooltip="JA1204_2 (normal)"];
"TRO225" -> "TRO226" [color="#444444", penwidth=1.3, tooltip="JA1204_2 (normal)"];
"TRO224" -> "TRO227" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1204_3 (dir2)"];
"TRO226" -> "TRO227" [color="#444444", penwidth=1.3, tooltip="JA1204_3 (normal)"];
"TRO223" -> "TRO229" [color="#444444", penwidth=1.3, tooltip="JA1205_1 (normal)"];
"TRO229" -> "TRO230" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1205_2 (finger)"];
"TRO224" -> "TRO232" [color="#444444", penwidth=1.3, tooltip="JA1206_1 (normal)"];
"TRO232" -> "TRO233" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1206_2 (finger)"];
"TRO226" -> "TRO235" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1207_1 (dir2)"];
"TRO235" -> "TRO236" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1207_2 (finger)"];
"TRO225" -> "TRO238" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1208_1 (dir2)"];
"TRO238" -> "TRO239" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1208_2 (finger)"];
"TRO220" -> "TRO221" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1209_2 (finger)"];
"TRO248" -> "TRO243" [color="#444444", penwidth=1.3, tooltip="JA1301_1 (normal)"];
"TRO251" -> "TRO244" [color="#444444", penwidth=1.3, tooltip="JA1301_2 (normal)"];
"TRO243" -> "TRO244" [color="#444444", penwidth=1.3, tooltip="JA1301_2 (normal)"];
"TRO257" -> "TRO245" [color="#444444", penwidth=1.3, tooltip="JA1302_1 (normal)"];
"TRO254" -> "TRO246" [color="#444444", penwidth=1.3, tooltip="JA1302_2 (normal)"];
"TRO245" -> "TRO246" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1302_2 (dir2)"];
"TRO242" -> "TRO251" [color="#444444", penwidth=1.3, tooltip="JA1303_1 (normal)"];
"TRO253" -> "TRO251" [color="#444444", penwidth=1.3, tooltip="JA1303_1 (normal)"];
"TRO251" -> "TRO248" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1303_2 (bypass)"];
"TRO250" -> "TRO248" [color="#444444", penwidth=1.3, tooltip="JA1303_2 (normal)"];
"TRO241" -> "TRO242" [color="#444444", penwidth=1.3, tooltip="JA1304_1 (normal)"];
"TRO242" -> "TRO254" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1304_2 (dir2)"];
"TRO256" -> "TRO254" [color="#444444", penwidth=1.3, tooltip="JA1304_2 (normal)"];
"TRO254" -> "TRO257" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA1304_3 (bypass)"];
"TRO259" -> "TRO257" [color="#444444", penwidth=1.3, tooltip="JA1304_3 (normal)"];
"TRO243" -> "TRO249" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1305_1 (dir2)"];
"TRO249" -> "TRO250" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1305_2 (finger)"];
"TRO244" -> "TRO252" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA1306_1 (dir2)"];
"TRO252" -> "TRO253" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1306_2 (finger)"];
"TRO246" -> "TRO255" [color="#444444", penwidth=1.3, tooltip="JA1307_1 (normal)"];
"TRO255" -> "TRO256" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1307_2 (finger)"];
"TRO245" -> "TRO258" [color="#444444", penwidth=1.3, tooltip="JA1308_1 (normal)"];
"TRO258" -> "TRO259" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1308_2 (finger)"];
"TRO240" -> "TRO241" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1309_2 (finger)"];
"TRO264" -> "TRO265" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1401_2 (finger)"];
"TRO262" -> "TRO263" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1501_2 (finger)"];
"TRO260" -> "TRO261" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA1601_2 (finger)"];
"EXT_UH02_e001" -> "TRO200" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1109_1"];
"EXT_UH02_e002" -> "TRO220" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1209_1"];
"TRO244" -> "EXT_UH02_e003" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1302_3"];
"TRO246" -> "EXT_UH02_e004" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1302_3"];
"EXT_UH02_e005" -> "TRO240" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1309_1"];
"EXT_UH02_e006" -> "TRO264" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1401_1"];
"EXT_UH02_e007" -> "TRO262" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1501_1"];
"EXT_UH02_e008" -> "TRO260" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1601_1"];
"EXT_UH02_e009" -> "TRO272" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA1801_1"];
"EXT_UH02_e010" -> "TRO270" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4701_1"];
"EXT_UH02_e011" -> "TRO208" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.1.1"];
"EXT_UH02_e012" -> "TRO211" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.1.2"];
"EXT_UH02_e013" -> "TRO214" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.1.3"];
"EXT_UH02_e014" -> "TRO217" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.1.4"];
"EXT_UH02_e015" -> "TRO228" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.2.1"];
"EXT_UH02_e016" -> "TRO231" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.2.2"];
"EXT_UH02_e017" -> "TRO234" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.2.3"];
"EXT_UH02_e018" -> "TRO237" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.2.4"];
"EXT_UH02_e019" -> "TRO248" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.3.1"];
"EXT_UH02_e020" -> "TRO251" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.3.2"];
"EXT_UH02_e021" -> "TRO254" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.3.3"];
"EXT_UH02_e022" -> "TRO257" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage1.3.4"];
"TRO207" -> "EXT_UH02_e023" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH02_TO_UH01.stCARRIER_INFO"];
"TRO227" -> "EXT_UH02_e024" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH02_TO_UH01.stCARRIER_INFO_1"];
"TRO247" -> "EXT_UH02_e025" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH02_TO_UH01.stCARRIER_INFO_2"];
subgraph cluster_legend {
label="Legend"; fontsize=12; color="#cccccc"; style="rounded";
node [shape=plaintext, style="", fillcolor="none", fontsize=10];
legend [label=<
<table border="0" cellborder="0" cellspacing="2">
<tr><td align="right"><font color="#444444"><b>&#8212;&#8212; normal</b></font></td><td align="left">standard transfer (jam area to jam area)</td></tr>
<tr><td align="right"><font color="#cc8800"><b>&#8212;&#8212; dir2</b></font></td><td align="left">switch output, direction 2 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#b35900"><b>&#8212;&#8212; dir3</b></font></td><td align="left">switch output, direction 3 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#3388cc"><b>&#8212;&#8212; bypass</b></font></td><td align="left">bypass around a storage block (PinStore)</td></tr>
<tr><td align="right"><font color="#883388"><b>&#8212;&#8212; finger</b></font></td><td align="left">chain-conveyor finger / index transfer</td></tr>
<tr><td align="right"><font color="#557799"><b>&#8212;&#8212; EXTERN</b></font></td><td align="left">infeed / outfeed to another PLC (EXTERN)</td></tr>
</table>>];
}
}
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 128 KiB

+273
View File
@@ -0,0 +1,273 @@
digraph UH03 {
rankdir=LR;
bgcolor="white";
labelloc="t";
label=<<b>UH03</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;
fontname="Segoe UI"; fontsize=18;
node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];
edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];
"TRO300" [label="TRO300\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 300 (Vario)"];
"TRO301" [label="TRO301\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 301(1Sep)"];
"TRO302" [label="TRO302\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 302 (Vario)"];
"TRO303" [label="TRO303\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 303 (Vario)"];
"TRO304" [label="TRO304\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 304(1Sep)"];
"TRO305" [label="TRO305\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 305 (Vario)"];
"TRO306" [label="TRO306\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 306 (Vario)"];
"TRO307" [label="TRO307\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 307 (Vario)"];
"TRO308" [label="TRO308\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 308 (Vario)"];
"TRO309" [label="TRO309\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 309 (1Sep)"];
"TRO310" [label="TRO310\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 310 (1Sep)+Scanner (BX3102)"];
"TRO311" [label="TRO311\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 311 (1Sep)+Scanner(BX3101)"];
"TRO312" [label="TRO312\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 312 (1Sep)+Scanner(BX3100)"];
"TRO313" [label="TRO313\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 313 (1Sep1Switch)+Scanner(BX3103)"];
"TRO314" [label="TRO314\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 314 (1Sep1Switch)+Scanner(BX3104)"];
"TRO315" [label="TRO315\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 315 (1Sep)"];
"TRO316" [label="TRO316\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 316 (1Sep)"];
"TRO317" [label="TRO317\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 317 (1Sep1Switch)+Scanner(BX3105)"];
"TRO318" [label="TRO318\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 318 (1Sep1Switch) + Scanner(BX3106)"];
"TRO319" [label="TRO319\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 319 (1Sep1Switch) + Scanner (BX3111)"];
"TRO320" [label="TRO320\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 320 (1Sep1Switch) + Scanner(BX3112)"];
"TRO321" [label="TRO321\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 321 (1Sep1Switch) + Scanner(BX3114)"];
"TRO322" [label="TRO322\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 322 (1Sep1Switch)+Scanner(BX3113)"];
"TRO323" [label="TRO323\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 323 (1Sep)"];
"TRO324" [label="TRO324\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 324 (Vario)"];
"TRO325" [label="TRO325\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 325 (1Sep)"];
"TRO326" [label="TRO326\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 326 (1Sep)"];
"TRO327" [label="TRO327\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO327"];
"TRO328" [label="TRO328\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 328 (Vario)"];
"TRO329" [label="TRO329\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 329 (1Sep)"];
"TRO330" [label="TRO330\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO330"];
"TRO331" [label="TRO331\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 331 (Vario)"];
"TRO332" [label="TRO332\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 332 (1Sep)"];
"TRO333" [label="TRO333\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO333"];
"TRO334" [label="TRO334\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 334 (Vario)"];
"TRO335" [label="TRO335\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 335 (1Sep)"];
"TRO336" [label="TRO336\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO336"];
"TRO337" [label="TRO337\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 337 (Vario)"];
"TRO338" [label="TRO338\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 338 (1Sep)"];
"TRO339" [label="TRO339\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 339 (1Sep1Switch)+Scanner(BX3120)"];
"TRO340" [label="TRO340\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 340 (1Sep1Switch)+Scanner(BX3121)"];
"TRO341" [label="TRO341\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 341 (1Sep1Switch)+Scanner(BX3126)"];
"TRO342" [label="TRO342\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 342 (1Sep1Switch)+Scanner(BX3127)"];
"TRO343" [label="TRO343\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 343 (1Sep1Switch)+Scanner(BX3129)"];
"TRO344" [label="TRO344\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 344 (1Sep1Switch)+Scanner(BX3128)"];
"TRO345" [label="TRO345\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 345 (1Sep)"];
"TRO346" [label="TRO346\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 346 (Vario)"];
"TRO347" [label="TRO347\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 347 (1Sep)"];
"TRO348" [label="TRO348\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 348 (1Sep)"];
"TRO349" [label="TRO349\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO349"];
"TRO350" [label="TRO350\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 350 (Vario)"];
"TRO351" [label="TRO351\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 351 (1Sep)"];
"TRO352" [label="TRO352\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO352"];
"TRO353" [label="TRO353\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 353 (Vario)"];
"TRO354" [label="TRO354\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 354 (1Sep)"];
"TRO355" [label="TRO355\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO355"];
"TRO356" [label="TRO356\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 356 (Vario)"];
"TRO357" [label="TRO357\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 357 (1Sep)"];
"TRO358" [label="TRO358\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO358"];
"TRO359" [label="TRO359\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 359 (Vario)"];
"TRO360" [label="TRO360\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 360 (1Sep)"];
"TRO361" [label="TRO361\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 361 (1Sep1Switch)+Scanner(BX3131)"];
"TRO362" [label="TRO362\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 362 (1Sep1Switch)+Scanner(BX3132)"];
"TRO363" [label="TRO363\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 363 (1Sep1Switch)+Scanner(BX3137)"];
"TRO364" [label="TRO364\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 364 (1Sep1Switch)+Scanner(BX3138)"];
"TRO365" [label="TRO365\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 365 (1Sep1Switch)+Scanner(BX3140)"];
"TRO366" [label="TRO366\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 366 (1Sep1Switch)+Scanner(BX3139)"];
"TRO367" [label="TRO367\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 367 (1Sep)"];
"TRO368" [label="TRO368\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 368 (Vario, from Lvl1)"];
"TRO369" [label="TRO369\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 369 (1Sep)"];
"TRO370" [label="TRO370\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 370 (1Sep)"];
"TRO371" [label="TRO371\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO371"];
"TRO372" [label="TRO372\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 372 (Vario)"];
"TRO373" [label="TRO373\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 373 (1Sep)"];
"TRO374" [label="TRO374\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO374"];
"TRO375" [label="TRO375\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 375 (Vario)"];
"TRO376" [label="TRO376\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 376 (1Sep)"];
"TRO377" [label="TRO377\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO377"];
"TRO378" [label="TRO378\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 378 (Vario)"];
"TRO379" [label="TRO379\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 379 (1Sep)"];
"TRO380" [label="TRO380\nPinStore_Auto", fillcolor="#d4f0d4", color="#338833", shape=box3d, style="filled", tooltip="Aufruf: TRO380"];
"TRO381" [label="TRO381\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 381 (Vario)"];
"TRO382" [label="TRO382\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 382 (1Sep)"];
"TRO386" [label="TRO386\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 386 (1Sep) - kam später dazu"];
"EXT_UH03_e001" [label="EXTERN\nJA2102_5", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e002" [label="EXTERN\nJA2109_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e003" [label="EXTERN\nJA2111_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e004" [label="EXTERN\nJA2202_5", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e005" [label="EXTERN\nJA2209_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e006" [label="EXTERN\nJA2309_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e007" [label="EXTERN\nJA4102_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e008" [label="EXTERN\nJA4102_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e009" [label="EXTERN\nJA4202_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e010" [label="EXTERN\nJA4202_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e011" [label="EXTERN\nJA4301_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e012" [label="EXTERN\nJA4401_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e013" [label="EXTERN\nStorage2.1.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e014" [label="EXTERN\nStorage2.1.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e015" [label="EXTERN\nStorage2.1.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e016" [label="EXTERN\nStorage2.1.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e017" [label="EXTERN\nStorage2.2.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e018" [label="EXTERN\nStorage2.2.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e019" [label="EXTERN\nStorage2.2.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e020" [label="EXTERN\nStorage2.2.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e021" [label="EXTERN\nStorage2.3.1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e022" [label="EXTERN\nStorage2.3.2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e023" [label="EXTERN\nStorage2.3.3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e024" [label="EXTERN\nStorage2.3.4", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e025" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCARRIER_INFO", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e026" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCARRIER_INFO_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e027" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCARRIER_INFO_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e028" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCarrierL2toL1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e029" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCarrierL2toL1_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH03_e030" [label="EXTERN\nIO_Device_UH03_TO_UH01.stCarrierL2toL1_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"TRO318" -> "TRO330" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2101_1 (dir2)"];
"TRO332" -> "TRO330" [color="#444444", penwidth=1.3, tooltip="JA2101_1 (normal)"];
"TRO330" -> "TRO327" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2101_2 (bypass)"];
"TRO329" -> "TRO327" [color="#444444", penwidth=1.3, tooltip="JA2101_2 (normal)"];
"TRO315" -> "TRO317" [color="#444444", penwidth=1.3, tooltip="JA2102_1 (normal)"];
"TRO317" -> "TRO318" [color="#444444", penwidth=1.3, tooltip="JA2102_2 (normal)"];
"TRO318" -> "TRO333" [color="#444444", penwidth=1.3, tooltip="JA2102_3 (normal)"];
"TRO335" -> "TRO333" [color="#444444", penwidth=1.3, tooltip="JA2102_3 (normal)"];
"TRO333" -> "TRO336" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2102_4 (bypass)"];
"TRO338" -> "TRO336" [color="#444444", penwidth=1.3, tooltip="JA2102_4 (normal)"];
"TRO327" -> "TRO319" [color="#444444", penwidth=1.3, tooltip="JA2103_1 (normal)"];
"TRO330" -> "TRO320" [color="#444444", penwidth=1.3, tooltip="JA2103_2 (normal)"];
"TRO319" -> "TRO320" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2103_2 (dir2)"];
"TRO336" -> "TRO321" [color="#444444", penwidth=1.3, tooltip="JA2104_1 (normal)"];
"TRO333" -> "TRO322" [color="#444444", penwidth=1.3, tooltip="JA2104_2 (normal)"];
"TRO321" -> "TRO322" [color="#444444", penwidth=1.3, tooltip="JA2104_2 (normal)"];
"TRO320" -> "TRO323" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2104_3 (dir2)"];
"TRO322" -> "TRO323" [color="#444444", penwidth=1.3, tooltip="JA2104_3 (normal)"];
"TRO323" -> "TRO326" [color="#444444", penwidth=1.3, tooltip="JA2104_4 (normal)"];
"TRO325" -> "TRO326" [color="#444444", penwidth=1.3, tooltip="JA2104_4 (normal)"];
"TRO319" -> "TRO328" [color="#444444", penwidth=1.3, tooltip="JA2105_1 (normal)"];
"TRO328" -> "TRO329" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2105_2 (finger)"];
"TRO320" -> "TRO331" [color="#444444", penwidth=1.3, tooltip="JA2106_1 (normal)"];
"TRO331" -> "TRO332" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2106_2 (finger)"];
"TRO322" -> "TRO334" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2107_1 (dir2)"];
"TRO334" -> "TRO335" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2107_2 (finger)"];
"TRO321" -> "TRO337" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2108_1 (dir2)"];
"TRO337" -> "TRO338" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2108_2 (finger)"];
"TRO324" -> "TRO325" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2109_2 (finger)"];
"TRO386" -> "TRO310" [color="#444444", penwidth=1.3, tooltip="JA2110_1 (normal)"];
"TRO310" -> "TRO313" [color="#444444", penwidth=1.3, tooltip="JA2110_2 (normal)"];
"TRO311" -> "TRO313" [color="#444444", penwidth=1.3, tooltip="JA2110_2 (normal)"];
"TRO312" -> "TRO313" [color="#444444", penwidth=1.3, tooltip="JA2110_2 (normal)"];
"TRO313" -> "TRO314" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2110_3 (dir2)"];
"TRO314" -> "TRO315" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2110_4 (dir2)"];
"TRO309" -> "TRO386" [color="#444444", penwidth=1.3, tooltip="JA2110_5 (normal)"];
"TRO308" -> "TRO309" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2111_2 (finger)"];
"TRO313" -> "TRO316" [color="#444444", penwidth=1.3, tooltip="JA2112_1 (normal)"];
"TRO340" -> "TRO352" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2201_1 (dir2)"];
"TRO354" -> "TRO352" [color="#444444", penwidth=1.3, tooltip="JA2201_1 (normal)"];
"TRO352" -> "TRO349" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2201_2 (bypass)"];
"TRO351" -> "TRO349" [color="#444444", penwidth=1.3, tooltip="JA2201_2 (normal)"];
"TRO314" -> "TRO339" [color="#444444", penwidth=1.3, tooltip="JA2202_1 (normal)"];
"TRO339" -> "TRO340" [color="#444444", penwidth=1.3, tooltip="JA2202_2 (normal)"];
"TRO340" -> "TRO355" [color="#444444", penwidth=1.3, tooltip="JA2202_3 (normal)"];
"TRO357" -> "TRO355" [color="#444444", penwidth=1.3, tooltip="JA2202_3 (normal)"];
"TRO355" -> "TRO358" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2202_4 (bypass)"];
"TRO360" -> "TRO358" [color="#444444", penwidth=1.3, tooltip="JA2202_4 (normal)"];
"TRO349" -> "TRO341" [color="#444444", penwidth=1.3, tooltip="JA2203_1 (normal)"];
"TRO352" -> "TRO342" [color="#444444", penwidth=1.3, tooltip="JA2203_2 (normal)"];
"TRO341" -> "TRO342" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2203_2 (dir2)"];
"TRO358" -> "TRO343" [color="#444444", penwidth=1.3, tooltip="JA2204_1 (normal)"];
"TRO355" -> "TRO344" [color="#444444", penwidth=1.3, tooltip="JA2204_2 (normal)"];
"TRO343" -> "TRO344" [color="#444444", penwidth=1.3, tooltip="JA2204_2 (normal)"];
"TRO342" -> "TRO345" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2204_3 (dir2)"];
"TRO344" -> "TRO345" [color="#444444", penwidth=1.3, tooltip="JA2204_3 (normal)"];
"TRO345" -> "TRO348" [color="#444444", penwidth=1.3, tooltip="JA2204_4 (normal)"];
"TRO347" -> "TRO348" [color="#444444", penwidth=1.3, tooltip="JA2204_4 (normal)"];
"TRO341" -> "TRO350" [color="#444444", penwidth=1.3, tooltip="JA2205_1 (normal)"];
"TRO350" -> "TRO351" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2205_2 (finger)"];
"TRO342" -> "TRO353" [color="#444444", penwidth=1.3, tooltip="JA2206_1 (normal)"];
"TRO353" -> "TRO354" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2206_2 (finger)"];
"TRO344" -> "TRO356" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2207_1 (dir2)"];
"TRO356" -> "TRO357" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2207_2 (finger)"];
"TRO343" -> "TRO359" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2208_1 (dir2)"];
"TRO359" -> "TRO360" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2208_2 (finger)"];
"TRO346" -> "TRO347" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2209_2 (finger)"];
"TRO371" -> "TRO363" [color="#444444", penwidth=1.3, tooltip="JA2301_1 (normal)"];
"TRO374" -> "TRO364" [color="#444444", penwidth=1.3, tooltip="JA2301_2 (normal)"];
"TRO363" -> "TRO364" [color="#444444", penwidth=1.3, tooltip="JA2301_2 (normal)"];
"TRO380" -> "TRO365" [color="#444444", penwidth=1.3, tooltip="JA2302_1 (normal)"];
"TRO377" -> "TRO366" [color="#444444", penwidth=1.3, tooltip="JA2302_2 (normal)"];
"TRO365" -> "TRO366" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2302_2 (dir2)"];
"TRO364" -> "TRO367" [color="#444444", penwidth=1.3, tooltip="JA2302_3 (normal)"];
"TRO366" -> "TRO367" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2302_3 (dir2)"];
"TRO367" -> "TRO370" [color="#444444", penwidth=1.3, tooltip="JA2302_4 (normal)"];
"TRO369" -> "TRO370" [color="#444444", penwidth=1.3, tooltip="JA2302_4 (normal)"];
"TRO362" -> "TRO374" [color="#444444", penwidth=1.3, tooltip="JA2303_1 (normal)"];
"TRO376" -> "TRO374" [color="#444444", penwidth=1.3, tooltip="JA2303_1 (normal)"];
"TRO374" -> "TRO371" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2303_2 (bypass)"];
"TRO373" -> "TRO371" [color="#444444", penwidth=1.3, tooltip="JA2303_2 (normal)"];
"TRO316" -> "TRO361" [color="#444444", penwidth=1.3, tooltip="JA2304_1 (normal)"];
"TRO361" -> "TRO362" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2304_2 (dir2)"];
"TRO362" -> "TRO377" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2304_3 (dir2)"];
"TRO379" -> "TRO377" [color="#444444", penwidth=1.3, tooltip="JA2304_3 (normal)"];
"TRO377" -> "TRO380" [color="#3388cc", penwidth=2.2, style="dashed", label="bypass", fontcolor="#3388cc", tooltip="JA2304_4 (bypass)"];
"TRO382" -> "TRO380" [color="#444444", penwidth=1.3, tooltip="JA2304_4 (normal)"];
"TRO363" -> "TRO372" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2305_1 (dir2)"];
"TRO372" -> "TRO373" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2305_2 (finger)"];
"TRO364" -> "TRO375" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA2306_1 (dir2)"];
"TRO375" -> "TRO376" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2306_2 (finger)"];
"TRO366" -> "TRO378" [color="#444444", penwidth=1.3, tooltip="JA2307_1 (normal)"];
"TRO378" -> "TRO379" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2307_2 (finger)"];
"TRO365" -> "TRO381" [color="#444444", penwidth=1.3, tooltip="JA2308_1 (normal)"];
"TRO381" -> "TRO382" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2308_2 (finger)"];
"TRO368" -> "TRO369" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA2309_2 (finger)"];
"TRO300" -> "TRO302" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4101_1 (finger)"];
"TRO301" -> "TRO302" [color="#444444", penwidth=1.3, tooltip="JA4101_1 (normal)"];
"TRO302" -> "TRO311" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4101_2 (finger)"];
"TRO303" -> "TRO305" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4201_1 (finger)"];
"TRO304" -> "TRO305" [color="#444444", penwidth=1.3, tooltip="JA4201_1 (normal)"];
"TRO305" -> "TRO312" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4201_2 (finger)"];
"TRO336" -> "EXT_UH03_e001" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2102_5"];
"EXT_UH03_e002" -> "TRO324" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2109_1"];
"EXT_UH03_e003" -> "TRO308" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2111_1"];
"TRO358" -> "EXT_UH03_e004" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2202_5"];
"EXT_UH03_e005" -> "TRO346" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2209_1"];
"EXT_UH03_e006" -> "TRO368" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA2309_1"];
"EXT_UH03_e007" -> "TRO300" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4102_1"];
"EXT_UH03_e008" -> "TRO301" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4102_2"];
"EXT_UH03_e009" -> "TRO303" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4202_1"];
"EXT_UH03_e010" -> "TRO304" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4202_2"];
"EXT_UH03_e011" -> "TRO306" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4301_1"];
"EXT_UH03_e012" -> "TRO307" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4401_1"];
"EXT_UH03_e013" -> "TRO327" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.1.1"];
"EXT_UH03_e014" -> "TRO330" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.1.2"];
"EXT_UH03_e015" -> "TRO333" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.1.3"];
"EXT_UH03_e016" -> "TRO336" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.1.4"];
"EXT_UH03_e017" -> "TRO349" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.2.1"];
"EXT_UH03_e018" -> "TRO352" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.2.2"];
"EXT_UH03_e019" -> "TRO355" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.2.3"];
"EXT_UH03_e020" -> "TRO358" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.2.4"];
"EXT_UH03_e021" -> "TRO371" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.3.1"];
"EXT_UH03_e022" -> "TRO374" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.3.2"];
"EXT_UH03_e023" -> "TRO377" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.3.3"];
"EXT_UH03_e024" -> "TRO380" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="Storage2.3.4"];
"TRO326" -> "EXT_UH03_e025" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCARRIER_INFO"];
"TRO348" -> "EXT_UH03_e026" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCARRIER_INFO_1"];
"TRO370" -> "EXT_UH03_e027" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCARRIER_INFO_2"];
"TRO317" -> "EXT_UH03_e028" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCarrierL2toL1"];
"TRO339" -> "EXT_UH03_e029" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCarrierL2toL1_2"];
"TRO361" -> "EXT_UH03_e030" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="IO_Device_UH03_TO_UH01.stCarrierL2toL1_3"];
subgraph cluster_legend {
label="Legend"; fontsize=12; color="#cccccc"; style="rounded";
node [shape=plaintext, style="", fillcolor="none", fontsize=10];
legend [label=<
<table border="0" cellborder="0" cellspacing="2">
<tr><td align="right"><font color="#444444"><b>&#8212;&#8212; normal</b></font></td><td align="left">standard transfer (jam area to jam area)</td></tr>
<tr><td align="right"><font color="#cc8800"><b>&#8212;&#8212; dir2</b></font></td><td align="left">switch output, direction 2 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#b35900"><b>&#8212;&#8212; dir3</b></font></td><td align="left">switch output, direction 3 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#3388cc"><b>&#8212;&#8212; bypass</b></font></td><td align="left">bypass around a storage block (PinStore)</td></tr>
<tr><td align="right"><font color="#883388"><b>&#8212;&#8212; finger</b></font></td><td align="left">chain-conveyor finger / index transfer</td></tr>
<tr><td align="right"><font color="#557799"><b>&#8212;&#8212; EXTERN</b></font></td><td align="left">infeed / outfeed to another PLC (EXTERN)</td></tr>
</table>>];
}
}
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 148 KiB

+82
View File
@@ -0,0 +1,82 @@
digraph UH04 {
rankdir=LR;
bgcolor="white";
labelloc="t";
label=<<b>UH04</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;
fontname="Segoe UI"; fontsize=18;
node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];
edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];
"TRO400" [label="TRO400\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 400 (Vario)"];
"TRO401" [label="TRO401\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 401 (Vario)"];
"TRO402" [label="TRO402\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 402 (1Sep) (Vor Brandschutztor)"];
"TRO403" [label="TRO403\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 403 (Vario)"];
"TRO404" [label="TRO404\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 404 (1Sep)"];
"TRO405" [label="TRO405\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle"];
"TRO406" [label="TRO406\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 406 (1Sep) + Scanner (BX4101)"];
"TRO407" [label="TRO407\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 407 (1Sep1Switch) + Scanner (BX4102)"];
"TRO408" [label="TRO408\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 408 (Vario)"];
"TRO409" [label="TRO409\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 409 (1Sep)"];
"TRO410" [label="TRO410\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 410 (1Sep1Switch) + Scanner (BX4104)"];
"TRO411" [label="TRO411\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 411 (Vario)"];
"TRO412" [label="TRO412\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 412 (1Sep)"];
"TRO413" [label="TRO413\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 413(1Sep1Switch)+Scanner(BX4106)"];
"TRO414" [label="TRO414\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 414 (Vario)"];
"TRO415" [label="TRO415\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 415 (1Sep)"];
"TRO416" [label="TRO416\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 416 (1Sep) + Beladeprüfung"];
"TRO417" [label="TRO417\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 417 (1Sep)"];
"TRO418" [label="TRO418\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 418 (Vario)"];
"TRO420" [label="TRO420\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 420 (Vario)"];
"TRO421" [label="TRO421\nVario_workStation", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 421 (Vario)"];
"TRO422" [label="TRO422\nVario_workStation", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 422 (Vario)"];
"TRO423" [label="TRO423\nVario_workStation", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 423 (Vario)"];
"TRO424" [label="TRO424\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 424 (1Sep) vor Behangskontrolle"];
"EXT_UH04_e001" [label="EXTERN\nJA4000_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH04_e002" [label="EXTERN\nJA4005_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH04_e003" [label="EXTERN\nJA4010_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"TRO400" -> "TRO401" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4001_1 (finger)"];
"TRO401" -> "TRO402" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4001_2 (finger)"];
"TRO402" -> "TRO403" [color="#444444", penwidth=1.3, tooltip="JA4002_1 (normal)"];
"TRO403" -> "TRO404" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4002_2 (finger)"];
"TRO424" -> "TRO405" [color="#444444", penwidth=1.3, tooltip="JA4003_1 (normal)"];
"TRO405" -> "TRO406" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA4003_2 (dir2)"];
"TRO406" -> "TRO407" [color="#444444", penwidth=1.3, tooltip="JA4003_3 (normal)"];
"TRO407" -> "TRO410" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA4003_4 (dir2)"];
"TRO409" -> "TRO410" [color="#444444", penwidth=1.3, tooltip="JA4003_4 (normal)"];
"TRO410" -> "TRO413" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA4003_5 (dir2)"];
"TRO412" -> "TRO413" [color="#444444", penwidth=1.3, tooltip="JA4003_5 (normal)"];
"TRO413" -> "TRO416" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA4003_6 (dir2)"];
"TRO415" -> "TRO416" [color="#444444", penwidth=1.3, tooltip="JA4003_6 (normal)"];
"TRO416" -> "TRO417" [color="#444444", penwidth=1.3, tooltip="JA4003_7 (normal)"];
"TRO404" -> "TRO424" [color="#444444", penwidth=1.3, tooltip="JA4003_8 (normal)"];
"TRO417" -> "TRO424" [color="#444444", penwidth=1.3, tooltip="JA4003_8 (normal)"];
"TRO407" -> "TRO408" [color="#444444", penwidth=1.3, tooltip="JA4004_1 (normal)"];
"TRO408" -> "TRO421" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4004_2 (finger)"];
"TRO410" -> "TRO411" [color="#444444", penwidth=1.3, tooltip="JA4006_1 (normal)"];
"TRO411" -> "TRO422" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4006_2 (finger)"];
"TRO422" -> "TRO412" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4007_1 (finger)"];
"TRO413" -> "TRO414" [color="#444444", penwidth=1.3, tooltip="JA4008_1 (normal)"];
"TRO414" -> "TRO423" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4008_2 (finger)"];
"TRO423" -> "TRO415" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4009_1 (finger)"];
"TRO418" -> "TRO420" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA4011_1 (finger)"];
"EXT_UH04_e001" -> "TRO400" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4000_1"];
"TRO421" -> "EXT_UH04_e002" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4005_1"];
"EXT_UH04_e003" -> "TRO418" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA4010_1"];
subgraph cluster_legend {
label="Legend"; fontsize=12; color="#cccccc"; style="rounded";
node [shape=plaintext, style="", fillcolor="none", fontsize=10];
legend [label=<
<table border="0" cellborder="0" cellspacing="2">
<tr><td align="right"><font color="#444444"><b>&#8212;&#8212; normal</b></font></td><td align="left">standard transfer (jam area to jam area)</td></tr>
<tr><td align="right"><font color="#cc8800"><b>&#8212;&#8212; dir2</b></font></td><td align="left">switch output, direction 2 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#b35900"><b>&#8212;&#8212; dir3</b></font></td><td align="left">switch output, direction 3 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#3388cc"><b>&#8212;&#8212; bypass</b></font></td><td align="left">bypass around a storage block (PinStore)</td></tr>
<tr><td align="right"><font color="#883388"><b>&#8212;&#8212; finger</b></font></td><td align="left">chain-conveyor finger / index transfer</td></tr>
<tr><td align="right"><font color="#557799"><b>&#8212;&#8212; EXTERN</b></font></td><td align="left">infeed / outfeed to another PLC (EXTERN)</td></tr>
</table>>];
}
}
+565
View File
@@ -0,0 +1,565 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 15.1.0 (20260618.0150)
-->
<!-- Title: UH04 Pages: 1 -->
<svg width="2474pt" height="449pt"
viewBox="0.00 0.00 2474.00 449.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 444.75)">
<title>UH04</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-444.75 2469.5,-444.75 2469.5,4 -4,4"/>
<text xml:space="preserve" text-anchor="start" x="928.62" y="-420.65" font-family="Segoe UI" font-weight="bold" font-size="18.00">UH04</text>
<text xml:space="preserve" text-anchor="start" x="975.88" y="-420.65" font-family="Segoe UI" font-size="18.00"> — TRO topology (nodes coloured by type, edges by connection kind)</text>
<g id="clust1" class="cluster">
<title>cluster_legend</title>
<path fill="white" stroke="#cccccc" d="M20,-227C20,-227 290.25,-227 290.25,-227 296.25,-227 302.25,-233 302.25,-239 302.25,-239 302.25,-388 302.25,-388 302.25,-394 296.25,-400 290.25,-400 290.25,-400 20,-400 20,-400 14,-400 8,-394 8,-388 8,-388 8,-239 8,-239 8,-233 14,-227 20,-227"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-384.6" font-family="Segoe UI" font-size="12.00">Legend</text>
</g>
<!-- TRO400 -->
<g id="node1" class="node">
<title>TRO400</title>
<g id="a_node1"><a xlink:title="TRO 400 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-162C404,-162 373,-162 373,-162 367,-162 361,-156 361,-150 361,-150 361,-136 361,-136 361,-130 367,-124 373,-124 373,-124 404,-124 404,-124 410,-124 416,-130 416,-136 416,-136 416,-150 416,-150 416,-156 410,-162 404,-162"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO400</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-132.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO401 -->
<g id="node2" class="node">
<title>TRO401</title>
<g id="a_node2"><a xlink:title="TRO 401 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M518.25,-162C518.25,-162 487.25,-162 487.25,-162 481.25,-162 475.25,-156 475.25,-150 475.25,-150 475.25,-136 475.25,-136 475.25,-130 481.25,-124 487.25,-124 487.25,-124 518.25,-124 518.25,-124 524.25,-124 530.25,-130 530.25,-136 530.25,-136 530.25,-150 530.25,-150 530.25,-156 524.25,-162 518.25,-162"/>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO401</text>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-132.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO400&#45;&gt;TRO401 -->
<g id="edge1" class="edge">
<title>TRO400&#45;&gt;TRO401</title>
<g id="a_edge1"><a xlink:title="JA4001_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-143C430.74,-143 448.14,-143 463.53,-143"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="463.5,-145.8 471.5,-143 463.5,-140.2 463.5,-145.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="445.62" y="-147.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO402 -->
<g id="node3" class="node">
<title>TRO402</title>
<g id="a_node3"><a xlink:title="TRO 402 (1Sep) (Vor Brandschutztor)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M632.5,-162C632.5,-162 601.5,-162 601.5,-162 595.5,-162 589.5,-156 589.5,-150 589.5,-150 589.5,-136 589.5,-136 589.5,-130 595.5,-124 601.5,-124 601.5,-124 632.5,-124 632.5,-124 638.5,-124 644.5,-130 644.5,-136 644.5,-136 644.5,-150 644.5,-150 644.5,-156 638.5,-162 632.5,-162"/>
<text xml:space="preserve" text-anchor="middle" x="617" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO402</text>
<text xml:space="preserve" text-anchor="middle" x="617" y="-132.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO401&#45;&gt;TRO402 -->
<g id="edge2" class="edge">
<title>TRO401&#45;&gt;TRO402</title>
<g id="a_edge2"><a xlink:title="JA4001_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M530.92,-143C544.99,-143 562.39,-143 577.78,-143"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="577.75,-145.8 585.75,-143 577.75,-140.2 577.75,-145.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="559.88" y="-147.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO403 -->
<g id="node4" class="node">
<title>TRO403</title>
<g id="a_node4"><a xlink:title="TRO 403 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M724.5,-162C724.5,-162 693.5,-162 693.5,-162 687.5,-162 681.5,-156 681.5,-150 681.5,-150 681.5,-136 681.5,-136 681.5,-130 687.5,-124 693.5,-124 693.5,-124 724.5,-124 724.5,-124 730.5,-124 736.5,-130 736.5,-136 736.5,-136 736.5,-150 736.5,-150 736.5,-156 730.5,-162 724.5,-162"/>
<text xml:space="preserve" text-anchor="middle" x="709" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO403</text>
<text xml:space="preserve" text-anchor="middle" x="709" y="-132.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO402&#45;&gt;TRO403 -->
<g id="edge3" class="edge">
<title>TRO402&#45;&gt;TRO403</title>
<g id="a_edge3"><a xlink:title="JA4002_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M645,-143C653.12,-143 662.16,-143 670.81,-143"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="670.74,-145.8 678.74,-143 670.74,-140.2 670.74,-145.8"/>
</a>
</g>
</g>
<!-- TRO404 -->
<g id="node5" class="node">
<title>TRO404</title>
<g id="a_node5"><a xlink:title="TRO 404 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M838.75,-162C838.75,-162 807.75,-162 807.75,-162 801.75,-162 795.75,-156 795.75,-150 795.75,-150 795.75,-136 795.75,-136 795.75,-130 801.75,-124 807.75,-124 807.75,-124 838.75,-124 838.75,-124 844.75,-124 850.75,-130 850.75,-136 850.75,-136 850.75,-150 850.75,-150 850.75,-156 844.75,-162 838.75,-162"/>
<text xml:space="preserve" text-anchor="middle" x="823.25" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO404</text>
<text xml:space="preserve" text-anchor="middle" x="823.25" y="-132.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO403&#45;&gt;TRO404 -->
<g id="edge4" class="edge">
<title>TRO403&#45;&gt;TRO404</title>
<g id="a_edge4"><a xlink:title="JA4002_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M737.17,-143C751.24,-143 768.64,-143 784.03,-143"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="784,-145.8 792,-143 784,-140.2 784,-145.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="766.12" y="-147.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO424 -->
<g id="node24" class="node">
<title>TRO424</title>
<g id="a_node24"><a xlink:title="TRO 424 (1Sep) vor Behangskontrolle">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M930.75,-162C930.75,-162 899.75,-162 899.75,-162 893.75,-162 887.75,-156 887.75,-150 887.75,-150 887.75,-136 887.75,-136 887.75,-130 893.75,-124 899.75,-124 899.75,-124 930.75,-124 930.75,-124 936.75,-124 942.75,-130 942.75,-136 942.75,-136 942.75,-150 942.75,-150 942.75,-156 936.75,-162 930.75,-162"/>
<text xml:space="preserve" text-anchor="middle" x="915.25" y="-147.55" font-family="Segoe UI" font-size="11.00">TRO424</text>
<text xml:space="preserve" text-anchor="middle" x="915.25" y="-132.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO404&#45;&gt;TRO424 -->
<g id="edge15" class="edge">
<title>TRO404&#45;&gt;TRO424</title>
<g id="a_edge15"><a xlink:title="JA4003_8 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M851.25,-143C859.37,-143 868.41,-143 877.06,-143"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="876.99,-145.8 884.99,-143 876.99,-140.2 876.99,-145.8"/>
</a>
</g>
</g>
<!-- TRO405 -->
<g id="node6" class="node">
<title>TRO405</title>
<g id="a_node6"><a xlink:title="TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1031.75,-137C1031.75,-137 991.75,-137 991.75,-137 985.75,-137 979.75,-131 979.75,-125 979.75,-125 979.75,-111 979.75,-111 979.75,-105 985.75,-99 991.75,-99 991.75,-99 1031.75,-99 1031.75,-99 1037.75,-99 1043.75,-105 1043.75,-111 1043.75,-111 1043.75,-125 1043.75,-125 1043.75,-131 1037.75,-137 1031.75,-137"/>
<text xml:space="preserve" text-anchor="middle" x="1011.75" y="-122.55" font-family="Segoe UI" font-size="11.00">TRO405</text>
<text xml:space="preserve" text-anchor="middle" x="1011.75" y="-107.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO406 -->
<g id="node7" class="node">
<title>TRO406</title>
<g id="a_node7"><a xlink:title="TRO 406 (1Sep) + Scanner (BX4101)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1137.75,-104C1137.75,-104 1106.75,-104 1106.75,-104 1100.75,-104 1094.75,-98 1094.75,-92 1094.75,-92 1094.75,-78 1094.75,-78 1094.75,-72 1100.75,-66 1106.75,-66 1106.75,-66 1137.75,-66 1137.75,-66 1143.75,-66 1149.75,-72 1149.75,-78 1149.75,-78 1149.75,-92 1149.75,-92 1149.75,-98 1143.75,-104 1137.75,-104"/>
<text xml:space="preserve" text-anchor="middle" x="1122.25" y="-89.55" font-family="Segoe UI" font-size="11.00">TRO406</text>
<text xml:space="preserve" text-anchor="middle" x="1122.25" y="-74.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO405&#45;&gt;TRO406 -->
<g id="edge6" class="edge">
<title>TRO405&#45;&gt;TRO406</title>
<g id="a_edge6"><a xlink:title="JA4003_2 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1044.42,-108.37C1057.11,-104.51 1071.8,-100.04 1084.91,-96.05"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1085.41,-98.83 1092.25,-93.82 1083.78,-93.47 1085.41,-98.83"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1069.25" y="-106.69" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO407 -->
<g id="node8" class="node">
<title>TRO407</title>
<g id="a_node8"><a xlink:title="TRO 407 (1Sep1Switch) + Scanner (BX4102)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1238.75,-83C1238.75,-83 1198.75,-83 1198.75,-83 1192.75,-83 1186.75,-77 1186.75,-71 1186.75,-71 1186.75,-57 1186.75,-57 1186.75,-51 1192.75,-45 1198.75,-45 1198.75,-45 1238.75,-45 1238.75,-45 1244.75,-45 1250.75,-51 1250.75,-57 1250.75,-57 1250.75,-71 1250.75,-71 1250.75,-77 1244.75,-83 1238.75,-83"/>
<text xml:space="preserve" text-anchor="middle" x="1218.75" y="-68.55" font-family="Segoe UI" font-size="11.00">TRO407</text>
<text xml:space="preserve" text-anchor="middle" x="1218.75" y="-53.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO406&#45;&gt;TRO407 -->
<g id="edge7" class="edge">
<title>TRO406&#45;&gt;TRO407</title>
<g id="a_edge7"><a xlink:title="JA4003_3 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1150.33,-78.98C1158.5,-77.17 1167.66,-75.13 1176.53,-73.16"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1176.87,-75.95 1184.07,-71.48 1175.65,-70.49 1176.87,-75.95"/>
</a>
</g>
</g>
<!-- TRO408 -->
<g id="node9" class="node">
<title>TRO408</title>
<g id="a_node9"><a xlink:title="TRO 408 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1349.25,-67C1349.25,-67 1318.25,-67 1318.25,-67 1312.25,-67 1306.25,-61 1306.25,-55 1306.25,-55 1306.25,-41 1306.25,-41 1306.25,-35 1312.25,-29 1318.25,-29 1318.25,-29 1349.25,-29 1349.25,-29 1355.25,-29 1361.25,-35 1361.25,-41 1361.25,-41 1361.25,-55 1361.25,-55 1361.25,-61 1355.25,-67 1349.25,-67"/>
<text xml:space="preserve" text-anchor="middle" x="1333.75" y="-52.55" font-family="Segoe UI" font-size="11.00">TRO408</text>
<text xml:space="preserve" text-anchor="middle" x="1333.75" y="-37.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO407&#45;&gt;TRO408 -->
<g id="edge17" class="edge">
<title>TRO407&#45;&gt;TRO408</title>
<g id="a_edge17"><a xlink:title="JA4004_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1251.53,-59.5C1265.42,-57.53 1281.81,-55.21 1296.2,-53.17"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1296.32,-55.99 1303.85,-52.09 1295.54,-50.44 1296.32,-55.99"/>
</a>
</g>
</g>
<!-- TRO410 -->
<g id="node11" class="node">
<title>TRO410</title>
<g id="a_node11"><a xlink:title="TRO 410 (1Sep1Switch) + Scanner (BX4104)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1353.75,-125C1353.75,-125 1313.75,-125 1313.75,-125 1307.75,-125 1301.75,-119 1301.75,-113 1301.75,-113 1301.75,-99 1301.75,-99 1301.75,-93 1307.75,-87 1313.75,-87 1313.75,-87 1353.75,-87 1353.75,-87 1359.75,-87 1365.75,-93 1365.75,-99 1365.75,-99 1365.75,-113 1365.75,-113 1365.75,-119 1359.75,-125 1353.75,-125"/>
<text xml:space="preserve" text-anchor="middle" x="1333.75" y="-110.55" font-family="Segoe UI" font-size="11.00">TRO410</text>
<text xml:space="preserve" text-anchor="middle" x="1333.75" y="-95.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO407&#45;&gt;TRO410 -->
<g id="edge8" class="edge">
<title>TRO407&#45;&gt;TRO410</title>
<g id="a_edge8"><a xlink:title="JA4003_4 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1251.53,-75.81C1264.15,-80.5 1278.82,-85.96 1292.2,-90.93"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1290.89,-93.43 1299.37,-93.59 1292.84,-88.18 1290.89,-93.43"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1276.25" y="-91.71" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO421 -->
<g id="node21" class="node">
<title>TRO421</title>
<g id="a_node21"><a xlink:title="TRO 421 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1516,-40C1516,-40 1437,-40 1437,-40 1431,-40 1425,-34 1425,-28 1425,-28 1425,-14 1425,-14 1425,-8 1431,-2 1437,-2 1437,-2 1516,-2 1516,-2 1522,-2 1528,-8 1528,-14 1528,-14 1528,-28 1528,-28 1528,-34 1522,-40 1516,-40"/>
<text xml:space="preserve" text-anchor="middle" x="1476.5" y="-25.55" font-family="Segoe UI" font-size="11.00">TRO421</text>
<text xml:space="preserve" text-anchor="middle" x="1476.5" y="-10.55" font-family="Segoe UI" font-size="11.00">Vario_workStation</text>
</a>
</g>
</g>
<!-- TRO408&#45;&gt;TRO421 -->
<g id="edge18" class="edge">
<title>TRO408&#45;&gt;TRO421</title>
<g id="a_edge18"><a xlink:title="JA4004_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M1361.89,-42.79C1376.51,-39.99 1395.19,-36.41 1413.17,-32.96"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="1413.63,-35.72 1420.96,-31.46 1412.57,-30.22 1413.63,-35.72"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1395.38" y="-42.7" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO409 -->
<g id="node10" class="node">
<title>TRO409</title>
<g id="a_node10"><a xlink:title="TRO 409 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1234.25,-139C1234.25,-139 1203.25,-139 1203.25,-139 1197.25,-139 1191.25,-133 1191.25,-127 1191.25,-127 1191.25,-113 1191.25,-113 1191.25,-107 1197.25,-101 1203.25,-101 1203.25,-101 1234.25,-101 1234.25,-101 1240.25,-101 1246.25,-107 1246.25,-113 1246.25,-113 1246.25,-127 1246.25,-127 1246.25,-133 1240.25,-139 1234.25,-139"/>
<text xml:space="preserve" text-anchor="middle" x="1218.75" y="-124.55" font-family="Segoe UI" font-size="11.00">TRO409</text>
<text xml:space="preserve" text-anchor="middle" x="1218.75" y="-109.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO409&#45;&gt;TRO410 -->
<g id="edge9" class="edge">
<title>TRO409&#45;&gt;TRO410</title>
<g id="a_edge9"><a xlink:title="JA4003_4 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1246.82,-116.65C1260.21,-114.99 1276.66,-112.95 1291.57,-111.1"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1291.55,-113.93 1299.14,-110.16 1290.86,-108.37 1291.55,-113.93"/>
</a>
</g>
</g>
<!-- TRO411 -->
<g id="node12" class="node">
<title>TRO411</title>
<g id="a_node12"><a xlink:title="TRO 411 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1492,-139C1492,-139 1461,-139 1461,-139 1455,-139 1449,-133 1449,-127 1449,-127 1449,-113 1449,-113 1449,-107 1455,-101 1461,-101 1461,-101 1492,-101 1492,-101 1498,-101 1504,-107 1504,-113 1504,-113 1504,-127 1504,-127 1504,-133 1498,-139 1492,-139"/>
<text xml:space="preserve" text-anchor="middle" x="1476.5" y="-124.55" font-family="Segoe UI" font-size="11.00">TRO411</text>
<text xml:space="preserve" text-anchor="middle" x="1476.5" y="-109.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO410&#45;&gt;TRO411 -->
<g id="edge19" class="edge">
<title>TRO410&#45;&gt;TRO411</title>
<g id="a_edge19"><a xlink:title="JA4006_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1366.34,-109.14C1387.7,-111.27 1416.01,-114.08 1438.44,-116.31"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1438.09,-119.09 1446.33,-117.1 1438.65,-113.52 1438.09,-119.09"/>
</a>
</g>
</g>
<!-- TRO413 -->
<g id="node14" class="node">
<title>TRO413</title>
<g id="a_node14"><a xlink:title="TRO 413(1Sep1Switch)+Scanner(BX4106)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1901,-93C1901,-93 1861,-93 1861,-93 1855,-93 1849,-87 1849,-81 1849,-81 1849,-67 1849,-67 1849,-61 1855,-55 1861,-55 1861,-55 1901,-55 1901,-55 1907,-55 1913,-61 1913,-67 1913,-67 1913,-81 1913,-81 1913,-87 1907,-93 1901,-93"/>
<text xml:space="preserve" text-anchor="middle" x="1881" y="-78.55" font-family="Segoe UI" font-size="11.00">TRO413</text>
<text xml:space="preserve" text-anchor="middle" x="1881" y="-63.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO410&#45;&gt;TRO413 -->
<g id="edge10" class="edge">
<title>TRO410&#45;&gt;TRO413</title>
<g id="a_edge10"><a xlink:title="JA4003_5 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1366.37,-93.82C1394.55,-84.07 1437.16,-72 1475.5,-72 1475.5,-72 1475.5,-72 1785.5,-72 1802.89,-72 1822.09,-72.34 1838.6,-72.74"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1838.47,-75.54 1846.54,-72.95 1838.61,-69.94 1838.47,-75.54"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1646.25" y="-76.2" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO422 -->
<g id="node22" class="node">
<title>TRO422</title>
<g id="a_node22"><a xlink:title="TRO 422 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1685.75,-141C1685.75,-141 1606.75,-141 1606.75,-141 1600.75,-141 1594.75,-135 1594.75,-129 1594.75,-129 1594.75,-115 1594.75,-115 1594.75,-109 1600.75,-103 1606.75,-103 1606.75,-103 1685.75,-103 1685.75,-103 1691.75,-103 1697.75,-109 1697.75,-115 1697.75,-115 1697.75,-129 1697.75,-129 1697.75,-135 1691.75,-141 1685.75,-141"/>
<text xml:space="preserve" text-anchor="middle" x="1646.25" y="-126.55" font-family="Segoe UI" font-size="11.00">TRO422</text>
<text xml:space="preserve" text-anchor="middle" x="1646.25" y="-111.55" font-family="Segoe UI" font-size="11.00">Vario_workStation</text>
</a>
</g>
</g>
<!-- TRO411&#45;&gt;TRO422 -->
<g id="edge20" class="edge">
<title>TRO411&#45;&gt;TRO422</title>
<g id="a_edge20"><a xlink:title="JA4006_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M1504.45,-120.32C1525.62,-120.57 1555.94,-120.94 1583.02,-121.26"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="1582.64,-124.05 1590.67,-121.35 1582.71,-118.45 1582.64,-124.05"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1561.38" y="-125.38" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO412 -->
<g id="node13" class="node">
<title>TRO412</title>
<g id="a_node13"><a xlink:title="TRO 412 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1800,-139C1800,-139 1769,-139 1769,-139 1763,-139 1757,-133 1757,-127 1757,-127 1757,-113 1757,-113 1757,-107 1763,-101 1769,-101 1769,-101 1800,-101 1800,-101 1806,-101 1812,-107 1812,-113 1812,-113 1812,-127 1812,-127 1812,-133 1806,-139 1800,-139"/>
<text xml:space="preserve" text-anchor="middle" x="1784.5" y="-124.55" font-family="Segoe UI" font-size="11.00">TRO412</text>
<text xml:space="preserve" text-anchor="middle" x="1784.5" y="-109.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO412&#45;&gt;TRO413 -->
<g id="edge11" class="edge">
<title>TRO412&#45;&gt;TRO413</title>
<g id="a_edge11"><a xlink:title="JA4003_5 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1812.58,-106.82C1820.92,-102.76 1830.3,-98.19 1839.35,-93.79"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1840.5,-96.34 1846.47,-90.32 1838.05,-91.31 1840.5,-96.34"/>
</a>
</g>
</g>
<!-- TRO414 -->
<g id="node15" class="node">
<title>TRO414</title>
<g id="a_node15"><a xlink:title="TRO 414 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1993,-90C1993,-90 1962,-90 1962,-90 1956,-90 1950,-84 1950,-78 1950,-78 1950,-64 1950,-64 1950,-58 1956,-52 1962,-52 1962,-52 1993,-52 1993,-52 1999,-52 2005,-58 2005,-64 2005,-64 2005,-78 2005,-78 2005,-84 1999,-90 1993,-90"/>
<text xml:space="preserve" text-anchor="middle" x="1977.5" y="-75.55" font-family="Segoe UI" font-size="11.00">TRO414</text>
<text xml:space="preserve" text-anchor="middle" x="1977.5" y="-60.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO413&#45;&gt;TRO414 -->
<g id="edge22" class="edge">
<title>TRO413&#45;&gt;TRO414</title>
<g id="a_edge22"><a xlink:title="JA4008_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1913.73,-72.99C1922.05,-72.73 1931.1,-72.44 1939.67,-72.17"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1939.56,-74.97 1947.47,-71.92 1939.38,-69.38 1939.56,-74.97"/>
</a>
</g>
</g>
<!-- TRO416 -->
<g id="node17" class="node">
<title>TRO416</title>
<g id="a_node17"><a xlink:title="TRO 416 (1Sep) + Beladeprüfung">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2361.5,-141C2361.5,-141 2330.5,-141 2330.5,-141 2324.5,-141 2318.5,-135 2318.5,-129 2318.5,-129 2318.5,-115 2318.5,-115 2318.5,-109 2324.5,-103 2330.5,-103 2330.5,-103 2361.5,-103 2361.5,-103 2367.5,-103 2373.5,-109 2373.5,-115 2373.5,-115 2373.5,-129 2373.5,-129 2373.5,-135 2367.5,-141 2361.5,-141"/>
<text xml:space="preserve" text-anchor="middle" x="2346" y="-126.55" font-family="Segoe UI" font-size="11.00">TRO416</text>
<text xml:space="preserve" text-anchor="middle" x="2346" y="-111.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO413&#45;&gt;TRO416 -->
<g id="edge12" class="edge">
<title>TRO413&#45;&gt;TRO416</title>
<g id="a_edge12"><a xlink:title="JA4003_6 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1903.53,-93.57C1921.63,-107.95 1948.91,-125 1976.5,-125 1976.5,-125 1976.5,-125 2255,-125 2272.48,-125 2291.85,-124.43 2308.14,-123.78"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="2307.99,-126.59 2315.87,-123.46 2307.76,-121 2307.99,-126.59"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2115.75" y="-129.2" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO423 -->
<g id="node23" class="node">
<title>TRO423</title>
<g id="a_node23"><a xlink:title="TRO 423 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M2155.25,-89C2155.25,-89 2076.25,-89 2076.25,-89 2070.25,-89 2064.25,-83 2064.25,-77 2064.25,-77 2064.25,-63 2064.25,-63 2064.25,-57 2070.25,-51 2076.25,-51 2076.25,-51 2155.25,-51 2155.25,-51 2161.25,-51 2167.25,-57 2167.25,-63 2167.25,-63 2167.25,-77 2167.25,-77 2167.25,-83 2161.25,-89 2155.25,-89"/>
<text xml:space="preserve" text-anchor="middle" x="2115.75" y="-74.55" font-family="Segoe UI" font-size="11.00">TRO423</text>
<text xml:space="preserve" text-anchor="middle" x="2115.75" y="-59.55" font-family="Segoe UI" font-size="11.00">Vario_workStation</text>
</a>
</g>
</g>
<!-- TRO414&#45;&gt;TRO423 -->
<g id="edge23" class="edge">
<title>TRO414&#45;&gt;TRO423</title>
<g id="a_edge23"><a xlink:title="JA4008_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M2005.74,-70.8C2019.18,-70.7 2035.99,-70.58 2052.36,-70.46"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="2052.26,-73.26 2060.24,-70.4 2052.22,-67.66 2052.26,-73.26"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2034.62" y="-74.85" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO415 -->
<g id="node16" class="node">
<title>TRO415</title>
<g id="a_node16"><a xlink:title="TRO 415 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2269.5,-95C2269.5,-95 2238.5,-95 2238.5,-95 2232.5,-95 2226.5,-89 2226.5,-83 2226.5,-83 2226.5,-69 2226.5,-69 2226.5,-63 2232.5,-57 2238.5,-57 2238.5,-57 2269.5,-57 2269.5,-57 2275.5,-57 2281.5,-63 2281.5,-69 2281.5,-69 2281.5,-83 2281.5,-83 2281.5,-89 2275.5,-95 2269.5,-95"/>
<text xml:space="preserve" text-anchor="middle" x="2254" y="-80.55" font-family="Segoe UI" font-size="11.00">TRO415</text>
<text xml:space="preserve" text-anchor="middle" x="2254" y="-65.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO415&#45;&gt;TRO416 -->
<g id="edge13" class="edge">
<title>TRO415&#45;&gt;TRO416</title>
<g id="a_edge13"><a xlink:title="JA4003_6 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2282,-89.8C2290.47,-94.13 2299.95,-98.98 2308.94,-103.57"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2307.56,-106.01 2315.95,-107.15 2310.1,-101.02 2307.56,-106.01"/>
</a>
</g>
</g>
<!-- TRO417 -->
<g id="node18" class="node">
<title>TRO417</title>
<g id="a_node18"><a xlink:title="TRO 417 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M2453.5,-164C2453.5,-164 2422.5,-164 2422.5,-164 2416.5,-164 2410.5,-158 2410.5,-152 2410.5,-152 2410.5,-138 2410.5,-138 2410.5,-132 2416.5,-126 2422.5,-126 2422.5,-126 2453.5,-126 2453.5,-126 2459.5,-126 2465.5,-132 2465.5,-138 2465.5,-138 2465.5,-152 2465.5,-152 2465.5,-158 2459.5,-164 2453.5,-164"/>
<text xml:space="preserve" text-anchor="middle" x="2438" y="-149.55" font-family="Segoe UI" font-size="11.00">TRO417</text>
<text xml:space="preserve" text-anchor="middle" x="2438" y="-134.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO416&#45;&gt;TRO417 -->
<g id="edge14" class="edge">
<title>TRO416&#45;&gt;TRO417</title>
<g id="a_edge14"><a xlink:title="JA4003_7 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2374,-128.9C2382.2,-131 2391.36,-133.34 2400.09,-135.57"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="2399.35,-138.27 2407.8,-137.54 2400.74,-132.84 2399.35,-138.27"/>
</a>
</g>
</g>
<!-- TRO417&#45;&gt;TRO424 -->
<g id="edge16" class="edge">
<title>TRO417&#45;&gt;TRO424</title>
<g id="a_edge16"><a xlink:title="JA4003_8 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M2409.93,-156.16C2392.31,-162.42 2368.67,-169 2347,-169 1010.75,-169 1010.75,-169 1010.75,-169 991.08,-169 969.91,-163.7 952.6,-157.88"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="953.74,-155.32 945.27,-155.29 951.87,-160.6 953.74,-155.32"/>
</a>
</g>
</g>
<!-- TRO418 -->
<g id="node19" class="node">
<title>TRO418</title>
<g id="a_node19"><a xlink:title="TRO 418 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-218C404,-218 373,-218 373,-218 367,-218 361,-212 361,-206 361,-206 361,-192 361,-192 361,-186 367,-180 373,-180 373,-180 404,-180 404,-180 410,-180 416,-186 416,-192 416,-192 416,-206 416,-206 416,-212 410,-218 404,-218"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-203.55" font-family="Segoe UI" font-size="11.00">TRO418</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-188.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO420 -->
<g id="node20" class="node">
<title>TRO420</title>
<g id="a_node20"><a xlink:title="TRO 420 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M518.25,-218C518.25,-218 487.25,-218 487.25,-218 481.25,-218 475.25,-212 475.25,-206 475.25,-206 475.25,-192 475.25,-192 475.25,-186 481.25,-180 487.25,-180 487.25,-180 518.25,-180 518.25,-180 524.25,-180 530.25,-186 530.25,-192 530.25,-192 530.25,-206 530.25,-206 530.25,-212 524.25,-218 518.25,-218"/>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-203.55" font-family="Segoe UI" font-size="11.00">TRO420</text>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-188.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO418&#45;&gt;TRO420 -->
<g id="edge25" class="edge">
<title>TRO418&#45;&gt;TRO420</title>
<g id="a_edge25"><a xlink:title="JA4011_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-199C430.74,-199 448.14,-199 463.53,-199"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="463.5,-201.8 471.5,-199 463.5,-196.2 463.5,-201.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="445.62" y="-203.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- EXT_UH04_e002 -->
<g id="node26" class="node">
<title>EXT_UH04_e002</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1661.25,-30 1619.25,-30 1619.25,-6 1661.25,-6 1673.25,-18 1661.25,-30"/>
<text xml:space="preserve" text-anchor="middle" x="1646.25" y="-22.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1646.25" y="-9.45" font-family="Segoe UI" font-size="9.00">JA4005_1</text>
</g>
<!-- TRO421&#45;&gt;EXT_UH04_e002 -->
<g id="edge27" class="edge">
<title>TRO421&#45;&gt;EXT_UH04_e002</title>
<g id="a_edge27"><a xlink:title="JA4005_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1528.74,-20.08C1554.59,-19.62 1585.34,-19.07 1608.76,-18.65"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1608.72,-21.45 1616.67,-18.51 1608.62,-15.85 1608.72,-21.45"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1561.38" y="-23.97" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO422&#45;&gt;TRO412 -->
<g id="edge21" class="edge">
<title>TRO422&#45;&gt;TRO412</title>
<g id="a_edge21"><a xlink:title="JA4007_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M1698.37,-121.25C1713.86,-121.02 1730.61,-120.78 1745.11,-120.56"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="1744.91,-123.37 1752.87,-120.45 1744.83,-117.77 1744.91,-123.37"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1727.38" y="-125.14" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO423&#45;&gt;TRO415 -->
<g id="edge24" class="edge">
<title>TRO423&#45;&gt;TRO415</title>
<g id="a_edge24"><a xlink:title="JA4009_1 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M2167.87,-72.25C2183.36,-72.93 2200.11,-73.67 2214.61,-74.31"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="2214.26,-77.1 2222.38,-74.65 2214.51,-71.5 2214.26,-77.1"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2196.88" y="-78.09" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO424&#45;&gt;TRO405 -->
<g id="edge5" class="edge">
<title>TRO424&#45;&gt;TRO405</title>
<g id="a_edge5"><a xlink:title="JA4003_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M943.33,-135.84C951.5,-133.67 960.66,-131.25 969.53,-128.9"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="970.07,-131.66 977.09,-126.91 968.64,-126.24 970.07,-131.66"/>
</a>
</g>
</g>
<!-- EXT_UH04_e001 -->
<g id="node25" class="node">
<title>EXT_UH04_e001</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-155 128.12,-155 128.12,-131 170.12,-131 182.12,-143 170.12,-155"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-147.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-134.45" font-family="Segoe UI" font-size="9.00">JA4000_1</text>
</g>
<!-- EXT_UH04_e001&#45;&gt;TRO400 -->
<g id="edge26" class="edge">
<title>EXT_UH04_e001&#45;&gt;TRO400</title>
<g id="a_edge26"><a xlink:title="JA4000_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-143C224.03,-143 303.96,-143 350.81,-143"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-145.8 358.59,-143 350.59,-140.2 350.59,-145.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-147.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- EXT_UH04_e003 -->
<g id="node27" class="node">
<title>EXT_UH04_e003</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-211 128.12,-211 128.12,-187 170.12,-187 182.12,-199 170.12,-211"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-203.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-190.45" font-family="Segoe UI" font-size="9.00">JA4010_1</text>
</g>
<!-- EXT_UH04_e003&#45;&gt;TRO418 -->
<g id="edge28" class="edge">
<title>EXT_UH04_e003&#45;&gt;TRO418</title>
<g id="a_edge28"><a xlink:title="JA4010_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-199C224.03,-199 303.96,-199 350.81,-199"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-201.8 358.59,-199 350.59,-196.2 350.59,-201.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-203.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- legend -->
<g id="node28" class="node">
<title>legend</title>
<text xml:space="preserve" text-anchor="start" x="33.25" y="-350.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#444444">—— normal</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-347.5" font-family="Segoe UI" font-size="10.00">standard transfer (jam area to jam area)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-330" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#cc8800">—— dir2</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-327.25" font-family="Segoe UI" font-size="10.00">switch output, direction 2 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-309.75" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#b35900">—— dir3</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-307" font-family="Segoe UI" font-size="10.00">switch output, direction 3 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="34.75" y="-289.5" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#3388cc">—— bypass</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-286.75" font-family="Segoe UI" font-size="10.00">bypass around a storage block (PinStore)</text>
<text xml:space="preserve" text-anchor="start" x="38.5" y="-269.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#883388">—— finger</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-266.5" font-family="Segoe UI" font-size="10.00">chain&#45;conveyor finger / index transfer</text>
<text xml:space="preserve" text-anchor="start" x="28" y="-249" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#557799">—— EXTERN</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-246.25" font-family="Segoe UI" font-size="10.00">infeed / outfeed to another PLC (EXTERN)</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB

+105
View File
@@ -0,0 +1,105 @@
digraph UH05 {
rankdir=LR;
bgcolor="white";
labelloc="t";
label=<<b>UH05</b> &#8212; TRO topology (nodes coloured by type, edges by connection kind)>;
fontname="Segoe UI"; fontsize=18;
node [fontname="Segoe UI", fontsize=11, style="rounded,filled", shape=box, penwidth=1.6];
edge [fontname="Segoe UI", fontsize=9, arrowsize=0.8];
"TRO500" [label="TRO500\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 500 (Vario) - Stand: Vorbereitet für Umbau!"];
"TRO501" [label="TRO501\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 501 (1Sep) + Scanner (BX5101)"];
"TRO502" [label="TRO502\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 502 (Vario) - Stand: Vorbereitet für Umbau!"];
"TRO503" [label="TRO503\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 503 (1Sep)+ Scanner (BX5100)"];
"TRO504" [label="TRO504\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 504 (1Sep)"];
"TRO505" [label="TRO505\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 505 (1Sep1Switch) + Scanner (BX5102)"];
"TRO506" [label="TRO506\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 506 (Vario)"];
"TRO507" [label="TRO507\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 507 (1Sep)"];
"TRO508" [label="TRO508\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 508 (Vario)+Scanner(BX5103)"];
"TRO509" [label="TRO509\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 509 (1Sep)"];
"TRO510" [label="TRO510\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 510 (1Sep1Switch) + Scanner (BX5104)"];
"TRO511" [label="TRO511\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 511 (1Sep)"];
"TRO512" [label="TRO512\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 512 (Vario)+Scanner(BX5105)"];
"TRO513" [label="TRO513\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 513 (1Sep)"];
"TRO514" [label="TRO514\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 514 (1Sep1Switch) + Scanner (BX5106)"];
"TRO515" [label="TRO515\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 515 (1Sep)"];
"TRO516" [label="TRO516\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 516(Vario)+Scanner(BX5107)"];
"TRO517" [label="TRO517\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 517 (1Sep)"];
"TRO518" [label="TRO518\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 518 (1Sep1Switch) + Scanner (BX5108)"];
"TRO519" [label="TRO519\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 519 (1Sep)"];
"TRO520" [label="TRO520\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 520 (Vario)+Scanner(BX5109)"];
"TRO521" [label="TRO521\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 521(1Sep)"];
"TRO522" [label="TRO522\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 522 (1Sep1Switch) + Scanner (BX5110)"];
"TRO523" [label="TRO523\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 523 (1Sep)"];
"TRO524" [label="TRO524\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 524 (Vario)+Scanner(BX5231)"];
"TRO525" [label="TRO525\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 525(1Sep)"];
"TRO526" [label="TRO526\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 526 (1Sep) + Scanner (BX5112)"];
"TRO527" [label="TRO527\n1Sep1Swi", fillcolor="#ffe4a0", color="#cc8800", shape=box, style="rounded,filled", tooltip="TRO 527 (1Sep1Switch)"];
"TRO528" [label="TRO528\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 528 (1Sep)"];
"TRO529" [label="TRO529\n1Sep", fillcolor="#d4e8ff", color="#3388cc", shape=box, style="rounded,filled", tooltip="TRO 529 (1Sep) + Scanner (BX5113)"];
"TRO530" [label="TRO530\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 530 (Vario)"];
"TRO531" [label="TRO531\nVario", fillcolor="#e8d4f0", color="#883388", shape=box, style="rounded,filled", tooltip="TRO 531 (Vario)"];
"EXT_UH05_e001" [label="EXTERN\nJA5000_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e002" [label="EXTERN\nJA5001_1", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e003" [label="EXTERN\nJA5004_2", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e004" [label="EXTERN\nJA5005_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e005" [label="EXTERN\nJA5006_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e006" [label="EXTERN\nJA5007_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"EXT_UH05_e007" [label="EXTERN\nJA5008_3", shape=cds, fillcolor="#eef2f7", color="#557799", style="filled", fontsize=9];
"TRO502" -> "TRO531" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA5000_2 (finger)"];
"TRO531" -> "TRO503" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA5000_3 (finger)"];
"TRO500" -> "TRO530" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA5001_2 (finger)"];
"TRO530" -> "TRO501" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA5001_3 (finger)"];
"TRO501" -> "TRO504" [color="#444444", penwidth=1.3, tooltip="JA5002_1 (normal)"];
"TRO503" -> "TRO504" [color="#444444", penwidth=1.3, tooltip="JA5002_1 (normal)"];
"TRO529" -> "TRO504" [color="#444444", penwidth=1.3, tooltip="JA5002_1 (normal)"];
"TRO528" -> "TRO529" [color="#444444", penwidth=1.3, tooltip="JA5002_10 (normal)"];
"TRO504" -> "TRO505" [color="#444444", penwidth=1.3, tooltip="JA5002_2 (normal)"];
"TRO505" -> "TRO510" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_3 (dir2)"];
"TRO509" -> "TRO510" [color="#444444", penwidth=1.3, tooltip="JA5002_3 (normal)"];
"TRO510" -> "TRO514" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_4 (dir2)"];
"TRO513" -> "TRO514" [color="#444444", penwidth=1.3, tooltip="JA5002_4 (normal)"];
"TRO514" -> "TRO518" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_5 (dir2)"];
"TRO517" -> "TRO518" [color="#444444", penwidth=1.3, tooltip="JA5002_5 (normal)"];
"TRO518" -> "TRO522" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_6 (dir2)"];
"TRO521" -> "TRO522" [color="#444444", penwidth=1.3, tooltip="JA5002_6 (normal)"];
"TRO522" -> "TRO526" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_7 (dir2)"];
"TRO525" -> "TRO526" [color="#444444", penwidth=1.3, tooltip="JA5002_7 (normal)"];
"TRO526" -> "TRO527" [color="#444444", penwidth=1.3, tooltip="JA5002_8 (normal)"];
"TRO527" -> "TRO528" [color="#cc8800", penwidth=1.3, style="dashed", label="dir2", fontcolor="#cc8800", tooltip="JA5002_9 (dir2)"];
"TRO505" -> "TRO506" [color="#444444", penwidth=1.3, tooltip="JA5003_1 (normal)"];
"TRO506" -> "TRO507" [color="#883388", penwidth=2.2, style="dashdot", label="finger", fontcolor="#883388", tooltip="JA5003_2 (finger)"];
"TRO507" -> "TRO508" [color="#444444", penwidth=1.3, tooltip="JA5004_1 (normal)"];
"TRO510" -> "TRO511" [color="#444444", penwidth=1.3, tooltip="JA5005_1 (normal)"];
"TRO511" -> "TRO512" [color="#444444", penwidth=1.3, tooltip="JA5005_2 (normal)"];
"TRO514" -> "TRO515" [color="#444444", penwidth=1.3, tooltip="JA5006_1 (normal)"];
"TRO515" -> "TRO516" [color="#444444", penwidth=1.3, tooltip="JA5006_2 (normal)"];
"TRO518" -> "TRO519" [color="#444444", penwidth=1.3, tooltip="JA5007_1 (normal)"];
"TRO519" -> "TRO520" [color="#444444", penwidth=1.3, tooltip="JA5007_2 (normal)"];
"TRO522" -> "TRO523" [color="#444444", penwidth=1.3, tooltip="JA5008_1 (normal)"];
"TRO523" -> "TRO524" [color="#444444", penwidth=1.3, tooltip="JA5008_2 (normal)"];
"EXT_UH05_e001" -> "TRO502" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5000_1"];
"EXT_UH05_e002" -> "TRO500" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5001_1"];
"TRO508" -> "EXT_UH05_e003" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5004_2"];
"TRO512" -> "EXT_UH05_e004" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5005_3"];
"TRO516" -> "EXT_UH05_e005" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5006_3"];
"TRO520" -> "EXT_UH05_e006" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5007_3"];
"TRO524" -> "EXT_UH05_e007" [color="#557799", penwidth=1.3, label="EXTERN", fontcolor="#557799", tooltip="JA5008_3"];
subgraph cluster_legend {
label="Legend"; fontsize=12; color="#cccccc"; style="rounded";
node [shape=plaintext, style="", fillcolor="none", fontsize=10];
legend [label=<
<table border="0" cellborder="0" cellspacing="2">
<tr><td align="right"><font color="#444444"><b>&#8212;&#8212; normal</b></font></td><td align="left">standard transfer (jam area to jam area)</td></tr>
<tr><td align="right"><font color="#cc8800"><b>&#8212;&#8212; dir2</b></font></td><td align="left">switch output, direction 2 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#b35900"><b>&#8212;&#8212; dir3</b></font></td><td align="left">switch output, direction 3 (FC_Direction)</td></tr>
<tr><td align="right"><font color="#3388cc"><b>&#8212;&#8212; bypass</b></font></td><td align="left">bypass around a storage block (PinStore)</td></tr>
<tr><td align="right"><font color="#883388"><b>&#8212;&#8212; finger</b></font></td><td align="left">chain-conveyor finger / index transfer</td></tr>
<tr><td align="right"><font color="#557799"><b>&#8212;&#8212; EXTERN</b></font></td><td align="left">infeed / outfeed to another PLC (EXTERN)</td></tr>
</table>>];
}
}
+774
View File
@@ -0,0 +1,774 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 15.1.0 (20260618.0150)
-->
<!-- Title: UH05 Pages: 1 -->
<svg width="1796pt" height="424pt"
viewBox="0.00 0.00 1796.00 424.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 419.75)">
<title>UH05</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-419.75 1791.75,-419.75 1791.75,4 -4,4"/>
<text xml:space="preserve" text-anchor="start" x="589.75" y="-395.65" font-family="Segoe UI" font-weight="bold" font-size="18.00">UH05</text>
<text xml:space="preserve" text-anchor="start" x="637" y="-395.65" font-family="Segoe UI" font-size="18.00"> — TRO topology (nodes coloured by type, edges by connection kind)</text>
<g id="clust1" class="cluster">
<title>cluster_legend</title>
<path fill="white" stroke="#cccccc" d="M20,-103C20,-103 290.25,-103 290.25,-103 296.25,-103 302.25,-109 302.25,-115 302.25,-115 302.25,-264 302.25,-264 302.25,-270 296.25,-276 290.25,-276 290.25,-276 20,-276 20,-276 14,-276 8,-270 8,-264 8,-264 8,-115 8,-115 8,-109 14,-103 20,-103"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-260.6" font-family="Segoe UI" font-size="12.00">Legend</text>
</g>
<!-- TRO500 -->
<g id="node1" class="node">
<title>TRO500</title>
<g id="a_node1"><a xlink:title="TRO 500 (Vario) &#45; Stand: Vorbereitet für Umbau!">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-38C404,-38 373,-38 373,-38 367,-38 361,-32 361,-26 361,-26 361,-12 361,-12 361,-6 367,0 373,0 373,0 404,0 404,0 410,0 416,-6 416,-12 416,-12 416,-26 416,-26 416,-32 410,-38 404,-38"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-23.55" font-family="Segoe UI" font-size="11.00">TRO500</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-8.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO530 -->
<g id="node31" class="node">
<title>TRO530</title>
<g id="a_node31"><a xlink:title="TRO 530 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M518.25,-38C518.25,-38 487.25,-38 487.25,-38 481.25,-38 475.25,-32 475.25,-26 475.25,-26 475.25,-12 475.25,-12 475.25,-6 481.25,0 487.25,0 487.25,0 518.25,0 518.25,0 524.25,0 530.25,-6 530.25,-12 530.25,-12 530.25,-26 530.25,-26 530.25,-32 524.25,-38 518.25,-38"/>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-23.55" font-family="Segoe UI" font-size="11.00">TRO530</text>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-8.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO500&#45;&gt;TRO530 -->
<g id="edge3" class="edge">
<title>TRO500&#45;&gt;TRO530</title>
<g id="a_edge3"><a xlink:title="JA5001_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-19C430.74,-19 448.14,-19 463.53,-19"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="463.5,-21.8 471.5,-19 463.5,-16.2 463.5,-21.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="445.62" y="-23.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO501 -->
<g id="node2" class="node">
<title>TRO501</title>
<g id="a_node2"><a xlink:title="TRO 501 (1Sep) + Scanner (BX5101)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M632.5,-38C632.5,-38 601.5,-38 601.5,-38 595.5,-38 589.5,-32 589.5,-26 589.5,-26 589.5,-12 589.5,-12 589.5,-6 595.5,0 601.5,0 601.5,0 632.5,0 632.5,0 638.5,0 644.5,-6 644.5,-12 644.5,-12 644.5,-26 644.5,-26 644.5,-32 638.5,-38 632.5,-38"/>
<text xml:space="preserve" text-anchor="middle" x="617" y="-23.55" font-family="Segoe UI" font-size="11.00">TRO501</text>
<text xml:space="preserve" text-anchor="middle" x="617" y="-8.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO504 -->
<g id="node5" class="node">
<title>TRO504</title>
<g id="a_node5"><a xlink:title="TRO 504 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M724.5,-65C724.5,-65 693.5,-65 693.5,-65 687.5,-65 681.5,-59 681.5,-53 681.5,-53 681.5,-39 681.5,-39 681.5,-33 687.5,-27 693.5,-27 693.5,-27 724.5,-27 724.5,-27 730.5,-27 736.5,-33 736.5,-39 736.5,-39 736.5,-53 736.5,-53 736.5,-59 730.5,-65 724.5,-65"/>
<text xml:space="preserve" text-anchor="middle" x="709" y="-50.55" font-family="Segoe UI" font-size="11.00">TRO504</text>
<text xml:space="preserve" text-anchor="middle" x="709" y="-35.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO501&#45;&gt;TRO504 -->
<g id="edge5" class="edge">
<title>TRO501&#45;&gt;TRO504</title>
<g id="a_edge5"><a xlink:title="JA5002_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M645,-27.1C653.29,-29.59 662.56,-32.37 671.38,-35.01"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="670.35,-37.63 678.82,-37.25 671.96,-32.27 670.35,-37.63"/>
</a>
</g>
</g>
<!-- TRO502 -->
<g id="node3" class="node">
<title>TRO502</title>
<g id="a_node3"><a xlink:title="TRO 502 (Vario) &#45; Stand: Vorbereitet für Umbau!">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M404,-94C404,-94 373,-94 373,-94 367,-94 361,-88 361,-82 361,-82 361,-68 361,-68 361,-62 367,-56 373,-56 373,-56 404,-56 404,-56 410,-56 416,-62 416,-68 416,-68 416,-82 416,-82 416,-88 410,-94 404,-94"/>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-79.55" font-family="Segoe UI" font-size="11.00">TRO502</text>
<text xml:space="preserve" text-anchor="middle" x="388.5" y="-64.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO531 -->
<g id="node32" class="node">
<title>TRO531</title>
<g id="a_node32"><a xlink:title="TRO 531 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M518.25,-94C518.25,-94 487.25,-94 487.25,-94 481.25,-94 475.25,-88 475.25,-82 475.25,-82 475.25,-68 475.25,-68 475.25,-62 481.25,-56 487.25,-56 487.25,-56 518.25,-56 518.25,-56 524.25,-56 530.25,-62 530.25,-68 530.25,-68 530.25,-82 530.25,-82 530.25,-88 524.25,-94 518.25,-94"/>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-79.55" font-family="Segoe UI" font-size="11.00">TRO531</text>
<text xml:space="preserve" text-anchor="middle" x="502.75" y="-64.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO502&#45;&gt;TRO531 -->
<g id="edge1" class="edge">
<title>TRO502&#45;&gt;TRO531</title>
<g id="a_edge1"><a xlink:title="JA5000_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M416.67,-75C430.74,-75 448.14,-75 463.53,-75"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="463.5,-77.8 471.5,-75 463.5,-72.2 463.5,-77.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="445.62" y="-79.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO503 -->
<g id="node4" class="node">
<title>TRO503</title>
<g id="a_node4"><a xlink:title="TRO 503 (1Sep)+ Scanner (BX5100)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M632.5,-94C632.5,-94 601.5,-94 601.5,-94 595.5,-94 589.5,-88 589.5,-82 589.5,-82 589.5,-68 589.5,-68 589.5,-62 595.5,-56 601.5,-56 601.5,-56 632.5,-56 632.5,-56 638.5,-56 644.5,-62 644.5,-68 644.5,-68 644.5,-82 644.5,-82 644.5,-88 638.5,-94 632.5,-94"/>
<text xml:space="preserve" text-anchor="middle" x="617" y="-79.55" font-family="Segoe UI" font-size="11.00">TRO503</text>
<text xml:space="preserve" text-anchor="middle" x="617" y="-64.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO503&#45;&gt;TRO504 -->
<g id="edge6" class="edge">
<title>TRO503&#45;&gt;TRO504</title>
<g id="a_edge6"><a xlink:title="JA5002_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M645,-66.3C653.29,-63.63 662.56,-60.64 671.38,-57.8"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="672.08,-60.52 678.83,-55.4 670.36,-55.19 672.08,-60.52"/>
</a>
</g>
</g>
<!-- TRO505 -->
<g id="node6" class="node">
<title>TRO505</title>
<g id="a_node6"><a xlink:title="TRO 505 (1Sep1Switch) + Scanner (BX5102)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M825.5,-100C825.5,-100 785.5,-100 785.5,-100 779.5,-100 773.5,-94 773.5,-88 773.5,-88 773.5,-74 773.5,-74 773.5,-68 779.5,-62 785.5,-62 785.5,-62 825.5,-62 825.5,-62 831.5,-62 837.5,-68 837.5,-74 837.5,-74 837.5,-88 837.5,-88 837.5,-94 831.5,-100 825.5,-100"/>
<text xml:space="preserve" text-anchor="middle" x="805.5" y="-85.55" font-family="Segoe UI" font-size="11.00">TRO505</text>
<text xml:space="preserve" text-anchor="middle" x="805.5" y="-70.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO504&#45;&gt;TRO505 -->
<g id="edge9" class="edge">
<title>TRO504&#45;&gt;TRO505</title>
<g id="a_edge9"><a xlink:title="JA5002_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M737.08,-56.03C745.34,-59.09 754.61,-62.52 763.57,-65.84"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="762.42,-68.4 770.89,-68.55 764.36,-63.15 762.42,-68.4"/>
</a>
</g>
</g>
<!-- TRO506 -->
<g id="node7" class="node">
<title>TRO506</title>
<g id="a_node7"><a xlink:title="TRO 506 (Vario)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M936,-100C936,-100 905,-100 905,-100 899,-100 893,-94 893,-88 893,-88 893,-74 893,-74 893,-68 899,-62 905,-62 905,-62 936,-62 936,-62 942,-62 948,-68 948,-74 948,-74 948,-88 948,-88 948,-94 942,-100 936,-100"/>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-85.55" font-family="Segoe UI" font-size="11.00">TRO506</text>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-70.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO505&#45;&gt;TRO506 -->
<g id="edge22" class="edge">
<title>TRO505&#45;&gt;TRO506</title>
<g id="a_edge22"><a xlink:title="JA5003_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M838.28,-81C852.17,-81 868.56,-81 882.95,-81"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="882.58,-83.8 890.58,-81 882.58,-78.2 882.58,-83.8"/>
</a>
</g>
</g>
<!-- TRO510 -->
<g id="node11" class="node">
<title>TRO510</title>
<g id="a_node11"><a xlink:title="TRO 510 (1Sep1Switch) + Scanner (BX5104)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M940.5,-159C940.5,-159 900.5,-159 900.5,-159 894.5,-159 888.5,-153 888.5,-147 888.5,-147 888.5,-133 888.5,-133 888.5,-127 894.5,-121 900.5,-121 900.5,-121 940.5,-121 940.5,-121 946.5,-121 952.5,-127 952.5,-133 952.5,-133 952.5,-147 952.5,-147 952.5,-153 946.5,-159 940.5,-159"/>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-144.55" font-family="Segoe UI" font-size="11.00">TRO510</text>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-129.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO505&#45;&gt;TRO510 -->
<g id="edge10" class="edge">
<title>TRO505&#45;&gt;TRO510</title>
<g id="a_edge10"><a xlink:title="JA5002_3 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M838.28,-97.59C851.02,-104.25 865.86,-111.99 879.34,-119.03"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="877.83,-121.4 886.22,-122.62 880.42,-116.44 877.83,-121.4"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="863" y="-118.23" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO507 -->
<g id="node8" class="node">
<title>TRO507</title>
<g id="a_node8"><a xlink:title="TRO 507 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1059.25,-100C1059.25,-100 1028.25,-100 1028.25,-100 1022.25,-100 1016.25,-94 1016.25,-88 1016.25,-88 1016.25,-74 1016.25,-74 1016.25,-68 1022.25,-62 1028.25,-62 1028.25,-62 1059.25,-62 1059.25,-62 1065.25,-62 1071.25,-68 1071.25,-74 1071.25,-74 1071.25,-88 1071.25,-88 1071.25,-94 1065.25,-100 1059.25,-100"/>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-85.55" font-family="Segoe UI" font-size="11.00">TRO507</text>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-70.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO506&#45;&gt;TRO507 -->
<g id="edge23" class="edge">
<title>TRO506&#45;&gt;TRO507</title>
<g id="a_edge23"><a xlink:title="JA5003_2 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M948.71,-81C965.17,-81 986.41,-81 1004.53,-81"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="1004.3,-83.8 1012.3,-81 1004.3,-78.2 1004.3,-83.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="982.12" y="-85.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO508 -->
<g id="node9" class="node">
<title>TRO508</title>
<g id="a_node9"><a xlink:title="TRO 508 (Vario)+Scanner(BX5103)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1174.25,-100C1174.25,-100 1143.25,-100 1143.25,-100 1137.25,-100 1131.25,-94 1131.25,-88 1131.25,-88 1131.25,-74 1131.25,-74 1131.25,-68 1137.25,-62 1143.25,-62 1143.25,-62 1174.25,-62 1174.25,-62 1180.25,-62 1186.25,-68 1186.25,-74 1186.25,-74 1186.25,-88 1186.25,-88 1186.25,-94 1180.25,-100 1174.25,-100"/>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-85.55" font-family="Segoe UI" font-size="11.00">TRO508</text>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-70.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO507&#45;&gt;TRO508 -->
<g id="edge24" class="edge">
<title>TRO507&#45;&gt;TRO508</title>
<g id="a_edge24"><a xlink:title="JA5004_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1071.82,-81C1086.52,-81 1104.92,-81 1120.92,-81"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1120.55,-83.8 1128.55,-81 1120.55,-78.2 1120.55,-83.8"/>
</a>
</g>
</g>
<!-- EXT_UH05_e003 -->
<g id="node35" class="node">
<title>EXT_UH05_e003</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1304.5,-93 1262.5,-93 1262.5,-69 1304.5,-69 1316.5,-81 1304.5,-93"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-85.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-72.45" font-family="Segoe UI" font-size="9.00">JA5004_2</text>
</g>
<!-- TRO508&#45;&gt;EXT_UH05_e003 -->
<g id="edge35" class="edge">
<title>TRO508&#45;&gt;EXT_UH05_e003</title>
<g id="a_edge35"><a xlink:title="JA5004_2">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1186.74,-81C1205.75,-81 1231.42,-81 1252.22,-81"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1252.02,-83.8 1260.02,-81 1252.02,-78.2 1252.02,-83.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1224.12" y="-85.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO509 -->
<g id="node10" class="node">
<title>TRO509</title>
<g id="a_node10"><a xlink:title="TRO 509 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M821,-161C821,-161 790,-161 790,-161 784,-161 778,-155 778,-149 778,-149 778,-135 778,-135 778,-129 784,-123 790,-123 790,-123 821,-123 821,-123 827,-123 833,-129 833,-135 833,-135 833,-149 833,-149 833,-155 827,-161 821,-161"/>
<text xml:space="preserve" text-anchor="middle" x="805.5" y="-146.55" font-family="Segoe UI" font-size="11.00">TRO509</text>
<text xml:space="preserve" text-anchor="middle" x="805.5" y="-131.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO509&#45;&gt;TRO510 -->
<g id="edge11" class="edge">
<title>TRO509&#45;&gt;TRO510</title>
<g id="a_edge11"><a xlink:title="JA5002_3 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M833.57,-141.52C846.83,-141.29 863.09,-141 877.89,-140.74"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="877.93,-143.54 885.88,-140.6 877.83,-137.94 877.93,-143.54"/>
</a>
</g>
</g>
<!-- TRO511 -->
<g id="node12" class="node">
<title>TRO511</title>
<g id="a_node12"><a xlink:title="TRO 511 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1059.25,-156C1059.25,-156 1028.25,-156 1028.25,-156 1022.25,-156 1016.25,-150 1016.25,-144 1016.25,-144 1016.25,-130 1016.25,-130 1016.25,-124 1022.25,-118 1028.25,-118 1028.25,-118 1059.25,-118 1059.25,-118 1065.25,-118 1071.25,-124 1071.25,-130 1071.25,-130 1071.25,-144 1071.25,-144 1071.25,-150 1065.25,-156 1059.25,-156"/>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-141.55" font-family="Segoe UI" font-size="11.00">TRO511</text>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-126.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO510&#45;&gt;TRO511 -->
<g id="edge25" class="edge">
<title>TRO510&#45;&gt;TRO511</title>
<g id="a_edge25"><a xlink:title="JA5005_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M953.04,-139.22C969.23,-138.82 989.04,-138.33 1005.93,-137.91"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1005.59,-140.72 1013.52,-137.72 1005.45,-135.12 1005.59,-140.72"/>
</a>
</g>
</g>
<!-- TRO514 -->
<g id="node15" class="node">
<title>TRO514</title>
<g id="a_node15"><a xlink:title="TRO 514 (1Sep1Switch) + Scanner (BX5106)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1063.75,-215C1063.75,-215 1023.75,-215 1023.75,-215 1017.75,-215 1011.75,-209 1011.75,-203 1011.75,-203 1011.75,-189 1011.75,-189 1011.75,-183 1017.75,-177 1023.75,-177 1023.75,-177 1063.75,-177 1063.75,-177 1069.75,-177 1075.75,-183 1075.75,-189 1075.75,-189 1075.75,-203 1075.75,-203 1075.75,-209 1069.75,-215 1063.75,-215"/>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-200.55" font-family="Segoe UI" font-size="11.00">TRO514</text>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-185.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO510&#45;&gt;TRO514 -->
<g id="edge12" class="edge">
<title>TRO510&#45;&gt;TRO514</title>
<g id="a_edge12"><a xlink:title="JA5002_4 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M953.04,-154.57C968.2,-161.57 986.53,-170.04 1002.66,-177.49"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1001.14,-179.87 1009.58,-180.68 1003.49,-174.78 1001.14,-179.87"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="982.12" y="-177.22" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO512 -->
<g id="node13" class="node">
<title>TRO512</title>
<g id="a_node13"><a xlink:title="TRO 512 (Vario)+Scanner(BX5105)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1174.25,-156C1174.25,-156 1143.25,-156 1143.25,-156 1137.25,-156 1131.25,-150 1131.25,-144 1131.25,-144 1131.25,-130 1131.25,-130 1131.25,-124 1137.25,-118 1143.25,-118 1143.25,-118 1174.25,-118 1174.25,-118 1180.25,-118 1186.25,-124 1186.25,-130 1186.25,-130 1186.25,-144 1186.25,-144 1186.25,-150 1180.25,-156 1174.25,-156"/>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-141.55" font-family="Segoe UI" font-size="11.00">TRO512</text>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-126.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO511&#45;&gt;TRO512 -->
<g id="edge26" class="edge">
<title>TRO511&#45;&gt;TRO512</title>
<g id="a_edge26"><a xlink:title="JA5005_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1071.82,-137C1086.52,-137 1104.92,-137 1120.92,-137"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1120.55,-139.8 1128.55,-137 1120.55,-134.2 1120.55,-139.8"/>
</a>
</g>
</g>
<!-- EXT_UH05_e004 -->
<g id="node36" class="node">
<title>EXT_UH05_e004</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1304.5,-149 1262.5,-149 1262.5,-125 1304.5,-125 1316.5,-137 1304.5,-149"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-141.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-128.45" font-family="Segoe UI" font-size="9.00">JA5005_3</text>
</g>
<!-- TRO512&#45;&gt;EXT_UH05_e004 -->
<g id="edge36" class="edge">
<title>TRO512&#45;&gt;EXT_UH05_e004</title>
<g id="a_edge36"><a xlink:title="JA5005_3">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1186.74,-137C1205.75,-137 1231.42,-137 1252.22,-137"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1252.02,-139.8 1260.02,-137 1252.02,-134.2 1252.02,-139.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1224.12" y="-141.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO513 -->
<g id="node14" class="node">
<title>TRO513</title>
<g id="a_node14"><a xlink:title="TRO 513 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M936,-217C936,-217 905,-217 905,-217 899,-217 893,-211 893,-205 893,-205 893,-191 893,-191 893,-185 899,-179 905,-179 905,-179 936,-179 936,-179 942,-179 948,-185 948,-191 948,-191 948,-205 948,-205 948,-211 942,-217 936,-217"/>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-202.55" font-family="Segoe UI" font-size="11.00">TRO513</text>
<text xml:space="preserve" text-anchor="middle" x="920.5" y="-187.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO513&#45;&gt;TRO514 -->
<g id="edge13" class="edge">
<title>TRO513&#45;&gt;TRO514</title>
<g id="a_edge13"><a xlink:title="JA5002_4 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M948.71,-197.55C964.24,-197.3 984.01,-196.97 1001.42,-196.68"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1001.43,-199.48 1009.38,-196.55 1001.33,-193.88 1001.43,-199.48"/>
</a>
</g>
</g>
<!-- TRO515 -->
<g id="node16" class="node">
<title>TRO515</title>
<g id="a_node16"><a xlink:title="TRO 515 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1174.25,-212C1174.25,-212 1143.25,-212 1143.25,-212 1137.25,-212 1131.25,-206 1131.25,-200 1131.25,-200 1131.25,-186 1131.25,-186 1131.25,-180 1137.25,-174 1143.25,-174 1143.25,-174 1174.25,-174 1174.25,-174 1180.25,-174 1186.25,-180 1186.25,-186 1186.25,-186 1186.25,-200 1186.25,-200 1186.25,-206 1180.25,-212 1174.25,-212"/>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-197.55" font-family="Segoe UI" font-size="11.00">TRO515</text>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-182.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO514&#45;&gt;TRO515 -->
<g id="edge27" class="edge">
<title>TRO514&#45;&gt;TRO515</title>
<g id="a_edge27"><a xlink:title="JA5006_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1076.53,-195.16C1090.42,-194.79 1106.81,-194.35 1121.2,-193.97"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1120.91,-196.78 1128.83,-193.77 1120.76,-191.18 1120.91,-196.78"/>
</a>
</g>
</g>
<!-- TRO518 -->
<g id="node19" class="node">
<title>TRO518</title>
<g id="a_node19"><a xlink:title="TRO 518 (1Sep1Switch) + Scanner (BX5108)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1178.75,-270C1178.75,-270 1138.75,-270 1138.75,-270 1132.75,-270 1126.75,-264 1126.75,-258 1126.75,-258 1126.75,-244 1126.75,-244 1126.75,-238 1132.75,-232 1138.75,-232 1138.75,-232 1178.75,-232 1178.75,-232 1184.75,-232 1190.75,-238 1190.75,-244 1190.75,-244 1190.75,-258 1190.75,-258 1190.75,-264 1184.75,-270 1178.75,-270"/>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-255.55" font-family="Segoe UI" font-size="11.00">TRO518</text>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-240.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO514&#45;&gt;TRO518 -->
<g id="edge14" class="edge">
<title>TRO514&#45;&gt;TRO518</title>
<g id="a_edge14"><a xlink:title="JA5002_5 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1076.53,-211.47C1089.27,-217.67 1104.11,-224.89 1117.59,-231.45"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1116.02,-233.8 1124.44,-234.79 1118.47,-228.77 1116.02,-233.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1101.25" y="-230.99" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO516 -->
<g id="node17" class="node">
<title>TRO516</title>
<g id="a_node17"><a xlink:title="TRO 516(Vario)+Scanner(BX5107)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1305,-211C1305,-211 1274,-211 1274,-211 1268,-211 1262,-205 1262,-199 1262,-199 1262,-185 1262,-185 1262,-179 1268,-173 1274,-173 1274,-173 1305,-173 1305,-173 1311,-173 1317,-179 1317,-185 1317,-185 1317,-199 1317,-199 1317,-205 1311,-211 1305,-211"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-196.55" font-family="Segoe UI" font-size="11.00">TRO516</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-181.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO515&#45;&gt;TRO516 -->
<g id="edge28" class="edge">
<title>TRO515&#45;&gt;TRO516</title>
<g id="a_edge28"><a xlink:title="JA5006_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1186.74,-192.79C1205.62,-192.64 1231.08,-192.45 1251.8,-192.29"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1251.6,-195.09 1259.58,-192.22 1251.56,-189.49 1251.6,-195.09"/>
</a>
</g>
</g>
<!-- EXT_UH05_e005 -->
<g id="node37" class="node">
<title>EXT_UH05_e005</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1430.75,-204 1388.75,-204 1388.75,-180 1430.75,-180 1442.75,-192 1430.75,-204"/>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-196.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-183.45" font-family="Segoe UI" font-size="9.00">JA5006_3</text>
</g>
<!-- TRO516&#45;&gt;EXT_UH05_e005 -->
<g id="edge37" class="edge">
<title>TRO516&#45;&gt;EXT_UH05_e005</title>
<g id="a_edge37"><a xlink:title="JA5006_3">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1317.77,-192C1335.53,-192 1358.91,-192 1378.27,-192"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1378.01,-194.8 1386.01,-192 1378.01,-189.2 1378.01,-194.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1354.88" y="-196.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO517 -->
<g id="node18" class="node">
<title>TRO517</title>
<g id="a_node18"><a xlink:title="TRO 517 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1059.25,-273C1059.25,-273 1028.25,-273 1028.25,-273 1022.25,-273 1016.25,-267 1016.25,-261 1016.25,-261 1016.25,-247 1016.25,-247 1016.25,-241 1022.25,-235 1028.25,-235 1028.25,-235 1059.25,-235 1059.25,-235 1065.25,-235 1071.25,-241 1071.25,-247 1071.25,-247 1071.25,-261 1071.25,-261 1071.25,-267 1065.25,-273 1059.25,-273"/>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-258.55" font-family="Segoe UI" font-size="11.00">TRO517</text>
<text xml:space="preserve" text-anchor="middle" x="1043.75" y="-243.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO517&#45;&gt;TRO518 -->
<g id="edge15" class="edge">
<title>TRO517&#45;&gt;TRO518</title>
<g id="a_edge15"><a xlink:title="JA5002_5 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1071.82,-253.28C1085.08,-252.93 1101.34,-252.5 1116.14,-252.1"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1116.21,-254.9 1124.13,-251.89 1116.06,-249.31 1116.21,-254.9"/>
</a>
</g>
</g>
<!-- TRO519 -->
<g id="node20" class="node">
<title>TRO519</title>
<g id="a_node20"><a xlink:title="TRO 519 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1305,-267C1305,-267 1274,-267 1274,-267 1268,-267 1262,-261 1262,-255 1262,-255 1262,-241 1262,-241 1262,-235 1268,-229 1274,-229 1274,-229 1305,-229 1305,-229 1311,-229 1317,-235 1317,-241 1317,-241 1317,-255 1317,-255 1317,-261 1311,-267 1305,-267"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-252.55" font-family="Segoe UI" font-size="11.00">TRO519</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-237.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO518&#45;&gt;TRO519 -->
<g id="edge29" class="edge">
<title>TRO518&#45;&gt;TRO519</title>
<g id="a_edge29"><a xlink:title="JA5007_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1191.25,-250.27C1209.42,-249.84 1232.37,-249.31 1251.42,-248.86"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1251.35,-251.67 1259.29,-248.68 1251.22,-246.07 1251.35,-251.67"/>
</a>
</g>
</g>
<!-- TRO522 -->
<g id="node23" class="node">
<title>TRO522</title>
<g id="a_node23"><a xlink:title="TRO 522 (1Sep1Switch) + Scanner (BX5110)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1309.5,-325C1309.5,-325 1269.5,-325 1269.5,-325 1263.5,-325 1257.5,-319 1257.5,-313 1257.5,-313 1257.5,-299 1257.5,-299 1257.5,-293 1263.5,-287 1269.5,-287 1269.5,-287 1309.5,-287 1309.5,-287 1315.5,-287 1321.5,-293 1321.5,-299 1321.5,-299 1321.5,-313 1321.5,-313 1321.5,-319 1315.5,-325 1309.5,-325"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-310.55" font-family="Segoe UI" font-size="11.00">TRO522</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-295.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO518&#45;&gt;TRO522 -->
<g id="edge16" class="edge">
<title>TRO518&#45;&gt;TRO522</title>
<g id="a_edge16"><a xlink:title="JA5002_6 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1191.25,-264.45C1208.31,-271.75 1229.6,-280.84 1247.9,-288.66"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1246.62,-291.15 1255.07,-291.72 1248.82,-286 1246.62,-291.15"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1224.12" y="-289.24" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO520 -->
<g id="node21" class="node">
<title>TRO520</title>
<g id="a_node21"><a xlink:title="TRO 520 (Vario)+Scanner(BX5109)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1431.25,-266C1431.25,-266 1400.25,-266 1400.25,-266 1394.25,-266 1388.25,-260 1388.25,-254 1388.25,-254 1388.25,-240 1388.25,-240 1388.25,-234 1394.25,-228 1400.25,-228 1400.25,-228 1431.25,-228 1431.25,-228 1437.25,-228 1443.25,-234 1443.25,-240 1443.25,-240 1443.25,-254 1443.25,-254 1443.25,-260 1437.25,-266 1431.25,-266"/>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-251.55" font-family="Segoe UI" font-size="11.00">TRO520</text>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-236.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO519&#45;&gt;TRO520 -->
<g id="edge30" class="edge">
<title>TRO519&#45;&gt;TRO520</title>
<g id="a_edge30"><a xlink:title="JA5007_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1317.77,-247.78C1335.33,-247.64 1358.38,-247.45 1377.61,-247.3"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1377.6,-250.1 1385.58,-247.23 1377.56,-244.5 1377.6,-250.1"/>
</a>
</g>
</g>
<!-- EXT_UH05_e006 -->
<g id="node38" class="node">
<title>EXT_UH05_e006</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1557,-259 1515,-259 1515,-235 1557,-235 1569,-247 1557,-259"/>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-251.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-238.45" font-family="Segoe UI" font-size="9.00">JA5007_3</text>
</g>
<!-- TRO520&#45;&gt;EXT_UH05_e006 -->
<g id="edge38" class="edge">
<title>TRO520&#45;&gt;EXT_UH05_e006</title>
<g id="a_edge38"><a xlink:title="JA5007_3">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1444.02,-247C1461.78,-247 1485.16,-247 1504.52,-247"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1504.26,-249.8 1512.26,-247 1504.26,-244.2 1504.26,-249.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1476.62" y="-251.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO521 -->
<g id="node22" class="node">
<title>TRO521</title>
<g id="a_node22"><a xlink:title="TRO 521(1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1174.25,-328C1174.25,-328 1143.25,-328 1143.25,-328 1137.25,-328 1131.25,-322 1131.25,-316 1131.25,-316 1131.25,-302 1131.25,-302 1131.25,-296 1137.25,-290 1143.25,-290 1143.25,-290 1174.25,-290 1174.25,-290 1180.25,-290 1186.25,-296 1186.25,-302 1186.25,-302 1186.25,-316 1186.25,-316 1186.25,-322 1180.25,-328 1174.25,-328"/>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-313.55" font-family="Segoe UI" font-size="11.00">TRO521</text>
<text xml:space="preserve" text-anchor="middle" x="1158.75" y="-298.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO521&#45;&gt;TRO522 -->
<g id="edge17" class="edge">
<title>TRO521&#45;&gt;TRO522</title>
<g id="a_edge17"><a xlink:title="JA5002_6 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1186.74,-308.37C1204.28,-307.96 1227.48,-307.42 1247.3,-306.96"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1247.11,-309.77 1255.04,-306.78 1246.98,-304.17 1247.11,-309.77"/>
</a>
</g>
</g>
<!-- TRO523 -->
<g id="node24" class="node">
<title>TRO523</title>
<g id="a_node24"><a xlink:title="TRO 523 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1431.25,-322C1431.25,-322 1400.25,-322 1400.25,-322 1394.25,-322 1388.25,-316 1388.25,-310 1388.25,-310 1388.25,-296 1388.25,-296 1388.25,-290 1394.25,-284 1400.25,-284 1400.25,-284 1431.25,-284 1431.25,-284 1437.25,-284 1443.25,-290 1443.25,-296 1443.25,-296 1443.25,-310 1443.25,-310 1443.25,-316 1437.25,-322 1431.25,-322"/>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-307.55" font-family="Segoe UI" font-size="11.00">TRO523</text>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-292.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO522&#45;&gt;TRO523 -->
<g id="edge31" class="edge">
<title>TRO522&#45;&gt;TRO523</title>
<g id="a_edge31"><a xlink:title="JA5008_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1322.18,-305.24C1339.28,-304.82 1360.48,-304.31 1378.28,-303.88"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1377.87,-306.69 1385.8,-303.7 1377.73,-301.09 1377.87,-306.69"/>
</a>
</g>
</g>
<!-- TRO526 -->
<g id="node27" class="node">
<title>TRO526</title>
<g id="a_node27"><a xlink:title="TRO 526 (1Sep) + Scanner (BX5112)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1431.25,-378C1431.25,-378 1400.25,-378 1400.25,-378 1394.25,-378 1388.25,-372 1388.25,-366 1388.25,-366 1388.25,-352 1388.25,-352 1388.25,-346 1394.25,-340 1400.25,-340 1400.25,-340 1431.25,-340 1431.25,-340 1437.25,-340 1443.25,-346 1443.25,-352 1443.25,-352 1443.25,-366 1443.25,-366 1443.25,-372 1437.25,-378 1431.25,-378"/>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-363.55" font-family="Segoe UI" font-size="11.00">TRO526</text>
<text xml:space="preserve" text-anchor="middle" x="1415.75" y="-348.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO522&#45;&gt;TRO526 -->
<g id="edge18" class="edge">
<title>TRO522&#45;&gt;TRO526</title>
<g id="a_edge18"><a xlink:title="JA5002_7 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1322.18,-319.51C1339.44,-326.88 1360.88,-336.02 1378.77,-343.65"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1377.5,-346.15 1385.95,-346.72 1379.69,-341 1377.5,-346.15"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1354.88" y="-343.01" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO524 -->
<g id="node25" class="node">
<title>TRO524</title>
<g id="a_node25"><a xlink:title="TRO 524 (Vario)+Scanner(BX5231)">
<path fill="#e8d4f0" stroke="#883388" stroke-width="1.6" d="M1557.5,-322C1557.5,-322 1526.5,-322 1526.5,-322 1520.5,-322 1514.5,-316 1514.5,-310 1514.5,-310 1514.5,-296 1514.5,-296 1514.5,-290 1520.5,-284 1526.5,-284 1526.5,-284 1557.5,-284 1557.5,-284 1563.5,-284 1569.5,-290 1569.5,-296 1569.5,-296 1569.5,-310 1569.5,-310 1569.5,-316 1563.5,-322 1557.5,-322"/>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-307.55" font-family="Segoe UI" font-size="11.00">TRO524</text>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-292.55" font-family="Segoe UI" font-size="11.00">Vario</text>
</a>
</g>
</g>
<!-- TRO523&#45;&gt;TRO524 -->
<g id="edge32" class="edge">
<title>TRO523&#45;&gt;TRO524</title>
<g id="a_edge32"><a xlink:title="JA5008_2 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1444.02,-303C1461.58,-303 1484.63,-303 1503.86,-303"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1503.83,-305.8 1511.83,-303 1503.83,-300.2 1503.83,-305.8"/>
</a>
</g>
</g>
<!-- EXT_UH05_e007 -->
<g id="node39" class="node">
<title>EXT_UH05_e007</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="1683.25,-315 1641.25,-315 1641.25,-291 1683.25,-291 1695.25,-303 1683.25,-315"/>
<text xml:space="preserve" text-anchor="middle" x="1668.25" y="-307.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="1668.25" y="-294.45" font-family="Segoe UI" font-size="9.00">JA5008_3</text>
</g>
<!-- TRO524&#45;&gt;EXT_UH05_e007 -->
<g id="edge39" class="edge">
<title>TRO524&#45;&gt;EXT_UH05_e007</title>
<g id="a_edge39"><a xlink:title="JA5008_3">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M1570.27,-303C1588.03,-303 1611.41,-303 1630.77,-303"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="1630.51,-305.8 1638.51,-303 1630.51,-300.2 1630.51,-305.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1607.38" y="-307.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- TRO525 -->
<g id="node26" class="node">
<title>TRO525</title>
<g id="a_node26"><a xlink:title="TRO 525(1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1305,-383C1305,-383 1274,-383 1274,-383 1268,-383 1262,-377 1262,-371 1262,-371 1262,-357 1262,-357 1262,-351 1268,-345 1274,-345 1274,-345 1305,-345 1305,-345 1311,-345 1317,-351 1317,-357 1317,-357 1317,-371 1317,-371 1317,-377 1311,-383 1305,-383"/>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-368.55" font-family="Segoe UI" font-size="11.00">TRO525</text>
<text xml:space="preserve" text-anchor="middle" x="1289.5" y="-353.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO525&#45;&gt;TRO526 -->
<g id="edge19" class="edge">
<title>TRO525&#45;&gt;TRO526</title>
<g id="a_edge19"><a xlink:title="JA5002_7 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1317.77,-362.9C1335.33,-362.2 1358.38,-361.27 1377.61,-360.49"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1377.7,-363.29 1385.58,-360.17 1377.47,-357.7 1377.7,-363.29"/>
</a>
</g>
</g>
<!-- TRO527 -->
<g id="node28" class="node">
<title>TRO527</title>
<g id="a_node28"><a xlink:title="TRO 527 (1Sep1Switch)">
<path fill="#ffe4a0" stroke="#cc8800" stroke-width="1.6" d="M1562,-378C1562,-378 1522,-378 1522,-378 1516,-378 1510,-372 1510,-366 1510,-366 1510,-352 1510,-352 1510,-346 1516,-340 1522,-340 1522,-340 1562,-340 1562,-340 1568,-340 1574,-346 1574,-352 1574,-352 1574,-366 1574,-366 1574,-372 1568,-378 1562,-378"/>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-363.55" font-family="Segoe UI" font-size="11.00">TRO527</text>
<text xml:space="preserve" text-anchor="middle" x="1542" y="-348.55" font-family="Segoe UI" font-size="11.00">1Sep1Swi</text>
</a>
</g>
</g>
<!-- TRO526&#45;&gt;TRO527 -->
<g id="edge20" class="edge">
<title>TRO526&#45;&gt;TRO527</title>
<g id="a_edge20"><a xlink:title="JA5002_8 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1444.02,-359C1460.29,-359 1481.28,-359 1499.57,-359"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1499.44,-361.8 1507.44,-359 1499.44,-356.2 1499.44,-361.8"/>
</a>
</g>
</g>
<!-- TRO528 -->
<g id="node29" class="node">
<title>TRO528</title>
<g id="a_node29"><a xlink:title="TRO 528 (1Sep)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1683.75,-377C1683.75,-377 1652.75,-377 1652.75,-377 1646.75,-377 1640.75,-371 1640.75,-365 1640.75,-365 1640.75,-351 1640.75,-351 1640.75,-345 1646.75,-339 1652.75,-339 1652.75,-339 1683.75,-339 1683.75,-339 1689.75,-339 1695.75,-345 1695.75,-351 1695.75,-351 1695.75,-365 1695.75,-365 1695.75,-371 1689.75,-377 1683.75,-377"/>
<text xml:space="preserve" text-anchor="middle" x="1668.25" y="-362.55" font-family="Segoe UI" font-size="11.00">TRO528</text>
<text xml:space="preserve" text-anchor="middle" x="1668.25" y="-347.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO527&#45;&gt;TRO528 -->
<g id="edge21" class="edge">
<title>TRO527&#45;&gt;TRO528</title>
<g id="a_edge21"><a xlink:title="JA5002_9 (dir2)">
<path fill="none" stroke="#cc8800" stroke-width="1.3" stroke-dasharray="5,2" d="M1574.68,-358.75C1591.78,-358.61 1612.98,-358.44 1630.78,-358.29"/>
<polygon fill="#cc8800" stroke="#cc8800" stroke-width="1.3" points="1630.32,-361.1 1638.3,-358.23 1630.27,-355.5 1630.32,-361.1"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1607.38" y="-362.79" font-family="Segoe UI" font-size="9.00" fill="#cc8800">dir2</text>
</g>
<!-- TRO529 -->
<g id="node30" class="node">
<title>TRO529</title>
<g id="a_node30"><a xlink:title="TRO 529 (1Sep) + Scanner (BX5113)">
<path fill="#d4e8ff" stroke="#3388cc" stroke-width="1.6" d="M1775.75,-65C1775.75,-65 1744.75,-65 1744.75,-65 1738.75,-65 1732.75,-59 1732.75,-53 1732.75,-53 1732.75,-39 1732.75,-39 1732.75,-33 1738.75,-27 1744.75,-27 1744.75,-27 1775.75,-27 1775.75,-27 1781.75,-27 1787.75,-33 1787.75,-39 1787.75,-39 1787.75,-53 1787.75,-53 1787.75,-59 1781.75,-65 1775.75,-65"/>
<text xml:space="preserve" text-anchor="middle" x="1760.25" y="-50.55" font-family="Segoe UI" font-size="11.00">TRO529</text>
<text xml:space="preserve" text-anchor="middle" x="1760.25" y="-35.55" font-family="Segoe UI" font-size="11.00">1Sep</text>
</a>
</g>
</g>
<!-- TRO528&#45;&gt;TRO529 -->
<g id="edge8" class="edge">
<title>TRO528&#45;&gt;TRO529</title>
<g id="a_edge8"><a xlink:title="JA5002_10 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1690.32,-338.2C1692.37,-335.59 1694.24,-332.84 1695.75,-330 1741.02,-244.9 1754.08,-128.91 1757.8,-75.34"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="1760.59,-75.61 1758.3,-67.44 1755,-75.25 1760.59,-75.61"/>
</a>
</g>
</g>
<!-- TRO529&#45;&gt;TRO504 -->
<g id="edge7" class="edge">
<title>TRO529&#45;&gt;TRO504</title>
<g id="a_edge7"><a xlink:title="JA5002_1 (normal)">
<path fill="none" stroke="#444444" stroke-width="1.3" d="M1732.2,-40.49C1714.39,-37.34 1690.53,-34 1669.25,-34 804.5,-34 804.5,-34 804.5,-34 785.42,-34 764.35,-36.44 746.95,-39.11"/>
<polygon fill="#444444" stroke="#444444" stroke-width="1.3" points="746.57,-36.34 739.12,-40.39 747.46,-41.87 746.57,-36.34"/>
</a>
</g>
</g>
<!-- TRO530&#45;&gt;TRO501 -->
<g id="edge4" class="edge">
<title>TRO530&#45;&gt;TRO501</title>
<g id="a_edge4"><a xlink:title="JA5001_3 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M530.92,-19C544.99,-19 562.39,-19 577.78,-19"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="577.75,-21.8 585.75,-19 577.75,-16.2 577.75,-21.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="559.88" y="-23.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- TRO531&#45;&gt;TRO503 -->
<g id="edge2" class="edge">
<title>TRO531&#45;&gt;TRO503</title>
<g id="a_edge2"><a xlink:title="JA5000_3 (finger)">
<path fill="none" stroke="#883388" stroke-width="2.2" d="M530.92,-75C544.99,-75 562.39,-75 577.78,-75"/>
<polygon fill="#883388" stroke="#883388" stroke-width="2.2" points="577.75,-77.8 585.75,-75 577.75,-72.2 577.75,-77.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="559.88" y="-79.2" font-family="Segoe UI" font-size="9.00" fill="#883388">finger</text>
</g>
<!-- EXT_UH05_e001 -->
<g id="node33" class="node">
<title>EXT_UH05_e001</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-87 128.12,-87 128.12,-63 170.12,-63 182.12,-75 170.12,-87"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-79.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-66.45" font-family="Segoe UI" font-size="9.00">JA5000_1</text>
</g>
<!-- EXT_UH05_e001&#45;&gt;TRO502 -->
<g id="edge33" class="edge">
<title>EXT_UH05_e001&#45;&gt;TRO502</title>
<g id="a_edge33"><a xlink:title="JA5000_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-75C224.03,-75 303.96,-75 350.81,-75"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-77.8 358.59,-75 350.59,-72.2 350.59,-77.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-79.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- EXT_UH05_e002 -->
<g id="node34" class="node">
<title>EXT_UH05_e002</title>
<polygon fill="#eef2f7" stroke="#557799" stroke-width="1.6" points="170.12,-31 128.12,-31 128.12,-7 170.12,-7 182.12,-19 170.12,-31"/>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-23.2" font-family="Segoe UI" font-size="9.00">EXTERN</text>
<text xml:space="preserve" text-anchor="middle" x="155.12" y="-10.45" font-family="Segoe UI" font-size="9.00">JA5001_1</text>
</g>
<!-- EXT_UH05_e002&#45;&gt;TRO500 -->
<g id="edge34" class="edge">
<title>EXT_UH05_e002&#45;&gt;TRO500</title>
<g id="a_edge34"><a xlink:title="JA5001_1">
<path fill="none" stroke="#557799" stroke-width="1.3" d="M182.67,-19C224.03,-19 303.96,-19 350.81,-19"/>
<polygon fill="#557799" stroke="#557799" stroke-width="1.3" points="350.59,-21.8 358.59,-19 350.59,-16.2 350.59,-21.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="327.62" y="-23.2" font-family="Segoe UI" font-size="9.00" fill="#557799">EXTERN</text>
</g>
<!-- legend -->
<g id="node40" class="node">
<title>legend</title>
<text xml:space="preserve" text-anchor="start" x="33.25" y="-226.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#444444">—— normal</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-223.5" font-family="Segoe UI" font-size="10.00">standard transfer (jam area to jam area)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-206" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#cc8800">—— dir2</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-203.25" font-family="Segoe UI" font-size="10.00">switch output, direction 2 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="47.5" y="-185.75" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#b35900">—— dir3</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-183" font-family="Segoe UI" font-size="10.00">switch output, direction 3 (FC_Direction)</text>
<text xml:space="preserve" text-anchor="start" x="34.75" y="-165.5" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#3388cc">—— bypass</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-162.75" font-family="Segoe UI" font-size="10.00">bypass around a storage block (PinStore)</text>
<text xml:space="preserve" text-anchor="start" x="38.5" y="-145.25" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#883388">—— finger</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-142.5" font-family="Segoe UI" font-size="10.00">chain&#45;conveyor finger / index transfer</text>
<text xml:space="preserve" text-anchor="start" x="28" y="-125" font-family="Segoe UI" font-weight="bold" font-size="10.00" fill="#557799">—— EXTERN</text>
<text xml:space="preserve" text-anchor="start" x="94.75" y="-122.25" font-family="Segoe UI" font-size="10.00">infeed / outfeed to another PLC (EXTERN)</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 48 KiB

+26
View File
@@ -0,0 +1,26 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 210" width="720" height="210" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>Vario - chain conveyor</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_883388" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#883388"/></marker>
</defs>
<rect x="0" y="0" width="720" height="210" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#e8d4f0" stroke="#883388" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">Vario</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_Vario</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="104" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="131.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="280" y="92" width="160" height="68" rx="10" ry="10" fill="#e8d4f0" stroke="#883388" stroke-width="2.2"/>
<text x="360.0" y="123.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">Vario</text>
<text x="360.0" y="141.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">chain · pos/finger · motor MA</text>
<rect x="545" y="104" width="155" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="622.5" y="131.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Finger Exit</text>
<line x1="180" y1="126" x2="280" y2="126" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="218.8" y="108.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="230.0" y="120.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="440" y1="126" x2="545" y2="126" stroke="#883388" stroke-width="2.6" stroke-dasharray="9,3,2,3" marker-end="url(#arw_883388)"/>
<rect x="466.9" y="108.0" width="51.2" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="492.5" y="120.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#883388">finger</text>
<text x="360" y="192" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">driven chain segment; transfers to the next block via finger/index</text>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,30 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 240" width="720" height="240" font-family="Segoe UI, Helvetica, Arial, sans-serif">
<title>Vario_workStation - manual work station</title>
<defs>
<marker id="arw_444444" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#444444"/></marker>
<marker id="arw_777777" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#777777"/></marker>
<marker id="arw_883388" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#883388"/></marker>
</defs>
<rect x="0" y="0" width="720" height="240" fill="#ffffff"/>
<rect x="12" y="12" width="16" height="16" rx="3" fill="#e8d4f0" stroke="#883388" stroke-width="2"/>
<text x="36" y="25" text-anchor="start" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="16" font-weight="700" fill="#111">Vario_workStation</text>
<text x="708" y="25" text-anchor="end" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="12" font-weight="400" fill="#888">FB_ILS_MTRO_Vario_workStation</text>
<line x1="12" y1="34" x2="708" y2="34" stroke="#e0e0e0" stroke-width="1"/>
<rect x="30" y="110" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="105.0" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Entry JamArea</text>
<rect x="270" y="98" width="175" height="68" rx="10" ry="10" fill="#e8d4f0" stroke="#883388" stroke-width="2.2"/>
<text x="357.5" y="129.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="15" font-weight="600" fill="#1a1a1a">Vario_workStation</text>
<text x="357.5" y="147.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" fill="#555">chain + manual station</text>
<rect x="555" y="110" width="150" height="44" rx="22.0" ry="22.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="630.0" y="137.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">Finger Exit</text>
<rect x="285" y="30" width="175" height="38" rx="19.0" ry="19.0" fill="#f4f4f4" stroke="#999" stroke-width="2.2"/>
<text x="372.5" y="54.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#1a1a1a">operator · release button</text>
<line x1="180" y1="132" x2="270" y2="132" stroke="#444444" stroke-width="2.0" marker-end="url(#arw_444444)"/>
<rect x="213.8" y="114.0" width="22.4" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="225.0" y="126.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#444444">in</text>
<line x1="445" y1="132" x2="555" y2="132" stroke="#883388" stroke-width="2.6" stroke-dasharray="9,3,2,3" marker-end="url(#arw_883388)"/>
<rect x="474.4" y="114.0" width="51.2" height="16" rx="3" fill="#ffffff" fill-opacity="0.85"/>
<text x="500.0" y="126.0" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#883388">finger</text>
<line x1="357" y1="68" x2="357" y2="98" stroke="#777777" stroke-width="2.0" stroke-dasharray="1,4" marker-end="url(#arw_777777)"/>
<text x="360" y="222" text-anchor="middle" font-family="Segoe UI, Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#777" font-style="italic">Vario variant: station sensor + release button + load-error sensor</text>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB