eigene Doku für iocnonvertert gebaut
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user