Anwenderdoku und Doku kurz um Fehlerfälle, Warnungen und was diese bedeuten ergänzt

This commit is contained in:
2025-12-18 16:41:07 +01:00
parent 9b9d3a8f7c
commit 21b3feeca9
4 changed files with 55 additions and 365 deletions
+49 -38
View File
@@ -1,25 +1,25 @@
# Anwenderdoku zur Ermittlung der Kabellängen <!-- omit in toc -->
- [Installation des Programmes und Schnellstart-Guide](#installation-des-programmes-und-schnellstart-guide)
- [1. Installation des Programmes und Schnellstart-Guide](#1-installation-des-programmes-und-schnellstart-guide)
- [Installation](#installation)
- [Schnellstart und Vewendung des Programms](#schnellstart-und-vewendung-des-programms)
- [Standardmäßige Ausgabe des Programms](#standardmäßige-ausgabe-des-programms)
- [.dxf-Datei: *dxfdatei*\_cables.dxf](#dxf-datei-dxfdatei_cablesdxf)
- [Excel-Datei: *dxfdatei*\_cables.xlsx](#excel-datei-dxfdatei_cablesxlsx)
- [Excel-Datei: *dxfdatei*\_BOM.xlsx](#excel-datei-dxfdatei_bomxlsx)
- [Anpassung des Verhaltens des Programms:](#anpassung-des-verhaltens-des-programms)
- [2. Anpassung des Verhaltens des Programms](#2-anpassung-des-verhaltens-des-programms)
- [Verwendete Konfigurationsdateien](#verwendete-konfigurationsdateien)
- [Zusammenfassung und Struktur der Konfigurationsdateien](#zusammenfassung-und-struktur-der-konfigurationsdateien)
- [allgemein.cfg](#allgemeincfg)
- [BMK.cfg](#bmkcfg)
- [kabel.cfg](#kabelcfg)
- [bezeichner.cfg](#bezeichnercfg)
- [Anwenderhinweise zur Layouterstellung](#anwenderhinweise-zur-layouterstellung)
- [3. Anwenderhinweise zur Layouterstellung](#3-anwenderhinweise-zur-layouterstellung)
- [Verwendung der Layer](#verwendung-der-layer)
- [Zeichnen von Kabeltrassen](#zeichnen-von-kabeltrassen)
- [Attribute der Blöcke (Bauteile)](#attribute-der-blöcke-bauteile)
- [Positionierung von Bauteilen](#positionierung-von-bauteilen)
- [Detaillierte Informationen zum Programmablauf und Code-Struktur](#detaillierte-informationen-zum-programmablauf-und-code-struktur)
- [4. Detaillierte Informationen zum Programmablauf und Code-Struktur](#4-detaillierte-informationen-zum-programmablauf-und-code-struktur)
- [Zweck des Programms](#zweck-des-programms)
- [Allgemeiner Programmablauf](#allgemeiner-programmablauf)
- [Aufruf des Programms](#aufruf-des-programms)
@@ -29,12 +29,29 @@
- [Details zu `routing.py`](#details-zu-routingpy)
- [Details zu `drawdxf.py`](#details-zu-drawdxfpy)
- [Häufige Fagen](#häufige-fagen)
- [Wo stelle ich ein, was das Toolset am Ende ausspuckt?](#wo-stelle-ich-ein-was-das-toolset-am-ende-ausspuckt)
- [Warum werden manche Kabeltrassen nicht mit anderen verbunden?](#warum-werden-manche-kabeltrassen-nicht-mit-anderen-verbunden)
- [Warum verbindet das Programm den Sensor mit genau dieser Kabeltrasse?](#warum-verbindet-das-programm-den-sensor-mit-genau-dieser-kabeltrasse)
- [Ideen für "Umbau" der Programme](#ideen-für-umbau-der-programme)
- [5. Fehlerfälle und Fehlerbehandlung](#5-fehlerfälle-und-fehlerbehandlung)
- [Allgemeine Fehler und Warnungen (beide Workflows)](#allgemeine-fehler-und-warnungen-beide-workflows)
- [Detaillierte Beschreibung der Warnungen (Warnings)](#detaillierte-beschreibung-der-warnungen-warnings)
- [1. `missing_attributes` (Fehlende oder unvollständige Block-Attribute)](#1-missing_attributes-fehlende-oder-unvollständige-block-attribute)
- [2. `tunnel_missing_length` (Fehlende Längenangabe bei Tunnel)](#2-tunnel_missing_length-fehlende-längenangabe-bei-tunnel)
- [3. `mapping_warnings` (Probleme bei KENNZEICHNUNG-Zuordnung)](#3-mapping_warnings-probleme-bei-kennzeichnung-zuordnung)
- [3a. "keine KENNZEICHNUNG vorhanden"](#3a-keine-kennzeichnung-vorhanden)
- [3b. "Ungültiger Pfad in Kennzeichnung"](#3b-ungültiger-pfad-in-kennzeichnung)
- [Zusammenfassung: Umgang mit Warnungen](#zusammenfassung-umgang-mit-warnungen)
- [Cable Routing spezifische Fehler](#cable-routing-spezifische-fehler)
- [Fehlertypen im Routing-Prozess](#fehlertypen-im-routing-prozess)
- [Detail-Beschreibungen der Routing-Fehler](#detail-beschreibungen-der-routing-fehler)
- [Equipment Connection Errors (ERR-Equipment-Connection)](#equipment-connection-errors-err-equipment-connection)
- [Routing Errors (ERR-Routing)](#routing-errors-err-routing)
- [Tunnel Connection Errors](#tunnel-connection-errors)
- [Hinweise zur Excel-Fehlerausgabe (Cable Routing)](#hinweise-zur-excel-fehlerausgabe-cable-routing)
- [I/O Conversion Workflow - Hinweise](#io-conversion-workflow---hinweise)
- [Ausgabedateien bei Fehlern](#ausgabedateien-bei-fehlern)
- [Wichtige Hinweise](#wichtige-hinweise)
# Installation des Programmes und Schnellstart-Guide
# 1. Installation des Programmes und Schnellstart-Guide
## Installation
@@ -50,6 +67,17 @@ Ist Python installiert, werden per Doppelklick automatisch auf die `bin\install_
## Schnellstart und Vewendung des Programms
Das Programm bietet **drei Hauptworkflows**, die je nach Anwendungsfall eingesetzt werden:
### Workflow-Übersicht
| Workflow | Batch-Datei | Zweck | Ausgabe | Verwendete Configs |
| -------- | ----------- | ----- | ------- | ------------------ |
| **Cable Routing** | `getexdraw.bat` | Vollständige Kabelberechnung mit Längen und Stücklisten | `*_cables.dxf`, `*_cables.xlsx`, `*_BOM.xlsx` | `allgemein.cfg`, `BMK.cfg`, `kabel.cfg`, `bezeichner.cfg` |
| **I/O Conversion** | `ioconverter.bat` | Export von Gerätelisten für TIA Portal, WSCAD, etc. | `*-TIA.xlsx`, `*-WSCAD.xlsx`, u.a. | `allgemein.cfg`, `BMK.cfg` |
| **Translation** | `extract.bat` + `tr2dxf_<lang>.bat` | Textextraktion und Übersetzung von DXF-Inhalten | `*_texts.json`/`.xlsx`, `*_<lang>.dxf` | `allgemein.cfg`, `translation/*.cfg` |
**Hauptworkflow (Cable Routing):**
Im auf dem Desktop erzeugten Ordner findet sich das eigentliche Programm *create_cables*. Um das Programm auszuführen, genügt es die zu verarbeitende .**dxf-Datei** per *Drag and Drop* auf das Programm zu ziehen. Das öffnen der *Command-Shell* bestätigt den Start des Programms und der Anwender wird über den Ablauf informiert.
Die Ausgabe schreibt:
@@ -179,7 +207,7 @@ Dieses Worksheet gibt für jede Artikelnummer aus, **welchem Unterverteiler (UV)
Hinweis: Diese Ansicht ist besonders nützlich zur **vorbereitenden Bestellplanung pro UV**.
# Anpassung des Verhaltens des Programms:
# 2. Anpassung des Verhaltens des Programms
## Verwendete Konfigurationsdateien
@@ -374,7 +402,7 @@ Die Einträge in den `.cfg`-Dateien müssen **laufend gepflegt** werden, wenn si
**Nur so kann eine korrekte automatische Kabelberechnung und Zuordnung gewährleistet werden.**
# Anwenderhinweise zur Layouterstellung
# 3. Anwenderhinweise zur Layouterstellung
Im nachfolgenden Abschnitt sind die **wichtigsten** Punkte zur Erstellung der Layoutzeichnungen aufgeführt. Die Beachtung dieser Hinweise stellt sicher, dass die automatische Auswertung durch das Programm fehlerfrei und zuverlässig erfolgen kann.
@@ -447,7 +475,7 @@ Im nachfolgenden Abschnitt sind die **wichtigsten** Punkte zur Erstellung der La
- Es ist daher darauf zu achten, dass Bauteile (bzw. deren reale Positionen) **räumlich korrekt und in sinnvoller Nähe** zu den Kabeltrassen platziert sind.
# Detaillierte Informationen zum Programmablauf und Code-Struktur
# 4. Detaillierte Informationen zum Programmablauf und Code-Struktur
## Zweck des Programms
@@ -511,15 +539,15 @@ fetches the x/y positions from a dxf file
Schalter:
| Schalter<br>(kurz) | Schalter<br>(lang) | Argument<br>(notwendig!) | Hilfe |
|--------------------|--------------------|--------------------------|--------------------------------------------------------------|
| `-h` | `--help` | | show this help message and exit |
| `-f` | `--filename` | `myfile.dxf` | file to be analyzed |
| `-s` | `--sensors` | | fetch all positions of sensors, actors and subdistributors |
| `-r` | `--rack` | | fetch all positions of all cable racks |
| `-w` | `--write` | `myfile_positions.json` | write results into a json file |
| `-c` | `--console` | | print results to output |
| `-e` | `--errors` | `myfile_errors.json` | write an error file in case of double defined items in layout|
| Schalter<br>(kurz) | Schalter<br>(lang) | Argument<br>(notwendig!) | Hilfe |
|--------------------|--------------------|--------------------------|------------------------------------------------------------------------|
| `-h` | `--help` | | show this help message and exit |
| `-f` | `--filename` | `myfile.dxf` | file to be analyzed |
| `-s` | `--sensors` | | fetch all positions of sensors, motors, actors and subdistributors |
| `-r` | `--rack` | | fetch all positions of all cable racks |
| `-w` | `--write` | `myfile_positions.json` | write results into a json file |
| `-c` | `--console` | | print results to output |
| `-e` | `--errors` | `myfile_errors.json` | write an error file in case of double defined items in layout |
| `-n` | `--scan` | | print all layer of racks, distributors and equipment not empty|
@@ -712,10 +740,6 @@ Das letzte Programm gibt standardmäßig zudem eine Excel-Übersicht der Kabel z
## Häufige Fagen
### Wo stelle ich ein, was das Toolset am Ende ausspuckt?
Hier müssen wir das mit der einzelnen Config noch implementieren
### Warum werden manche Kabeltrassen nicht mit anderen verbunden?
Mittels der Methode `join_racks()`, welche innerhalb `plant.py` definiert ist und von `routing.py` aufgerufen wird, werden die Rack-Segmente, welche von `getpositions.py` übergeben werden, auf echte Schnittpunkte, sowie beinahe Schnittpunkte überprüft und an den jeweiligen Punkten verknüpft. Beinahe Schnittpunkte werden durch Entlanglaufen der einzelnen Racks und "Absuchen" eines Toleranzfeldes ermitteln.
@@ -744,21 +768,7 @@ Schritt 2: Bei Ausbleiben eines Schnittpunktes -> Vergrößern des Kreises. Bei
<img src="img\connect_sensors_to_racks\connect_sensors_to_racks_4.png" width="47.5%" style="display:inline-block;">
# Ideen für "Umbau" der Programme
- Eine Config in der unter mehreren Blöcken ## Routing ##, ##Ausgabe## die einzelnen Schalter 1 / 0 gesetzt werden
- Getpositions läuft immer
- -> scheibt output in positions.json in work
- -> damit werden alte positions.json überschrieben und work ordner nicht zugemüllt
- Routing läuft immer -> schreibt output in routing.json
- wenn schalter in Config für Graph gesetzt ist wird Graph als .svg in work gespeichert
- Name der Datei *eingabefile*_graph.svg
- Drawdxf umbennen in sowas wie *cables.py* oder so
- Schalter steuern was alles ausgegeben wird (Excel, dxf, ... was könnte man noch machen)
- hier muss man entscheiden ob Cabel-dxf immer gleich heisst oder so wie Eingabefile (Gefahr der Zumüllung)
- selbes gilt für excel-File
# Fehlerfälle und Fehlerbehandlung
# 5. Fehlerfälle und Fehlerbehandlung
## Allgemeine Fehler und Warnungen (beide Workflows)
@@ -1101,3 +1111,4 @@ Der **I/O Conversion Workflow** (`ioconverter.bat`) führt **keine Routing-Berec
- **Doppelte IDs** können zu falschen Einträgen in den Excel-Listen führen
**Empfehlung:** Beheben Sie alle Warnungen aus `*_errors.json`, bevor Sie die Export-Dateien an nachgelagerte Systeme (TIA Portal, WSCAD) übergeben.