siemens-plc-tools
May 29, 2026 · View on GitHub
A toolkit for Siemens TIA Portal V21 (S7-1500) automation projects: parse and analyze SCL, generate documentation, transpile SCL to Python for unit testing, manage I/O lists, monitor industrial networks, and run OPC UA / Modbus / supervision integration tests.
Packages
| Package | Purpose |
|---|---|
| plc-core | Shared config, S7/IOL models, CLI framework, reporting, OPC UA client, scenario test framework |
| plc-code | SCL parser, doc generation (MkDocs/Draw.io/PDF), quality analysis, SCL→Python transpiler + pytest harness |
| plc-iol | I/O list import/export (XML/Excel), comparison and validation |
| plc-modbus | Async Modbus TCP client with YAML step types for integration tests |
| plc-net | Industrial network monitoring (scapy) + OPC UA dissector |
| plc-sim | OPC UA simulation interface, CLI, web UI, integration-test runner |
| plc-sup | Supervision pipeline integration tests (OPC UA → Redis → TimescaleDB → API) |
Install
# whole workspace (development)
uv sync --all-extras --all-packages
# or a single capability
uv pip install -e packages/plc-code
The root package also exposes capability extras (core, code, iol,
modbus, sim, sup, net, all) for selective installs, e.g.
uv sync --extra code.
Quickstart
See examples/demo-project/ for a runnable example:
cd examples/demo-project
plc code lint
plc code docs
plc code test
Documentation
Built with MkDocs (uv run mkdocs serve).
Contributing
See CONTRIBUTING.md. Licensed under the MIT License.