From 640bbe716ebb653a4db902fbc43e05a29537da1c Mon Sep 17 00:00:00 2001 From: mistangl Date: Fri, 1 Dec 2023 15:03:34 +0100 Subject: [PATCH] =?UTF-8?q?TOS=20Gruppen=20json=20Datei=20vervollst=C3=A4n?= =?UTF-8?q?digt.=20Nur=20TOS=20Ids=20mit=20Referenzen=20werden=20jetzt=20m?= =?UTF-8?q?it=20rausgeschrieben.=20Falls=20eine=20reference=20Id=20existie?= =?UTF-8?q?rt,=20welche=20nicht=20verwendet=20wird,=20wird=20diese=20wegge?= =?UTF-8?q?lassen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cfg/TOS-Gruppen.json | 327 +++++++++++++++++++++++++++++++++++++++++++ lib/create_tos.py | 10 +- 2 files changed, 334 insertions(+), 3 deletions(-) diff --git a/cfg/TOS-Gruppen.json b/cfg/TOS-Gruppen.json index 60466ec..20867c3 100644 --- a/cfg/TOS-Gruppen.json +++ b/cfg/TOS-Gruppen.json @@ -94,5 +94,332 @@ "330": "TOS_Trolley", "331": "TOS_Trolley_Projekte" } + }, + "TOS_ILS_2": { + "TOS-level": 4, + "children": { + "3000": "Modul", + "3001": "Modul-Komponente", + "3002": "Kreisel-Komponente", + "3003": "Laufprofil 2.0", + "3004": "Gefälle", + "3005": "Be-/Entladung" + }, + "reference-ids": {} + }, + "TOS_ILS_Foerderer": { + "TOS-level": 4, + "children": { + "3100": "Aluschiene", + "3101": "Bogen", + "3102": "Weiche", + "3103": "Zubehör", + "3104": "Ladeschleife", + "3105": "Türlösung", + "3106": "Einhängeschiene" + }, + "reference-ids": {} + }, + "TOS_Trolley": { + "TOS-level": 4, + "children": { + "3300": "Omniflo", + "3301": "Spinnerei", + "3302": "ILS", + "3303": "CDDC", + "3304": "CPC" + }, + "reference-ids": { + "3300": "TOS_Trolley_Omniflo", + "3301": "TOS_Trolley_Spinnerei", + "3302": "TOS_Trolley_ILS" + } + }, + "TOS_Trolley_Omniflo": { + "TOS-level": 5, + "children": { + "33000": "Trolley-V", + "33001": "Trolley Hängeware", + "33002": "Trolley Träger TT f. versch. Anwendungen", + "33003": "Trolley für Liegeware", + "33004": "Trolley Accessoires", + "33005": "Spulenzüge für diverse Anwendungen", + "33006": "Trolley/Trolley-V in Altanlagen" + }, + "reference-ids": {} + }, + "TOS_Trolley_Spinnerei": { + "TOS-level": 5, + "children": { + "33010": "Spulenzug", + "33011": "Zubehör" + }, + "reference-ids": {} + }, + "TOS_Trolley_ILS": { + "TOS-level": 5, + "children": { + "33020": "Single carrier SC", + "33021": "Minitrolley MT", + "33022": "Tasche" + }, + "reference-ids": {} + }, + "TOS_Trolley_Projekte": { + "TOS-level": 4, + "children": { + "3310": "Liegeware", + "3311": "diverse Anwendungen", + "3312": "Träger TT", + "3313": "ILS", + "3314": "CDDC" + }, + "reference-ids": {} + }, + "TOS_Geruest": { + "TOS-level": 3, + "children": { + "340": "Rohrträger", + "341": "Abhänger", + "342": "Säule", + "343": "Gatterträger", + "344": "Verbindungselement", + "345": "DRT-Kleinteil", + "346": "Fangnetz, Bühne, Treppe" + }, + "reference-ids": {} + }, + "TOS_FremdTransport": { + "TOS-level": 3, + "children": { + "350": "PIN & Klinke", + "351": "CDDC", + "352": "Andere Kleiderbügelsysteme" + }, + "reference-ids": {} + }, + "TOS_MAS_Konfig": { + "TOS-level": 3, + "children": { + "360": "Farbe / EL / H" + }, + "reference-ids": {} + }, + "TOS_Automation": { + "TOS-level": 2, + "children": { + "40": "Schaltschrank", + "41": "Schaltschrank Einbaumaterial", + "42": "Dezentrale Hardware", + "43": "Sensorik", + "44": "Kabel", + "45": "Installationsmaterial", + "46": "Frei", + "47": "Frei", + "48": "Frei", + "49": "Sonstiges" + }, + "reference-ids": { + "40": "TOS_Schaltschrank", + "41": "TOS_Schalt_Einbau", + "42": "TOS_Dezentral", + "43": "TOS_Automation_Sensorik", + "44": "TOS_Kabel", + "45": "TOS_Installation", + "49": "TOS_Automation_Sonstiges" + } + }, + "TOS_Schaltschrank": { + "TOS-level": 3, + "children": { + "400": "Stand Schaltschrank", + "401": "Kompakt Schaltschrank", + "402": "Klemmkasten", + "403": "Anzeige und Bedienelement", + "404": "Kabeleinführung", + "405": "Anbau/Einbau Gerät" + }, + "reference-ids": {} + }, + "TOS_Schalt_Einbau": { + "TOS-level": 3, + "children": { + "410": "Einbaumaterial", + "411": "Netzteil", + "412": "Sicherheitstechnik", + "413": "SPS", + "414": "Netzwerk Komponente", + "415": "Schütz", + "416": "Sicherung", + "417": "Motorschutzschalter", + "418": "Frequenzumrichter" + }, + "reference-ids": {} + }, + "TOS_Dezentral": { + "TOS-level": 3, + "children": { + "420": "Bedientableau", + "421": "I/O - Modul IP65/IP67" + }, + "reference-ids": {} + }, + "TOS_Automation_Sensorik": { + "TOS-level": 3, + "children": { + "430": "Induktiv", + "431": "Optisch", + "432": "Lichtschranke", + "433": "Mechanischer Schalter", + "434": "Frei", + "435": "Frei", + "436": "Zubehör Sensorik", + "437": "Druckwächter", + "438": "Reedkontakte", + "439": "Scanner / Kamera" + }, + "reference-ids": {} + }, + "TOS_Kabel": { + "TOS-level": 3, + "children": { + "440": "Steuerleitung", + "441": "Anschlussleitung", + "442": "Feldbusleitung", + "443": "Zubehör" + }, + "reference-ids": {} + }, + "TOS_Installation": { + "TOS-level": 3, + "children": { + "450": "Kabelpritsche", + "451": "Kabelkanal", + "452": "Installationsrohr", + "453": "Anlagenerdung" + }, + "reference-ids": {} + }, + "TOS_Automation_Sonstiges": { + "TOS-level": 3, + "children": { + "490": "Beschriftung", + "491": "Schüttgut" + }, + "reference-ids": {} + }, + "TOS_Maschinenelement": { + "TOS-level": 2, + "children": { + "50": "Verbindungselement", + "51": "Lager", + "52": "Kraft-/Drehmomentübertragungselement", + "53": "Dichtung", + "54": "Sicherungselement", + "55": "Bedienungselement", + "56": "Transportelement", + "57": "Abschlusselement" + }, + "reference-ids": { + "50": "TOS_Verbindungselement", + "51": "TOS_Lager", + "52": "TOS_Kraft_Drehmoment", + "54": "TOS_Sicherungselement", + "55": "TOS_Bedienungselement", + "56": "TOS_Transportelement" + } + }, + "TOS_Verbindungselement": { + "TOS-level": 3, + "children": { + "500": "Schraube", + "501": "Mutter", + "502": "Scheibe", + "503": "Stift, Bolzen", + "504": "Boden-/ Wandanker", + "505": "Nutenstein", + "506": "Niete", + "507": "diverse Maschinenelemente" + }, + "reference-ids": {} + }, + "TOS_Lager": { + "TOS-level": 3, + "children": { + "510": "Gleitlager", + "511": "Wälzlager" + }, + "reference-ids": {} + }, + "TOS_Kraft_Drehmoment": { + "TOS-level": 3, + "children": { + "520": "Zahntriebelement", + "521": "Kettentriebelement", + "522": "Riemen, Spannbuchse", + "523": "Spannelement", + "524": "Kupplung", + "525": "Feder", + "526": "Passfeder" + }, + "reference-ids": {} + }, + "TOS_Sicherungselement": { + "TOS-level": 3, + "children": { + "540": "Schraubensicherung", + "541": "Wellen-/Bohrungssicherung", + "542": "Achsensicherung" + }, + "reference-ids": {} + }, + "TOS_Bedienungselement": { + "TOS-level": 3, + "children": { + "550": "Griffe", + "551": "Hebel", + "552": "Arretierer", + "553": "Gestänge" + }, + "reference-ids": {} + }, + "TOS_Schoenenberger_Komponenten": { + "TOS-level": 2, + "children": { + "60": "frei", + "61": "frei", + "62": "frei", + "63": "frei", + "64": "frei", + "65": "frei", + "66": "frei", + "67": "frei", + "68": "frei", + "69": "frei" + }, + "reference-ids": {} + }, + "TOS_Pneumatik": { + "TOS-level": 2, + "children": { + "70": "Pneumatische Antriebe und Zylinder", + "71": "Ventil", + "72": "Sensoren und Leitungen", + "73": "Schlauch", + "74": "Verbindungselement", + "75": "Verteiler", + "76": "Zubehör (Dichtung, Muffe usw.)" + }, + "reference-ids": {} + }, + "TOS_Konfig": { + "TOS-level": 2, + "children": { + "80": "Texte", + "81": "Band-Konfiguration", + "82": "STL-Konfiguration", + "83": "Kalkulation" + }, + "reference-ids": {} } } diff --git a/lib/create_tos.py b/lib/create_tos.py index 93b445a..8d89e87 100644 --- a/lib/create_tos.py +++ b/lib/create_tos.py @@ -14,13 +14,16 @@ Codebereich liegt bei Calk Link 10 """ def get_children_keys(tos_hierarchy, currentId, result): + # wenn eine Referenz nicht weiter in der TOS Hierarchy vorkommt, dann nicht mit einsammeln if currentId not in tos_hierarchy: return None childIds = tos_hierarchy[currentId]["reference-ids"].values() level = tos_hierarchy[currentId]["TOS-level"] if len(childIds) > 0: for cId in childIds: - result[cId] = level + # prüfen, ob die Referenz sonst noch verwendet wird + if cId in tos_hierarchy: + result[cId] = level for cId in childIds: get_children_keys(tos_hierarchy, cId, result) @@ -30,6 +33,8 @@ def get_all_keywords(tos_hierarchy): rootid = tos_hierarchy["root"] # und von dort aus alle Referenzen result = dict() + # root als Nullte Ebene dazu + result[rootid] = 0 get_children_keys(tos_hierarchy, rootid, result) return result @@ -51,9 +56,8 @@ def create_tos_string(config_path): allKeywords = get_all_keywords(tos_hierarchy) myIds = list() - for level in range(1,5): + for level in range(0,5): myIds.extend(get_keywords_of_level(allKeywords, level)) - print(myIds) res += '")&EdmCodVal("'.join(myIds) res += '")'