diff --git a/README.md b/README.md index 3c2138e..c104363 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,47 @@ -# sps_skel +# sps_skel -> Das Programm erhält ein mechanische Layout von der Projektierung oder -> Angebotswesen zusammen mit dem elektronischen Layout mit der Liste aller -> Sensoren, Stopper, etc. Daraus erstellt es dann ein Skelett für die SPS -> Programmierung, welches direkt ins TIA Portal importiert werden kann. +> Das Programm erhält ein mechanisches Layout von der Projektierung oder dem +> Angebotswesen zusammen mit dem elektrischen Layout (Liste aller Sensoren, +> Stopper, Weichen, etc.). Daraus soll es ein Skelett für die SPS-Programmierung +> (Siemens SCL, TIA Portal) erzeugen — aufgebaut aus **TRO**-Bausteinen +> (Transfer Route Object), den wiederkehrenden Steuerungseinheiten einer +> Fördertechnik-Anlage. + +## Stand des Projekts + +Der eigentliche SCL-Generator (JSON-Layout → TIA-Portal-Code) ist **noch nicht +geschrieben**. Was bereits funktioniert, ist die Ableitung der Vorstufen dazu: +aus einem CSV-Export der mechanischen Planung (ILS 2.0) werden automatisch + +- der **Materialfluss-Graph** der mechanischen Objekte (Strecken, Gefällestrecken, + Kreisel), +- die daraus abgeleitete **TRO-Liste** samt eigenem Flussdiagramm, und +- eine **annotierte Kopie der BricsCAD-Zeichnung** mit einem Marker-Symbol pro + TRO + +erzeugt. Diese drei Werkzeuge liegen als CLI-Tools in `lib/` und sind über +`bin/`-Wrapper aufrufbar (siehe unten). Details, Domänenmodell und die +Roadmap zum Generator stehen in `doc/`, allen voran `doc/Python_Scripts.md`. ## Projektstruktur sps_skel/ - bin/ Skripte zur Umgebungsverwaltung + bin/ Umgebungsskripte + ein .bat/.sh-Wrapper-Paar je CLI-Tool setenv.bat/.sh Umgebungsvariablen setzen install_py.bat/.sh venv erstellen + pip install activate_venv.bat/.sh venv aktivieren get_cmd.bat/.sh Shell mit Umgebung oeffnen - cfg/ Konfigurationsdateien (INI/JSON) - data/ Eingabedaten (nicht im Git) - doc/ Dokumentation + material_flow.bat/.sh Wrapper fuer lib/material_flow.py + tro_flow.bat/.sh Wrapper fuer lib/tro_flow.py + tro_annotate.bat/.sh Wrapper fuer lib/tro_annotate.py + cad/ generiertes BricsCAD-LISP (tro_types.lsp) fuer den TROEDIT-Dialog + cfg/ Konfigurationsdateien (INI/JSON); dxf_registration.json + data/ Eingabedaten - CSV-Exporte, DXF (nicht im Git) + doc/ Dokumentation, siehe doc/Python_Scripts.md examples/ Beispieldateien - lib/ Python-Quellcode / Bibliothek + lib/ Python-Quellcode (CLI-Tools + Bibliotheken) log/ Log-Dateien (nicht im Git) - results/ Ergebnisse / Ausgaben (nicht im Git) + results/ Ergebnisse der CLI-Tools (.dot/.svg/.md/.dxf, nicht im Git) tests/ Unit Tests .gitignore LICENSE @@ -35,9 +57,11 @@ | `SKEL_LIB` | Python-Quellcode | | `SKEL_CFG` | Konfigurationsdateien | | `SKEL_DATA` | Eingabedaten | +| `SKEL_DOC` | Dokumentation | | `SKEL_LOG` | Log-Dateien | | `SKEL_RESULTS` | Ergebnisse | | `SKEL_EXAMPLES` | Beispieldateien | +| `SKEL_TESTS` | Unit Tests | | `PYTHONPATH` | Erweitert um `SKEL_LIB` | ## Installation @@ -45,6 +69,8 @@ ### Voraussetzungen - Python 3.10 oder hoeher +- Graphviz (`dot`) auf `PATH` fuer `--tosvg`, optional aber empfohlen +- fuer `tro_annotate.py`: `ezdxf` (wird per `requirements.txt` installiert) ### Setup (Windows) @@ -71,6 +97,28 @@ bin\activate_venv.bat # Windows source bin/activate_venv.sh # Linux / macOS +### CLI-Tools ausführen + +Jedes Tool wird über seinen `bin/.bat`/`.sh`-Wrapper aufgerufen; dieser +setzt die Umgebung, aktiviert `.venv` und ruft dann das Python-Modul auf. +`--file`/`--dxf` akzeptieren entweder einen Dateinamen (wird gegen +`%SKEL_DATA%` aufgelöst) oder einen vollen Pfad; Ausgaben landen in +`%SKEL_RESULTS%`. + + REM 1) Materialfluss der mechanischen Objekte + bin\material_flow.bat --file mubea.csv --tosvg --doc + + REM 2) TRO-Liste + eigenes Flussdiagramm ableiten + bin\tro_flow.bat --file mubea.csv --tosvg --doc + + REM 3) TROs als Marker-Symbole in eine Kopie der CAD-Zeichnung einbrennen + bin\tro_annotate.bat --file mubea.csv --dxf 500573_60_1.dxf --flow --fb --legend + +Alle Switches, Ausgabedateien und Exit-Codes der drei Tools sind in +[`doc/Python_Scripts.md`](doc/Python_Scripts.md) dokumentiert; das +Domänenmodell (TRO-Typen, geplantes JSON-Layout, I/O-Listen-Analyse) findet +sich in den übrigen Dokumenten unter `doc/`. + ## Lizenz MIT License - siehe LICENSE