Merge branch 'main' of http://gitea.schoenenberger.de/mistangl/kabellaengen
This commit is contained in:
+8
-5
@@ -7,6 +7,7 @@ for %%i in ("%~1") do (
|
||||
set "DIR=%%~dpi"
|
||||
)
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
REM call C:\10-Develop\gitrepos\kabellaengen\bin\setenv.bat
|
||||
|
||||
REM echo Dateiname ohne Erweiterung: %FILENAME%
|
||||
REM echo Erweiterung: %EXT%
|
||||
@@ -24,15 +25,18 @@ if exist "%~dp0_setenv.bat" (
|
||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||
call "%~dp0_setenv.bat"
|
||||
)
|
||||
REM Zielverzeichnis
|
||||
set TARGET_DIR=%PROJECT_BOM_RESULTS%\%FILENAME%
|
||||
mkdir "%TARGET_DIR%"
|
||||
|
||||
echo on
|
||||
echo.
|
||||
echo === Fetching Positions ===
|
||||
call getpositions.bat --filename %1 -s -r -w %JSON_POS% -e %ERROR_DOUBLE%
|
||||
if exist "%PROJECT_WORK%\%ERROR_DOUBLE%" (
|
||||
@echo -failed- duplicate IDs in given layout
|
||||
@echo -failed- errors found, e.g. duplicate IDs in given layout
|
||||
pause
|
||||
move %PROJECT_WORK%\%ERROR_DOUBLE% %PROJECT_BOM_RESULTS%
|
||||
move %PROJECT_WORK%\%ERROR_DOUBLE% %TARGET_DIR%
|
||||
move %PROJECT_WORK%\%JSON_TODRAW% %TARGET_DIR%
|
||||
goto :eof
|
||||
)
|
||||
if not exist "%PROJECT_WORK%\%JSON_POS%" (
|
||||
@@ -58,8 +62,7 @@ if not exist "%PROJECT_WORK%\%EXCEL_RES%" (
|
||||
)
|
||||
echo.
|
||||
|
||||
mkdir %PROJECT_BOM_RESULTS%\%FILENAME%
|
||||
move %PROJECT_WORK%\%FILENAME%_* %PROJECT_BOM_RESULTS%\%FILENAME%
|
||||
move %PROJECT_WORK%\%FILENAME%_* %TARGET_DIR%
|
||||
pause
|
||||
|
||||
|
||||
|
||||
+10
-6
@@ -7,6 +7,7 @@ for %%i in ("%~1") do (
|
||||
set "DIR=%%~dpi"
|
||||
)
|
||||
call C:\kabellaengen\bin\setenv.bat
|
||||
REM call C:\10-Develop\gitrepos\kabellaengen\bin\setenv.bat
|
||||
|
||||
REM echo Dateiname ohne Erweiterung: %FILENAME%
|
||||
REM echo Erweiterung: %EXT%
|
||||
@@ -23,16 +24,20 @@ if exist "%~dp0_setenv.bat" (
|
||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||
call "%~dp0_setenv.bat"
|
||||
)
|
||||
|
||||
REM Zielverzeichnis
|
||||
set TARGET_DIR=%PROJECT_IO_RESULTS%\%FILENAME%
|
||||
mkdir "%TARGET_DIR%"
|
||||
|
||||
|
||||
echo.
|
||||
echo === Fetching Positions ===
|
||||
call getpositions.bat --filename %1 -s -r -w %JSON_POS% -e %ERROR_DOUBLE%
|
||||
if exist "%PROJECT_WORK%\%ERROR_DOUBLE%" (
|
||||
@echo == failed: duplicate IDs in given layout
|
||||
@echo == failed: errors, e.g. duplicate IDs in given layout
|
||||
pause
|
||||
move %PROJECT_WORK%\%ERROR_DOUBLE% %PROJECT_IO_RESULTS%
|
||||
move %PROJECT_WORK%\%ERROR_DOUBLE% %TARGET_DIR%
|
||||
move %PROJECT_WORK%\%JSON_TODRAW% %TARGET_DIR%
|
||||
|
||||
goto :eof
|
||||
)
|
||||
if not exist "%PROJECT_WORK%\%JSON_POS%" (
|
||||
@@ -47,9 +52,8 @@ if not exist "%PROJECT_WORK%\%RESULT_TIA%" (
|
||||
pause
|
||||
goto :eof
|
||||
)
|
||||
mkdir %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
echo move %PROJECT_WORK%\%FILENAME%-* %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
move %PROJECT_WORK%\%FILENAME%-* %PROJECT_IO_RESULTS%\%FILENAME%
|
||||
echo move %PROJECT_WORK%\%FILENAME%-* %TARGET_DIR%
|
||||
move %PROJECT_WORK%\%FILENAME%-* %TARGET_DIR%
|
||||
pause
|
||||
goto :eof
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
@echo off
|
||||
REM Test runner batch script for kabellaengen project
|
||||
REM Calls run_tests.py to execute all tests
|
||||
|
||||
call %~dp0setenv.bat
|
||||
|
||||
CALL manage_interpreter.bat activate_interpreter
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo.
|
||||
echo Failed to activate the Python interpreter!
|
||||
pause
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
python %PROJECT_LIB%\run_tests.py %*
|
||||
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo.
|
||||
echo Tests failed!
|
||||
CALL manage_interpreter.bat deactivate_interpreter
|
||||
exit /B 1
|
||||
) else (
|
||||
echo.
|
||||
echo All tests passed!
|
||||
CALL manage_interpreter.bat deactivate_interpreter
|
||||
exit /B 0
|
||||
)
|
||||
+17
-1
@@ -27,6 +27,22 @@ DQ
|
||||
QA
|
||||
|
||||
|
||||
# Muster für die Erkennung von Schaltschränken (z.B. A01+UH00, A02+UC001, A03+UC0001)
|
||||
# Patterns for the recognition of Control-Cabinets (e.g. A01+UH00, A02+UC001, A03+UC0001)
|
||||
[Cabinet-Pattern]
|
||||
A\d\d\+(UH0\d)
|
||||
A\d\d\+(UC\d\d\d)
|
||||
\+(UC\d\d\d\d)
|
||||
\+(UH\d\d)
|
||||
|
||||
# Muster für die Erkennung von Tunneln (z.B. Tunnel1, Tunnel_2, Tunnel-3)
|
||||
# Patterns for the recognition of Tunnels (e.g. Tunnel1, Tunnel_2, Tunnel-3)
|
||||
[Tunnel-Pattern]
|
||||
Tunnel\d+
|
||||
Tunnel_\d+
|
||||
Tunnel-\d+
|
||||
TUNNEL\d+
|
||||
|
||||
|
||||
# Zuordnung von Kürzeln zu Kabeltypen in kabel.cfg (ier zugewiesene Kabel-Sektion muss in kabel.cfg vorhanden sein und SIVAS-Nummern enthalten!)
|
||||
# Mapping of Equipment-Prefixes to Cable Types found in kabel.cfg (Cable-Section must be included in kabel.cfg!!)
|
||||
@@ -49,4 +65,4 @@ PF = WD_Q
|
||||
# Adjustment of Cable-Lenght's due to for example existing connection cables on sensor
|
||||
[Length-Adjustments]
|
||||
# Format: PREFIX = Length (m) to subtract
|
||||
BX = 4
|
||||
BX = 4
|
||||
|
||||
+332
-128
@@ -22,6 +22,62 @@ Dieses Programm:
|
||||
"""
|
||||
|
||||
|
||||
class ErrorCollector:
|
||||
"""Sammelt alle Fehler und Warnungen während der Verarbeitung."""
|
||||
|
||||
def __init__(self):
|
||||
self.errors = {}
|
||||
self.warnings = {}
|
||||
|
||||
def add_errors(self, error_dict):
|
||||
"""Fügt Fehler aus einem Dictionary hinzu."""
|
||||
for key, value in error_dict.items():
|
||||
if key in self.errors:
|
||||
if isinstance(self.errors[key], list) and isinstance(value, list):
|
||||
self.errors[key].extend(value)
|
||||
else:
|
||||
self.errors[key] = [self.errors[key], value]
|
||||
else:
|
||||
self.errors[key] = value
|
||||
|
||||
def add_warnings(self, warning_dict):
|
||||
"""Fügt Warnungen aus einem Dictionary hinzu."""
|
||||
for key, value in warning_dict.items():
|
||||
if key in self.warnings:
|
||||
if isinstance(self.warnings[key], list) and isinstance(value, list):
|
||||
self.warnings[key].extend(value)
|
||||
else:
|
||||
self.warnings[key] = [self.warnings[key], value]
|
||||
else:
|
||||
self.warnings[key] = value
|
||||
|
||||
def has_errors_or_warnings(self):
|
||||
"""Prüft ob Fehler oder Warnungen vorhanden sind."""
|
||||
return bool(self.errors) or bool(self.warnings)
|
||||
|
||||
def has_errors(self):
|
||||
"""Prüft ob Fehlervorhanden sind."""
|
||||
return bool(self.errors)
|
||||
|
||||
def get_all_issues(self):
|
||||
"""Gibt alle Fehler und Warnungen als Dictionary zurück."""
|
||||
result = {}
|
||||
if self.errors:
|
||||
result["errors"] = self.errors
|
||||
if self.warnings:
|
||||
result["warnings"] = self.warnings
|
||||
return result
|
||||
|
||||
def write_errorfile(self, work_dir: Path, filename: str):
|
||||
"""Schreibt Fehlerdatei nur wenn Fehler oder Warnungen vorhanden sind."""
|
||||
if self.has_errors():
|
||||
print("Fehler gefunden. Schreibe Error-Datei.")
|
||||
all_issues = self.get_all_issues()
|
||||
write_results(to_json(all_issues), work_dir, filename)
|
||||
else:
|
||||
print("Keine Fehler oder Warnungen gefunden. Keine Error-Datei geschrieben.")
|
||||
|
||||
|
||||
def write_results(jsn_results: str, out_dir: Path, filename: str) -> None:
|
||||
"""Write results to a JSON file."""
|
||||
print("writing results to a json file ...")
|
||||
@@ -48,6 +104,38 @@ def get_type_of_name_cfg(name: str) -> str:
|
||||
return "unknown"
|
||||
|
||||
|
||||
def matches_cabinet_pattern(name: str) -> [bool, str]:
|
||||
"""Check if the given name matches any Cabinet-Pattern from BMK.cfg"""
|
||||
if not config_BMK.has_section("Cabinet-Pattern"):
|
||||
return (False, "")
|
||||
|
||||
patterns = [pattern for pattern, _ in config_BMK.items("Cabinet-Pattern")]
|
||||
|
||||
for pattern in patterns:
|
||||
|
||||
m = re.search(pattern, name)
|
||||
if m:
|
||||
res = m.group(1)
|
||||
return (True, res)
|
||||
|
||||
return (False, "")
|
||||
|
||||
|
||||
def matches_tunnel_pattern(name: str) -> bool:
|
||||
"""Check if the given name matches any Tunnel-Pattern from BMK.cfg"""
|
||||
if not config_BMK.has_section("Tunnel-Pattern"):
|
||||
return False
|
||||
|
||||
patterns = [pattern for pattern, _ in config_BMK.items("Tunnel-Pattern")]
|
||||
|
||||
for pattern in patterns:
|
||||
m = re.search(pattern, name)
|
||||
if m:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def get_attributes_of_insert(d_insert: dict, d_pos: dict) -> tuple[dict, str, str]:
|
||||
"""
|
||||
Diese Funktion schaut nach den aktuell definierten Attributen in den Blöcken
|
||||
@@ -99,7 +187,7 @@ def get_attributes_of_insert(d_insert: dict, d_pos: dict) -> tuple[dict, str, st
|
||||
else:
|
||||
ld["pos"] = (pos[0], pos[1])
|
||||
|
||||
# die neueren Bläcke heissen nicht IO, sondern haben einen Namen
|
||||
# die neueren Blöcke heissen nicht IO, sondern haben einen Namen
|
||||
if "NAME" in d_insert:
|
||||
typ = get_type_of_name_cfg(d_insert["NAME"])
|
||||
id_ = d_insert["NAME"]
|
||||
@@ -193,7 +281,7 @@ class CompareBuffer:
|
||||
l.append(b)
|
||||
return l
|
||||
|
||||
def extract_input_positions(insert_iterable) -> tuple[dict, dict, dict, dict]:
|
||||
def extract_input_positions(all_inserts, all_positions, error_collector: ErrorCollector = None) -> tuple[dict, dict]:
|
||||
"""
|
||||
Extracts and organizes input positions from an iterable of inserts.
|
||||
|
||||
@@ -204,14 +292,14 @@ def extract_input_positions(insert_iterable) -> tuple[dict, dict, dict, dict]:
|
||||
attributes and duplicate IDs for further error handling.
|
||||
|
||||
Args:
|
||||
insert_iterable: An iterable of insert objects to process.
|
||||
all_inserts: List of insert objects to process.
|
||||
all_positions: List of position objects corresponding to inserts.
|
||||
error_collector: ErrorCollector instance to collect errors and warnings.
|
||||
|
||||
Returns:
|
||||
A tuple containing:
|
||||
- all_sensors: dict of sensor IDs to sensor attribute dicts
|
||||
- all_schaltschrank: dict of Schaltschrankelement IDs to their attribute dicts
|
||||
- double_ids: dict of IDs with multiple associated blocks (potential duplicates)
|
||||
- missing_attribs: dict of IDs with missing or incomplete attributes
|
||||
"""
|
||||
all_sensors = dict()
|
||||
all_cables = dict()
|
||||
@@ -219,7 +307,6 @@ def extract_input_positions(insert_iterable) -> tuple[dict, dict, dict, dict]:
|
||||
all_unknowns = list()
|
||||
|
||||
wp = CompareBuffer()
|
||||
all_inserts, all_positions = attribs_to_dicts(insert_iterable)
|
||||
|
||||
for insert, pos in zip(all_inserts, all_positions):
|
||||
ld, id_, typ = get_attributes_of_insert(insert, pos)
|
||||
@@ -244,16 +331,16 @@ def extract_input_positions(insert_iterable) -> tuple[dict, dict, dict, dict]:
|
||||
|
||||
# spezialbehandlung der Sensoren, da diese in IO und A,B,C Blöcke geteilt sind
|
||||
# Die Funktion sucht die übereinanderliegenen Elemente und baut ein Dict daraus
|
||||
allocate_blocks_together(all_sensors, wp)
|
||||
allocate_blocks_together(all_sensors, wp, error_collector)
|
||||
|
||||
set_single_frames_with_unique_sps(all_schaltschrank, wp)
|
||||
|
||||
# die noch übrigen Blöcke melden
|
||||
missing_attribs, double_ids = get_errors_double_and_attributes(wp)
|
||||
get_errors_double_and_attributes(wp, error_collector)
|
||||
|
||||
return all_sensors, all_schaltschrank, double_ids, missing_attribs
|
||||
return all_sensors, all_schaltschrank
|
||||
|
||||
def get_errors_double_and_attributes(wp: CompareBuffer) -> tuple[dict, dict]:
|
||||
def get_errors_double_and_attributes(wp: CompareBuffer, error_collector: ErrorCollector = None):
|
||||
"""
|
||||
Analyze the CompareBuffer for blocks that could not be merged or assigned.
|
||||
|
||||
@@ -261,9 +348,9 @@ def get_errors_double_and_attributes(wp: CompareBuffer) -> tuple[dict, dict]:
|
||||
- IDs with only a single associated block, which likely indicates missing or incomplete attributes.
|
||||
- IDs with multiple associated blocks, which may indicate duplicate or ambiguous entries.
|
||||
|
||||
Returns:
|
||||
missing_attribs: dict mapping IDs to a message about missing or incomplete attributes.
|
||||
double_ids: dict mapping IDs to a list of positions for blocks with duplicate IDs.
|
||||
Args:
|
||||
wp: CompareBuffer to analyze
|
||||
error_collector: ErrorCollector instance to collect errors and warnings
|
||||
"""
|
||||
missing_attribs = dict()
|
||||
double_ids = dict()
|
||||
@@ -280,7 +367,13 @@ def get_errors_double_and_attributes(wp: CompareBuffer) -> tuple[dict, dict]:
|
||||
if id_ not in double_ids:
|
||||
double_ids[id_] = []
|
||||
double_ids[id_].append(block['pos'])
|
||||
return missing_attribs, double_ids
|
||||
|
||||
# Füge Fehler und Warnungen zum ErrorCollector hinzu, falls vorhanden
|
||||
if error_collector:
|
||||
if double_ids:
|
||||
error_collector.add_errors({"double_ids": double_ids})
|
||||
if missing_attribs:
|
||||
error_collector.add_warnings({"missing_attributes": missing_attribs})
|
||||
|
||||
def set_single_frames_with_unique_sps(all_sensors: dict, wp: CompareBuffer):
|
||||
all_sensors_ids = wp.get_block_ids()
|
||||
@@ -296,7 +389,7 @@ def set_single_frames_with_unique_sps(all_sensors: dict, wp: CompareBuffer):
|
||||
all_sensors[new_id] = block_with_sps
|
||||
wp.remove_block(id_, block_with_sps)
|
||||
|
||||
def allocate_blocks_together(all_sensors: dict, wp: CompareBuffer) -> None:
|
||||
def allocate_blocks_together(all_sensors: dict, wp: CompareBuffer, error_collector: ErrorCollector = None) -> None:
|
||||
"""
|
||||
Merge sensor blocks with the same ID that are split across multiple DXF blocks.
|
||||
|
||||
@@ -321,19 +414,21 @@ def allocate_blocks_together(all_sensors: dict, wp: CompareBuffer) -> None:
|
||||
for block_without_sps in blks_other:
|
||||
# Vergleiche alle Blöcke mit SPS und denen ohne auf die gleiche Position
|
||||
if wp.positions_are_close(block_with_sps, block_without_sps, 1000):
|
||||
new_id = create_new_id(id_, block_with_sps, block_without_sps) # hier das Präfix davor
|
||||
new_id = create_new_id(id_, block_with_sps, block_without_sps, error_collector) # hier das Präfix davor
|
||||
all_sensors[new_id] = merge_two_dicts(block_without_sps, block_with_sps) #Kombiniert alle infos aus dxf und "pos"
|
||||
wp.remove_block(id_, block_with_sps)
|
||||
wp.remove_block(id_, block_without_sps)
|
||||
|
||||
def create_new_id(id_: str, dict1: dict, dict2: dict) -> str:
|
||||
def create_new_id(id_: str, dict1: dict, dict2: dict, error_collector: ErrorCollector = None) -> str:
|
||||
sps_praefix = None
|
||||
if "SPS" in dict1:
|
||||
sps_praefix = dict1["SPS"]
|
||||
if "SPS" in dict2:
|
||||
sps_praefix = dict2["SPS"]
|
||||
if not sps_praefix:
|
||||
raise Exception
|
||||
if error_collector:
|
||||
error_collector.add_errors({"missing_sps_prefix": {id_: "SPS Präfix fehlt für Block-ID"}})
|
||||
return f"{id_}@UNKNOWN" # Fallback für fehlenden SPS-Präfix
|
||||
return f"{id_}@{sps_praefix}"
|
||||
|
||||
def attribs_to_dicts(insert_iterable) -> tuple[list, list]:
|
||||
@@ -366,12 +461,6 @@ def attribs_to_dicts(insert_iterable) -> tuple[list, list]:
|
||||
all_positions.append(positions)
|
||||
return all_inserts, all_positions
|
||||
|
||||
def get_input_positions(msp) -> tuple[dict, dict, dict, dict]:
|
||||
return extract_input_positions(msp.query('INSERT'))
|
||||
|
||||
def get_input_positions_iter(dxf_path) -> tuple[dict, dict, dict, dict]:
|
||||
return extract_input_positions(iterdxf.modelspace(dxf_path))
|
||||
|
||||
def create_mappings(positions: dict) -> tuple[dict, dict]:
|
||||
unterverteiler_pfad = ""
|
||||
dnamen = dict()
|
||||
@@ -414,96 +503,194 @@ def create_mappings(positions: dict) -> tuple[dict, dict]:
|
||||
|
||||
return (uv2sensor, warnings)
|
||||
|
||||
def get_subdistributor_positions(msp, dist2sensors: dict) -> dict:
|
||||
"""Hole alle Positionen der Unterverteiler !!UV-Positionen bereits 'Mitte-Mitte'!!"""
|
||||
ret = dict()
|
||||
all_distributors = dist2sensors.keys()
|
||||
all_layers = config.items('GetPos-Layer_Distributors')
|
||||
for (layer, v) in all_layers:
|
||||
for distname in all_distributors:
|
||||
selectstr = f'MTEXT[layer=="{layer}"]'
|
||||
for text in msp.query(selectstr):
|
||||
match = re.search("-" + distname, text.dxf.text)
|
||||
if match:
|
||||
ret[distname] = (round(text.dxf.insert[0], 1), round(text.dxf.insert[1], 1))
|
||||
return ret
|
||||
def get_subdistributor_position_of_symbol(d_insert: dict, d_pos: dict) -> tuple[dict, str]:
|
||||
"""
|
||||
Diese Funktion schaut nach den aktuell definierten Attributen in allen Unterverteiler Blöcken
|
||||
Sie müssen auch UH heissen
|
||||
|
||||
def get_subdistributor_positions_iter(dxf_path, dist2sensors: dict) -> dict:
|
||||
"""Hole alle Positionen der Unterverteiler aus MTEXT-Objekten mithilfe von iterdxf."""
|
||||
"""
|
||||
id_ = ""
|
||||
ld = d_insert
|
||||
|
||||
# die neueren Blöcke haben einen Namen
|
||||
if "NAME" in d_insert:
|
||||
id_ = d_insert["NAME"]
|
||||
pos = d_pos["NAME"]
|
||||
ld["pos"] = (pos[0], pos[1])
|
||||
|
||||
if "REALE_POSITION" in d_insert and d_insert["REALE_POSITION"] == 'x':
|
||||
pos = d_pos["REALE_POSITION"]
|
||||
|
||||
# Hoehe und Breite von "x" addieren, um Mittelpunkt zu finden
|
||||
breite_marker = config.getfloat("GetPos-Geom-Sensor", "Breite")
|
||||
hoehe_marker = config.getfloat("GetPos-Geom-Sensor", "Hoehe")
|
||||
midx = pos[0] + breite_marker * 0.5
|
||||
midy = pos[1] + hoehe_marker * 0.5
|
||||
ld["pos"] = (round(midx, 1), round(midy, 1))
|
||||
return ld, id_
|
||||
return None, None
|
||||
|
||||
|
||||
def get_tunnel_position_of_symbol(d_insert: dict, d_pos: dict) -> tuple[dict, str]:
|
||||
"""
|
||||
Diese Funktion schaut nach den aktuell definierten Attributen in allen Tunnel Blöcken
|
||||
Tunnel haben einen Namen der den Tunnel-Mustern aus BMK.cfg entspricht
|
||||
|
||||
"""
|
||||
id_ = ""
|
||||
ld = d_insert
|
||||
|
||||
# Tunnel haben einen Namen
|
||||
if "NAME" in d_insert:
|
||||
id_ = d_insert["NAME"]
|
||||
pos = d_pos["NAME"]
|
||||
ld["pos"] = (pos[0], pos[1])
|
||||
|
||||
# Länge des Tunnels aus dem LAENGE Attribut extrahieren
|
||||
if "LAENGE" in d_insert:
|
||||
ld["laenge"] = d_insert["LAENGE"]
|
||||
|
||||
if "REALE_POSITION" in d_insert and d_insert["REALE_POSITION"] == 'x':
|
||||
pos = d_pos["REALE_POSITION"]
|
||||
|
||||
# Hoehe und Breite von "x" addieren, um Mittelpunkt zu finden
|
||||
breite_marker = config.getfloat("GetPos-Geom-Sensor", "Breite")
|
||||
hoehe_marker = config.getfloat("GetPos-Geom-Sensor", "Hoehe")
|
||||
midx = pos[0] + breite_marker * 0.5
|
||||
midy = pos[1] + hoehe_marker * 0.5
|
||||
ld["pos"] = (round(midx, 1), round(midy, 1))
|
||||
return ld, id_
|
||||
return None, None
|
||||
|
||||
def get_subdistributor_positions_from_symbols(all_inserts:list, all_positions:list, dist2sensors: dict) -> dict:
|
||||
"""Ermittelt Unterverteiler-Positionen aus allen Symbolen
|
||||
"""
|
||||
ret = {}
|
||||
all_distributors = dist2sensors.keys()
|
||||
all_layers = config.items('GetPos-Layer_Distributors')
|
||||
for insert, pos in zip(all_inserts, all_positions):
|
||||
if "NAME" not in insert: # Unterverteiler haben immer einen eindeutigen Namen
|
||||
continue
|
||||
ld, id_ = get_subdistributor_position_of_symbol(insert, pos)
|
||||
|
||||
for entity in iterdxf.modelspace(dxf_path):
|
||||
# Check if id_ matches Cabinet-Pattern from BMK.cfg
|
||||
(matches, res) = matches_cabinet_pattern(id_)
|
||||
if not matches:
|
||||
continue
|
||||
|
||||
if res in dist2sensors:
|
||||
ret[res] = ld["pos"]
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def get_tunnel_positions_from_symbols(all_inserts: list, all_positions: list) -> dict:
|
||||
"""Ermittelt Tunnel-Positionen aus allen Symbolen
|
||||
|
||||
Args:
|
||||
all_inserts: Liste von Dictionaries mit Attribut-Tags und deren Textwerten
|
||||
all_positions: Liste von Dictionaries mit Attribut-Tags und deren (x, y, z)-Positionen
|
||||
|
||||
Returns:
|
||||
Dictionary mit Tunnelnamen als Keys und Listen von Positionen als Values
|
||||
Format: {'Tunnel1': [(x1, y1), (x2, y2)], ..., 'length': {'Tunnel1': 'laenge_wert', ...}}
|
||||
"""
|
||||
ret = {}
|
||||
tunnel_length = {}
|
||||
default_length = "5" # Default-Länge in Metern
|
||||
|
||||
for insert, pos in zip(all_inserts, all_positions):
|
||||
if "NAME" not in insert: # Tunnel haben immer einen eindeutigen Namen
|
||||
continue
|
||||
|
||||
ld, id_ = get_tunnel_position_of_symbol(insert, pos)
|
||||
if not ld or not id_:
|
||||
continue
|
||||
|
||||
# Check if id_ matches Tunnel-Pattern from BMK.cfg
|
||||
if not matches_tunnel_pattern(id_):
|
||||
continue
|
||||
|
||||
# Sammle alle Positionen für den gleichen Tunnelnamen
|
||||
if id_ not in ret:
|
||||
ret[id_] = []
|
||||
ret[id_].append(ld["pos"])
|
||||
|
||||
# Sammle Längeninformation falls vorhanden, sonst Default verwenden
|
||||
if "laenge" in ld and ld["laenge"]:
|
||||
tunnel_length[id_] = ld["laenge"]
|
||||
else:
|
||||
print(f"WARNUNG: Tunnel '{id_}' hat keine LAENGE-Angabe. Verwende Default-Länge: {default_length}m")
|
||||
tunnel_length[id_] = default_length
|
||||
|
||||
# Füge Längeninformation hinzu, falls Tunnel gefunden wurden
|
||||
if len(tunnel_length) > 0:
|
||||
ret['length'] = tunnel_length
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def get_subdistributor_positions_from_entities(entities, dist2sensors: dict) -> dict:
|
||||
"""Ermittelt Unterverteiler-Positionen aus einer beliebigen Entity-Iterable.
|
||||
|
||||
Erwartet eine Iterable von DXF-Entities (z. B. aus `msp.query("MTEXT")` oder
|
||||
`iterdxf.modelspace(dxf_path)`) und filtert nach den in der Config erlaubten
|
||||
Layern. Es werden beide bisher verwendeten Suchmuster in der MTEXT-Zeile
|
||||
unterstützt ("-<distname>" und "+<distname>").
|
||||
"""
|
||||
ret = {}
|
||||
all_distributors = dist2sensors.keys()
|
||||
allowed_layers = {layer for (layer, _) in config.items('GetPos-Layer_Distributors')}
|
||||
|
||||
for entity in entities:
|
||||
if entity.dxftype() != "MTEXT":
|
||||
continue
|
||||
entity_text = entity.dxf.text
|
||||
entity_layer = entity.dxf.layer
|
||||
layer = entity.dxf.layer
|
||||
if layer not in allowed_layers:
|
||||
continue
|
||||
text = entity.dxf.text
|
||||
insert_point = entity.dxf.insert
|
||||
|
||||
for (layer_name, _) in all_layers:
|
||||
if entity_layer != layer_name:
|
||||
continue
|
||||
for distname in all_distributors:
|
||||
if f"+{distname}" in entity_text:
|
||||
ret[distname] = (round(insert_point[0], 1), round(insert_point[1], 1))
|
||||
for distname in all_distributors:
|
||||
if f"-{distname}" in text or f"+{distname}" in text:
|
||||
ret[distname] = (round(insert_point[0], 1), round(insert_point[1], 1))
|
||||
|
||||
return ret
|
||||
|
||||
def get_tunnel_positions(msp) -> dict:
|
||||
"""Hole alle Positionen aller Tunnel Ein und Ausgänge."""
|
||||
def get_tunnel_positions_from_entities(entities) -> dict:
|
||||
"""Ermittelt Tunnel-Ein/Ausgangs-Positionen aus einer beliebigen Entity-Iterable.
|
||||
|
||||
Erwartet eine Iterable von DXF-Entities (z. B. aus `msp.query("MTEXT")` oder
|
||||
`iterdxf.modelspace(dxf_path)`) und filtert nach den in der Config erlaubten
|
||||
Layern. Erkennt Tunnel anhand des Musters "TUNNEL<nr>-<laenge>" und sammelt
|
||||
pro Tunnelname die gefundenen Positionen sowie die Länge.
|
||||
"""
|
||||
all_tunnels = dict()
|
||||
tunnel_length = dict()
|
||||
all_layers = config.items('GetPos-Layer_Tunnel')
|
||||
for (layer, v) in all_layers:
|
||||
selectstr = f'MTEXT[layer=="{layer}"]'
|
||||
for text in msp.query(selectstr):
|
||||
txt = text.dxf.text
|
||||
pattern = r"(TUNNEL\d+)-(\d+)"
|
||||
match = re.search(pattern, txt)
|
||||
if match:
|
||||
pos = (round(text.dxf.insert[0], 1), round(text.dxf.insert[1], 1))
|
||||
tunnelname = match.group(1)
|
||||
laenge = match.group(2)
|
||||
tunnel_length[tunnelname] = laenge
|
||||
if tunnelname not in all_tunnels:
|
||||
all_tunnels[tunnelname] = list()
|
||||
all_tunnels[tunnelname].append(pos)
|
||||
else:
|
||||
all_tunnels[tunnelname].append(pos)
|
||||
if len(all_tunnels.keys()) > 0:
|
||||
all_tunnels['length'] = tunnel_length
|
||||
return all_tunnels
|
||||
allowed_layers = {layer for (layer, _) in config.items('GetPos-Layer_Tunnel')}
|
||||
|
||||
def get_tunnel_positions_iter(dxf_path) -> dict:
|
||||
"""Hole alle Positionen aller Tunnel Ein- und Ausgänge mithilfe von iterdxf."""
|
||||
all_tunnels = dict()
|
||||
tunnel_length = dict()
|
||||
all_layers = config.items('GetPos-Layer_Tunnel')
|
||||
|
||||
for entity in iterdxf.modelspace(dxf_path):
|
||||
for entity in entities:
|
||||
if entity.dxftype() != "MTEXT":
|
||||
continue
|
||||
if entity.dxf.layer not in allowed_layers:
|
||||
continue
|
||||
|
||||
txt = entity.dxf.text
|
||||
layer = entity.dxf.layer
|
||||
insert = entity.dxf.insert
|
||||
|
||||
for (layer_name, _) in all_layers:
|
||||
if layer != layer_name:
|
||||
continue
|
||||
pattern = r"(TUNNEL\d+)-(\d+)"
|
||||
match = re.search(pattern, txt)
|
||||
if not match:
|
||||
continue
|
||||
|
||||
pattern = r"(TUNNEL\d+)-(\d+)"
|
||||
match = re.search(pattern, txt)
|
||||
if match:
|
||||
tunnelname = match.group(1)
|
||||
laenge = match.group(2)
|
||||
pos = (round(insert[0], 1), round(insert[1], 1))
|
||||
tunnelname = match.group(1)
|
||||
laenge = match.group(2)
|
||||
pos = (round(insert[0], 1), round(insert[1], 1))
|
||||
|
||||
if tunnelname not in all_tunnels:
|
||||
all_tunnels[tunnelname] = []
|
||||
all_tunnels[tunnelname].append(pos)
|
||||
tunnel_length[tunnelname] = laenge
|
||||
|
||||
if tunnelname not in all_tunnels:
|
||||
all_tunnels[tunnelname] = []
|
||||
all_tunnels[tunnelname].append(pos)
|
||||
tunnel_length[tunnelname] = laenge
|
||||
if len(tunnel_length.keys()) > 0:
|
||||
all_tunnels['length'] = tunnel_length
|
||||
return all_tunnels
|
||||
@@ -623,20 +810,24 @@ def check_file_in_work(work_dir: Path, filename: Path) -> tuple[Path, bool]:
|
||||
|
||||
def check_existance(res_mappings: dict, res_dist: dict, res_pos: dict, res_tunnel: dict) -> dict:
|
||||
ret = dict()
|
||||
ret["missing_distributors"] = list()
|
||||
ret["missing_sensors"] = list()
|
||||
ret["missing_tunnel"] = list()
|
||||
|
||||
for dname in res_mappings.keys():
|
||||
if dname not in res_dist:
|
||||
if "missing_distributors" not in ret:
|
||||
ret["missing_distributors"] = list()
|
||||
ret["missing_distributors"].append(dname)
|
||||
for sname, lofsensors in res_mappings.items():
|
||||
for s in lofsensors:
|
||||
if s not in res_pos:
|
||||
if "missing_sensors" not in ret:
|
||||
ret["missing_sensors"] = list()
|
||||
ret['missing_sensors'].append(s)
|
||||
for tname in res_tunnel.keys():
|
||||
if tname == "length": # dict enthält auch die Länge aller Tunnels in einem Key
|
||||
continue
|
||||
if len(res_tunnel[tname]) < 2 :
|
||||
if "missing_tunnel" not in ret:
|
||||
ret["missing_tunnel"] = list()
|
||||
ret["missing_tunnel"].append(tname)
|
||||
if len(res_tunnel[tname]) > 2 :
|
||||
if "overdefined_tunnel" not in ret:
|
||||
@@ -691,12 +882,6 @@ def check_environment_var(env_str: str) -> Path:
|
||||
print(f"Umgebungsvariable {env_str} ist nicht gesetzt oder leer.")
|
||||
exit()
|
||||
|
||||
def get_input_positions_combined(source: str, use_iter: bool) -> tuple[dict, dict, dict, dict]:
|
||||
if use_iter:
|
||||
return get_input_positions_iter(source)
|
||||
else:
|
||||
return get_input_positions(source)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='fetches the x/y positions from a dxf file', prog='getpositions')
|
||||
parser.add_argument('-f', '--filename', action='store', required=True, default="ST_6300_Steuerungstestlayout1_neueBloecke.dwg", help='which file should be fetched', metavar='myfile.dxf')
|
||||
@@ -760,15 +945,17 @@ if __name__ == '__main__':
|
||||
|
||||
output_results = dict()
|
||||
|
||||
if args.sensors:
|
||||
# Sensoren auslesen
|
||||
res_sens, res_schaltschrank_elemente, res_double, missing_attribs = get_input_positions_combined(dxf_path if use_iter else msp, use_iter)
|
||||
|
||||
if args.errors and len(res_double) > 0:
|
||||
print("Duplicate blocks found. Writing errors-file.")
|
||||
err_ids = list(res_double.keys())
|
||||
write_results(to_json(list(err_ids)), work_dir, args.errors)
|
||||
# ErrorCollector für alle Fehler und Warnungen initialisieren
|
||||
error_collector = ErrorCollector()
|
||||
|
||||
if args.sensors:
|
||||
# Sensoren auslesen aus den Symbolen
|
||||
|
||||
if use_iter:
|
||||
all_inserts, all_positions = attribs_to_dicts(iterdxf.modelspace(dxf_path))
|
||||
else:
|
||||
all_inserts, all_positions = attribs_to_dicts(msp)
|
||||
res_sens, res_schaltschrank_elemente = extract_input_positions(all_inserts, all_positions, error_collector)
|
||||
|
||||
output_results['sensors'] = res_sens
|
||||
output_results['schaltschrank_elemente'] = res_schaltschrank_elemente
|
||||
@@ -780,28 +967,37 @@ if __name__ == '__main__':
|
||||
# Mapping zu Sensoren auslesen
|
||||
(res_mappings, warnings) = create_mappings(res_sens)
|
||||
output_results['mappings'] = res_mappings
|
||||
# Mapping-Warnungen zum ErrorCollector hinzufügen
|
||||
if warnings:
|
||||
error_collector.add_warnings({"mapping_warnings": warnings})
|
||||
if args.console:
|
||||
print(to_json(res_mappings))
|
||||
|
||||
# Distributoren auslesen
|
||||
# Distributoren auslesen (generisch über Entities)
|
||||
if use_iter:
|
||||
res_dist = get_subdistributor_positions_iter(dxf_path, res_mappings)
|
||||
entities = iterdxf.modelspace(dxf_path)
|
||||
else:
|
||||
res_dist = get_subdistributor_positions(msp, res_mappings)
|
||||
|
||||
entities = msp.query('MTEXT')
|
||||
# die Infos aus den Texten (alter Stil)
|
||||
res_dist = get_subdistributor_positions_from_entities(entities, res_mappings)
|
||||
# die Infos aus den Blöcken
|
||||
symbol_dists = get_subdistributor_positions_from_symbols(all_inserts, all_positions, res_mappings)
|
||||
res_dist = merge_two_dicts(res_dist, symbol_dists)
|
||||
output_results['distributors'] = res_dist
|
||||
|
||||
if args.console:
|
||||
print(to_json(res_dist))
|
||||
|
||||
# Tunnel auslesen
|
||||
# Tunnel auslesen (generisch über Entities)
|
||||
if use_iter:
|
||||
res_tunnel = get_tunnel_positions_iter(dxf_path)
|
||||
t_entities = iterdxf.modelspace(dxf_path)
|
||||
else:
|
||||
res_tunnel = get_tunnel_positions(msp)
|
||||
|
||||
t_entities = msp.query('MTEXT')
|
||||
# die Infos aus den Texten (alter Stil)
|
||||
res_tunnel = get_tunnel_positions_from_entities(t_entities)
|
||||
# die Infos aus den Blöcken (neuer Stil)
|
||||
symbol_tunnels = get_tunnel_positions_from_symbols(all_inserts, all_positions)
|
||||
res_tunnel = merge_two_dicts(res_tunnel, symbol_tunnels)
|
||||
output_results['tunnels'] = res_tunnel
|
||||
|
||||
if args.console:
|
||||
print(to_json(res_tunnel))
|
||||
|
||||
@@ -819,16 +1015,24 @@ if __name__ == '__main__':
|
||||
|
||||
if args.write:
|
||||
basename = os.path.splitext(args.write)[0]
|
||||
res_not_found = check_existance(res_mappings, res_dist, res_sens, res_tunnel)
|
||||
if args.errors and "overdefined_tunnel" in res_not_found:
|
||||
print("unorrect tunnels found. Writing errors-file.")
|
||||
err_ids = list(res_not_found["overdefined_tunnel"])
|
||||
write_results(to_json(list(err_ids)), work_dir, args.errors)
|
||||
|
||||
added_warnings = merge_two_dicts(warnings, missing_attribs)
|
||||
res_not_found["missing_attributes"] = added_warnings
|
||||
output_results["not_found"] = res_not_found
|
||||
output_results["double_ids"] = res_double
|
||||
res_not_found = check_existance(res_mappings, res_dist, res_sens, res_tunnel)
|
||||
|
||||
# Alle weiteren Fehler zum ErrorCollector hinzufügen
|
||||
error_collector.add_errors(res_not_found)
|
||||
|
||||
# ErrorCollector schreibt Datei nur wenn Fehler/Warnungen vorhanden
|
||||
if args.errors:
|
||||
error_collector.write_errorfile(work_dir, args.errors)
|
||||
|
||||
# Für Kompatibilität mit Ausgabe-JSON: Fehler und Warnungen aus ErrorCollector holen
|
||||
all_issues = error_collector.get_all_issues()
|
||||
if "errors" in all_issues:
|
||||
output_results["not_found"] = all_issues["errors"].get("not_found", {})
|
||||
if "double_ids" in all_issues["errors"]:
|
||||
output_results["double_ids"] = all_issues["errors"]["double_ids"]
|
||||
if "missing_attributes" in all_issues.get("warnings", {}):
|
||||
output_results["not_found"]["missing_attributes"] = all_issues["warnings"]["missing_attributes"]
|
||||
|
||||
|
||||
write_results(to_json(output_results), work_dir, f"{basename}.json")
|
||||
|
||||
+10
-3
@@ -150,9 +150,16 @@ def prepare_data(rawdata:dict):
|
||||
dtunlength = rawdata["tunnels"]["length"]
|
||||
|
||||
# Fehler, welche im getpositions auftreten weiterführen: im Layout fehlende Dists / Sensoren / fehlende Attribute
|
||||
errors_dists = rawdata["not_found"]["missing_distributors"]
|
||||
errors_sensors = rawdata["not_found"]["missing_sensors"]
|
||||
errors_attributes = rawdata["not_found"]["missing_attributes"]
|
||||
errors_dists = list()
|
||||
errors_sensors = list()
|
||||
errors_attributes = dict()
|
||||
if "not_found" in rawdata:
|
||||
if "missing_distributors" in rawdata["not_found"]:
|
||||
errors_dists = rawdata["not_found"]["missing_distributors"]
|
||||
if "missing_sensors" in rawdata["not_found"]:
|
||||
errors_sensors = rawdata["not_found"]["missing_sensors"]
|
||||
if "missing_attributes" in rawdata["not_found"]:
|
||||
errors_attributes = rawdata["not_found"]["missing_attributes"]
|
||||
|
||||
|
||||
return (dracks, dsensors, dsubdists, mapping, dtunnels, dtunlength, errors_dists, errors_sensors, errors_attributes)
|
||||
|
||||
@@ -0,0 +1,389 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test runner for kabellaengen project
|
||||
Executes getexdraw.bat for all DXF files in testdata directory and compares outputs
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import subprocess
|
||||
import glob
|
||||
from pathlib import Path
|
||||
import difflib
|
||||
import argparse
|
||||
|
||||
|
||||
class TestResult:
|
||||
def __init__(self, test_name):
|
||||
self.test_name = test_name
|
||||
self.passed = False
|
||||
self.error_msg = ""
|
||||
self.differences = []
|
||||
|
||||
|
||||
class TestRunner:
|
||||
def __init__(self, create_references=False, mode='getexdraw', clean=False, target_file=None):
|
||||
# Use environment variables set by setenv.bat
|
||||
self.project_root = Path(os.environ['PROJECT'])
|
||||
self.testdata_dir = Path(os.environ.get('PROJECT_TEST', self.project_root / "testdata"))
|
||||
self.work_dir = Path(os.environ.get('PROJECT_WORK', self.project_root / "work"))
|
||||
self.bin_dir = Path(os.environ.get('PROJECT_BIN', self.project_root / "bin"))
|
||||
self.getexdraw_bat = self.bin_dir / "getexdraw.bat"
|
||||
self.ioconverter_bat = self.bin_dir / "ioconverter.bat"
|
||||
|
||||
self.test_results = []
|
||||
self.failed_tests = []
|
||||
self.create_references = create_references
|
||||
self.mode = mode
|
||||
self.clean = clean
|
||||
self.target_file = target_file
|
||||
|
||||
def find_test_files(self):
|
||||
"""Find DXF files in testdata directory - all files or specific file"""
|
||||
if self.target_file:
|
||||
# Remove .dxf suffix if present to avoid double extension
|
||||
clean_target = self.target_file
|
||||
if clean_target.endswith('.dxf'):
|
||||
clean_target = clean_target[:-4]
|
||||
|
||||
# Check if specific file exists
|
||||
target_dxf = self.testdata_dir / f"{clean_target}.dxf"
|
||||
if target_dxf.exists():
|
||||
return [clean_target]
|
||||
else:
|
||||
print(f"Error: Test file {target_dxf} not found")
|
||||
return []
|
||||
else:
|
||||
# Return all DXF files
|
||||
dxf_files = list(self.testdata_dir.glob("*.dxf"))
|
||||
return [f.stem for f in dxf_files] # Return filenames without extension
|
||||
|
||||
def run_getexdraw(self, test_filename):
|
||||
"""Execute getexdraw.bat for given test file"""
|
||||
dxf_file = self.testdata_dir / f"{test_filename}.dxf"
|
||||
if not dxf_file.exists():
|
||||
return False, f"Test file {dxf_file} not found"
|
||||
|
||||
try:
|
||||
# Change to bin directory for execution (where batch scripts expect to run from)
|
||||
os.chdir(self.bin_dir)
|
||||
|
||||
# Execute getexdraw.bat with automated input to handle pause
|
||||
cmd = [str(self.getexdraw_bat), str(dxf_file)]
|
||||
# Send newline to handle the pause command
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, shell=True, input="\n")
|
||||
|
||||
# Check if the expected output files were created instead of relying on return code
|
||||
# The batch script always exits with code 1 due to interactive design, but files are created
|
||||
expected_positions_file = self.work_dir / test_filename / f"{test_filename}_positionsdraw.json"
|
||||
expected_todraw_file = self.work_dir / test_filename / f"{test_filename}_todraw.json"
|
||||
expected_errors_file = self.work_dir / test_filename / f"{test_filename}_errors.json"
|
||||
|
||||
# Success case: both normal files exist
|
||||
if expected_positions_file.exists() and expected_todraw_file.exists():
|
||||
return True, "Success"
|
||||
# Error case: positions file missing but errors file exists
|
||||
elif not expected_positions_file.exists() and expected_errors_file.exists():
|
||||
return True, "Success (with errors)"
|
||||
else:
|
||||
missing_files = []
|
||||
if not expected_positions_file.exists() and not expected_errors_file.exists():
|
||||
missing_files.append(f"{test_filename}_positionsdraw.json or {test_filename}_errors.json")
|
||||
if not expected_todraw_file.exists():
|
||||
missing_files.append(str(expected_todraw_file))
|
||||
return False, f"getexdraw.bat failed - expected output files not found: {', '.join(missing_files)}\nSTDOUT: {result.stdout}\nSTDERR: {result.stderr}"
|
||||
|
||||
except Exception as e:
|
||||
return False, f"Exception during execution: {str(e)}"
|
||||
|
||||
def run_ioconverter(self, test_filename):
|
||||
"""Execute ioconverter.bat for given test file"""
|
||||
dxf_file = self.testdata_dir / f"{test_filename}.dxf"
|
||||
if not dxf_file.exists():
|
||||
return False, f"Test file {dxf_file} not found"
|
||||
|
||||
try:
|
||||
# Change to bin directory for execution (where batch scripts expect to run from)
|
||||
os.chdir(self.bin_dir)
|
||||
|
||||
# Execute ioconverter.bat with automated input to handle pause
|
||||
cmd = [str(self.ioconverter_bat), str(dxf_file)]
|
||||
# Send newline to handle the pause command
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, shell=True, input="\n")
|
||||
|
||||
# Check if the expected output files were created
|
||||
expected_positions_file = self.work_dir / test_filename / f"{test_filename}_positionsconv.json"
|
||||
expected_errors_file = self.work_dir / test_filename / f"{test_filename}_errors.json"
|
||||
|
||||
# Success case: positions file exists
|
||||
if expected_positions_file.exists():
|
||||
return True, "Success"
|
||||
# Error case: positions file missing but errors file exists
|
||||
elif expected_errors_file.exists():
|
||||
return True, "Success (with errors)"
|
||||
else:
|
||||
return False, f"ioconverter.bat failed - expected output file not found: {expected_positions_file} or {expected_errors_file}\nSTDOUT: {result.stdout}\nSTDERR: {result.stderr}"
|
||||
|
||||
except Exception as e:
|
||||
return False, f"Exception during execution: {str(e)}"
|
||||
|
||||
def cleanup_test_files(self, test_filename):
|
||||
"""Remove the work folder for the given test"""
|
||||
if not self.clean:
|
||||
return
|
||||
|
||||
test_work_dir = self.work_dir / test_filename
|
||||
if test_work_dir.exists():
|
||||
try:
|
||||
import shutil
|
||||
shutil.rmtree(test_work_dir)
|
||||
print(f" [cleaned up {test_work_dir}]")
|
||||
except Exception as e:
|
||||
print(f" [cleanup failed: {e}]")
|
||||
|
||||
def compare_json_files(self, test_filename):
|
||||
"""Compare generated JSON files with reference JSON files"""
|
||||
all_diffs = []
|
||||
|
||||
# Check what files actually exist and determine comparison strategy based on mode
|
||||
errors_file = self.work_dir / test_filename / f"{test_filename}_errors.json"
|
||||
|
||||
if self.mode == 'ioconverter':
|
||||
# For ioconverter mode: check for _positionsconv.json
|
||||
positions_file = self.work_dir / test_filename / f"{test_filename}_positionsconv.json"
|
||||
|
||||
# Determine which files to compare based on what exists
|
||||
if positions_file.exists():
|
||||
# Normal case: compare _positionsconv only
|
||||
file_suffixes = ['_positionsconv']
|
||||
elif errors_file.exists():
|
||||
# Error case: compare _errors only
|
||||
file_suffixes = ['_errors']
|
||||
else:
|
||||
return False, f"No generated files found for {test_filename}", []
|
||||
else:
|
||||
# For getexdraw mode: check for _positionsdraw.json and _todraw.json
|
||||
positions_file = self.work_dir / test_filename / f"{test_filename}_positionsdraw.json"
|
||||
todraw_file = self.work_dir / test_filename / f"{test_filename}_todraw.json"
|
||||
|
||||
# Determine which files to compare based on what exists
|
||||
if positions_file.exists():
|
||||
# Normal case: compare _positionsdraw and _todraw
|
||||
file_suffixes = ['_positionsdraw', '_todraw']
|
||||
elif errors_file.exists():
|
||||
# Error case: compare _errors only (no _todraw expected when errors occur)
|
||||
file_suffixes = ['_errors']
|
||||
else:
|
||||
return False, f"No generated files found for {test_filename}", []
|
||||
|
||||
for suffix in file_suffixes:
|
||||
# Generated file should be in work/<testfilename>/<testfilename><suffix>.json
|
||||
generated_file = self.work_dir / test_filename / f"{test_filename}{suffix}.json"
|
||||
|
||||
# Reference file should be in testdata/<testfilename><suffix>.json
|
||||
reference_file = self.testdata_dir / f"{test_filename}{suffix}.json"
|
||||
|
||||
if not generated_file.exists():
|
||||
return False, f"Generated file {generated_file} not found", []
|
||||
|
||||
if not reference_file.exists():
|
||||
if self.create_references:
|
||||
# Copy generated file as reference
|
||||
import shutil
|
||||
shutil.copy2(generated_file, reference_file)
|
||||
print(f"\nCreated reference file: {reference_file}")
|
||||
continue
|
||||
else:
|
||||
return False, f"Reference file {reference_file} not found", []
|
||||
|
||||
try:
|
||||
# Load and compare JSON files
|
||||
with open(generated_file, 'r', encoding='utf-8') as f:
|
||||
generated_data = json.load(f)
|
||||
|
||||
with open(reference_file, 'r', encoding='utf-8') as f:
|
||||
reference_data = json.load(f)
|
||||
|
||||
if generated_data != reference_data:
|
||||
# Generate diff for debugging
|
||||
generated_str = json.dumps(generated_data, indent=2, sort_keys=True)
|
||||
reference_str = json.dumps(reference_data, indent=2, sort_keys=True)
|
||||
|
||||
diff = list(difflib.unified_diff(
|
||||
reference_str.splitlines(keepends=True),
|
||||
generated_str.splitlines(keepends=True),
|
||||
fromfile=str(reference_file),
|
||||
tofile=str(generated_file),
|
||||
n=3
|
||||
))
|
||||
|
||||
all_diffs.extend([f"\n=== Differences in {suffix}.json ==="])
|
||||
all_diffs.extend(diff)
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
return False, f"JSON decode error in {suffix}.json: {str(e)}", []
|
||||
except Exception as e:
|
||||
return False, f"Exception during comparison of {suffix}.json: {str(e)}", []
|
||||
|
||||
if all_diffs:
|
||||
return False, "Files differ", all_diffs
|
||||
else:
|
||||
return True, "All files match", []
|
||||
|
||||
def run_single_test(self, test_filename):
|
||||
"""Run a single test case"""
|
||||
print(f"Running test: {test_filename} ... ", end="")
|
||||
|
||||
result = TestResult(test_filename)
|
||||
|
||||
# Step 1: Run the appropriate batch script based on mode
|
||||
if self.mode == 'ioconverter':
|
||||
success, msg = self.run_ioconverter(test_filename)
|
||||
else:
|
||||
success, msg = self.run_getexdraw(test_filename)
|
||||
|
||||
if not success:
|
||||
result.error_msg = f"Execution failed: {msg}"
|
||||
print("FAIL", end="")
|
||||
self.cleanup_test_files(test_filename)
|
||||
if not self.clean:
|
||||
print()
|
||||
return result
|
||||
|
||||
# Step 2: Compare JSON files
|
||||
success, msg, diff = self.compare_json_files(test_filename)
|
||||
if not success:
|
||||
result.error_msg = f"Comparison failed: {msg}"
|
||||
result.differences = diff
|
||||
print("FAIL", end="")
|
||||
self.cleanup_test_files(test_filename)
|
||||
if not self.clean:
|
||||
print()
|
||||
return result
|
||||
|
||||
result.passed = True
|
||||
print("OK", end="")
|
||||
|
||||
# Step 3: Cleanup if requested
|
||||
self.cleanup_test_files(test_filename)
|
||||
|
||||
if not self.clean:
|
||||
print() # Add newline if no cleanup message was printed
|
||||
|
||||
return result
|
||||
|
||||
def run_all_tests(self):
|
||||
"""Run all tests and collect results"""
|
||||
test_files = self.find_test_files()
|
||||
|
||||
if not test_files:
|
||||
if self.target_file:
|
||||
print(f"Test file {self.target_file}.dxf not found in testdata directory")
|
||||
else:
|
||||
print("No test files found in testdata directory")
|
||||
return False
|
||||
|
||||
if self.target_file:
|
||||
print(f"Running test for file: {self.target_file}")
|
||||
else:
|
||||
print(f"Found {len(test_files)} test files")
|
||||
print("=" * 70)
|
||||
|
||||
for test_file in test_files:
|
||||
result = self.run_single_test(test_file)
|
||||
self.test_results.append(result)
|
||||
|
||||
if not result.passed:
|
||||
self.failed_tests.append(test_file)
|
||||
|
||||
print("=" * 70)
|
||||
return self.print_summary()
|
||||
|
||||
def print_summary(self):
|
||||
"""Print test summary similar to unittest"""
|
||||
total_tests = len(self.test_results)
|
||||
passed_tests = sum(1 for r in self.test_results if r.passed)
|
||||
failed_tests = total_tests - passed_tests
|
||||
|
||||
print(f"\nRan {total_tests} tests in {self.testdata_dir}")
|
||||
print()
|
||||
|
||||
if failed_tests > 0:
|
||||
print("FAILURES:")
|
||||
print("=" * 70)
|
||||
|
||||
for result in self.test_results:
|
||||
if not result.passed:
|
||||
print(f"FAIL: {result.test_name}")
|
||||
print("-" * 70)
|
||||
print(result.error_msg)
|
||||
|
||||
if result.differences:
|
||||
print("\nDifferences:")
|
||||
for line in result.differences[:50]: # Limit diff output
|
||||
print(line.rstrip())
|
||||
if len(result.differences) > 50:
|
||||
print(f"... ({len(result.differences) - 50} more lines)")
|
||||
print()
|
||||
|
||||
print("=" * 70)
|
||||
print(f"FAILED (failures={failed_tests})")
|
||||
|
||||
print(f"\nFailed test files: {', '.join(self.failed_tests)}")
|
||||
else:
|
||||
print("OK")
|
||||
|
||||
return failed_tests == 0
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point"""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Runs batch scripts for all DXF files in testdata and compares results"
|
||||
)
|
||||
parser.add_argument(
|
||||
'--create-references',
|
||||
action='store_true',
|
||||
help='Create reference JSON files from current outputs'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--clean',
|
||||
action='store_true',
|
||||
help='Remove work/filename folders after each test run'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--file',
|
||||
type=str,
|
||||
help='Run test for specific filename (without .dxf extension)'
|
||||
)
|
||||
|
||||
# Mode selection (mutually exclusive)
|
||||
mode_group = parser.add_mutually_exclusive_group()
|
||||
mode_group.add_argument(
|
||||
'--getexdraw',
|
||||
action='store_true',
|
||||
help='Run getexdraw.bat tests (default)'
|
||||
)
|
||||
mode_group.add_argument(
|
||||
'--ioconverter',
|
||||
action='store_true',
|
||||
help='Run ioconverter.bat tests'
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Determine mode - default to getexdraw if neither is specified
|
||||
if args.ioconverter:
|
||||
mode = 'ioconverter'
|
||||
else:
|
||||
mode = 'getexdraw'
|
||||
|
||||
runner = TestRunner(create_references=args.create_references, mode=mode, clean=args.clean, target_file=args.file)
|
||||
success = runner.run_all_tests()
|
||||
|
||||
return 0 if success else 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Vendored
+75
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"sensors": {
|
||||
"POT-RA-3036": {
|
||||
"REALE_POSITION": "x",
|
||||
"NAME": "POT-RA-3036",
|
||||
"KENNZEICHNUNG": "AH01+UC0101-x",
|
||||
"pos": [
|
||||
22624.4,
|
||||
13807.7
|
||||
]
|
||||
},
|
||||
"POT-RA-3122": {
|
||||
"REALE_POSITION": "x",
|
||||
"NAME": "POT-RA-3122",
|
||||
"KENNZEICHNUNG": "AH01-UC0102-x",
|
||||
"pos": [
|
||||
19150.5,
|
||||
14361.8
|
||||
]
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"POT-RA-3036"
|
||||
],
|
||||
"UC0102": [
|
||||
"POT-RA-3122"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
20963.1,
|
||||
8705.7
|
||||
],
|
||||
"UC0102": [
|
||||
19581.2,
|
||||
5559.7
|
||||
]
|
||||
},
|
||||
"tunnels": {},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"sensors": {
|
||||
"POT-RA-3036": {
|
||||
"REALE_POSITION": "x",
|
||||
"NAME": "POT-RA-3036",
|
||||
"KENNZEICHNUNG": "AH01+UC0101-x",
|
||||
"pos": [
|
||||
22624.4,
|
||||
13807.7
|
||||
]
|
||||
},
|
||||
"POT-RA-3122": {
|
||||
"REALE_POSITION": "x",
|
||||
"NAME": "POT-RA-3122",
|
||||
"KENNZEICHNUNG": "AH01-UC0102-x",
|
||||
"pos": [
|
||||
19150.5,
|
||||
14361.8
|
||||
]
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"POT-RA-3036"
|
||||
],
|
||||
"UC0102": [
|
||||
"POT-RA-3122"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
20963.1,
|
||||
8705.7
|
||||
],
|
||||
"UC0102": [
|
||||
19581.2,
|
||||
5559.7
|
||||
]
|
||||
},
|
||||
"tunnels": {},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+193
@@ -0,0 +1,193 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UC0101-POT-RA-3036",
|
||||
"s_artinr": "",
|
||||
"coords": [
|
||||
{
|
||||
"x": 20963.1,
|
||||
"y": 8705.7
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 8705.7
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22624.4,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22624.4,
|
||||
"y": 13807.7
|
||||
}
|
||||
],
|
||||
"length": 8791.7,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0102-POT-RA-3122",
|
||||
"s_artinr": "",
|
||||
"coords": [
|
||||
{
|
||||
"x": 19581.2,
|
||||
"y": 5559.7
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 5559.7
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 8705.7
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 19150.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 19150.5,
|
||||
"y": 14361.8
|
||||
}
|
||||
],
|
||||
"length": 10635.4,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 4.4,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 19150.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22624.4,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2": {
|
||||
"length": 11.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 5559.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 8705.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-POT-RA-3036-Rack_1": {
|
||||
"length": 0.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22624.4,
|
||||
"y": 13807.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22624.4,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-POT-RA-3122-Rack_1": {
|
||||
"length": 0.2,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 19150.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 19150.5,
|
||||
"y": 14361.8,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 8705.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20963.1,
|
||||
"y": 8705.7,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0102-Rack_2": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 5559.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 19581.2,
|
||||
"y": 5559.7,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [],
|
||||
"errors_sensors": [],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {}
|
||||
}
|
||||
Vendored
+340
@@ -0,0 +1,340 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+103882
File diff suppressed because it is too large
Load Diff
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"errors": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"overdefined_tunnel": [
|
||||
"TUNNEL2"
|
||||
]
|
||||
},
|
||||
"warnings": {
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+292
@@ -0,0 +1,292 @@
|
||||
{
|
||||
"sensors": {
|
||||
"MA0062@1": {
|
||||
"IO": "MA0062",
|
||||
"B": "MA0062",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"ARTINR": "790902001",
|
||||
"pos": [
|
||||
5274.5,
|
||||
7605.7
|
||||
]
|
||||
},
|
||||
"BG3240@1": {
|
||||
"IO": "BG3240",
|
||||
"B": "BG3240",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
5274.5,
|
||||
5889.0
|
||||
]
|
||||
},
|
||||
"BG3241@1": {
|
||||
"IO": "BG3241",
|
||||
"B": "BG3241",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
461.6,
|
||||
1904.3
|
||||
]
|
||||
},
|
||||
"BG3260@1": {
|
||||
"IO": "BG3260",
|
||||
"B": "BG3260",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
22751.5,
|
||||
13404.9
|
||||
]
|
||||
},
|
||||
"BG3270@1": {
|
||||
"IO": "BG3270",
|
||||
"B": "BG3270",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
5891.5,
|
||||
13244.9
|
||||
]
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"B": "FC0062",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"ARTINR": "703001017",
|
||||
"pos": [
|
||||
5274.5,
|
||||
8545.2
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
],
|
||||
"UC0101": [
|
||||
"BG3240@1",
|
||||
"BG3241@1",
|
||||
"BG3260@1",
|
||||
"BG3270@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
+292
@@ -0,0 +1,292 @@
|
||||
{
|
||||
"sensors": {
|
||||
"MA0062@1": {
|
||||
"IO": "MA0062",
|
||||
"B": "MA0062",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"ARTINR": "790902001",
|
||||
"pos": [
|
||||
5274.5,
|
||||
7605.7
|
||||
]
|
||||
},
|
||||
"BG3240@1": {
|
||||
"IO": "BG3240",
|
||||
"B": "BG3240",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
5274.5,
|
||||
5889.0
|
||||
]
|
||||
},
|
||||
"BG3241@1": {
|
||||
"IO": "BG3241",
|
||||
"B": "BG3241",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
461.6,
|
||||
1904.3
|
||||
]
|
||||
},
|
||||
"BG3260@1": {
|
||||
"IO": "BG3260",
|
||||
"B": "BG3260",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
22751.5,
|
||||
13404.9
|
||||
]
|
||||
},
|
||||
"BG3270@1": {
|
||||
"IO": "BG3270",
|
||||
"B": "BG3270",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"ARTINR": "200000248",
|
||||
"pos": [
|
||||
5891.5,
|
||||
13244.9
|
||||
]
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"B": "FC0062",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"TEXT-D": "",
|
||||
"REALE_POSITION": "x",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"ARTINR": "703001017",
|
||||
"pos": [
|
||||
5274.5,
|
||||
8545.2
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
],
|
||||
"UC0101": [
|
||||
"BG3240@1",
|
||||
"BG3241@1",
|
||||
"BG3260@1",
|
||||
"BG3270@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+605
@@ -0,0 +1,605 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UH01-MA0062@1",
|
||||
"s_artinr": "790902001",
|
||||
"coords": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 13244.9
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7605.7
|
||||
},
|
||||
{
|
||||
"x": 5274.5,
|
||||
"y": 7605.7
|
||||
}
|
||||
],
|
||||
"length": 11067.8,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3240@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5889.0
|
||||
},
|
||||
{
|
||||
"x": 5274.5,
|
||||
"y": 5889.0
|
||||
}
|
||||
],
|
||||
"length": 8326.3,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3241@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1904.3
|
||||
},
|
||||
{
|
||||
"x": 461.6,
|
||||
"y": 1904.3
|
||||
}
|
||||
],
|
||||
"length": 2720.1,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3260@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22751.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22751.5,
|
||||
"y": 13404.9
|
||||
}
|
||||
],
|
||||
"length": 28514.3,
|
||||
"tunnel_indices": [
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5889.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7605.7
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 13244.9
|
||||
},
|
||||
{
|
||||
"x": 5891.5,
|
||||
"y": 13244.9
|
||||
}
|
||||
],
|
||||
"length": 16363.5,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5889.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7605.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1904.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-2": {
|
||||
"length": 15.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 15000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_3": {
|
||||
"length": 11.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 1000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 12000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_4": {
|
||||
"length": 4.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22751.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_5": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_6": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_7": {
|
||||
"length": 11.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_8": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_9": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 13244.9,
|
||||
"z": 649.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_10": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-MA0062@1-Rack_1": {
|
||||
"length": 0.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7605.7,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5274.5,
|
||||
"y": 7605.7,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3240@1-Rack_1": {
|
||||
"length": 0.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5889.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5274.5,
|
||||
"y": 5889.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3241@1-Rack_2-1": {
|
||||
"length": 0.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1904.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 461.6,
|
||||
"y": 1904.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3260@1-Rack_4": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22751.5,
|
||||
"y": 13404.9,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22751.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@1-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 13244.9,
|
||||
"z": 649.0
|
||||
},
|
||||
{
|
||||
"x": 5891.5,
|
||||
"y": 13244.9,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2-1": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UH01-Rack_3": {
|
||||
"length": 1.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"t-Rack-TUNNEL1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-A-Rack_6": {
|
||||
"length": 0.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-E-Rack_7": {
|
||||
"length": 1.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [],
|
||||
"errors_sensors": [],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
}
|
||||
Vendored
+340
@@ -0,0 +1,340 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
+340
@@ -0,0 +1,340 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
1000.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+605
@@ -0,0 +1,605 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UC0101-BG3241@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2
|
||||
}
|
||||
],
|
||||
"length": 2921.4,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3240@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0
|
||||
}
|
||||
],
|
||||
"length": 7809.9,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1
|
||||
}
|
||||
],
|
||||
"length": 16082.7,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3260@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1
|
||||
}
|
||||
],
|
||||
"length": 27998.9,
|
||||
"tunnel_indices": [
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "UH01-MA0062@1",
|
||||
"s_artinr": "790902001",
|
||||
"coords": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5
|
||||
}
|
||||
],
|
||||
"length": 10359.5,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-2": {
|
||||
"length": 15.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 15000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_3": {
|
||||
"length": 11.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 1000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 12000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_4": {
|
||||
"length": 4.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_5": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_6": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_7": {
|
||||
"length": 11.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_8": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_9": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 593.6
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_10": {
|
||||
"length": 5.1,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3241@1-Rack_2-1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-MA0062@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3240@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@1-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 593.6
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3260@1-Rack_4": {
|
||||
"length": 0.6,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2-1": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UH01-Rack_3": {
|
||||
"length": 1.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 1000.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"t-Rack-TUNNEL1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-A-Rack_6": {
|
||||
"length": 0.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-E-Rack_7": {
|
||||
"length": 1.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [],
|
||||
"errors_sensors": [],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
}
|
||||
Vendored
+340
@@ -0,0 +1,340 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+331
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
Vendored
+619
@@ -0,0 +1,619 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3270@2": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5926.6,
|
||||
12188.4
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "2",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"PF0000@6": {
|
||||
"A": "0",
|
||||
"B": "PF0000",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13821.7
|
||||
],
|
||||
"IO": "PF0000",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Störung ",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Störung",
|
||||
"TEXT-E": "IL Trouble",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0003@6": {
|
||||
"A": "0",
|
||||
"B": "SF0003",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
14091.7
|
||||
],
|
||||
"IO": "SF0003",
|
||||
"ID": "9999",
|
||||
"VERW": "PB-WH-NO",
|
||||
"BEZEICHNUNG": "DT Lampentest",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DI1",
|
||||
"TEXT-D": "DT Lampentest",
|
||||
"TEXT-E": "PB Lamp test",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0003@6": {
|
||||
"A": "0",
|
||||
"B": "PF0003",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13551.7
|
||||
],
|
||||
"IO": "PF0003",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Druckluft fehlt",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Druckluft fehlt",
|
||||
"TEXT-E": "IL Air pressure missing",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0004@6": {
|
||||
"A": "0",
|
||||
"B": "PF0004",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13281.7
|
||||
],
|
||||
"IO": "PF0004",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Motorschutz hat ausgelöst",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Motorschutz hat ausgelöst",
|
||||
"TEXT-E": "IL Motor protection has tripped",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0005@6": {
|
||||
"A": "0",
|
||||
"B": "PF0005",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13011.7
|
||||
],
|
||||
"IO": "PF0005",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Sicherung hat ausgelöst",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Sicherung hat ausgelöst",
|
||||
"TEXT-E": "IL Fuse has tripped",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0006@6": {
|
||||
"A": "0",
|
||||
"B": "PF0006",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
12741.7
|
||||
],
|
||||
"IO": "PF0006",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-RD-LED",
|
||||
"BEZEICHNUNG": "LM Störung Branschutztüre",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Störung Brandschutztüren",
|
||||
"TEXT-E": "IL Trouble fire door",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0400@6": {
|
||||
"A": "0",
|
||||
"B": "SF0400",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
12471.7
|
||||
],
|
||||
"IO": "SF0400",
|
||||
"ID": "9999",
|
||||
"VERW": "PDT-NC-1",
|
||||
"BEZEICHNUNG": "Not Halt Kanal 1 UH06",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1FDI9",
|
||||
"TEXT-D": "Not-Halt Kanal 1",
|
||||
"TEXT-E": "E-Stop Canal 1",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0404@6": {
|
||||
"A": "0",
|
||||
"B": "SF0404",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
12201.7
|
||||
],
|
||||
"IO": "SF0404",
|
||||
"ID": "9999",
|
||||
"VERW": "PDT-NC-1",
|
||||
"BEZEICHNUNG": "Not Halt Kanal 1 UH06",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1FDI9",
|
||||
"TEXT-D": "Not-Halt Kanal 1",
|
||||
"TEXT-E": "E-stop Canal 1",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
},
|
||||
"DI0005@6": {
|
||||
"IO": "DI0005",
|
||||
"ID": "9999",
|
||||
"VERW": "RELAY-NO",
|
||||
"BEZEICHNUNG": "Phasenausfall 400V",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DI1",
|
||||
"TEXT-D": "Phasenausfall 400V",
|
||||
"TEXT-E": "Phase failure relay 400V",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
11346.6
|
||||
]
|
||||
},
|
||||
"DI0005": {
|
||||
"A": "0",
|
||||
"B": "DI0005",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3423.4,
|
||||
11493.1
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3270@2",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
],
|
||||
"UH06": [
|
||||
"PF0000@6",
|
||||
"SF0003@6",
|
||||
"PF0003@6",
|
||||
"PF0004@6",
|
||||
"PF0005@6",
|
||||
"PF0006@6",
|
||||
"SF0400@6",
|
||||
"SF0404@6"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [
|
||||
"UH06"
|
||||
],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+619
@@ -0,0 +1,619 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3270@2": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5926.6,
|
||||
12188.4
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "2",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"PF0000@6": {
|
||||
"A": "0",
|
||||
"B": "PF0000",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13821.7
|
||||
],
|
||||
"IO": "PF0000",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Störung ",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Störung",
|
||||
"TEXT-E": "IL Trouble",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0003@6": {
|
||||
"A": "0",
|
||||
"B": "SF0003",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
14091.7
|
||||
],
|
||||
"IO": "SF0003",
|
||||
"ID": "9999",
|
||||
"VERW": "PB-WH-NO",
|
||||
"BEZEICHNUNG": "DT Lampentest",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DI1",
|
||||
"TEXT-D": "DT Lampentest",
|
||||
"TEXT-E": "PB Lamp test",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0003@6": {
|
||||
"A": "0",
|
||||
"B": "PF0003",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13551.7
|
||||
],
|
||||
"IO": "PF0003",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Druckluft fehlt",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Druckluft fehlt",
|
||||
"TEXT-E": "IL Air pressure missing",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0004@6": {
|
||||
"A": "0",
|
||||
"B": "PF0004",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13281.7
|
||||
],
|
||||
"IO": "PF0004",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Motorschutz hat ausgelöst",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Motorschutz hat ausgelöst",
|
||||
"TEXT-E": "IL Motor protection has tripped",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0005@6": {
|
||||
"A": "0",
|
||||
"B": "PF0005",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
13011.7
|
||||
],
|
||||
"IO": "PF0005",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-YE-LED",
|
||||
"BEZEICHNUNG": "LM Sicherung hat ausgelöst",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Sicherung hat ausgelöst",
|
||||
"TEXT-E": "IL Fuse has tripped",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"PF0006@6": {
|
||||
"A": "0",
|
||||
"B": "PF0006",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-2662.9,
|
||||
12741.7
|
||||
],
|
||||
"IO": "PF0006",
|
||||
"ID": "9999",
|
||||
"VERW": "IL-RD-LED",
|
||||
"BEZEICHNUNG": "LM Störung Branschutztüre",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DQ1",
|
||||
"TEXT-D": "LM Störung Brandschutztüren",
|
||||
"TEXT-E": "IL Trouble fire door",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0400@6": {
|
||||
"A": "0",
|
||||
"B": "SF0400",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
12471.7
|
||||
],
|
||||
"IO": "SF0400",
|
||||
"ID": "9999",
|
||||
"VERW": "PDT-NC-1",
|
||||
"BEZEICHNUNG": "Not Halt Kanal 1 UH06",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1FDI9",
|
||||
"TEXT-D": "Not-Halt Kanal 1",
|
||||
"TEXT-E": "E-Stop Canal 1",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
},
|
||||
"SF0404@6": {
|
||||
"A": "0",
|
||||
"B": "SF0404",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
12201.7
|
||||
],
|
||||
"IO": "SF0404",
|
||||
"ID": "9999",
|
||||
"VERW": "PDT-NC-1",
|
||||
"BEZEICHNUNG": "Not Halt Kanal 1 UH06",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1FDI9",
|
||||
"TEXT-D": "Not-Halt Kanal 1",
|
||||
"TEXT-E": "E-stop Canal 1",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
},
|
||||
"DI0005@6": {
|
||||
"IO": "DI0005",
|
||||
"ID": "9999",
|
||||
"VERW": "RELAY-NO",
|
||||
"BEZEICHNUNG": "Phasenausfall 400V",
|
||||
"KENNZEICHNUNG": "=A01+UH06-KF1DI1",
|
||||
"TEXT-D": "Phasenausfall 400V",
|
||||
"TEXT-E": "Phase failure relay 400V",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "6",
|
||||
"pos": [
|
||||
-3405.4,
|
||||
11346.6
|
||||
]
|
||||
},
|
||||
"DI0005": {
|
||||
"A": "0",
|
||||
"B": "DI0005",
|
||||
"C": "20092710081010151939",
|
||||
"ARTINR": "",
|
||||
"BESCHR": "",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
-3423.4,
|
||||
11493.1
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3270@2",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
],
|
||||
"UH06": [
|
||||
"PF0000@6",
|
||||
"SF0003@6",
|
||||
"PF0003@6",
|
||||
"PF0004@6",
|
||||
"PF0005@6",
|
||||
"PF0006@6",
|
||||
"SF0400@6",
|
||||
"SF0404@6"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [
|
||||
"UH06"
|
||||
],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+750
@@ -0,0 +1,750 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UC0101-BG3241@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2
|
||||
}
|
||||
],
|
||||
"length": 2921.4,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3240@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0
|
||||
}
|
||||
],
|
||||
"length": 7809.9,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12188.4
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1
|
||||
}
|
||||
],
|
||||
"length": 16023.9,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@2",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12188.4
|
||||
},
|
||||
{
|
||||
"x": 5926.6,
|
||||
"y": 12188.4
|
||||
}
|
||||
],
|
||||
"length": 15277.8,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3260@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1
|
||||
}
|
||||
],
|
||||
"length": 27998.9,
|
||||
"tunnel_indices": [
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "UH01-MA0062@1",
|
||||
"s_artinr": "790902001",
|
||||
"coords": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12188.4
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5
|
||||
}
|
||||
],
|
||||
"length": 10260.5,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-2": {
|
||||
"length": 15.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 15000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_3": {
|
||||
"length": 11.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 1000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 12000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_4": {
|
||||
"length": 4.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_5": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_6": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_7": {
|
||||
"length": 11.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_8": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_9": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12188.4,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_10": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3241@1-Rack_2-1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-MA0062@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3240@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@1-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@2-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12188.4,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5926.6,
|
||||
"y": 12188.4,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3260@1-Rack_4": {
|
||||
"length": 0.6,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2-1": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UH01-Rack_3": {
|
||||
"length": 1.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"t-Rack-TUNNEL1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-A-Rack_6": {
|
||||
"length": 0.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-E-Rack_7": {
|
||||
"length": 1.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [
|
||||
{
|
||||
"unterverteiler": "UH06",
|
||||
"sensoren": [
|
||||
"PF0000@6",
|
||||
"SF0003@6",
|
||||
"PF0003@6",
|
||||
"PF0004@6",
|
||||
"PF0005@6",
|
||||
"PF0006@6",
|
||||
"SF0400@6",
|
||||
"SF0404@6"
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors_sensors": [
|
||||
{
|
||||
"name": "PF0000@6",
|
||||
"coords": {
|
||||
"x": -2662.9,
|
||||
"y": 13821.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SF0003@6",
|
||||
"coords": {
|
||||
"x": -3405.4,
|
||||
"y": 14091.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PF0003@6",
|
||||
"coords": {
|
||||
"x": -2662.9,
|
||||
"y": 13551.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PF0004@6",
|
||||
"coords": {
|
||||
"x": -2662.9,
|
||||
"y": 13281.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PF0005@6",
|
||||
"coords": {
|
||||
"x": -2662.9,
|
||||
"y": 13011.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PF0006@6",
|
||||
"coords": {
|
||||
"x": -2662.9,
|
||||
"y": 12741.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SF0400@6",
|
||||
"coords": {
|
||||
"x": -3405.4,
|
||||
"y": 12471.7
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SF0404@6",
|
||||
"coords": {
|
||||
"x": -3405.4,
|
||||
"y": 12201.7
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [
|
||||
"UH06"
|
||||
],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
}
|
||||
Vendored
+603
@@ -0,0 +1,603 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UC0101-BG3241@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2
|
||||
}
|
||||
],
|
||||
"length": 2921.4,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3240@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0
|
||||
}
|
||||
],
|
||||
"length": 7809.9,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1
|
||||
}
|
||||
],
|
||||
"length": 16023.9,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3260@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1
|
||||
}
|
||||
],
|
||||
"length": 27998.9,
|
||||
"tunnel_indices": [
|
||||
6,
|
||||
7
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "UH01-MA0062@1",
|
||||
"s_artinr": "790902001",
|
||||
"coords": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5
|
||||
},
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5
|
||||
}
|
||||
],
|
||||
"length": 10260.5,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-2": {
|
||||
"length": 15.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 15000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_3": {
|
||||
"length": 11.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 1000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 12000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_4": {
|
||||
"length": 4.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_5": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_6": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_7": {
|
||||
"length": 11.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_8": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_9": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_10": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3241@1-Rack_2-1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-MA0062@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4967.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 8072.5,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3240@1-Rack_1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 4961.9,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5609.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@1-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3260@1-Rack_4": {
|
||||
"length": 0.6,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2-1": {
|
||||
"length": 0.7,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 4162.8,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UH01-Rack_3": {
|
||||
"length": 1.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 7000.0,
|
||||
"y": 16300.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"t-Rack-TUNNEL1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-A-Rack_6": {
|
||||
"length": 0.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9800.0,
|
||||
"y": 9000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-TUNNEL1-E-Rack_7": {
|
||||
"length": 1.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 21282.5,
|
||||
"y": 9295.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [],
|
||||
"errors_sensors": [],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {}
|
||||
}
|
||||
Vendored
+358
@@ -0,0 +1,358 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"MA0062@1": {
|
||||
"A": "0",
|
||||
"B": "MA0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "790902001",
|
||||
"BESCHR": "E-Teile für SEW Motor ASE1/HAN10ES - BG",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4967.0,
|
||||
8072.5
|
||||
],
|
||||
"IO": "MA0062",
|
||||
"ID": "",
|
||||
"VERW": "CV-M0062_0,75",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-E": "Motor MA0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3240@1": {
|
||||
"A": "0",
|
||||
"B": "BG3240",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
4961.9,
|
||||
5609.0
|
||||
],
|
||||
"IO": "BG3240",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062": {
|
||||
"A": "0",
|
||||
"B": "FC0062",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "703001017",
|
||||
"BESCHR": "Hilfschalter für 3RV2011 ",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5272.5,
|
||||
8378.8
|
||||
]
|
||||
},
|
||||
"FC0062@1": {
|
||||
"IO": "FC0062",
|
||||
"ID": "",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DI2",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
4973.9,
|
||||
8072.5
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3241@1",
|
||||
"BG3240@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
0.0,
|
||||
4162.8
|
||||
],
|
||||
"UH01": [
|
||||
7000.0,
|
||||
16300.0
|
||||
]
|
||||
},
|
||||
"tunnels": {
|
||||
"TUNNEL1": [
|
||||
[
|
||||
9800.0,
|
||||
9000.0
|
||||
],
|
||||
[
|
||||
21282.5,
|
||||
9295.2
|
||||
]
|
||||
],
|
||||
"TUNNEL2": [
|
||||
[
|
||||
19214.1,
|
||||
7471.9
|
||||
],
|
||||
[
|
||||
18988.2,
|
||||
6447.7
|
||||
],
|
||||
[
|
||||
19219.3,
|
||||
6024.1
|
||||
]
|
||||
],
|
||||
"length": {
|
||||
"TUNNEL1": "3500",
|
||||
"TUNNEL2": "3500"
|
||||
}
|
||||
},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"overdefined_tunnel": [
|
||||
"TUNNEL2"
|
||||
],
|
||||
"missing_attributes": {
|
||||
"BX0101": "Nur ein Block und/oder fehlende Attribute: dict_keys(['A', 'B', 'C', 'ARTINR', 'BESCHR', 'MENGE', 'POSITION', 'GRUPPE', 'ETIKETTE', 'AUFLOESE', 'pos'])"
|
||||
}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+111130
File diff suppressed because it is too large
Load Diff
Vendored
+300
@@ -0,0 +1,300 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3240@1": {
|
||||
"SPS": "1",
|
||||
"IO": "BG3240",
|
||||
"VERW": "Jam detector (LP)",
|
||||
"BEZEICHNUNG": "",
|
||||
"ARTINR": "722001335",
|
||||
"ARTIBEZEICHN": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5493.9,
|
||||
5608.9
|
||||
]
|
||||
},
|
||||
"MA0062@1": {
|
||||
"SPS": "1",
|
||||
"IO": "MA0062",
|
||||
"VERW": "TEF-M0000-0,55",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"ARTINR": "790902001",
|
||||
"ARTIBEZEICHN": "E-Teile für SEW Motor ASE1 - HAN10ES - BG",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5272.9,
|
||||
7970.2
|
||||
]
|
||||
},
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062@1": {
|
||||
"SPS": "1",
|
||||
"IO": "FC0062",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"ARTINR": "722001335",
|
||||
"ARTIBEZEICHN": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5272.9,
|
||||
8240.2
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3240@1",
|
||||
"BG3241@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
-233.4,
|
||||
4221.1
|
||||
],
|
||||
"UH01": [
|
||||
6756.1,
|
||||
16291.2
|
||||
]
|
||||
},
|
||||
"tunnels": {},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+300
@@ -0,0 +1,300 @@
|
||||
{
|
||||
"sensors": {
|
||||
"BG3240@1": {
|
||||
"SPS": "1",
|
||||
"IO": "BG3240",
|
||||
"VERW": "Jam detector (LP)",
|
||||
"BEZEICHNUNG": "",
|
||||
"ARTINR": "722001335",
|
||||
"ARTIBEZEICHN": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5493.9,
|
||||
5608.9
|
||||
]
|
||||
},
|
||||
"MA0062@1": {
|
||||
"SPS": "1",
|
||||
"IO": "MA0062",
|
||||
"VERW": "TEF-M0000-0,55",
|
||||
"BEZEICHNUNG": "Motor MA0062",
|
||||
"ARTINR": "790902001",
|
||||
"ARTIBEZEICHN": "E-Teile für SEW Motor ASE1 - HAN10ES - BG",
|
||||
"KENNZEICHNUNG": "=A01+UH01-KF1DQ04",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5272.9,
|
||||
7970.2
|
||||
]
|
||||
},
|
||||
"BG3241@1": {
|
||||
"A": "0",
|
||||
"B": "BG3241",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
38.8,
|
||||
1280.2
|
||||
],
|
||||
"IO": "BG3241",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
},
|
||||
"BG3270@1": {
|
||||
"A": "0",
|
||||
"B": "BG3270",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
5893.0,
|
||||
12968.1
|
||||
],
|
||||
"IO": "BG3270",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": ""
|
||||
},
|
||||
"BG3260@1": {
|
||||
"A": "0",
|
||||
"B": "BG3260",
|
||||
"C": "20073710081010151939",
|
||||
"ARTINR": "200000248",
|
||||
"BESCHR": "STAUABFRAGE[LT] KPL.",
|
||||
"MENGE": "1",
|
||||
"POSITION": "0",
|
||||
"GRUPPE": "9",
|
||||
"ETIKETTE": "0",
|
||||
"AUFLOESE": "N",
|
||||
"pos": [
|
||||
22355.3,
|
||||
13524.1
|
||||
],
|
||||
"IO": "BG3260",
|
||||
"ID": "",
|
||||
"VERW": "Jam detector",
|
||||
"BEZEICHNUNG": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-E": "conveyor full",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"SPS": "1",
|
||||
"REALE_POSITION": "x"
|
||||
}
|
||||
},
|
||||
"schaltschrank_elemente": {
|
||||
"FC0062@1": {
|
||||
"SPS": "1",
|
||||
"IO": "FC0062",
|
||||
"VERW": "MS FC0062",
|
||||
"BEZEICHNUNG": "Meldekontakt Motorschutzschalter FC0062",
|
||||
"ARTINR": "722001335",
|
||||
"ARTIBEZEICHN": "Stausensor 1 (ILS-CV M0108)",
|
||||
"KENNZEICHNUNG": "=A01+UC0101-KF1DI1",
|
||||
"TEXT-D": "",
|
||||
"TEXT-E": "Motor protection switch signaling contact FC0062",
|
||||
"TEXT-ES": "",
|
||||
"TEXT-F": "",
|
||||
"TEXT-I": "",
|
||||
"ID": "",
|
||||
"REALE_POSITION": "x",
|
||||
"pos": [
|
||||
5272.9,
|
||||
8240.2
|
||||
]
|
||||
}
|
||||
},
|
||||
"mappings": {
|
||||
"UC0101": [
|
||||
"BG3240@1",
|
||||
"BG3241@1",
|
||||
"BG3270@1",
|
||||
"BG3260@1"
|
||||
],
|
||||
"UH01": [
|
||||
"MA0062@1"
|
||||
]
|
||||
},
|
||||
"distributors": {
|
||||
"UC0101": [
|
||||
-233.4,
|
||||
4221.1
|
||||
],
|
||||
"UH01": [
|
||||
6756.1,
|
||||
16291.2
|
||||
]
|
||||
},
|
||||
"tunnels": {},
|
||||
"racks": {
|
||||
"Rack_1": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_2": [
|
||||
[
|
||||
0.0,
|
||||
0.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
3500.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_3": [
|
||||
[
|
||||
1000.0,
|
||||
15000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
12000.0,
|
||||
15000.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_4": [
|
||||
[
|
||||
18561.2,
|
||||
14141.3,
|
||||
0
|
||||
],
|
||||
[
|
||||
23052.9,
|
||||
14141.3,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_5": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_6": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
3500.0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_7": [
|
||||
[
|
||||
20282.5,
|
||||
15960.6,
|
||||
0
|
||||
],
|
||||
[
|
||||
20282.5,
|
||||
4064.6,
|
||||
0
|
||||
]
|
||||
],
|
||||
"Rack_8": [
|
||||
[
|
||||
2800.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
2800.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_9": [
|
||||
[
|
||||
5000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
5000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
],
|
||||
"Rack_10": [
|
||||
[
|
||||
9000.0,
|
||||
10000.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
9000.0,
|
||||
15000.0,
|
||||
0.0
|
||||
]
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"missing_distributors": [],
|
||||
"missing_sensors": [],
|
||||
"missing_tunnel": [],
|
||||
"missing_attributes": {}
|
||||
},
|
||||
"double_ids": {}
|
||||
}
|
||||
Vendored
+496
@@ -0,0 +1,496 @@
|
||||
{
|
||||
"kabel": [
|
||||
{
|
||||
"id": "UC0101-BG3240@1",
|
||||
"s_artinr": "722001335",
|
||||
"coords": [
|
||||
{
|
||||
"x": -233.4,
|
||||
"y": 4221.1
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5608.9
|
||||
},
|
||||
{
|
||||
"x": 5493.9,
|
||||
"y": 5608.9
|
||||
}
|
||||
],
|
||||
"length": 8360.7,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3241@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": -233.4,
|
||||
"y": 4221.1
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2
|
||||
}
|
||||
],
|
||||
"length": 3016.5,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UC0101-BG3270@1",
|
||||
"s_artinr": "200000248",
|
||||
"coords": [
|
||||
{
|
||||
"x": -233.4,
|
||||
"y": 4221.1
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5608.9
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7970.2
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1
|
||||
}
|
||||
],
|
||||
"length": 16119.0,
|
||||
"tunnel_indices": []
|
||||
},
|
||||
{
|
||||
"id": "UH01-MA0062@1",
|
||||
"s_artinr": "790902001",
|
||||
"coords": [
|
||||
{
|
||||
"x": 6756.1,
|
||||
"y": 16291.2
|
||||
},
|
||||
{
|
||||
"x": 6756.1,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7970.2
|
||||
},
|
||||
{
|
||||
"x": 5272.9,
|
||||
"y": 7970.2
|
||||
}
|
||||
],
|
||||
"length": 10350.0,
|
||||
"tunnel_indices": []
|
||||
}
|
||||
],
|
||||
"rack_geometry": {
|
||||
"Rack_1": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5608.9,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7970.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-1": {
|
||||
"length": 3.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_2-2": {
|
||||
"length": 15.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 15000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_3": {
|
||||
"length": 11.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 1000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 6756.1,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 12000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_4": {
|
||||
"length": 4.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 18561.2,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 23052.9,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_5": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_6": {
|
||||
"length": 6.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_7": {
|
||||
"length": 11.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 4064.6,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 20282.5,
|
||||
"y": 15960.6,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_8": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 2800.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_9": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rack_10": {
|
||||
"length": 5.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 10000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 9000.0,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3240@1-Rack_1": {
|
||||
"length": 0.5,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 5608.9,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5493.9,
|
||||
"y": 5608.9,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-MA0062@1-Rack_1": {
|
||||
"length": 0.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 7970.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5272.9,
|
||||
"y": 7970.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3241@1-Rack_2-1": {
|
||||
"length": 0.0,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 38.8,
|
||||
"y": 1280.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3270@1-Rack_9": {
|
||||
"length": 0.9,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 5000.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 5893.0,
|
||||
"y": 12968.1,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-BG3260@1-Rack_4": {
|
||||
"length": 0.6,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 13524.1,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 22355.3,
|
||||
"y": 14141.3,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UC0101-Rack_2-1": {
|
||||
"length": 0.8,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 0.0,
|
||||
"y": 3500.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": -233.4,
|
||||
"y": 4221.1,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
},
|
||||
"v-UH01-Rack_3": {
|
||||
"length": 1.3,
|
||||
"coordinates": [
|
||||
{
|
||||
"x": 6756.1,
|
||||
"y": 15000.0,
|
||||
"z": 0.0
|
||||
},
|
||||
{
|
||||
"x": 6756.1,
|
||||
"y": 16291.2,
|
||||
"z": 0.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"errors_routing": [
|
||||
{
|
||||
"unterverteiler": "UC0101",
|
||||
"sensoren": [
|
||||
"BG3260@1"
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors_sensors": [],
|
||||
"errors_dists": [],
|
||||
"errors_tunnels": [],
|
||||
"errors_dists_not_in_layout": [],
|
||||
"errors_sensors_not_in_layout": [],
|
||||
"errors_missing_attributes": {}
|
||||
}
|
||||
Reference in New Issue
Block a user