Skelett wird aus einzelnen Blöcken in der skel_scl.cfg aufgebaut

This commit is contained in:
2026-07-07 09:56:38 +02:00
parent 0c6ac1ea67
commit 4cc439bd86
8 changed files with 8828 additions and 25 deletions
+146
View File
@@ -0,0 +1,146 @@
{
"files": {
"tia_xlsx": "ST500592_10_5-14_ILS-{n}_TIA.xlsx",
"positions_json": "ST500592_10_5-9_ILS_positions.json",
"connect_json": "connect.json",
"connect_ini": "connect.ini"
},
"verw_roles": {
"In sep": "sensorInSep",
"Sep": "stopperOutput",
"Jam detector": "sensorJam",
"Jam detector (LP)": "sensorJam",
"jam detector (LP)": "sensorJam",
"ES branch": "switchOutput",
"ES brunch": "switchOutput",
"conveyor full": "sensorConvFull",
"MT in Position": "sensorCarrInPos",
"MT in position": "sensorCarrInPos",
"Finger in position": "sensorFinger",
"Finger in Position": "sensorFinger",
"PIN query": "sensorPinQuery",
"Rad dreht ": "sensorWheel",
"Rad dreht": "sensorWheel"
},
"comment_roles": [
[
"^in Separator",
"sensorInSep"
],
[
"^Separator",
"stopperOutput"
],
[
"Stausensor|Staumelder",
"sensorJam"
],
[
"AE Abzweig",
"switchOutput"
],
[
"F.?rderer voll",
"sensorConvFull"
],
[
"MT in Position",
"sensorCarrInPos"
],
[
"Mitnehmerfinger|Finger in",
"sensorFinger"
],
[
"Pin Abfrage|Pr.?fung MT Pos",
"sensorPinQuery"
],
[
"Rad dreht",
"sensorWheel"
],
[
"^Motor ",
"motorOutput"
],
[
"MSS ausgel",
"motorProtection"
]
],
"fbtype_rules": [
{
"roles": [
"sensorPinQuery"
],
"fbType": "FB_ILS_MTRO_PinStore_Auto"
},
{
"roles": [
"sensorFinger"
],
"fbType": "FB_ILS_MTRO_Vario"
},
{
"roles": [
"sensorCarrInPos"
],
"fbType": "FB_ILS_MTRO_Vario"
},
{
"roles": [
"switchOutput",
"sensorInSep"
],
"fbType": "FB_ILS_MTRO_1Sep1Swi"
},
{
"roles": [
"sensorInSep"
],
"fbType": "FB_ILS_MTRO_1Sep"
},
{
"roles": [
"motorOutput"
],
"fbType": "FB_Conveyor"
},
{
"roles": [
"motorProtection"
],
"fbType": "FB_Conveyor"
}
],
"unit_re": "\\b(KR|CV)[-\\s]{0,2}(P?[MK]\\d{4}(?:_[A-Z])?)\\b",
"area_res": [
[
"Block ?(\\d\\.\\d(?:\\.\\d)?)",
"pinStoreBlock",
"Block {m}"
],
[
"\\bLS ?(\\d)\\b",
"loadingStation",
"LS{m}"
],
[
"\\bWS ?(\\d\\.\\d)\\b",
"workStation",
"WS{m}"
],
[
"\\bUZ(\\d{4})\\b",
"safetyZone",
"UZ{m}"
]
],
"fbtype_template": {
"FB_ILS_MTRO_1Sep": "call_1sep",
"FB_ILS_MTRO_1Sep1Swi": "call_1sep1swi",
"FB_ILS_MTRO_Vario": "call_vario",
"FB_ILS_MTRO_PinStore_Auto": "call_1sep",
"FB_Conveyor": "call_conveyor"
}
}
+142
View File
@@ -0,0 +1,142 @@
; ================================================================
; skel_scl.cfg — SCL-Templates fuer create_skel.py (INI-Style)
;
; Jede [sektion] ist ein Template; der Inhalt wird VERBATIM
; uebernommen (Einrueckung und Leerzeilen gehoeren zum Template,
; auch Leerzeilen am Blockende!). Zeilen, die mit ';' beginnen,
; sind Kommentare und werden ueberall ignoriert.
; Platzhalter im str.format()-Stil: {inst}, {tro_no}, {stopper} ...
; geschweifte Klammern im SCL selbst als {{ }} doppeln.
; ================================================================
; --------------------------------------------------------------
[var_decl]
{inst} : "{fbtype}"; // {comment}
; --------------------------------------------------------------
[call_1sep]
REGION {inst} ({shorttype}) — {comment}
#{inst}.stInSeparator1.Settings.nSeparatorNo := "cSep{tro_no}.1";
#{inst}.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#{inst}.stInSeparator1.Settings.tTrailingTime := T#500ms; // TODO Timing
#{inst}.stInSeparator1.Settings.tHandlingTime := T#200ms; // TODO Timing
#{inst}.stInSeparator1.Settings.tJam := "TimeForSepJam";
#{inst}.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cIn{sen_in_sep}"];
#{inst}.stInSenJam2 := "DB_Inputs".Sensors["cIn{sen_jam}"];
#{inst}.stInPriorityManager.xReleaseOk := TRUE; // TODO Priority
#{inst}(nInMainTroNo := "cMainTro{tro_no}",
xInSftyOk := TRUE, // TODO Safety
xInAllRdyToStart := TRUE,
xInCarouselRun := TRUE, // TODO Conveyor
xInRelease := TRUE, // TODO Release
stInOutMachineState := #stInOutControlUnit, // TODO ControlUnit
arInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.arCarrier, // TODO Topologie
stInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.stData,
arInOutJamExit2 := "DB_JamArea{tro_no}".stJam{tro_no}_2.arCarrier, // TODO Topologie
stInOutJamExit2 := "DB_JamArea{tro_no}".stJam{tro_no}_2.stData,
xOutStopper1 => "{stopper}",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro{tro_no}"],
stInOutHMI := "DB_Interface_HMI".stTRO.{inst});
END_REGION
; --------------------------------------------------------------
[call_1sep1swi]
REGION {inst} ({shorttype}) — {comment}
#{inst}.stInSeparator1.Settings.nSeparatorNo := "cSep{tro_no}.1";
#{inst}.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#{inst}.stInSeparator1.Settings.tTrailingTime := T#100ms; // TODO Timing
#{inst}.stInSeparator1.Settings.tHandlingTime := T#50ms; // TODO Timing
#{inst}.stInSeparator1.Settings.tJam := "TimeForSepJam";
#{inst}.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cIn{sen_in_sep}"];
#{inst}.stInSenJam2 := "DB_Inputs".Sensors["cIn{sen_jam}"];
#{inst}.stInSwitch1.Settings.nSwitchNo := "cSwi{tro_no}.1";
#{inst}(nInMainTroNo := "cMainTro{tro_no}",
xInSftyOk := TRUE, // TODO Safety
xInAllRdyToStart := TRUE,
xInCarouselRun1 := TRUE, // TODO Conveyor
xInRelease := TRUE, // TODO Release
stInOutMachineState := #stInOutControlUnit, // TODO ControlUnit
arInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.arCarrier, // TODO Topologie
stInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.stData,
arInOutJamExit2 := "DB_JamArea{tro_no}".stJam{tro_no}_2.arCarrier, // TODO Topologie (Dir1)
stInOutJamExit2 := "DB_JamArea{tro_no}".stJam{tro_no}_2.stData,
arInOutJamExit3 := "DB_JamArea{tro_no}".stJam{tro_no}_3.arCarrier, // TODO Topologie (Dir2)
stInOutJamExit3 := "DB_JamArea{tro_no}".stJam{tro_no}_3.stData,
xOutStopper1 => "{stopper}",
xOutSw1ExTo3 => "{switch_out}",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro{tro_no}"],
stInOutHMI := "DB_Interface_HMI".stTRO.{inst});
END_REGION
; --------------------------------------------------------------
[call_vario]
REGION {inst} ({shorttype}) — {comment}
#{inst}.stInSeparator1.Settings.nSeparatorNo := "cSep{tro_no}.1";
#{inst}.stInSeparator1.Settings.tDelayToNextItem := "TimeForSepWaiting_Short";
#{inst}.stInSeparator1.stSenInSep := "DB_Inputs".Sensors["cIn{sen_in_sep}"];
#{inst}.stInVario.stSenCarrInPos := "DB_Inputs".Sensors["cIn{sen_carr_in_pos}"];
#{inst}.stInVario.stSenFinger := "DB_Inputs".Sensors["cIn{sen_finger}"];
#{inst}.stInVario.stSenJam := "DB_Inputs".Sensors["cIn{sen_jam}"];
#{inst}(nInMainTroNo := "cMainTro{tro_no}",
xInSftyOk := TRUE, // TODO Safety
xInAllRdyToStart := TRUE,
xInRelease := TRUE, // TODO Release
stInOutMachineState := #stInOutControlUnit, // TODO ControlUnit
arInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.arCarrier, // TODO Topologie
stInOutJamEntr1 := "DB_JamArea{tro_no}".stJam{tro_no}_1.stData,
arInOutJamFinger := "DB_JamArea{tro_no}".stJam{tro_no}_2.arCarrier, // TODO Topologie
xOutStopper => "{stopper}",
xOutVarioMotor => "{motor}",
nOutStateLast => "DB_GLOB_TroState".arTroState["cMainTro{tro_no}"],
stInOutHMI := "DB_Interface_HMI".stTRO.{inst});
END_REGION
; --------------------------------------------------------------
[call_conveyor]
REGION {inst} — {comment}
#{inst}.Settings.tEnergySafeTime := "cTimeEnergySafe";
#{inst}.Settings.xGridActive := FALSE; // TODO Grid
#{inst}.Settings.sMotorProtectName := '{motor_protection}';
#{inst}(xInEnabled := TRUE, // TODO Enable
xInMotorProtection := "{motor_protection}",
xInPowerContactor := "{motor}",
stInOutHMI := "DB_Interface_HMI".stConveyors.{inst});
END_REGION
; --------------------------------------------------------------
[call_sensor]
// {comment}
#fbSensorInput(stInSensorHW := "{bmk}",
nInSensorNo := "cIn{bmk}",
stInOutSensor := "DB_Inputs".Sensors["cIn{bmk}"]);
; --------------------------------------------------------------
[fb_main_frame]
FUNCTION_BLOCK "FB_Main_skel_{uh}"
{{ S7_Optimized_Access := 'TRUE' }}
VERSION : 0.1
// ============================================================
// AUTOMATISCH GENERIERTES GRUNDGERUEST — create_skel.py
// Quelle: E/A-Listen {uh} (data/)
// TODO-Marken kennzeichnen manuell zu ergaenzende Stellen
// (Timings, Topologie/JamAreas, Safety, Release, Priority).
// ============================================================
VAR
{var_block} END_VAR
BEGIN
{call_block}END_FUNCTION_BLOCK
; --------------------------------------------------------------
[fb_sensors_frame]
FUNCTION_BLOCK "FB_CallSensors_skel_{uh}"
{{ S7_Optimized_Access := 'TRUE' }}
VERSION : 0.1
// AUTOMATISCH GENERIERT — create_skel.py ({count} Sensoren)
VAR
fbSensorInput : "FB_SensorInput";
END_VAR
BEGIN
{call_block}END_FUNCTION_BLOCK
+1
View File
@@ -1,2 +1,3 @@
# Python-Abhaengigkeiten HundM_Fortna
openpyxl>=3.1
ezdxf>=1.3
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+740 -4
View File
@@ -11,7 +11,10 @@
"constants": 203,
"units": 14,
"areas": 4,
"unassignedSignals": 47
"unassignedSignals": 47,
"troNodes": 24,
"connections": 25,
"externals": 3
},
"sensors": [
{
@@ -2270,8 +2273,741 @@
"SF0476"
],
"todo": [
"connections[] (Topologie) manuell ergaenzen oder aus SCL extrahieren",
"Timings, Priority, Release, customCode manuell pflegen",
"TRO-IDs den Einheiten zuweisen (Schema TRO<UH><lfd>)"
"topology[] aus connect-Daten uebernommen — TRO-IDs den Einheiten (units[]) noch zuordnen",
"Timings, Priority, Release, customCode manuell pflegen"
],
"topology": {
"format": "hmf-connect-v1",
"tros": [
{
"id": "TRO400",
"fbType": "Vario",
"comment": "TRO 400 (Vario)",
"entries": [
{
"jamArea": "JA4000_1",
"dbRef": "\"DB_JamArea4000\".stJam4000_1",
"from": "EXTERN",
"kind": "extern"
}
],
"exits": [
{
"jamArea": "JA4001_1",
"dbRef": "\"DB_JamArea4001\".stJam4001_1",
"to": "TRO401",
"kind": "finger"
}
]
},
{
"id": "TRO401",
"fbType": "Vario",
"comment": "TRO 401 (Vario)",
"entries": [
{
"jamArea": "JA4001_1",
"dbRef": "\"DB_JamArea4001\".stJam4001_1",
"from": "TRO400",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4001_2",
"dbRef": "\"DB_JamArea4001\".stJam4001_2",
"to": "TRO402",
"kind": "finger"
}
]
},
{
"id": "TRO402",
"fbType": "1Sep",
"comment": "TRO 402 (1Sep) (Vor Brandschutztor)",
"entries": [
{
"jamArea": "JA4001_2",
"dbRef": "\"DB_JamArea4001\".stJam4001_2",
"from": "TRO401",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4002_1",
"dbRef": "\"DB_JamArea4002\".stJam4002_1",
"to": "TRO403",
"kind": "normal"
}
]
},
{
"id": "TRO403",
"fbType": "Vario",
"comment": "TRO 403 (Vario)",
"entries": [
{
"jamArea": "JA4002_1",
"dbRef": "\"DB_JamArea4002\".stJam4002_1",
"from": "TRO402",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4002_2",
"dbRef": "\"DB_JamArea4002\".stJam4002_2",
"to": "TRO404",
"kind": "finger"
}
]
},
{
"id": "TRO404",
"fbType": "1Sep",
"comment": "TRO 404 (1Sep)",
"entries": [
{
"jamArea": "JA4002_2",
"dbRef": "\"DB_JamArea4002\".stJam4002_2",
"from": "TRO403",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4003_8",
"dbRef": "\"DB_JamArea4003\".stJam4003_8",
"to": "TRO424",
"kind": "normal"
}
]
},
{
"id": "TRO405",
"fbType": "1Sep1Swi",
"comment": "TRO 405 (1Sep1Switch) + Scanner (BX4100) + Behangskontrolle",
"entries": [
{
"jamArea": "JA4003_1",
"dbRef": "\"DB_JamArea4003\".stJam4003_1",
"from": "TRO424",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_2",
"dbRef": "\"DB_JamArea4003\".stJam4003_2",
"to": "TRO406",
"kind": "dir2"
}
]
},
{
"id": "TRO406",
"fbType": "1Sep",
"comment": "TRO 406 (1Sep) + Scanner (BX4101)",
"entries": [
{
"jamArea": "JA4003_2",
"dbRef": "\"DB_JamArea4003\".stJam4003_2",
"from": "TRO405",
"kind": "dir2"
}
],
"exits": [
{
"jamArea": "JA4003_3",
"dbRef": "\"DB_JamArea4003\".stJam4003_3",
"to": "TRO407",
"kind": "normal"
}
]
},
{
"id": "TRO407",
"fbType": "1Sep1Swi",
"comment": "TRO 407 (1Sep1Switch) + Scanner (BX4102)",
"entries": [
{
"jamArea": "JA4003_3",
"dbRef": "\"DB_JamArea4003\".stJam4003_3",
"from": "TRO406",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_4",
"dbRef": "\"DB_JamArea4003\".stJam4003_4",
"to": "TRO410",
"kind": "dir2"
},
{
"jamArea": "JA4004_1",
"dbRef": "\"DB_JamArea4004\".stJam4004_1",
"to": "TRO408",
"kind": "normal"
}
]
},
{
"id": "TRO408",
"fbType": "Vario",
"comment": "TRO 408 (Vario)",
"entries": [
{
"jamArea": "JA4004_1",
"dbRef": "\"DB_JamArea4004\".stJam4004_1",
"from": "TRO407",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4004_2",
"dbRef": "\"DB_JamArea4004\".stJam4004_2",
"to": "TRO421",
"kind": "finger"
}
]
},
{
"id": "TRO409",
"fbType": "1Sep",
"comment": "TRO 409 (1Sep)",
"entries": [],
"exits": [
{
"jamArea": "JA4003_4",
"dbRef": "\"DB_JamArea4003\".stJam4003_4",
"to": "TRO410",
"kind": "normal"
}
]
},
{
"id": "TRO410",
"fbType": "1Sep1Swi",
"comment": "TRO 410 (1Sep1Switch) + Scanner (BX4104)",
"entries": [
{
"jamArea": "JA4003_4",
"dbRef": "\"DB_JamArea4003\".stJam4003_4",
"from": "TRO407",
"kind": "dir2"
},
{
"jamArea": "JA4003_4",
"dbRef": "\"DB_JamArea4003\".stJam4003_4",
"from": "TRO409",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_5",
"dbRef": "\"DB_JamArea4003\".stJam4003_5",
"to": "TRO413",
"kind": "dir2"
},
{
"jamArea": "JA4006_1",
"dbRef": "\"DB_JamArea4006\".stJam4006_1",
"to": "TRO411",
"kind": "normal"
}
]
},
{
"id": "TRO411",
"fbType": "Vario",
"comment": "TRO 411 (Vario)",
"entries": [
{
"jamArea": "JA4006_1",
"dbRef": "\"DB_JamArea4006\".stJam4006_1",
"from": "TRO410",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4006_2",
"dbRef": "\"DB_JamArea4006\".stJam4006_2",
"to": "TRO422",
"kind": "finger"
}
]
},
{
"id": "TRO412",
"fbType": "1Sep",
"comment": "TRO 412 (1Sep)",
"entries": [
{
"jamArea": "JA4007_1",
"dbRef": "\"DB_JamArea4007\".stJam4007_1",
"from": "TRO422",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4003_5",
"dbRef": "\"DB_JamArea4003\".stJam4003_5",
"to": "TRO413",
"kind": "normal"
}
]
},
{
"id": "TRO413",
"fbType": "1Sep1Swi",
"comment": "TRO 413(1Sep1Switch)+Scanner(BX4106)",
"entries": [
{
"jamArea": "JA4003_5",
"dbRef": "\"DB_JamArea4003\".stJam4003_5",
"from": "TRO410",
"kind": "dir2"
},
{
"jamArea": "JA4003_5",
"dbRef": "\"DB_JamArea4003\".stJam4003_5",
"from": "TRO412",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_6",
"dbRef": "\"DB_JamArea4003\".stJam4003_6",
"to": "TRO416",
"kind": "dir2"
},
{
"jamArea": "JA4008_1",
"dbRef": "\"DB_JamArea4008\".stJam4008_1",
"to": "TRO414",
"kind": "normal"
}
]
},
{
"id": "TRO414",
"fbType": "Vario",
"comment": "TRO 414 (Vario)",
"entries": [
{
"jamArea": "JA4008_1",
"dbRef": "\"DB_JamArea4008\".stJam4008_1",
"from": "TRO413",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4008_2",
"dbRef": "\"DB_JamArea4008\".stJam4008_2",
"to": "TRO423",
"kind": "finger"
}
]
},
{
"id": "TRO415",
"fbType": "1Sep",
"comment": "TRO 415 (1Sep)",
"entries": [
{
"jamArea": "JA4009_1",
"dbRef": "\"DB_JamArea4009\".stJam4009_1",
"from": "TRO423",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4003_6",
"dbRef": "\"DB_JamArea4003\".stJam4003_6",
"to": "TRO416",
"kind": "normal"
}
]
},
{
"id": "TRO416",
"fbType": "1Sep",
"comment": "TRO 416 (1Sep) + Beladeprüfung",
"entries": [
{
"jamArea": "JA4003_6",
"dbRef": "\"DB_JamArea4003\".stJam4003_6",
"from": "TRO413",
"kind": "dir2"
},
{
"jamArea": "JA4003_6",
"dbRef": "\"DB_JamArea4003\".stJam4003_6",
"from": "TRO415",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_7",
"dbRef": "\"DB_JamArea4003\".stJam4003_7",
"to": "TRO417",
"kind": "normal"
}
]
},
{
"id": "TRO417",
"fbType": "1Sep",
"comment": "TRO 417 (1Sep)",
"entries": [
{
"jamArea": "JA4003_7",
"dbRef": "\"DB_JamArea4003\".stJam4003_7",
"from": "TRO416",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_8",
"dbRef": "\"DB_JamArea4003\".stJam4003_8",
"to": "TRO424",
"kind": "normal"
}
]
},
{
"id": "TRO418",
"fbType": "Vario",
"comment": "TRO 418 (Vario)",
"entries": [
{
"jamArea": "JA4010_1",
"dbRef": "\"DB_JamArea4010\".stJam4010_1",
"from": "EXTERN",
"kind": "extern"
}
],
"exits": [
{
"jamArea": "JA4011_1",
"dbRef": "\"DB_JamArea4011\".stJam4011_1",
"to": "TRO420",
"kind": "finger"
}
]
},
{
"id": "TRO420",
"fbType": "Vario",
"comment": "TRO 420 (Vario)",
"entries": [
{
"jamArea": "JA4011_1",
"dbRef": "\"DB_JamArea4011\".stJam4011_1",
"from": "TRO418",
"kind": "finger"
}
],
"exits": []
},
{
"id": "TRO421",
"fbType": "Vario_workStation",
"comment": "TRO 421 (Vario)",
"entries": [
{
"jamArea": "JA4004_2",
"dbRef": "\"DB_JamArea4004\".stJam4004_2",
"from": "TRO408",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4005_1",
"dbRef": "\"DB_JamArea4005\".stJam4005_1",
"to": "EXTERN",
"kind": "extern"
}
]
},
{
"id": "TRO422",
"fbType": "Vario_workStation",
"comment": "TRO 422 (Vario)",
"entries": [
{
"jamArea": "JA4006_2",
"dbRef": "\"DB_JamArea4006\".stJam4006_2",
"from": "TRO411",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4007_1",
"dbRef": "\"DB_JamArea4007\".stJam4007_1",
"to": "TRO412",
"kind": "finger"
}
]
},
{
"id": "TRO423",
"fbType": "Vario_workStation",
"comment": "TRO 423 (Vario)",
"entries": [
{
"jamArea": "JA4008_2",
"dbRef": "\"DB_JamArea4008\".stJam4008_2",
"from": "TRO414",
"kind": "finger"
}
],
"exits": [
{
"jamArea": "JA4009_1",
"dbRef": "\"DB_JamArea4009\".stJam4009_1",
"to": "TRO415",
"kind": "finger"
}
]
},
{
"id": "TRO424",
"fbType": "1Sep",
"comment": "TRO 424 (1Sep) vor Behangskontrolle",
"entries": [
{
"jamArea": "JA4003_8",
"dbRef": "\"DB_JamArea4003\".stJam4003_8",
"from": "TRO404",
"kind": "normal"
},
{
"jamArea": "JA4003_8",
"dbRef": "\"DB_JamArea4003\".stJam4003_8",
"from": "TRO417",
"kind": "normal"
}
],
"exits": [
{
"jamArea": "JA4003_1",
"dbRef": "\"DB_JamArea4003\".stJam4003_1",
"to": "TRO405",
"kind": "normal"
}
]
}
],
"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"
}
]
}
}
File diff suppressed because it is too large Load Diff