eigene Doku für iocnonvertert gebaut

This commit is contained in:
2026-06-18 12:01:03 +02:00
parent 046bcf7290
commit eca5a82644
4 changed files with 182 additions and 56 deletions
+167
View File
@@ -0,0 +1,167 @@
# Anwenderdoku zum I/O Converter (ioconverter) <!-- omit in toc -->
- [Zweck des Programms](#zweck-des-programms)
- [Schnellstart](#schnellstart)
- [Verwendung per Drag \& Drop](#verwendung-per-drag--drop)
- [Verwendung per Kommandozeile](#verwendung-per-kommandozeile)
- [Pipeline und Programmablauf](#pipeline-und-programmablauf)
- [Ausgabedateien](#ausgabedateien)
- [EA-Liste (`*_EA.xlsx`)](#ea-liste-_eaxlsx)
- [TIA-Portal-Export (`*_TIA.xlsx`)](#tia-portal-export-_tiaxlsx)
- [WSCAD-Export (`*_WSCAD.xlsx`)](#wscad-export-_wscadxlsx)
- [Konfiguration und Symbolerkennung](#konfiguration-und-symbolerkennung)
- [Fehlerfälle und Fehlerbehandlung](#fehlerfälle-und-fehlerbehandlung)
- [Allgemeine Fehler und Warnungen](#allgemeine-fehler-und-warnungen)
- [Ausgabedateien bei Fehlern](#ausgabedateien-bei-fehlern)
- [Empfohlene Vorgehensweise](#empfohlene-vorgehensweise)
- [Erweiterte Optionen](#erweiterte-optionen)
## Zweck des Programms
Der **I/O Converter** (`ioconverter.bat`) dient der vereinfachten Ableitung von **Ein-/Ausgangslisten (EA-Listen)** sowie der **Eingabedaten für das Siemens TIA Portal** und **WSCAD** aus einer DXF-Layoutzeichnung.
Das Programm extrahiert alle relevanten Geräteinformationen (Sensoren, Aktoren, Schaltschrankelemente) aus dem Layout und erzeugt daraus formatierte Excel-Dateien, die direkt in die jeweiligen Zielsysteme importiert werden können. Das Routing und die Kabelberechnung entfallen dabei vollständig - es geht ausschließlich um die **Geräte- und IO-Daten**.
## Schnellstart
### Verwendung per Drag & Drop
Im Desktop-Ordner *Kabeltool* (erstellt via `bin\dropItem_create.bat`) befindet sich die Verknüpfung *io_converter*. Die zu verarbeitende **.dxf-Datei** einfach per **Drag & Drop** auf diese Verknüpfung ziehen.
> [!IMPORTANT]
> Der Dateiname darf **keine Leerzeichen oder Sonderzeichen** enthalten.
> Verwende z. B. `projekt_123.dxf` statt `mein projekt #1.dxf`.
### Verwendung per Kommandozeile
```bash
bin\ioconverter.bat <meine_anlage.dxf>
```
Die Ausgabe schreibt:
```text
=== Fetching Positions ===
...
=== Creating Excel Files for TIA, WSCAD, .. ===
Export 'EA' erfolgreich: ...\work\meine_anlage_EA.xlsx
Export 'TIA' erfolgreich: ...\work\meine_anlage_TIA.xlsx
Export 'WSCAD' erfolgreich: ...\work\meine_anlage_WSCAD.xlsx
```
Die erzeugten Dateien werden automatisch in das Ergebnisverzeichnis (`PROJECT_IO_RESULTS`) verschoben.
## Pipeline und Programmablauf
Der I/O Converter arbeitet in zwei Schritten:
```text
DXF-Datei
1. getpositions.py --> Positionen und Attribute extrahieren --> *_positionsconv.json
2. portalexport.py --> Excel-Export erzeugen --> *_EA.xlsx, *_TIA.xlsx, *_WSCAD.xlsx
```
1. **Positionsextraktion** (`getpositions.py`): Liest die DXF-Datei ein und extrahiert alle Blöcke mit ihren Attributen (IO, SPS, KENNZEICHNUNG, BEZEICHNUNG, VERW, TEXT-D/E/ES/F, ARTINR). Das Ergebnis wird als `*_positionsconv.json` gespeichert.
2. **Excel-Export** (`portalexport.py`): Liest die JSON-Zwischendatei und erzeugt daraus die Excel-Dateien in den gewünschten Formaten. Die Daten werden dabei nach SPS-Nummer gruppiert - pro SPS entsteht ein eigener Satz Ausgabedateien (z.B. `anlage-SPS1_TIA.xlsx`, `anlage-SPS2_TIA.xlsx`).
## Ausgabedateien
Standardmäßig werden **drei Excel-Dateien** pro SPS erzeugt:
### EA-Liste (`*_EA.xlsx`)
Eine einfache Übersicht aller Ein- und Ausgänge. Die Datei enthält folgende Worksheets:
**Ein-, Ausgaenge**: Listet alle erkannten Eingänge und Ausgänge mit Name, Kommentar (Bezeichnung) und Bezug (Kennzeichnung) auf. Die Klassifizierung in Ein- oder Ausgang erfolgt automatisch anhand der Identifier aus dem Block (z.B. DI, FDI = Eingang; DQ, K, M = Ausgang).
**Duplikate / Errors**: Falls doppelte Namen oder fehlerhafte Einträge erkannt werden, werden diese in separaten Worksheets aufgeführt.
### TIA-Portal-Export (`*_TIA.xlsx`)
Im TIA-Portal-Importformat mit folgenden Worksheets:
**PLC Tags**: Enthält die Spalten `Name`, `Path`, `Data Type`, `Logical Address`, `Comment`, `Hmi Visible`, `Hmi Accessible`, `Hmi Writeable`, `Typeobject ID`, `Version ID`. Diese Datei kann direkt in das Siemens TIA Portal importiert werden.
**Constants**: Enthält Konstanten mit `Name`, `Path`, `Data Type`, `Value`, `Comment`.
### WSCAD-Export (`*_WSCAD.xlsx`)
Im WSCAD-Importformat mit den Spalten `Anschluss`, `Kommentar`, `Symboltext`, `Bezug`, `Sondertext 1-8`. Der Export enthält standardmäßig Bezugsinformationen. Mit der Option `--no_bezug` kann der Export ohne Bezüge erstellt werden.
Für Bauteile mit unvollständigen Anschlüssen werden fehlende Anschlüsse automatisch bis zur Standardanzahl (8 pro Bauteil) ergänzt.
## Konfiguration und Symbolerkennung
Der I/O Converter verwendet folgende Konfigurationsdateien aus `cfg/`:
| Datei | Relevanz für I/O Converter |
|-----------------|---------------------------|
| `allgemein.cfg` | Layernamen für Sensoren, Aktoren, Unterverteiler etc. - bestimmt, welche Blöcke aus der DXF-Datei extrahiert werden |
| `BMK.cfg` | Betriebsmittelkennzeichnungen (`[Routing-Include]`, `[Routing-Ignore]`) - bestimmt, welche Gerätetypen berücksichtigt werden |
> [!NOTE]
> Die Konfigurationsdateien `kabel.cfg` und `bezeichner.cfg` werden vom I/O Converter **nicht** benötigt, da keine Kabelberechnung stattfindet.
Die Erkennung der Symbole (Blöcke) in der DXF-Datei ist die gemeinsame Basis von I/O Converter und Kabelberechnung. Beide Programme nutzen `getpositions.py` mit denselben Regeln zur Symbolsuche:
- Welche **Layer** durchsucht werden, wird in `allgemein.cfg` unter `[GetPos-Layer_Equipment]`, `[GetPos-Layer_Distributors]` etc. festgelegt
- Welche **Betriebsmittelkennzeichen** (BMK-Präfixe) berücksichtigt werden, regelt `BMK.cfg` unter `[Routing-Include]` und `[Routing-Ignore]`
- Welche **Block-Attribute** erwartet werden (KENNZEICHNUNG, SPS, IO, ARTINR, etc.) und wie die Blöcke im Layout angelegt sein müssen
Eine ausführliche Beschreibung der Konfigurationsdateien sowie der Anforderungen an die Layouterstellung findet sich in der [Anwenderdokumentation zur Kabellängenermittlung](Anwenderdoku.md) in den Abschnitten "Anpassung des Verhaltens des Programms" und "Anwenderhinweise zur Layouterstellung".
## Fehlerfälle und Fehlerbehandlung
### Allgemeine Fehler und Warnungen
Der I/O Converter durchläuft dieselbe Positionsextraktion wie der Cable-Routing-Workflow. Es gelten daher die gleichen Fehler- und Warnungstypen aus `getpositions.py`. Die vollständige Fehlertabelle findet sich in der [Anwenderdoku](Anwenderdoku.md) bzw. [Kurzanleitung](Anwenderdoku_kurz.md) im Abschnitt "Fehlerfälle und Fehlerbehandlung".
Die für den I/O Converter relevantesten Fehler sind:
| Fehlertyp | Auswirkung |
|-----------------|------------|
| `double_ids` | **Abbruch** - Doppelte Geräte-IDs führen zum Programmabbruch. Die `*_errors.json` wird erzeugt, aber keine Excel-Dateien. |
| `missing_attributes` | Betroffene Elemente fehlen in den Export-Dateien |
| `mapping_warnings` (keine KENNZEICHNUNG) | Keine korrekte Zuordnung zu Unterverteilern möglich |
| `missing_sps_prefix` | Gerät kann keiner SPS zugeordnet werden |
### Ausgabedateien bei Fehlern
- `*_errors.json` - enthält alle Fehler und Warnungen aus der Positionsextraktion
- `*_positionsconv.json` - Zwischenergebnis mit extrahierten Positionen
- `*_EA.xlsx`, `*_TIA.xlsx`, `*_WSCAD.xlsx` - werden auch bei Warnungen erzeugt, können aber unvollständig sein
> [!IMPORTANT]
> Bei `double_ids`-Fehlern bricht das Programm nach der Positionsextraktion ab. Es werden **keine** Excel-Dateien erzeugt. Beheben Sie zuerst die doppelten IDs im Layout.
### Empfohlene Vorgehensweise
1. Programm ausführen
2. Falls `*_errors.json` erstellt wurde: Fehler prüfen und im Layout korrigieren
3. Erneut ausführen bis keine Fehler mehr auftreten
4. Export-Dateien an nachgelagerte Systeme (TIA Portal, WSCAD) übergeben
> [!TIP]
> Beheben Sie alle Warnungen aus `*_errors.json`, bevor Sie die Export-Dateien an nachgelagerte Systeme übergeben, um Vollständigkeit sicherzustellen.
## Erweiterte Optionen
Der `portalexport.py` kann auch direkt aufgerufen werden, um nur bestimmte Exportformate zu erzeugen:
```bash
# Nur TIA-Export erzeugen
bin\portalexport.bat --filename <positionsconv.json> --outname <basename> --mode TIA
# Nur WSCAD-Export ohne Bezüge
bin\portalexport.bat --filename <positionsconv.json> --outname <basename> --mode WSCAD --no_bezug
# Nur EA-Liste
bin\portalexport.bat --filename <positionsconv.json> --outname <basename> --mode EA
```
Alternativ kann eine CSV-Textdatei als Eingabe verwendet werden:
```bash
bin\portalexport.bat --input <eingabe.txt> --mode TIA
```