Files
kabellaengen/doc/Anwenderdoku_ioconverter.md
T

10 KiB

Anwenderdoku zum I/O Converter (ioconverter)

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

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
  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 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

  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

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.