From 2957e24a5f9cf15fd66571dc43cf7235bd11df8f Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Tue, 7 Jul 2026 09:54:25 +0200 Subject: [PATCH] =?UTF-8?q?dxf=20Erzeugung=20aus=20den=20.json=20Skeletons?= =?UTF-8?q?=20erm=C3=B6glicht,=20um=20anzuzeigen=20welche=20Elemente=20zus?= =?UTF-8?q?ammengeh=C3=B6ren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/create_dxf.bat | 22 + data/connect.ini | 646 +++++++++ data/connect.json | 3451 ++++++++++++++++++++++++++++++++++++++++++++ lib/create_dxf.py | 259 ++++ 4 files changed, 4378 insertions(+) create mode 100644 bin/create_dxf.bat create mode 100644 data/connect.ini create mode 100644 data/connect.json create mode 100644 lib/create_dxf.py diff --git a/bin/create_dxf.bat b/bin/create_dxf.bat new file mode 100644 index 0000000..f48caa7 --- /dev/null +++ b/bin/create_dxf.bat @@ -0,0 +1,22 @@ +@echo off +REM ================================================================ +REM HundM_Fortna - DXF-Uebersicht der TROs erzeugen +REM +REM Liest die Skeleton-Dateien (%PV_RESULTS%\skeleton_UH0x.json) und +REM erzeugt %PV_RESULTS%\ST500592_TROs.dxf (TRO-Kaesten als Bloecke, +REM Sensoren als Kreise mit Verbindungslinien) fuer AutoCAD/BricsCAD. +REM ================================================================ + +call "%~dp0setenv.bat" + +REM .venv bevorzugen, sonst System-Python +set "PYTHON=python" +if exist "%PROJECT%\.venv\Scripts\python.exe" ( + set "PYTHON=%PROJECT%\.venv\Scripts\python.exe" +) + +"%PYTHON%" "%PV_LIB%\create_dxf.py" %* +if errorlevel 1 ( + echo FEHLER: create_dxf.py wurde mit Fehler beendet. + exit /b 1 +) diff --git a/data/connect.ini b/data/connect.ini new file mode 100644 index 0000000..5b628db --- /dev/null +++ b/data/connect.ini @@ -0,0 +1,646 @@ +; ============================================================ +; connect.ini — Routing / Zusammenhalt der TROs (hmf-connect-v1) +; Quelle: doc/TRO_Graph_UH01-UH05.dot (inhaltsgleich zu connect.json) +; +; [UHxx.nodes] TRO = | +; [UHxx.connections] cNNN = -> | | +; kind: normal | dir2 | dir3 | bypass | finger +; (dir2/dir3 = Weichenausgang, Richtung aus FC_Direction) +; [UHxx.externals] eNNN = EXTERN -> | (Zulauf) +; eNNN = -> EXTERN | (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 + diff --git a/data/connect.json b/data/connect.json new file mode 100644 index 0000000..1ab98bf --- /dev/null +++ b/data/connect.json @@ -0,0 +1,3451 @@ +{ + "meta": { + "format": "hmf-connect-v1", + "source": "doc/TRO_Graph_UH01-UH05.dot", + "description": "Routing / Zusammenhalt der TROs je Steuerung. connections: gerichtete Kante von TRO zu TRO ueber eine JamArea. kind: normal|dir2|dir3 (Weichenausgang, Richtung aus FC_Direction)|bypass|finger. externals: offene Enden (Anlagengrenze, WES/WCS, CPU-CPU-Uebergabe)." + }, + "plcs": { + "UH01": { + "nodes": { + "TRO100": { + "fbType": "1Sep", + "comment": "TRO 100 (1Sep)" + }, + "TRO101": { + "fbType": "EmptyCarrBuffer", + "comment": "TRO101 (Empty Buffer rechts)" + }, + "TRO101_IN": { + "fbType": "1Sep", + "comment": "TRO 101_IN(1Sep)" + }, + "TRO102": { + "fbType": "EmptyCarrBuffer", + "comment": "TRO102 (Empty Buffer links)" + }, + "TRO102_IN": { + "fbType": "1Sep", + "comment": "TRO 102_IN(1Sep)" + }, + "TRO103": { + "fbType": "1Sep", + "comment": "TRO 103 (1Sep)" + }, + "TRO104": { + "fbType": "1Sep", + "comment": "TRO 104 (1Sep)+Scanner" + }, + "TRO105": { + "fbType": "1Sep_SSCC", + "comment": "TRO 105 (1Sep)+Scanner" + }, + "TRO106": { + "fbType": "1Sep", + "comment": "TRO 106 (1Sep)" + }, + "TRO107": { + "fbType": "1Sep1Swi", + "comment": "TRO 107(1Sep1Swi)" + }, + "TRO108": { + "fbType": "1Sep", + "comment": "TRO 108 (1Sep)" + }, + "TRO109": { + "fbType": "1Sep", + "comment": "TRO 109 (1Sep)+Scanner" + }, + "TRO110": { + "fbType": "1Sep_SSCC", + "comment": "TRO 110 (1Sep)+Scanner" + }, + "TRO111": { + "fbType": "1Sep", + "comment": "TRO 111 (1Sep)" + }, + "TRO112": { + "fbType": "1Sep1Swi", + "comment": "TRO 112 (1Sep1Swi)" + }, + "TRO113": { + "fbType": "1Sep", + "comment": "TRO 113 (1Sep)+Scanner" + }, + "TRO114": { + "fbType": "1Sep1Swi", + "comment": "TRO 114 (1Sep1Switch)+Scanner" + }, + "TRO115": { + "fbType": "Vario", + "comment": "TRO 115 (Vario)" + }, + "TRO116": { + "fbType": "1Sep", + "comment": "TRO 116 (1Sep)" + }, + "TRO117": { + "fbType": "1Sep", + "comment": "TRO 117 (1Sep) + Scanner" + }, + "TRO120": { + "fbType": "Vario", + "comment": "TRO 120 (Vario)" + }, + "TRO121": { + "fbType": "Vario", + "comment": "TRO 121(Vario)" + }, + "TRO122": { + "fbType": "1Sep", + "comment": "TRO 122 (1Sep)" + }, + "TRO123": { + "fbType": "Vario", + "comment": "TRO 123 (Vario)" + }, + "TRO124": { + "fbType": "1Sep1Swi", + "comment": "TRO 124 (1Sep1Switch)" + }, + "TRO125": { + "fbType": "1Sep", + "comment": "TRO 125 (1Sep)" + }, + "TRO126": { + "fbType": "Vario", + "comment": "TRO 126 (Vario)" + }, + "TRO127": { + "fbType": "Vario", + "comment": "TRO 127 (Vario)" + }, + "TRO128": { + "fbType": "Vario", + "comment": "TRO 128 (Vario)" + }, + "TRO129": { + "fbType": "1Sep", + "comment": "TRO 129 (1Sep)" + }, + "TRO130": { + "fbType": "1Sep", + "comment": "TRO 130 (1Sep)" + }, + "TRO131": { + "fbType": "Vario", + "comment": "TRO 131 (Vario)" + }, + "TRO133": { + "fbType": "Vario", + "comment": "TRO 133 (Vario)" + }, + "TRO134": { + "fbType": "Vario", + "comment": "TRO 134 (Vario)" + }, + "fbLoadingBoom1": { + "fbType": "LoadingBoom_INBOUND", + "comment": "LoadingBoom 1" + }, + "fbLoadingBoom2": { + "fbType": "LoadingBoom_INBOUND", + "comment": "LoadingBoom 2" + } + }, + "connections": [ + { + "from": "TRO128", + "to": "TRO100", + "jamArea": "JA0100_1", + "kind": "finger", + "dbRef": "\"DB_JamArea0100\".stJam0100_1" + }, + { + "from": "TRO100", + "to": "TRO101_IN", + "jamArea": "JA0101_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0101\".stJam0101_1" + }, + { + "from": "TRO101_IN", + "to": "TRO102_IN", + "jamArea": "JA0101_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0101\".stJam0101_2" + }, + { + "from": "TRO102", + "to": "TRO107", + "jamArea": "JA0102_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_1" + }, + { + "from": "TRO117", + "to": "TRO107", + "jamArea": "JA0102_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_1" + }, + { + "from": "TRO101", + "to": "TRO112", + "jamArea": "JA0102_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_2" + }, + { + "from": "TRO106", + "to": "TRO112", + "jamArea": "JA0102_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_2" + }, + { + "from": "TRO107", + "to": "TRO112", + "jamArea": "JA0102_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea0102\".stJam0102_2" + }, + { + "from": "TRO111", + "to": "TRO113", + "jamArea": "JA0102_3", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_3" + }, + { + "from": "TRO112", + "to": "TRO113", + "jamArea": "JA0102_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea0102\".stJam0102_3" + }, + { + "from": "TRO113", + "to": "TRO114", + "jamArea": "JA0102_4", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_4" + }, + { + "from": "TRO114", + "to": "TRO116", + "jamArea": "JA0102_5", + "kind": "dir2", + "dbRef": "\"DB_JamArea0102\".stJam0102_5" + }, + { + "from": "TRO116", + "to": "TRO117", + "jamArea": "JA0102_6", + "kind": "normal", + "dbRef": "\"DB_JamArea0102\".stJam0102_6" + }, + { + "from": "TRO107", + "to": "TRO103", + "jamArea": "JA0103_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0103\".stJam0103_1" + }, + { + "from": "TRO103", + "to": "TRO104", + "jamArea": "JA0104_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0104\".stJam0104_1" + }, + { + "from": "TRO104", + "to": "fbLoadingBoom1", + "jamArea": "JA0104_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0104\".stJam0104_2" + }, + { + "from": "fbLoadingBoom1", + "to": "TRO105", + "jamArea": "JA0104_3", + "kind": "normal", + "dbRef": "\"DB_JamArea0104\".stJam0104_3" + }, + { + "from": "TRO105", + "to": "TRO106", + "jamArea": "JA0106_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0106\".stJam0106_2" + }, + { + "from": "TRO112", + "to": "TRO108", + "jamArea": "JA0107_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0107\".stJam0107_1" + }, + { + "from": "TRO108", + "to": "TRO109", + "jamArea": "JA0108_1", + "kind": "normal", + "dbRef": "\"DB_JamArea0108\".stJam0108_1" + }, + { + "from": "TRO109", + "to": "fbLoadingBoom2", + "jamArea": "JA0108_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0108\".stJam0108_2" + }, + { + "from": "fbLoadingBoom2", + "to": "TRO110", + "jamArea": "JA0108_3", + "kind": "normal", + "dbRef": "\"DB_JamArea0108\".stJam0108_3" + }, + { + "from": "TRO110", + "to": "TRO111", + "jamArea": "JA0110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea0110\".stJam0110_2" + }, + { + "from": "TRO115", + "to": "TRO120", + "jamArea": "JA4103_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4103\".stJam4103_1" + }, + { + "from": "TRO125", + "to": "TRO126", + "jamArea": "JA4203_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4203\".stJam4203_1" + }, + { + "from": "TRO129", + "to": "TRO130", + "jamArea": "JA4204_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4204\".stJam4204_1" + }, + { + "from": "TRO124", + "to": "TRO125", + "jamArea": "JA4204_2", + "kind": "normal", + "dbRef": "\"DB_JamArea4204\".stJam4204_2" + }, + { + "from": "TRO133", + "to": "TRO129", + "jamArea": "JA4302_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4302\".stJam4302_2" + }, + { + "from": "TRO134", + "to": "TRO131", + "jamArea": "JA4403_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4403\".stJam4403_1" + }, + { + "from": "TRO124", + "to": "TRO127", + "jamArea": "JA4501_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea4501\".stJam4501_1" + }, + { + "from": "TRO130", + "to": "TRO127", + "jamArea": "JA4501_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4501\".stJam4501_1" + }, + { + "from": "TRO127", + "to": "TRO128", + "jamArea": "JA4501_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4501\".stJam4501_2" + }, + { + "from": "TRO122", + "to": "TRO123", + "jamArea": "JA4502_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4502\".stJam4502_1" + }, + { + "from": "TRO123", + "to": "TRO124", + "jamArea": "JA4502_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4502\".stJam4502_2" + }, + { + "from": "TRO121", + "to": "TRO122", + "jamArea": "JA4503_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4503\".stJam4503_2" + }, + { + "from": "TRO101_IN", + "to": "TRO101", + "jamArea": "JamBuffer101", + "kind": "normal", + "dbRef": "JamBuffer101" + }, + { + "from": "TRO102_IN", + "to": "TRO102", + "jamArea": "JamBuffer102", + "kind": "normal", + "dbRef": "JamBuffer102" + } + ], + "externals": [ + { + "node": "TRO115", + "direction": "in", + "jamArea": "JA4104_1", + "dbRef": "\"DB_JamArea4104\".stJam4104_1" + }, + { + "node": "TRO133", + "direction": "in", + "jamArea": "JA4302_1", + "dbRef": "\"DB_JamArea4302\".stJam4302_1" + }, + { + "node": "TRO134", + "direction": "in", + "jamArea": "JA4402_1", + "dbRef": "\"DB_JamArea4402\".stJam4402_1" + }, + { + "node": "TRO121", + "direction": "in", + "jamArea": "JA4503_1", + "dbRef": "\"DB_JamArea4503\".stJam4503_1" + } + ] + }, + "UH02": { + "nodes": { + "TRO200": { + "fbType": "Vario", + "comment": "TRO 200 (Vario)" + }, + "TRO201": { + "fbType": "1Sep", + "comment": "TRO 201 (1Sep)" + }, + "TRO202": { + "fbType": "1Sep1Swi", + "comment": "TRO 202 (1Sep1Switch)+Scanner(BX2103)" + }, + "TRO203": { + "fbType": "1Sep1Swi", + "comment": "TRO 203 (1Sep1Switch) + Scanner (BX2111)" + }, + "TRO204": { + "fbType": "1Sep1Swi", + "comment": "TRO 204(1Sep1Switch) + Scanner(BX2112)" + }, + "TRO205": { + "fbType": "1Sep1Swi", + "comment": "TRO 205 (1Sep1Switch) + Scanner(BX2114)" + }, + "TRO206": { + "fbType": "1Sep1Swi", + "comment": "TRO 206 (1Sep1Switch)+Scanner(BX2113)" + }, + "TRO207": { + "fbType": "1Sep", + "comment": "TRO 207(1Sep)" + }, + "TRO208": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO208" + }, + "TRO209": { + "fbType": "Vario", + "comment": "TRO 209 (Vario)" + }, + "TRO210": { + "fbType": "1Sep", + "comment": "TRO 210 (1Sep)" + }, + "TRO211": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO211" + }, + "TRO212": { + "fbType": "Vario", + "comment": "TRO 212 (Vario)" + }, + "TRO213": { + "fbType": "1Sep", + "comment": "TRO 213 (1Sep)" + }, + "TRO214": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO214" + }, + "TRO215": { + "fbType": "Vario", + "comment": "TRO 215 (Vario)" + }, + "TRO216": { + "fbType": "1Sep", + "comment": "TRO 216 (1Sep)" + }, + "TRO217": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO217" + }, + "TRO218": { + "fbType": "Vario", + "comment": "TRO 218 (Vario)" + }, + "TRO219": { + "fbType": "1Sep", + "comment": "TRO 219(1Sep)" + }, + "TRO220": { + "fbType": "Vario", + "comment": "TRO 220 (Vario)" + }, + "TRO221": { + "fbType": "1Sep", + "comment": "TRO 221 (1Sep)" + }, + "TRO222": { + "fbType": "1Sep1Swi", + "comment": "TRO 222 (1Sep1Switch)+Scanner(BX2121)" + }, + "TRO223": { + "fbType": "1Sep1Swi", + "comment": "TRO 223 (1Sep1Switch)+Scanner(BX2126)" + }, + "TRO224": { + "fbType": "1Sep1Swi", + "comment": "TRO 224 (1Sep1Switch)+Scanner(BX2127)" + }, + "TRO225": { + "fbType": "1Sep1Swi", + "comment": "TRO 225(1Sep1Switch)+Scanner(BX2129)" + }, + "TRO226": { + "fbType": "1Sep1Swi", + "comment": "TRO 226 (1Sep1Switch)+Scanner(BX2128)" + }, + "TRO227": { + "fbType": "1Sep", + "comment": "TRO 227 (1Sep)" + }, + "TRO228": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO228" + }, + "TRO229": { + "fbType": "Vario", + "comment": "TRO 229 (Vario)" + }, + "TRO230": { + "fbType": "1Sep", + "comment": "TRO 230 (1Sep)" + }, + "TRO231": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO231" + }, + "TRO232": { + "fbType": "Vario", + "comment": "TRO 232 (Vario)" + }, + "TRO233": { + "fbType": "1Sep", + "comment": "TRO 233 (1Sep)" + }, + "TRO234": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO234" + }, + "TRO235": { + "fbType": "Vario", + "comment": "TRO 235 (Vario)" + }, + "TRO236": { + "fbType": "1Sep", + "comment": "TRO 236 (1Sep)" + }, + "TRO237": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO237" + }, + "TRO238": { + "fbType": "Vario", + "comment": "TRO 238 (Vario)" + }, + "TRO239": { + "fbType": "1Sep", + "comment": "TRO 239 (1Sep)" + }, + "TRO240": { + "fbType": "Vario", + "comment": "TRO 240 (Vario)" + }, + "TRO241": { + "fbType": "1Sep", + "comment": "TRO 241(1Sep)" + }, + "TRO242": { + "fbType": "1Sep1Swi", + "comment": "TRO 242 (1Sep1Switch)+Scanner(BX2130)" + }, + "TRO243": { + "fbType": "1Sep1Swi", + "comment": "TRO 243 (1Sep1Switch)+Scanner(BX3137)" + }, + "TRO244": { + "fbType": "1Sep1Swi", + "comment": "TRO 244 (1Sep1Switch)+Scanner(BX2136)" + }, + "TRO245": { + "fbType": "1Sep1Swi", + "comment": "TRO 245 (1Sep1Switch)+Scanner(BX2138)" + }, + "TRO246": { + "fbType": "1Sep1Swi", + "comment": "TRO 246 (1Sep1Switch)+Scanner(BX2137)" + }, + "TRO247": { + "fbType": "1Sep", + "comment": "TRO 247(1Sep)" + }, + "TRO248": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO248" + }, + "TRO249": { + "fbType": "Vario", + "comment": "TRO 249 (Vario)" + }, + "TRO250": { + "fbType": "1Sep", + "comment": "TRO 250 (1Sep)" + }, + "TRO251": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO251" + }, + "TRO252": { + "fbType": "Vario", + "comment": "TRO 252 (Vario)" + }, + "TRO253": { + "fbType": "1Sep", + "comment": "TRO 253 (1Sep)" + }, + "TRO254": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO254" + }, + "TRO255": { + "fbType": "Vario", + "comment": "TRO 255 (Vario)" + }, + "TRO256": { + "fbType": "1Sep", + "comment": "TRO 256 (1Sep)" + }, + "TRO257": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO257" + }, + "TRO258": { + "fbType": "Vario", + "comment": "TRO 258 (Vario)" + }, + "TRO259": { + "fbType": "1Sep", + "comment": "TRO 259 (1Sep)" + }, + "TRO260": { + "fbType": "Vario", + "comment": "TRO 260 (Vario) + Scanner (BX2115)" + }, + "TRO261": { + "fbType": "1Sep", + "comment": "TRO 261 (1Sep)" + }, + "TRO262": { + "fbType": "Vario", + "comment": "TRO 262 (Vario) + Scanner (BX2109)" + }, + "TRO263": { + "fbType": "1Sep", + "comment": "TRO 263 (1Sep)" + }, + "TRO264": { + "fbType": "Vario", + "comment": "TRO 264 (Vario) + Scanner (BX2108)" + }, + "TRO265": { + "fbType": "1Sep", + "comment": "TRO 265 (1Sep)" + }, + "TRO266": { + "fbType": "1Sep", + "comment": "TRO 266(1Sep)" + }, + "TRO267": { + "fbType": "1Sep2Swi", + "comment": "TRO 267 (1Sep2Switch)+Scanner(BX2100)" + }, + "TRO268": { + "fbType": "1Sep2Swi", + "comment": "TRO 268 (1Sep2Switch)+Scanner(BX2101)" + }, + "TRO269": { + "fbType": "1Sep", + "comment": "TRO 269 (1Sep)+Scanner (BX2102)" + }, + "TRO270": { + "fbType": "Vario", + "comment": "TRO 270 (Vario)" + }, + "TRO272": { + "fbType": "Vario", + "comment": "TRO 272 (Vario)" + }, + "TRO274": { + "fbType": "1Sep", + "comment": "TRO 274 (1Sep)" + }, + "TRO275": { + "fbType": "1Sep", + "comment": "TRO 275 (1Sep)" + } + }, + "connections": [ + { + "from": "TRO202", + "to": "TRO211", + "jamArea": "JA1101_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1101\".stJam1101_1" + }, + { + "from": "TRO213", + "to": "TRO211", + "jamArea": "JA1101_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1101\".stJam1101_1" + }, + { + "from": "TRO211", + "to": "TRO208", + "jamArea": "JA1101_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea1101\".stJam1101_2" + }, + { + "from": "TRO210", + "to": "TRO208", + "jamArea": "JA1101_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1101\".stJam1101_2" + }, + { + "from": "TRO201", + "to": "TRO202", + "jamArea": "JA1102_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1102\".stJam1102_1" + }, + { + "from": "TRO202", + "to": "TRO214", + "jamArea": "JA1102_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1102\".stJam1102_2" + }, + { + "from": "TRO216", + "to": "TRO214", + "jamArea": "JA1102_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1102\".stJam1102_2" + }, + { + "from": "TRO214", + "to": "TRO217", + "jamArea": "JA1102_3", + "kind": "bypass", + "dbRef": "\"DB_JamArea1102\".stJam1102_3" + }, + { + "from": "TRO219", + "to": "TRO217", + "jamArea": "JA1102_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1102\".stJam1102_3" + }, + { + "from": "TRO208", + "to": "TRO203", + "jamArea": "JA1103_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1103\".stJam1103_1" + }, + { + "from": "TRO211", + "to": "TRO204", + "jamArea": "JA1103_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1103\".stJam1103_2" + }, + { + "from": "TRO203", + "to": "TRO204", + "jamArea": "JA1103_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea1103\".stJam1103_2" + }, + { + "from": "TRO217", + "to": "TRO205", + "jamArea": "JA1104_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1104\".stJam1104_1" + }, + { + "from": "TRO214", + "to": "TRO206", + "jamArea": "JA1104_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1104\".stJam1104_2" + }, + { + "from": "TRO205", + "to": "TRO206", + "jamArea": "JA1104_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1104\".stJam1104_2" + }, + { + "from": "TRO204", + "to": "TRO207", + "jamArea": "JA1104_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea1104\".stJam1104_3" + }, + { + "from": "TRO206", + "to": "TRO207", + "jamArea": "JA1104_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1104\".stJam1104_3" + }, + { + "from": "TRO203", + "to": "TRO209", + "jamArea": "JA1105_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1105\".stJam1105_1" + }, + { + "from": "TRO209", + "to": "TRO210", + "jamArea": "JA1105_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1105\".stJam1105_2" + }, + { + "from": "TRO204", + "to": "TRO212", + "jamArea": "JA1106_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1106\".stJam1106_1" + }, + { + "from": "TRO212", + "to": "TRO213", + "jamArea": "JA1106_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1106\".stJam1106_2" + }, + { + "from": "TRO206", + "to": "TRO215", + "jamArea": "JA1107_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1107\".stJam1107_1" + }, + { + "from": "TRO215", + "to": "TRO216", + "jamArea": "JA1107_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1107\".stJam1107_2" + }, + { + "from": "TRO205", + "to": "TRO218", + "jamArea": "JA1108_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1108\".stJam1108_1" + }, + { + "from": "TRO218", + "to": "TRO219", + "jamArea": "JA1108_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1108\".stJam1108_2" + }, + { + "from": "TRO200", + "to": "TRO201", + "jamArea": "JA1109_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1109\".stJam1109_2" + }, + { + "from": "TRO268", + "to": "TRO269", + "jamArea": "JA1110_1", + "kind": "dir3", + "dbRef": "\"DB_JamArea1110\".stJam1110_1" + }, + { + "from": "TRO261", + "to": "TRO274", + "jamArea": "JA1110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_2" + }, + { + "from": "TRO269", + "to": "TRO274", + "jamArea": "JA1110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_2" + }, + { + "from": "TRO263", + "to": "TRO266", + "jamArea": "JA1110_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_3" + }, + { + "from": "TRO274", + "to": "TRO266", + "jamArea": "JA1110_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_3" + }, + { + "from": "TRO265", + "to": "TRO267", + "jamArea": "JA1110_4", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_4" + }, + { + "from": "TRO266", + "to": "TRO267", + "jamArea": "JA1110_4", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_4" + }, + { + "from": "TRO267", + "to": "TRO275", + "jamArea": "JA1110_5", + "kind": "dir3", + "dbRef": "\"DB_JamArea1110\".stJam1110_5" + }, + { + "from": "TRO275", + "to": "TRO268", + "jamArea": "JA1110_6", + "kind": "normal", + "dbRef": "\"DB_JamArea1110\".stJam1110_6" + }, + { + "from": "TRO222", + "to": "TRO231", + "jamArea": "JA1201_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1201\".stJam1201_1" + }, + { + "from": "TRO233", + "to": "TRO231", + "jamArea": "JA1201_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1201\".stJam1201_1" + }, + { + "from": "TRO231", + "to": "TRO228", + "jamArea": "JA1201_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea1201\".stJam1201_2" + }, + { + "from": "TRO230", + "to": "TRO228", + "jamArea": "JA1201_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1201\".stJam1201_2" + }, + { + "from": "TRO221", + "to": "TRO222", + "jamArea": "JA1202_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1202\".stJam1202_1" + }, + { + "from": "TRO222", + "to": "TRO234", + "jamArea": "JA1202_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1202\".stJam1202_2" + }, + { + "from": "TRO236", + "to": "TRO234", + "jamArea": "JA1202_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1202\".stJam1202_2" + }, + { + "from": "TRO234", + "to": "TRO237", + "jamArea": "JA1202_3", + "kind": "bypass", + "dbRef": "\"DB_JamArea1202\".stJam1202_3" + }, + { + "from": "TRO239", + "to": "TRO237", + "jamArea": "JA1202_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1202\".stJam1202_3" + }, + { + "from": "TRO228", + "to": "TRO223", + "jamArea": "JA1203_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1203\".stJam1203_1" + }, + { + "from": "TRO231", + "to": "TRO224", + "jamArea": "JA1203_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1203\".stJam1203_2" + }, + { + "from": "TRO223", + "to": "TRO224", + "jamArea": "JA1203_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea1203\".stJam1203_2" + }, + { + "from": "TRO237", + "to": "TRO225", + "jamArea": "JA1204_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1204\".stJam1204_1" + }, + { + "from": "TRO234", + "to": "TRO226", + "jamArea": "JA1204_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1204\".stJam1204_2" + }, + { + "from": "TRO225", + "to": "TRO226", + "jamArea": "JA1204_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1204\".stJam1204_2" + }, + { + "from": "TRO224", + "to": "TRO227", + "jamArea": "JA1204_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea1204\".stJam1204_3" + }, + { + "from": "TRO226", + "to": "TRO227", + "jamArea": "JA1204_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1204\".stJam1204_3" + }, + { + "from": "TRO223", + "to": "TRO229", + "jamArea": "JA1205_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1205\".stJam1205_1" + }, + { + "from": "TRO229", + "to": "TRO230", + "jamArea": "JA1205_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1205\".stJam1205_2" + }, + { + "from": "TRO224", + "to": "TRO232", + "jamArea": "JA1206_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1206\".stJam1206_1" + }, + { + "from": "TRO232", + "to": "TRO233", + "jamArea": "JA1206_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1206\".stJam1206_2" + }, + { + "from": "TRO226", + "to": "TRO235", + "jamArea": "JA1207_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1207\".stJam1207_1" + }, + { + "from": "TRO235", + "to": "TRO236", + "jamArea": "JA1207_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1207\".stJam1207_2" + }, + { + "from": "TRO225", + "to": "TRO238", + "jamArea": "JA1208_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1208\".stJam1208_1" + }, + { + "from": "TRO238", + "to": "TRO239", + "jamArea": "JA1208_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1208\".stJam1208_2" + }, + { + "from": "TRO220", + "to": "TRO221", + "jamArea": "JA1209_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1209\".stJam1209_2" + }, + { + "from": "TRO248", + "to": "TRO243", + "jamArea": "JA1301_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1301\".stJam1301_1" + }, + { + "from": "TRO251", + "to": "TRO244", + "jamArea": "JA1301_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1301\".stJam1301_2" + }, + { + "from": "TRO243", + "to": "TRO244", + "jamArea": "JA1301_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1301\".stJam1301_2" + }, + { + "from": "TRO257", + "to": "TRO245", + "jamArea": "JA1302_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1302\".stJam1302_1" + }, + { + "from": "TRO254", + "to": "TRO246", + "jamArea": "JA1302_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1302\".stJam1302_2" + }, + { + "from": "TRO245", + "to": "TRO246", + "jamArea": "JA1302_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea1302\".stJam1302_2" + }, + { + "from": "TRO242", + "to": "TRO251", + "jamArea": "JA1303_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1303\".stJam1303_1" + }, + { + "from": "TRO253", + "to": "TRO251", + "jamArea": "JA1303_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1303\".stJam1303_1" + }, + { + "from": "TRO251", + "to": "TRO248", + "jamArea": "JA1303_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea1303\".stJam1303_2" + }, + { + "from": "TRO250", + "to": "TRO248", + "jamArea": "JA1303_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1303\".stJam1303_2" + }, + { + "from": "TRO241", + "to": "TRO242", + "jamArea": "JA1304_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1304\".stJam1304_1" + }, + { + "from": "TRO242", + "to": "TRO254", + "jamArea": "JA1304_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea1304\".stJam1304_2" + }, + { + "from": "TRO256", + "to": "TRO254", + "jamArea": "JA1304_2", + "kind": "normal", + "dbRef": "\"DB_JamArea1304\".stJam1304_2" + }, + { + "from": "TRO254", + "to": "TRO257", + "jamArea": "JA1304_3", + "kind": "bypass", + "dbRef": "\"DB_JamArea1304\".stJam1304_3" + }, + { + "from": "TRO259", + "to": "TRO257", + "jamArea": "JA1304_3", + "kind": "normal", + "dbRef": "\"DB_JamArea1304\".stJam1304_3" + }, + { + "from": "TRO243", + "to": "TRO249", + "jamArea": "JA1305_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1305\".stJam1305_1" + }, + { + "from": "TRO249", + "to": "TRO250", + "jamArea": "JA1305_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1305\".stJam1305_2" + }, + { + "from": "TRO244", + "to": "TRO252", + "jamArea": "JA1306_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea1306\".stJam1306_1" + }, + { + "from": "TRO252", + "to": "TRO253", + "jamArea": "JA1306_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1306\".stJam1306_2" + }, + { + "from": "TRO246", + "to": "TRO255", + "jamArea": "JA1307_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1307\".stJam1307_1" + }, + { + "from": "TRO255", + "to": "TRO256", + "jamArea": "JA1307_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1307\".stJam1307_2" + }, + { + "from": "TRO245", + "to": "TRO258", + "jamArea": "JA1308_1", + "kind": "normal", + "dbRef": "\"DB_JamArea1308\".stJam1308_1" + }, + { + "from": "TRO258", + "to": "TRO259", + "jamArea": "JA1308_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1308\".stJam1308_2" + }, + { + "from": "TRO240", + "to": "TRO241", + "jamArea": "JA1309_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1309\".stJam1309_2" + }, + { + "from": "TRO264", + "to": "TRO265", + "jamArea": "JA1401_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1401\".stJam1401_2" + }, + { + "from": "TRO262", + "to": "TRO263", + "jamArea": "JA1501_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1501\".stJam1501_2" + }, + { + "from": "TRO260", + "to": "TRO261", + "jamArea": "JA1601_2", + "kind": "finger", + "dbRef": "\"DB_JamArea1601\".stJam1601_2" + } + ], + "externals": [ + { + "node": "TRO200", + "direction": "in", + "jamArea": "JA1109_1", + "dbRef": "\"DB_JamArea1109\".stJam1109_1" + }, + { + "node": "TRO220", + "direction": "in", + "jamArea": "JA1209_1", + "dbRef": "\"DB_JamArea1209\".stJam1209_1" + }, + { + "node": "TRO244", + "direction": "out", + "jamArea": "JA1302_3", + "dbRef": "\"DB_JamArea1302\".stJam1302_3" + }, + { + "node": "TRO246", + "direction": "out", + "jamArea": "JA1302_3", + "dbRef": "\"DB_JamArea1302\".stJam1302_3" + }, + { + "node": "TRO240", + "direction": "in", + "jamArea": "JA1309_1", + "dbRef": "\"DB_JamArea1309\".stJam1309_1" + }, + { + "node": "TRO264", + "direction": "in", + "jamArea": "JA1401_1", + "dbRef": "\"DB_JamArea1401\".stJam1401_1" + }, + { + "node": "TRO262", + "direction": "in", + "jamArea": "JA1501_1", + "dbRef": "\"DB_JamArea1501\".stJam1501_1" + }, + { + "node": "TRO260", + "direction": "in", + "jamArea": "JA1601_1", + "dbRef": "\"DB_JamArea1601\".stJam1601_1" + }, + { + "node": "TRO272", + "direction": "in", + "jamArea": "JA1801_1", + "dbRef": "\"DB_JamArea1801\".stJam1801_1" + }, + { + "node": "TRO270", + "direction": "in", + "jamArea": "JA4701_1", + "dbRef": "\"DB_JamArea4701\".stJam4701_1" + }, + { + "node": "TRO208", + "direction": "in", + "jamArea": "Storage1.1.1", + "dbRef": "Storage1.1.1" + }, + { + "node": "TRO211", + "direction": "in", + "jamArea": "Storage1.1.2", + "dbRef": "Storage1.1.2" + }, + { + "node": "TRO214", + "direction": "in", + "jamArea": "Storage1.1.3", + "dbRef": "Storage1.1.3" + }, + { + "node": "TRO217", + "direction": "in", + "jamArea": "Storage1.1.4", + "dbRef": "Storage1.1.4" + }, + { + "node": "TRO228", + "direction": "in", + "jamArea": "Storage1.2.1", + "dbRef": "Storage1.2.1" + }, + { + "node": "TRO231", + "direction": "in", + "jamArea": "Storage1.2.2", + "dbRef": "Storage1.2.2" + }, + { + "node": "TRO234", + "direction": "in", + "jamArea": "Storage1.2.3", + "dbRef": "Storage1.2.3" + }, + { + "node": "TRO237", + "direction": "in", + "jamArea": "Storage1.2.4", + "dbRef": "Storage1.2.4" + }, + { + "node": "TRO248", + "direction": "in", + "jamArea": "Storage1.3.1", + "dbRef": "Storage1.3.1" + }, + { + "node": "TRO251", + "direction": "in", + "jamArea": "Storage1.3.2", + "dbRef": "Storage1.3.2" + }, + { + "node": "TRO254", + "direction": "in", + "jamArea": "Storage1.3.3", + "dbRef": "Storage1.3.3" + }, + { + "node": "TRO257", + "direction": "in", + "jamArea": "Storage1.3.4", + "dbRef": "Storage1.3.4" + }, + { + "node": "TRO207", + "direction": "out", + "jamArea": "IO_Device_UH02_TO_UH01.stCARRIER_INFO", + "dbRef": "IO_Device_UH02_TO_UH01.stCARRIER_INFO" + }, + { + "node": "TRO227", + "direction": "out", + "jamArea": "IO_Device_UH02_TO_UH01.stCARRIER_INFO_1", + "dbRef": "IO_Device_UH02_TO_UH01.stCARRIER_INFO_1" + }, + { + "node": "TRO247", + "direction": "out", + "jamArea": "IO_Device_UH02_TO_UH01.stCARRIER_INFO_2", + "dbRef": "IO_Device_UH02_TO_UH01.stCARRIER_INFO_2" + } + ] + }, + "UH03": { + "nodes": { + "TRO300": { + "fbType": "Vario", + "comment": "TRO 300 (Vario)" + }, + "TRO301": { + "fbType": "1Sep", + "comment": "TRO 301(1Sep)" + }, + "TRO302": { + "fbType": "Vario", + "comment": "TRO 302 (Vario)" + }, + "TRO303": { + "fbType": "Vario", + "comment": "TRO 303 (Vario)" + }, + "TRO304": { + "fbType": "1Sep", + "comment": "TRO 304(1Sep)" + }, + "TRO305": { + "fbType": "Vario", + "comment": "TRO 305 (Vario)" + }, + "TRO306": { + "fbType": "Vario", + "comment": "TRO 306 (Vario)" + }, + "TRO307": { + "fbType": "Vario", + "comment": "TRO 307 (Vario)" + }, + "TRO308": { + "fbType": "Vario", + "comment": "TRO 308 (Vario)" + }, + "TRO309": { + "fbType": "1Sep", + "comment": "TRO 309 (1Sep)" + }, + "TRO310": { + "fbType": "1Sep", + "comment": "TRO 310 (1Sep)+Scanner (BX3102)" + }, + "TRO311": { + "fbType": "1Sep", + "comment": "TRO 311 (1Sep)+Scanner(BX3101)" + }, + "TRO312": { + "fbType": "1Sep", + "comment": "TRO 312 (1Sep)+Scanner(BX3100)" + }, + "TRO313": { + "fbType": "1Sep1Swi", + "comment": "TRO 313 (1Sep1Switch)+Scanner(BX3103)" + }, + "TRO314": { + "fbType": "1Sep1Swi", + "comment": "TRO 314 (1Sep1Switch)+Scanner(BX3104)" + }, + "TRO315": { + "fbType": "1Sep", + "comment": "TRO 315 (1Sep)" + }, + "TRO316": { + "fbType": "1Sep", + "comment": "TRO 316 (1Sep)" + }, + "TRO317": { + "fbType": "1Sep1Swi", + "comment": "TRO 317 (1Sep1Switch)+Scanner(BX3105)" + }, + "TRO318": { + "fbType": "1Sep1Swi", + "comment": "TRO 318 (1Sep1Switch) + Scanner(BX3106)" + }, + "TRO319": { + "fbType": "1Sep1Swi", + "comment": "TRO 319 (1Sep1Switch) + Scanner (BX3111)" + }, + "TRO320": { + "fbType": "1Sep1Swi", + "comment": "TRO 320 (1Sep1Switch) + Scanner(BX3112)" + }, + "TRO321": { + "fbType": "1Sep1Swi", + "comment": "TRO 321 (1Sep1Switch) + Scanner(BX3114)" + }, + "TRO322": { + "fbType": "1Sep1Swi", + "comment": "TRO 322 (1Sep1Switch)+Scanner(BX3113)" + }, + "TRO323": { + "fbType": "1Sep", + "comment": "TRO 323 (1Sep)" + }, + "TRO324": { + "fbType": "Vario", + "comment": "TRO 324 (Vario)" + }, + "TRO325": { + "fbType": "1Sep", + "comment": "TRO 325 (1Sep)" + }, + "TRO326": { + "fbType": "1Sep", + "comment": "TRO 326 (1Sep)" + }, + "TRO327": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO327" + }, + "TRO328": { + "fbType": "Vario", + "comment": "TRO 328 (Vario)" + }, + "TRO329": { + "fbType": "1Sep", + "comment": "TRO 329 (1Sep)" + }, + "TRO330": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO330" + }, + "TRO331": { + "fbType": "Vario", + "comment": "TRO 331 (Vario)" + }, + "TRO332": { + "fbType": "1Sep", + "comment": "TRO 332 (1Sep)" + }, + "TRO333": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO333" + }, + "TRO334": { + "fbType": "Vario", + "comment": "TRO 334 (Vario)" + }, + "TRO335": { + "fbType": "1Sep", + "comment": "TRO 335 (1Sep)" + }, + "TRO336": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO336" + }, + "TRO337": { + "fbType": "Vario", + "comment": "TRO 337 (Vario)" + }, + "TRO338": { + "fbType": "1Sep", + "comment": "TRO 338 (1Sep)" + }, + "TRO339": { + "fbType": "1Sep1Swi", + "comment": "TRO 339 (1Sep1Switch)+Scanner(BX3120)" + }, + "TRO340": { + "fbType": "1Sep1Swi", + "comment": "TRO 340 (1Sep1Switch)+Scanner(BX3121)" + }, + "TRO341": { + "fbType": "1Sep1Swi", + "comment": "TRO 341 (1Sep1Switch)+Scanner(BX3126)" + }, + "TRO342": { + "fbType": "1Sep1Swi", + "comment": "TRO 342 (1Sep1Switch)+Scanner(BX3127)" + }, + "TRO343": { + "fbType": "1Sep1Swi", + "comment": "TRO 343 (1Sep1Switch)+Scanner(BX3129)" + }, + "TRO344": { + "fbType": "1Sep1Swi", + "comment": "TRO 344 (1Sep1Switch)+Scanner(BX3128)" + }, + "TRO345": { + "fbType": "1Sep", + "comment": "TRO 345 (1Sep)" + }, + "TRO346": { + "fbType": "Vario", + "comment": "TRO 346 (Vario)" + }, + "TRO347": { + "fbType": "1Sep", + "comment": "TRO 347 (1Sep)" + }, + "TRO348": { + "fbType": "1Sep", + "comment": "TRO 348 (1Sep)" + }, + "TRO349": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO349" + }, + "TRO350": { + "fbType": "Vario", + "comment": "TRO 350 (Vario)" + }, + "TRO351": { + "fbType": "1Sep", + "comment": "TRO 351 (1Sep)" + }, + "TRO352": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO352" + }, + "TRO353": { + "fbType": "Vario", + "comment": "TRO 353 (Vario)" + }, + "TRO354": { + "fbType": "1Sep", + "comment": "TRO 354 (1Sep)" + }, + "TRO355": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO355" + }, + "TRO356": { + "fbType": "Vario", + "comment": "TRO 356 (Vario)" + }, + "TRO357": { + "fbType": "1Sep", + "comment": "TRO 357 (1Sep)" + }, + "TRO358": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO358" + }, + "TRO359": { + "fbType": "Vario", + "comment": "TRO 359 (Vario)" + }, + "TRO360": { + "fbType": "1Sep", + "comment": "TRO 360 (1Sep)" + }, + "TRO361": { + "fbType": "1Sep1Swi", + "comment": "TRO 361 (1Sep1Switch)+Scanner(BX3131)" + }, + "TRO362": { + "fbType": "1Sep1Swi", + "comment": "TRO 362 (1Sep1Switch)+Scanner(BX3132)" + }, + "TRO363": { + "fbType": "1Sep1Swi", + "comment": "TRO 363 (1Sep1Switch)+Scanner(BX3137)" + }, + "TRO364": { + "fbType": "1Sep1Swi", + "comment": "TRO 364 (1Sep1Switch)+Scanner(BX3138)" + }, + "TRO365": { + "fbType": "1Sep1Swi", + "comment": "TRO 365 (1Sep1Switch)+Scanner(BX3140)" + }, + "TRO366": { + "fbType": "1Sep1Swi", + "comment": "TRO 366 (1Sep1Switch)+Scanner(BX3139)" + }, + "TRO367": { + "fbType": "1Sep", + "comment": "TRO 367 (1Sep)" + }, + "TRO368": { + "fbType": "Vario", + "comment": "TRO 368 (Vario, from Lvl1)" + }, + "TRO369": { + "fbType": "1Sep", + "comment": "TRO 369 (1Sep)" + }, + "TRO370": { + "fbType": "1Sep", + "comment": "TRO 370 (1Sep)" + }, + "TRO371": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO371" + }, + "TRO372": { + "fbType": "Vario", + "comment": "TRO 372 (Vario)" + }, + "TRO373": { + "fbType": "1Sep", + "comment": "TRO 373 (1Sep)" + }, + "TRO374": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO374" + }, + "TRO375": { + "fbType": "Vario", + "comment": "TRO 375 (Vario)" + }, + "TRO376": { + "fbType": "1Sep", + "comment": "TRO 376 (1Sep)" + }, + "TRO377": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO377" + }, + "TRO378": { + "fbType": "Vario", + "comment": "TRO 378 (Vario)" + }, + "TRO379": { + "fbType": "1Sep", + "comment": "TRO 379 (1Sep)" + }, + "TRO380": { + "fbType": "PinStore_Auto", + "comment": "Aufruf: TRO380" + }, + "TRO381": { + "fbType": "Vario", + "comment": "TRO 381 (Vario)" + }, + "TRO382": { + "fbType": "1Sep", + "comment": "TRO 382 (1Sep)" + }, + "TRO386": { + "fbType": "1Sep", + "comment": "TRO 386 (1Sep) - kam später dazu" + } + }, + "connections": [ + { + "from": "TRO318", + "to": "TRO330", + "jamArea": "JA2101_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2101\".stJam2101_1" + }, + { + "from": "TRO332", + "to": "TRO330", + "jamArea": "JA2101_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2101\".stJam2101_1" + }, + { + "from": "TRO330", + "to": "TRO327", + "jamArea": "JA2101_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea2101\".stJam2101_2" + }, + { + "from": "TRO329", + "to": "TRO327", + "jamArea": "JA2101_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2101\".stJam2101_2" + }, + { + "from": "TRO315", + "to": "TRO317", + "jamArea": "JA2102_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2102\".stJam2102_1" + }, + { + "from": "TRO317", + "to": "TRO318", + "jamArea": "JA2102_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2102\".stJam2102_2" + }, + { + "from": "TRO318", + "to": "TRO333", + "jamArea": "JA2102_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2102\".stJam2102_3" + }, + { + "from": "TRO335", + "to": "TRO333", + "jamArea": "JA2102_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2102\".stJam2102_3" + }, + { + "from": "TRO333", + "to": "TRO336", + "jamArea": "JA2102_4", + "kind": "bypass", + "dbRef": "\"DB_JamArea2102\".stJam2102_4" + }, + { + "from": "TRO338", + "to": "TRO336", + "jamArea": "JA2102_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2102\".stJam2102_4" + }, + { + "from": "TRO327", + "to": "TRO319", + "jamArea": "JA2103_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2103\".stJam2103_1" + }, + { + "from": "TRO330", + "to": "TRO320", + "jamArea": "JA2103_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2103\".stJam2103_2" + }, + { + "from": "TRO319", + "to": "TRO320", + "jamArea": "JA2103_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea2103\".stJam2103_2" + }, + { + "from": "TRO336", + "to": "TRO321", + "jamArea": "JA2104_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_1" + }, + { + "from": "TRO333", + "to": "TRO322", + "jamArea": "JA2104_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_2" + }, + { + "from": "TRO321", + "to": "TRO322", + "jamArea": "JA2104_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_2" + }, + { + "from": "TRO320", + "to": "TRO323", + "jamArea": "JA2104_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea2104\".stJam2104_3" + }, + { + "from": "TRO322", + "to": "TRO323", + "jamArea": "JA2104_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_3" + }, + { + "from": "TRO323", + "to": "TRO326", + "jamArea": "JA2104_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_4" + }, + { + "from": "TRO325", + "to": "TRO326", + "jamArea": "JA2104_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2104\".stJam2104_4" + }, + { + "from": "TRO319", + "to": "TRO328", + "jamArea": "JA2105_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2105\".stJam2105_1" + }, + { + "from": "TRO328", + "to": "TRO329", + "jamArea": "JA2105_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2105\".stJam2105_2" + }, + { + "from": "TRO320", + "to": "TRO331", + "jamArea": "JA2106_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2106\".stJam2106_1" + }, + { + "from": "TRO331", + "to": "TRO332", + "jamArea": "JA2106_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2106\".stJam2106_2" + }, + { + "from": "TRO322", + "to": "TRO334", + "jamArea": "JA2107_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2107\".stJam2107_1" + }, + { + "from": "TRO334", + "to": "TRO335", + "jamArea": "JA2107_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2107\".stJam2107_2" + }, + { + "from": "TRO321", + "to": "TRO337", + "jamArea": "JA2108_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2108\".stJam2108_1" + }, + { + "from": "TRO337", + "to": "TRO338", + "jamArea": "JA2108_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2108\".stJam2108_2" + }, + { + "from": "TRO324", + "to": "TRO325", + "jamArea": "JA2109_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2109\".stJam2109_2" + }, + { + "from": "TRO386", + "to": "TRO310", + "jamArea": "JA2110_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2110\".stJam2110_1" + }, + { + "from": "TRO310", + "to": "TRO313", + "jamArea": "JA2110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2110\".stJam2110_2" + }, + { + "from": "TRO311", + "to": "TRO313", + "jamArea": "JA2110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2110\".stJam2110_2" + }, + { + "from": "TRO312", + "to": "TRO313", + "jamArea": "JA2110_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2110\".stJam2110_2" + }, + { + "from": "TRO313", + "to": "TRO314", + "jamArea": "JA2110_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea2110\".stJam2110_3" + }, + { + "from": "TRO314", + "to": "TRO315", + "jamArea": "JA2110_4", + "kind": "dir2", + "dbRef": "\"DB_JamArea2110\".stJam2110_4" + }, + { + "from": "TRO309", + "to": "TRO386", + "jamArea": "JA2110_5", + "kind": "normal", + "dbRef": "\"DB_JamArea2110\".stJam2110_5" + }, + { + "from": "TRO308", + "to": "TRO309", + "jamArea": "JA2111_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2111\".stJam2111_2" + }, + { + "from": "TRO313", + "to": "TRO316", + "jamArea": "JA2112_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2112\".stJam2112_1" + }, + { + "from": "TRO340", + "to": "TRO352", + "jamArea": "JA2201_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2201\".stJam2201_1" + }, + { + "from": "TRO354", + "to": "TRO352", + "jamArea": "JA2201_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2201\".stJam2201_1" + }, + { + "from": "TRO352", + "to": "TRO349", + "jamArea": "JA2201_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea2201\".stJam2201_2" + }, + { + "from": "TRO351", + "to": "TRO349", + "jamArea": "JA2201_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2201\".stJam2201_2" + }, + { + "from": "TRO314", + "to": "TRO339", + "jamArea": "JA2202_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2202\".stJam2202_1" + }, + { + "from": "TRO339", + "to": "TRO340", + "jamArea": "JA2202_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2202\".stJam2202_2" + }, + { + "from": "TRO340", + "to": "TRO355", + "jamArea": "JA2202_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2202\".stJam2202_3" + }, + { + "from": "TRO357", + "to": "TRO355", + "jamArea": "JA2202_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2202\".stJam2202_3" + }, + { + "from": "TRO355", + "to": "TRO358", + "jamArea": "JA2202_4", + "kind": "bypass", + "dbRef": "\"DB_JamArea2202\".stJam2202_4" + }, + { + "from": "TRO360", + "to": "TRO358", + "jamArea": "JA2202_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2202\".stJam2202_4" + }, + { + "from": "TRO349", + "to": "TRO341", + "jamArea": "JA2203_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2203\".stJam2203_1" + }, + { + "from": "TRO352", + "to": "TRO342", + "jamArea": "JA2203_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2203\".stJam2203_2" + }, + { + "from": "TRO341", + "to": "TRO342", + "jamArea": "JA2203_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea2203\".stJam2203_2" + }, + { + "from": "TRO358", + "to": "TRO343", + "jamArea": "JA2204_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_1" + }, + { + "from": "TRO355", + "to": "TRO344", + "jamArea": "JA2204_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_2" + }, + { + "from": "TRO343", + "to": "TRO344", + "jamArea": "JA2204_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_2" + }, + { + "from": "TRO342", + "to": "TRO345", + "jamArea": "JA2204_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea2204\".stJam2204_3" + }, + { + "from": "TRO344", + "to": "TRO345", + "jamArea": "JA2204_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_3" + }, + { + "from": "TRO345", + "to": "TRO348", + "jamArea": "JA2204_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_4" + }, + { + "from": "TRO347", + "to": "TRO348", + "jamArea": "JA2204_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2204\".stJam2204_4" + }, + { + "from": "TRO341", + "to": "TRO350", + "jamArea": "JA2205_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2205\".stJam2205_1" + }, + { + "from": "TRO350", + "to": "TRO351", + "jamArea": "JA2205_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2205\".stJam2205_2" + }, + { + "from": "TRO342", + "to": "TRO353", + "jamArea": "JA2206_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2206\".stJam2206_1" + }, + { + "from": "TRO353", + "to": "TRO354", + "jamArea": "JA2206_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2206\".stJam2206_2" + }, + { + "from": "TRO344", + "to": "TRO356", + "jamArea": "JA2207_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2207\".stJam2207_1" + }, + { + "from": "TRO356", + "to": "TRO357", + "jamArea": "JA2207_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2207\".stJam2207_2" + }, + { + "from": "TRO343", + "to": "TRO359", + "jamArea": "JA2208_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2208\".stJam2208_1" + }, + { + "from": "TRO359", + "to": "TRO360", + "jamArea": "JA2208_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2208\".stJam2208_2" + }, + { + "from": "TRO346", + "to": "TRO347", + "jamArea": "JA2209_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2209\".stJam2209_2" + }, + { + "from": "TRO371", + "to": "TRO363", + "jamArea": "JA2301_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2301\".stJam2301_1" + }, + { + "from": "TRO374", + "to": "TRO364", + "jamArea": "JA2301_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2301\".stJam2301_2" + }, + { + "from": "TRO363", + "to": "TRO364", + "jamArea": "JA2301_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2301\".stJam2301_2" + }, + { + "from": "TRO380", + "to": "TRO365", + "jamArea": "JA2302_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2302\".stJam2302_1" + }, + { + "from": "TRO377", + "to": "TRO366", + "jamArea": "JA2302_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2302\".stJam2302_2" + }, + { + "from": "TRO365", + "to": "TRO366", + "jamArea": "JA2302_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea2302\".stJam2302_2" + }, + { + "from": "TRO364", + "to": "TRO367", + "jamArea": "JA2302_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2302\".stJam2302_3" + }, + { + "from": "TRO366", + "to": "TRO367", + "jamArea": "JA2302_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea2302\".stJam2302_3" + }, + { + "from": "TRO367", + "to": "TRO370", + "jamArea": "JA2302_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2302\".stJam2302_4" + }, + { + "from": "TRO369", + "to": "TRO370", + "jamArea": "JA2302_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2302\".stJam2302_4" + }, + { + "from": "TRO362", + "to": "TRO374", + "jamArea": "JA2303_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2303\".stJam2303_1" + }, + { + "from": "TRO376", + "to": "TRO374", + "jamArea": "JA2303_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2303\".stJam2303_1" + }, + { + "from": "TRO374", + "to": "TRO371", + "jamArea": "JA2303_2", + "kind": "bypass", + "dbRef": "\"DB_JamArea2303\".stJam2303_2" + }, + { + "from": "TRO373", + "to": "TRO371", + "jamArea": "JA2303_2", + "kind": "normal", + "dbRef": "\"DB_JamArea2303\".stJam2303_2" + }, + { + "from": "TRO316", + "to": "TRO361", + "jamArea": "JA2304_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2304\".stJam2304_1" + }, + { + "from": "TRO361", + "to": "TRO362", + "jamArea": "JA2304_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea2304\".stJam2304_2" + }, + { + "from": "TRO362", + "to": "TRO377", + "jamArea": "JA2304_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea2304\".stJam2304_3" + }, + { + "from": "TRO379", + "to": "TRO377", + "jamArea": "JA2304_3", + "kind": "normal", + "dbRef": "\"DB_JamArea2304\".stJam2304_3" + }, + { + "from": "TRO377", + "to": "TRO380", + "jamArea": "JA2304_4", + "kind": "bypass", + "dbRef": "\"DB_JamArea2304\".stJam2304_4" + }, + { + "from": "TRO382", + "to": "TRO380", + "jamArea": "JA2304_4", + "kind": "normal", + "dbRef": "\"DB_JamArea2304\".stJam2304_4" + }, + { + "from": "TRO363", + "to": "TRO372", + "jamArea": "JA2305_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2305\".stJam2305_1" + }, + { + "from": "TRO372", + "to": "TRO373", + "jamArea": "JA2305_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2305\".stJam2305_2" + }, + { + "from": "TRO364", + "to": "TRO375", + "jamArea": "JA2306_1", + "kind": "dir2", + "dbRef": "\"DB_JamArea2306\".stJam2306_1" + }, + { + "from": "TRO375", + "to": "TRO376", + "jamArea": "JA2306_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2306\".stJam2306_2" + }, + { + "from": "TRO366", + "to": "TRO378", + "jamArea": "JA2307_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2307\".stJam2307_1" + }, + { + "from": "TRO378", + "to": "TRO379", + "jamArea": "JA2307_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2307\".stJam2307_2" + }, + { + "from": "TRO365", + "to": "TRO381", + "jamArea": "JA2308_1", + "kind": "normal", + "dbRef": "\"DB_JamArea2308\".stJam2308_1" + }, + { + "from": "TRO381", + "to": "TRO382", + "jamArea": "JA2308_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2308\".stJam2308_2" + }, + { + "from": "TRO368", + "to": "TRO369", + "jamArea": "JA2309_2", + "kind": "finger", + "dbRef": "\"DB_JamArea2309\".stJam2309_2" + }, + { + "from": "TRO300", + "to": "TRO302", + "jamArea": "JA4101_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4101\".stJam4101_1" + }, + { + "from": "TRO301", + "to": "TRO302", + "jamArea": "JA4101_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4101\".stJam4101_1" + }, + { + "from": "TRO302", + "to": "TRO311", + "jamArea": "JA4101_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4101\".stJam4101_2" + }, + { + "from": "TRO303", + "to": "TRO305", + "jamArea": "JA4201_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4201\".stJam4201_1" + }, + { + "from": "TRO304", + "to": "TRO305", + "jamArea": "JA4201_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4201\".stJam4201_1" + }, + { + "from": "TRO305", + "to": "TRO312", + "jamArea": "JA4201_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4201\".stJam4201_2" + } + ], + "externals": [ + { + "node": "TRO336", + "direction": "out", + "jamArea": "JA2102_5", + "dbRef": "\"DB_JamArea2102\".stJam2102_5" + }, + { + "node": "TRO324", + "direction": "in", + "jamArea": "JA2109_1", + "dbRef": "\"DB_JamArea2109\".stJam2109_1" + }, + { + "node": "TRO308", + "direction": "in", + "jamArea": "JA2111_1", + "dbRef": "\"DB_JamArea2111\".stJam2111_1" + }, + { + "node": "TRO358", + "direction": "out", + "jamArea": "JA2202_5", + "dbRef": "\"DB_JamArea2202\".stJam2202_5" + }, + { + "node": "TRO346", + "direction": "in", + "jamArea": "JA2209_1", + "dbRef": "\"DB_JamArea2209\".stJam2209_1" + }, + { + "node": "TRO368", + "direction": "in", + "jamArea": "JA2309_1", + "dbRef": "\"DB_JamArea2309\".stJam2309_1" + }, + { + "node": "TRO300", + "direction": "in", + "jamArea": "JA4102_1", + "dbRef": "\"DB_JamArea4102\".stJam4102_1" + }, + { + "node": "TRO301", + "direction": "in", + "jamArea": "JA4102_2", + "dbRef": "\"DB_JamArea4102\".stJam4102_2" + }, + { + "node": "TRO303", + "direction": "in", + "jamArea": "JA4202_1", + "dbRef": "\"DB_JamArea4202\".stJam4202_1" + }, + { + "node": "TRO304", + "direction": "in", + "jamArea": "JA4202_2", + "dbRef": "\"DB_JamArea4202\".stJam4202_2" + }, + { + "node": "TRO306", + "direction": "in", + "jamArea": "JA4301_1", + "dbRef": "\"DB_JamArea4301\".stJam4301_1" + }, + { + "node": "TRO307", + "direction": "in", + "jamArea": "JA4401_1", + "dbRef": "\"DB_JamArea4401\".stJam4401_1" + }, + { + "node": "TRO327", + "direction": "in", + "jamArea": "Storage2.1.1", + "dbRef": "Storage2.1.1" + }, + { + "node": "TRO330", + "direction": "in", + "jamArea": "Storage2.1.2", + "dbRef": "Storage2.1.2" + }, + { + "node": "TRO333", + "direction": "in", + "jamArea": "Storage2.1.3", + "dbRef": "Storage2.1.3" + }, + { + "node": "TRO336", + "direction": "in", + "jamArea": "Storage2.1.4", + "dbRef": "Storage2.1.4" + }, + { + "node": "TRO349", + "direction": "in", + "jamArea": "Storage2.2.1", + "dbRef": "Storage2.2.1" + }, + { + "node": "TRO352", + "direction": "in", + "jamArea": "Storage2.2.2", + "dbRef": "Storage2.2.2" + }, + { + "node": "TRO355", + "direction": "in", + "jamArea": "Storage2.2.3", + "dbRef": "Storage2.2.3" + }, + { + "node": "TRO358", + "direction": "in", + "jamArea": "Storage2.2.4", + "dbRef": "Storage2.2.4" + }, + { + "node": "TRO371", + "direction": "in", + "jamArea": "Storage2.3.1", + "dbRef": "Storage2.3.1" + }, + { + "node": "TRO374", + "direction": "in", + "jamArea": "Storage2.3.2", + "dbRef": "Storage2.3.2" + }, + { + "node": "TRO377", + "direction": "in", + "jamArea": "Storage2.3.3", + "dbRef": "Storage2.3.3" + }, + { + "node": "TRO380", + "direction": "in", + "jamArea": "Storage2.3.4", + "dbRef": "Storage2.3.4" + }, + { + "node": "TRO326", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCARRIER_INFO", + "dbRef": "IO_Device_UH03_TO_UH01.stCARRIER_INFO" + }, + { + "node": "TRO348", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCARRIER_INFO_1", + "dbRef": "IO_Device_UH03_TO_UH01.stCARRIER_INFO_1" + }, + { + "node": "TRO370", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCARRIER_INFO_2", + "dbRef": "IO_Device_UH03_TO_UH01.stCARRIER_INFO_2" + }, + { + "node": "TRO317", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCarrierL2toL1", + "dbRef": "IO_Device_UH03_TO_UH01.stCarrierL2toL1" + }, + { + "node": "TRO339", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCarrierL2toL1_2", + "dbRef": "IO_Device_UH03_TO_UH01.stCarrierL2toL1_2" + }, + { + "node": "TRO361", + "direction": "out", + "jamArea": "IO_Device_UH03_TO_UH01.stCarrierL2toL1_3", + "dbRef": "IO_Device_UH03_TO_UH01.stCarrierL2toL1_3" + } + ] + }, + "UH04": { + "nodes": { + "TRO400": { + "fbType": "Vario", + "comment": "TRO 400 (Vario)" + }, + "TRO401": { + "fbType": "Vario", + "comment": "TRO 401 (Vario)" + }, + "TRO402": { + "fbType": "1Sep", + "comment": "TRO 402 (1Sep) (Vor Brandschutztor)" + }, + "TRO403": { + "fbType": "Vario", + "comment": "TRO 403 (Vario)" + }, + "TRO404": { + "fbType": "1Sep", + "comment": "TRO 404 (1Sep)" + }, + "TRO405": { + "fbType": "1Sep1Swi", + "comment": "TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle" + }, + "TRO406": { + "fbType": "1Sep", + "comment": "TRO 406 (1Sep) + Scanner (BX4101)" + }, + "TRO407": { + "fbType": "1Sep1Swi", + "comment": "TRO 407 (1Sep1Switch) + Scanner (BX4102)" + }, + "TRO408": { + "fbType": "Vario", + "comment": "TRO 408 (Vario)" + }, + "TRO409": { + "fbType": "1Sep", + "comment": "TRO 409 (1Sep)" + }, + "TRO410": { + "fbType": "1Sep1Swi", + "comment": "TRO 410 (1Sep1Switch) + Scanner (BX4104)" + }, + "TRO411": { + "fbType": "Vario", + "comment": "TRO 411 (Vario)" + }, + "TRO412": { + "fbType": "1Sep", + "comment": "TRO 412 (1Sep)" + }, + "TRO413": { + "fbType": "1Sep1Swi", + "comment": "TRO 413(1Sep1Switch)+Scanner(BX4106)" + }, + "TRO414": { + "fbType": "Vario", + "comment": "TRO 414 (Vario)" + }, + "TRO415": { + "fbType": "1Sep", + "comment": "TRO 415 (1Sep)" + }, + "TRO416": { + "fbType": "1Sep", + "comment": "TRO 416 (1Sep) + Beladeprüfung" + }, + "TRO417": { + "fbType": "1Sep", + "comment": "TRO 417 (1Sep)" + }, + "TRO418": { + "fbType": "Vario", + "comment": "TRO 418 (Vario)" + }, + "TRO420": { + "fbType": "Vario", + "comment": "TRO 420 (Vario)" + }, + "TRO421": { + "fbType": "Vario_workStation", + "comment": "TRO 421 (Vario)" + }, + "TRO422": { + "fbType": "Vario_workStation", + "comment": "TRO 422 (Vario)" + }, + "TRO423": { + "fbType": "Vario_workStation", + "comment": "TRO 423 (Vario)" + }, + "TRO424": { + "fbType": "1Sep", + "comment": "TRO 424 (1Sep) vor Behangskontrolle" + } + }, + "connections": [ + { + "from": "TRO400", + "to": "TRO401", + "jamArea": "JA4001_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4001\".stJam4001_1" + }, + { + "from": "TRO401", + "to": "TRO402", + "jamArea": "JA4001_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4001\".stJam4001_2" + }, + { + "from": "TRO402", + "to": "TRO403", + "jamArea": "JA4002_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4002\".stJam4002_1" + }, + { + "from": "TRO403", + "to": "TRO404", + "jamArea": "JA4002_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4002\".stJam4002_2" + }, + { + "from": "TRO424", + "to": "TRO405", + "jamArea": "JA4003_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_1" + }, + { + "from": "TRO405", + "to": "TRO406", + "jamArea": "JA4003_2", + "kind": "dir2", + "dbRef": "\"DB_JamArea4003\".stJam4003_2" + }, + { + "from": "TRO406", + "to": "TRO407", + "jamArea": "JA4003_3", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_3" + }, + { + "from": "TRO407", + "to": "TRO410", + "jamArea": "JA4003_4", + "kind": "dir2", + "dbRef": "\"DB_JamArea4003\".stJam4003_4" + }, + { + "from": "TRO409", + "to": "TRO410", + "jamArea": "JA4003_4", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_4" + }, + { + "from": "TRO410", + "to": "TRO413", + "jamArea": "JA4003_5", + "kind": "dir2", + "dbRef": "\"DB_JamArea4003\".stJam4003_5" + }, + { + "from": "TRO412", + "to": "TRO413", + "jamArea": "JA4003_5", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_5" + }, + { + "from": "TRO413", + "to": "TRO416", + "jamArea": "JA4003_6", + "kind": "dir2", + "dbRef": "\"DB_JamArea4003\".stJam4003_6" + }, + { + "from": "TRO415", + "to": "TRO416", + "jamArea": "JA4003_6", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_6" + }, + { + "from": "TRO416", + "to": "TRO417", + "jamArea": "JA4003_7", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_7" + }, + { + "from": "TRO404", + "to": "TRO424", + "jamArea": "JA4003_8", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_8" + }, + { + "from": "TRO417", + "to": "TRO424", + "jamArea": "JA4003_8", + "kind": "normal", + "dbRef": "\"DB_JamArea4003\".stJam4003_8" + }, + { + "from": "TRO407", + "to": "TRO408", + "jamArea": "JA4004_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4004\".stJam4004_1" + }, + { + "from": "TRO408", + "to": "TRO421", + "jamArea": "JA4004_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4004\".stJam4004_2" + }, + { + "from": "TRO410", + "to": "TRO411", + "jamArea": "JA4006_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4006\".stJam4006_1" + }, + { + "from": "TRO411", + "to": "TRO422", + "jamArea": "JA4006_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4006\".stJam4006_2" + }, + { + "from": "TRO422", + "to": "TRO412", + "jamArea": "JA4007_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4007\".stJam4007_1" + }, + { + "from": "TRO413", + "to": "TRO414", + "jamArea": "JA4008_1", + "kind": "normal", + "dbRef": "\"DB_JamArea4008\".stJam4008_1" + }, + { + "from": "TRO414", + "to": "TRO423", + "jamArea": "JA4008_2", + "kind": "finger", + "dbRef": "\"DB_JamArea4008\".stJam4008_2" + }, + { + "from": "TRO423", + "to": "TRO415", + "jamArea": "JA4009_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4009\".stJam4009_1" + }, + { + "from": "TRO418", + "to": "TRO420", + "jamArea": "JA4011_1", + "kind": "finger", + "dbRef": "\"DB_JamArea4011\".stJam4011_1" + } + ], + "externals": [ + { + "node": "TRO400", + "direction": "in", + "jamArea": "JA4000_1", + "dbRef": "\"DB_JamArea4000\".stJam4000_1" + }, + { + "node": "TRO421", + "direction": "out", + "jamArea": "JA4005_1", + "dbRef": "\"DB_JamArea4005\".stJam4005_1" + }, + { + "node": "TRO418", + "direction": "in", + "jamArea": "JA4010_1", + "dbRef": "\"DB_JamArea4010\".stJam4010_1" + } + ] + }, + "UH05": { + "nodes": { + "TRO500": { + "fbType": "Vario", + "comment": "TRO 500 (Vario) - Stand: Vorbereitet für Umbau!" + }, + "TRO501": { + "fbType": "1Sep", + "comment": "TRO 501 (1Sep) + Scanner (BX5101)" + }, + "TRO502": { + "fbType": "Vario", + "comment": "TRO 502 (Vario) - Stand: Vorbereitet für Umbau!" + }, + "TRO503": { + "fbType": "1Sep", + "comment": "TRO 503 (1Sep)+ Scanner (BX5100)" + }, + "TRO504": { + "fbType": "1Sep", + "comment": "TRO 504 (1Sep)" + }, + "TRO505": { + "fbType": "1Sep1Swi", + "comment": "TRO 505 (1Sep1Switch) + Scanner (BX5102)" + }, + "TRO506": { + "fbType": "Vario", + "comment": "TRO 506 (Vario)" + }, + "TRO507": { + "fbType": "1Sep", + "comment": "TRO 507 (1Sep)" + }, + "TRO508": { + "fbType": "Vario", + "comment": "TRO 508 (Vario)+Scanner(BX5103)" + }, + "TRO509": { + "fbType": "1Sep", + "comment": "TRO 509 (1Sep)" + }, + "TRO510": { + "fbType": "1Sep1Swi", + "comment": "TRO 510 (1Sep1Switch) + Scanner (BX5104)" + }, + "TRO511": { + "fbType": "1Sep", + "comment": "TRO 511 (1Sep)" + }, + "TRO512": { + "fbType": "Vario", + "comment": "TRO 512 (Vario)+Scanner(BX5105)" + }, + "TRO513": { + "fbType": "1Sep", + "comment": "TRO 513 (1Sep)" + }, + "TRO514": { + "fbType": "1Sep1Swi", + "comment": "TRO 514 (1Sep1Switch) + Scanner (BX5106)" + }, + "TRO515": { + "fbType": "1Sep", + "comment": "TRO 515 (1Sep)" + }, + "TRO516": { + "fbType": "Vario", + "comment": "TRO 516(Vario)+Scanner(BX5107)" + }, + "TRO517": { + "fbType": "1Sep", + "comment": "TRO 517 (1Sep)" + }, + "TRO518": { + "fbType": "1Sep1Swi", + "comment": "TRO 518 (1Sep1Switch) + Scanner (BX5108)" + }, + "TRO519": { + "fbType": "1Sep", + "comment": "TRO 519 (1Sep)" + }, + "TRO520": { + "fbType": "Vario", + "comment": "TRO 520 (Vario)+Scanner(BX5109)" + }, + "TRO521": { + "fbType": "1Sep", + "comment": "TRO 521(1Sep)" + }, + "TRO522": { + "fbType": "1Sep1Swi", + "comment": "TRO 522 (1Sep1Switch) + Scanner (BX5110)" + }, + "TRO523": { + "fbType": "1Sep", + "comment": "TRO 523 (1Sep)" + }, + "TRO524": { + "fbType": "Vario", + "comment": "TRO 524 (Vario)+Scanner(BX5231)" + }, + "TRO525": { + "fbType": "1Sep", + "comment": "TRO 525(1Sep)" + }, + "TRO526": { + "fbType": "1Sep", + "comment": "TRO 526 (1Sep) + Scanner (BX5112)" + }, + "TRO527": { + "fbType": "1Sep1Swi", + "comment": "TRO 527 (1Sep1Switch)" + }, + "TRO528": { + "fbType": "1Sep", + "comment": "TRO 528 (1Sep)" + }, + "TRO529": { + "fbType": "1Sep", + "comment": "TRO 529 (1Sep) + Scanner (BX5113)" + }, + "TRO530": { + "fbType": "Vario", + "comment": "TRO 530 (Vario)" + }, + "TRO531": { + "fbType": "Vario", + "comment": "TRO 531 (Vario)" + } + }, + "connections": [ + { + "from": "TRO502", + "to": "TRO531", + "jamArea": "JA5000_2", + "kind": "finger", + "dbRef": "\"DB_JamArea5000\".stJam5000_2" + }, + { + "from": "TRO531", + "to": "TRO503", + "jamArea": "JA5000_3", + "kind": "finger", + "dbRef": "\"DB_JamArea5000\".stJam5000_3" + }, + { + "from": "TRO500", + "to": "TRO530", + "jamArea": "JA5001_2", + "kind": "finger", + "dbRef": "\"DB_JamArea5001\".stJam5001_2" + }, + { + "from": "TRO530", + "to": "TRO501", + "jamArea": "JA5001_3", + "kind": "finger", + "dbRef": "\"DB_JamArea5001\".stJam5001_3" + }, + { + "from": "TRO501", + "to": "TRO504", + "jamArea": "JA5002_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_1" + }, + { + "from": "TRO503", + "to": "TRO504", + "jamArea": "JA5002_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_1" + }, + { + "from": "TRO529", + "to": "TRO504", + "jamArea": "JA5002_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_1" + }, + { + "from": "TRO528", + "to": "TRO529", + "jamArea": "JA5002_10", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_10" + }, + { + "from": "TRO504", + "to": "TRO505", + "jamArea": "JA5002_2", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_2" + }, + { + "from": "TRO505", + "to": "TRO510", + "jamArea": "JA5002_3", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_3" + }, + { + "from": "TRO509", + "to": "TRO510", + "jamArea": "JA5002_3", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_3" + }, + { + "from": "TRO510", + "to": "TRO514", + "jamArea": "JA5002_4", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_4" + }, + { + "from": "TRO513", + "to": "TRO514", + "jamArea": "JA5002_4", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_4" + }, + { + "from": "TRO514", + "to": "TRO518", + "jamArea": "JA5002_5", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_5" + }, + { + "from": "TRO517", + "to": "TRO518", + "jamArea": "JA5002_5", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_5" + }, + { + "from": "TRO518", + "to": "TRO522", + "jamArea": "JA5002_6", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_6" + }, + { + "from": "TRO521", + "to": "TRO522", + "jamArea": "JA5002_6", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_6" + }, + { + "from": "TRO522", + "to": "TRO526", + "jamArea": "JA5002_7", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_7" + }, + { + "from": "TRO525", + "to": "TRO526", + "jamArea": "JA5002_7", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_7" + }, + { + "from": "TRO526", + "to": "TRO527", + "jamArea": "JA5002_8", + "kind": "normal", + "dbRef": "\"DB_JamArea5002\".stJam5002_8" + }, + { + "from": "TRO527", + "to": "TRO528", + "jamArea": "JA5002_9", + "kind": "dir2", + "dbRef": "\"DB_JamArea5002\".stJam5002_9" + }, + { + "from": "TRO505", + "to": "TRO506", + "jamArea": "JA5003_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5003\".stJam5003_1" + }, + { + "from": "TRO506", + "to": "TRO507", + "jamArea": "JA5003_2", + "kind": "finger", + "dbRef": "\"DB_JamArea5003\".stJam5003_2" + }, + { + "from": "TRO507", + "to": "TRO508", + "jamArea": "JA5004_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5004\".stJam5004_1" + }, + { + "from": "TRO510", + "to": "TRO511", + "jamArea": "JA5005_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5005\".stJam5005_1" + }, + { + "from": "TRO511", + "to": "TRO512", + "jamArea": "JA5005_2", + "kind": "normal", + "dbRef": "\"DB_JamArea5005\".stJam5005_2" + }, + { + "from": "TRO514", + "to": "TRO515", + "jamArea": "JA5006_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5006\".stJam5006_1" + }, + { + "from": "TRO515", + "to": "TRO516", + "jamArea": "JA5006_2", + "kind": "normal", + "dbRef": "\"DB_JamArea5006\".stJam5006_2" + }, + { + "from": "TRO518", + "to": "TRO519", + "jamArea": "JA5007_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5007\".stJam5007_1" + }, + { + "from": "TRO519", + "to": "TRO520", + "jamArea": "JA5007_2", + "kind": "normal", + "dbRef": "\"DB_JamArea5007\".stJam5007_2" + }, + { + "from": "TRO522", + "to": "TRO523", + "jamArea": "JA5008_1", + "kind": "normal", + "dbRef": "\"DB_JamArea5008\".stJam5008_1" + }, + { + "from": "TRO523", + "to": "TRO524", + "jamArea": "JA5008_2", + "kind": "normal", + "dbRef": "\"DB_JamArea5008\".stJam5008_2" + } + ], + "externals": [ + { + "node": "TRO502", + "direction": "in", + "jamArea": "JA5000_1", + "dbRef": "\"DB_JamArea5000\".stJam5000_1" + }, + { + "node": "TRO500", + "direction": "in", + "jamArea": "JA5001_1", + "dbRef": "\"DB_JamArea5001\".stJam5001_1" + }, + { + "node": "TRO508", + "direction": "out", + "jamArea": "JA5004_2", + "dbRef": "\"DB_JamArea5004\".stJam5004_2" + }, + { + "node": "TRO512", + "direction": "out", + "jamArea": "JA5005_3", + "dbRef": "\"DB_JamArea5005\".stJam5005_3" + }, + { + "node": "TRO516", + "direction": "out", + "jamArea": "JA5006_3", + "dbRef": "\"DB_JamArea5006\".stJam5006_3" + }, + { + "node": "TRO520", + "direction": "out", + "jamArea": "JA5007_3", + "dbRef": "\"DB_JamArea5007\".stJam5007_3" + }, + { + "node": "TRO524", + "direction": "out", + "jamArea": "JA5008_3", + "dbRef": "\"DB_JamArea5008\".stJam5008_3" + } + ] + } + } +} diff --git a/lib/create_dxf.py b/lib/create_dxf.py new file mode 100644 index 0000000..77d3533 --- /dev/null +++ b/lib/create_dxf.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*- +"""create_dxf.py — erzeugt eine DXF-Uebersicht aller TROs mit ihren Sensoren. + +Quelle sind die vom Skeleton-Generator erzeugten results/skeleton_UH0x.json +(Sensor-Positionen aus der Positions-JSON, Einheiten mit IO-Zuordnung). + +Je TRO-Einheit wird ein Block "TRO_BOX" (Rechteck + eingerahmter Name) +am Schwerpunkt seiner Sensoren eingefuegt; die TRO-Namen entsprechen der +Nummerierung des SCL-Grundgeruests (create_skel.py). Jeder Sensor wird als +Block "SENSOR" (Kreis + Name) an seiner x/y-Position eingefuegt und per +Linie mit seinem TRO verbunden. + +Block-Attribute (fuer Identifikation im CAD, teils unsichtbar): + TRO_BOX: NAME, FBTYPE (sichtbar) — UNIT, PLC, AREAS, SENSORS, IO (unsichtbar) + SENSOR: NAME (sichtbar) — ROLE, TRO, PLC (unsichtbar) + +Pfade ueber Umgebungsvariablen aus bin\\setenv.bat: + PV_RESULTS Eingabe (skeleton_UH0x.json) und Ausgabe (DXF) + +Mit --colors werden die TRO-Kaesten zusaetzlich nach FB-Typ eingefaerbt +(SOLID-Fuellung auf Layer TRO_FUELL, gleiche Palette wie im Topologie- +Graphen doc/TRO_Graph_UH01-UH05.dot); ohne den Schalter bleiben die +Kaesten ungefuellt. + +Aufruf: bin\\create_dxf.bat [--uh 1..5] [--out DATEI.dxf] [--colors] +""" + +import argparse +import json +import os +import sys +from pathlib import Path + +try: + import ezdxf + from ezdxf.enums import TextEntityAlignment +except ImportError: + sys.exit("ezdxf fehlt — bitte bin\\install_py.bat ausfuehren.") + +# ============================================================================ +# GLOBALE DEFINITIONEN (Geometrie in mm, Layer, Farben) +# ============================================================================ + +OUT_NAME = "ST500592_TROs.dxf" + +BOX_W = 2500 # TRO-Kasten Breite +BOX_H = 1200 # TRO-Kasten Hoehe +BOX_TEXT_H = 380 # Texthoehe TRO-Name +BOX_SUB_H = 220 # Texthoehe FB-Typ +SEN_RADIUS = 120 # Sensor-Kreisradius +SEN_TEXT_H = 150 # Texthoehe Sensorname +ATTR_MAXLEN = 250 # DXF-Attributwerte kuerzen + +LAYERS = { + "TRO": 7, # Kaesten (Farbe je PLC am Insert) + "TRO_FUELL": 7, # Kasten-Fuellung (Truecolor je FB-Typ) + "SENSOR": 8, # Sensoren mit TRO-Zuordnung + "SENSOR_FREI": 9, # Sensoren ohne Einheit (nur Position) + "VERBINDUNG": 253, # Linien Sensor -> TRO +} + +#: ACI-Farbe je Steuerung +PLC_COLOR = {1: 1, 2: 2, 3: 3, 4: 4, 5: 6} # rot, gelb, gruen, cyan, magenta + +#: Fuellfarbe je FB-Typ (Truecolor) — gleiche Palette wie im +#: Topologie-Graphen doc/TRO_Graph_UH01-UH05.dot +TYPE_COLOR = { + "FB_ILS_MTRO_1Sep": 0xD4E8FF, # hellblau + "FB_ILS_MTRO_1Sep_SSCC": 0xFFD4D4, # rot + "FB_ILS_MTRO_1Sep1Swi": 0xFFE4A0, # gelb (Weiche) + "FB_ILS_MTRO_1Sep2Swi": 0xFFC060, # orange (Weiche) + "FB_ILS_MTRO_2Sep1Swi": 0xFFE4A0, # gelb (Weiche) + "FB_ILS_MTRO_Vario": 0xE8D4F0, # violett + "FB_ILS_MTRO_Vario_workStation": 0xC0F0F0, # tuerkis + "FB_ILS_MTRO_PinStore_Auto": 0xD4F0D4, # gruen (Lager) + "FB_EmptyCarrBuffer": 0xD4F0D4, # gruen (Puffer) + "FB_Conveyor": 0xF0F0F0, # grau +} +TYPE_COLOR_DEFAULT = 0xF0F0F0 # grau (Sonstige/UNBEKANNT) + + +def type_color(fbtype): + for key in sorted(TYPE_COLOR, key=len, reverse=True): + if fbtype.startswith(key): + return TYPE_COLOR[key] + return TYPE_COLOR_DEFAULT + +# ============================================================================ + + +def project_paths(): + root = Path(os.environ.get("PROJECT", Path(__file__).resolve().parent.parent)) + results = Path(os.environ.get("PV_RESULTS", root / "results")) + return results + + +def build_blocks(doc): + """Blockdefinitionen TRO_BOX und SENSOR anlegen.""" + tro = doc.blocks.new(name="TRO_BOX") + w2, h2 = BOX_W / 2, BOX_H / 2 + tro.add_lwpolyline([(-w2, -h2), (w2, -h2), (w2, h2), (-w2, h2)], + close=True) + att = tro.add_attdef("NAME", height=BOX_TEXT_H) + att.set_placement((0, BOX_H * 0.12), align=TextEntityAlignment.MIDDLE_CENTER) + att = tro.add_attdef("FBTYPE", height=BOX_SUB_H) + att.set_placement((0, -BOX_H * 0.28), align=TextEntityAlignment.MIDDLE_CENTER) + for tag in ("UNIT", "PLC", "AREAS", "SENSORS", "IO"): + att = tro.add_attdef(tag, height=BOX_SUB_H) + att.set_placement((0, 0), align=TextEntityAlignment.MIDDLE_CENTER) + att.dxf.invisible = 1 + + sen = doc.blocks.new(name="SENSOR") + sen.add_circle((0, 0), SEN_RADIUS) + att = sen.add_attdef("NAME", height=SEN_TEXT_H) + att.set_placement((SEN_RADIUS * 1.4, SEN_RADIUS * 1.2), + align=TextEntityAlignment.BOTTOM_LEFT) + for tag in ("ROLE", "TRO", "PLC"): + att = sen.add_attdef(tag, height=SEN_TEXT_H) + att.set_placement((0, 0), align=TextEntityAlignment.MIDDLE_CENTER) + att.dxf.invisible = 1 + + +def instance_names(skel, uh_digit): + """TRO-Instanznamen je Einheit — identische Nummerierung wie + render_scl() in create_skel.py (Conveyor verbraucht eine lfd. Nummer).""" + names = {} + seq = 0 + for u in skel["units"]: + if u["fbType"] == "UNBEKANNT": + names[u["unit"]] = u["unit"] # kein TRO-Name vergeben + continue + seq += 1 + if u["fbType"] == "FB_Conveyor": + names[u["unit"]] = f"fbConveyor{u['unit'][1:]}" + else: + names[u["unit"]] = f"TRO{uh_digit}{seq:02d}" + return names + + +def cut(s): + return s if len(s) <= ATTR_MAXLEN else s[:ATTR_MAXLEN - 3] + "..." + + +def draw_plc(msp, skel, n, colors=False): + """Alle Einheiten + Sensoren einer Steuerung zeichnen.""" + uh = f"UH0{n}" + color = PLC_COLOR[n] + names = instance_names(skel, str(n)) + + # Sensoren je Einheit sammeln (nur mit Position) + unit_sensors = {} + free_sensors = [] + for s in skel["sensors"]: + if not s.get("pos"): + continue + if s.get("unit"): + unit_sensors.setdefault(s["unit"], []).append(s) + else: + free_sensors.append(s) + + boxes = lines = 0 + for u in skel["units"]: + sens = unit_sensors.get(u["unit"], []) + if sens: # Schwerpunkt der Sensoren + cx = sum(s["pos"][0] for s in sens) / len(sens) + cy = sum(s["pos"][1] for s in sens) / len(sens) + elif u.get("pos"): + cx, cy = u["pos"][0], u["pos"][1] + else: + print(f" {uh} {u['unit']}: keine Position — uebersprungen") + continue + + io_txt = ";".join(f"{role}={','.join(v)}" + for role, v in sorted(u["io"].items())) + if colors: + # Fuellung in FB-Typ-Farbe (vor dem Insert -> liegt dahinter) + w2, h2 = BOX_W / 2, BOX_H / 2 + msp.add_solid( + [(cx - w2, cy - h2), (cx + w2, cy - h2), + (cx - w2, cy + h2), (cx + w2, cy + h2)], + dxfattribs={"layer": "TRO_FUELL", + "true_color": type_color(u["fbType"])}) + blk = msp.add_blockref("TRO_BOX", (cx, cy), + dxfattribs={"layer": "TRO", "color": color}) + blk.add_auto_attribs({ + "NAME": names[u["unit"]], + "FBTYPE": u["fbType"].replace("FB_ILS_MTRO_", "").replace("FB_", ""), + "UNIT": u["unit"], + "PLC": uh, + "AREAS": cut(",".join(a["id"] for a in u["areas"])), + "SENSORS": cut(",".join(s["id"] for s in sens)), + "IO": cut(io_txt), + }) + boxes += 1 + + for s in sens: + sx, sy = s["pos"][0], s["pos"][1] + sb = msp.add_blockref("SENSOR", (sx, sy), + dxfattribs={"layer": "SENSOR", + "color": color}) + sb.add_auto_attribs({ + "NAME": s["id"], + "ROLE": s.get("role") or "", + "TRO": names[u["unit"]], + "PLC": uh, + }) + msp.add_line((sx, sy), (cx, cy), + dxfattribs={"layer": "VERBINDUNG"}) + lines += 1 + + for s in free_sensors: + sb = msp.add_blockref("SENSOR", (s["pos"][0], s["pos"][1]), + dxfattribs={"layer": "SENSOR_FREI"}) + sb.add_auto_attribs({ + "NAME": s["id"], + "ROLE": s.get("role") or "", + "TRO": "", + "PLC": uh, + }) + + print(f" {uh}: {boxes} TRO-Kaesten, {lines} Sensor-Verbindungen, " + f"{len(free_sensors)} freie Sensoren") + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--uh", type=int, choices=range(1, 6), + help="nur diese Steuerung (1..5), sonst alle") + ap.add_argument("--out", default=OUT_NAME, + help=f"Ausgabedatei (Default: {OUT_NAME})") + ap.add_argument("--colors", action="store_true", + help="TRO-Kaesten nach FB-Typ einfaerben " + "(Palette wie doc/TRO_Graph_UH01-UH05.dot)") + args = ap.parse_args() + + results = project_paths() + doc = ezdxf.new("R2010", setup=True) + doc.header["$INSUNITS"] = 4 # Millimeter + for name, aci in LAYERS.items(): + doc.layers.add(name, color=aci) + build_blocks(doc) + msp = doc.modelspace() + + print("Erzeuge DXF aus Skeleton-Dateien:") + for n in ([args.uh] if args.uh else range(1, 6)): + skel_file = results / f"skeleton_UH0{n}.json" + if not skel_file.exists(): + sys.exit(f"FEHLER: {skel_file} fehlt — zuerst bin\\create_skel.bat " + f"ausfuehren.") + skel = json.loads(skel_file.read_text(encoding="utf-8")) + draw_plc(msp, skel, n, colors=args.colors) + + out = results / args.out + doc.saveas(out) + print(f"DXF geschrieben: {out}") + + +if __name__ == "__main__": + main()