10 KiB
Anwenderdoku zum I/O Converter (ioconverter)
- Zweck des Programms
- Schnellstart
- Pipeline und Programmablauf
- Ausgabedateien
- Konfiguration und Symbolerkennung
- Fehlerfälle und Fehlerbehandlung
- 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.dxfstattmein projekt #1.dxf.
Verwendung per Kommandozeile
bin\ioconverter.bat <meine_anlage.dxf>
Die Ausgabe schreibt:
=== 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:
DXF-Datei
1. getpositions.py --> Positionen und Attribute extrahieren --> *_positionsconv.json
2. portalexport.py --> Excel-Export erzeugen --> *_EA.xlsx, *_TIA.xlsx, *_WSCAD.xlsx
-
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.jsongespeichert. -
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.cfgundbezeichner.cfgwerden 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.cfgunter[GetPos-Layer_Equipment],[GetPos-Layer_Distributors]etc. festgelegt - Welche Betriebsmittelkennzeichen (BMK-Präfixe) berücksichtigt werden, regelt
BMK.cfgunter[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 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 bzw. Kurzanleitung 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
- Programm ausführen
- Falls
*_errors.jsonerstellt wurde: Fehler prüfen und im Layout korrigieren - Erneut ausführen bis keine Fehler mehr auftreten
- 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
Einzelne Exportformate erzeugen
Der portalexport.py kann auch direkt aufgerufen werden, um nur bestimmte Exportformate zu erzeugen:
# 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
Spezialfall: Eingabe über Textdatei (ohne DXF)
Für den Fall, dass die IO-Daten nicht aus einer DXF-Datei stammen, sondern bereits in aufbereiteter Form vorliegen, kann portalexport.py auch direkt mit einer Textdatei als Eingabe arbeiten. Damit wird die gesamte DXF-Verarbeitung (getpositions.py) übersprungen.
Anwendungsfälle:
- IO-Listen aus einem anderen System (z.B. manuell gepflegte Excel-Listen, Datenbank-Exporte) sollen in das TIA- oder WSCAD-Format konvertiert werden
- Daten aus der DXF-Extraktion sollen vorab korrigiert oder ergänzt werden, bevor der Excel-Export erfolgt
- Testen des Exporters ohne eine DXF-Datei verarbeiten zu müssen
Aufruf:
bin\portalexport.bat --input <eingabe.txt> --mode TIA
Format der Textdatei: Die Datei muss pro Zeile einen Eintrag im folgenden CSV-Format mit einfachen Anführungszeichen enthalten:
'<IO>','<BEZEICHNUNG>','<VERW>','<KENNZEICHNUNG>','<TEXT-D>','<TEXT-E>','<TEXT-ES>','<TEXT-F>'
Beispiel:
'DI01','Stausensor 1 (ILS-CV M0108)','Jam detector','=A01+UC0101-KF1DI1','','','',''
'DQ04','Motor MA0062','CV-M0062_0,75','=A01+UH01-KF1DQ04','Motor MA0062','Motor MA0062','',''
Die Felder entsprechen den Block-Attributen aus der DXF-Datei. Dieses Format wird auch intern von portalexport.py erzeugt, wenn es die JSON-Daten aus getpositions.py verarbeitet.
Note
Bei der Eingabe per Textdatei entfällt die Gruppierung nach SPS-Nummer - alle Einträge werden in einem Satz Ausgabedateien zusammengefasst. Ebenso werden keine
getpositions-Fehler und -Warnungen in die Excel-Dateien geschrieben, da keine DXF-Validierung stattfindet.