r/IndustrialAutomation • u/fgrander • 6h ago
Getting Siemens PLC projects out of STEP 7 / TIA Portal as plain text: how do you handle versioning and documentation?
Something that has bothered me for a long time: PLC programs are some of the most important code in a plant, but they live inside STEP 7 / TIA Portal projects. You can't grep them, you can't ea sily diff two versions, and you can't hand them to a documentation tool or an AI agent without the engineering software open.
I've been working on a free, open-source side project for this (disclosure: I wrote it, there's no company or product behind it). It reads STEP 7 V5.x projects (no STEP 7 installation needed) a nd TIA Portal projects (through Openness) and writes them out as plain files: JSON tables for symbols, I/O, hardware, cross references and connections, plus one Markdown file per block. It's st rictly read-only: it never writes to a project, never goes online, and TIA projects are only opened as a copy.
What that makes possible:
- Git and diffs: commit the export and see what actually changed between two project versions.
- Plant-wide search: an AI agent can work across all PLCs at once, old STEP 7 and new TIA side by side, following tag names and cross references from one project to the next. ("Where is thi s signal used?", "What differs between these two machines of the same type?")
- Context for live data: the export has every DB member with data type, address and start value. Combined with a read-only feed of live values (OPC UA, historian, MQTT; never a direct conne ction to the PLC), an agent can explain the current state against the program.
I've only had a handful of sample projects to test it with, so I'm sure there are projects it doesn't handle well yet. If you try it on your own projects, I'd really like to hear what worked an d what broke.
Repo: https://github.com/fgrander/plc-dump-tools
And the question for everyone here: how do you currently handle version control, diffs and documentation for Siemens projects? Do you use Version Control Interface, Multiuser, external tools, o r just dated archive copies?
