siemens-plc-tools

May 29, 2026 · View on GitHub

CI License: MIT Python 3.12 Version

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

PackagePurpose
plc-coreShared config, S7/IOL models, CLI framework, reporting, OPC UA client, scenario test framework
plc-codeSCL parser, doc generation (MkDocs/Draw.io/PDF), quality analysis, SCL→Python transpiler + pytest harness
plc-iolI/O list import/export (XML/Excel), comparison and validation
plc-modbusAsync Modbus TCP client with YAML step types for integration tests
plc-netIndustrial network monitoring (scapy) + OPC UA dissector
plc-simOPC UA simulation interface, CLI, web UI, integration-test runner
plc-supSupervision 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.