// the take
A C# driver implementing Siemens' proprietary S7comm-plus protocol to read/write symbolic variables on S7-1200/1500 PLCs over their TLS-secured 'optimized' memory access, without going through Siemens' own SDKs. Aimed at developers building SCADA/industrial integration tools who need direct PLC access from .NET.
Implements the TLS handshake and S7comm-plus wire protocol from scratch via reverse engineering rather than wrapping a vendor library, including the newer optimized-block access model that older S7comm drivers don't support. The PlcTag type mapping is genuinely thorough - nearly every S7 datatype (structs, counters, timers, date/time variants, pointers) maps to a sensible .NET equivalent with documented edge cases (e.g. nanosecond precision gaps). Ships a practical debugging feature: dumping TLS session secrets to a keylog file so Wireshark can decrypt and inspect traffic, which matters a lot once you've encrypted everything. Includes a GUI symbol browser and a PLCSIM-based test harness for exploring a controller's variable tree interactively.
The README states outright this is a development snapshot not intended for production use - a real caveat if you're targeting a plant floor rather than a lab. It's a reverse-engineered proprietary protocol with no Siemens documentation or support, and compatibility is pinned tightly to specific CPU firmware and TIA Portal versions (>=V17), so a vendor firmware update can silently break you. There's no automated test suite - validation is 'run it against real hardware or PLCSIM and watch,' which makes regressions easy to introduce. It vendors prebuilt OpenSSL DLLs directly in the repo instead of pulling them from a package feed, which is an awkward way to track security patches in a component that terminates TLS. Single maintainer in a narrow industrial niche, so check recent activity before betting an operational system on it.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →