r/IndustrialAutomation • u/Sensitive_Desk_4284 • 10h ago
I got tired of installing runtimes just to talk to a PLC, so I built a single portable .exe that speaks Modbus/IEC-104/IEC-61850/S7/DNP3/... (open source)
I do PLC/RTU integration for wind-farm substations (Portugal), plus grid-operator comms (TSO/DNO) over Modbus / IEC-104 / IEC-61850. Two things kept annoying me on the job:
Every "quick tool" to poke at a device wanted a runtime installed — .NET, Python, a vendor package, something. On a locked-down OT machine (no admin, no internet, no random installs allowed) that's a real problem, and you all know exactly the machines I mean.
The tooling was scattered — one app for Modbus, another for IEC-104, a heavyweight suite for 61850, etc.
So I built my own, and it turned into something I figured this sub might actually find useful. It's a single self-contained native .exe — no .NET, no Python, no runtime, no installer, no DLL soup. You copy one file onto the machine and run it. It speaks:
- Modbus TCP, IEC-104, IEC-61850/MMS (client + a server side for ICCP / IEC-61400-25), S7, DNP3, OPC-UA, EtherNet/IP, Omron FINS, BACnet.
- Read and write. I've verified writes against real gear on my bench — a Schneider M340 (Modbus), an Omron PLC (FINS), and a Sync2000 RTU (IEC-104 command points). The rest I've tested against simulators, so treat those as "works in my testing, would love real-world confirmation."
There's also an analyzer side that sniffs a link, identifies which protocol is on the wire, and decodes it — and yes, it has an optional AI-assistant piece for building test scripts. I'll be honest that the AI part is experimental; the protocol clients themselves are plain, deterministic code and are the part I'd actually stake something on.
It's free and MIT-licensed, part of a larger from-scratch project of mine (the whole thing — compiler, tooling, the lot — is built with zero third-party dependencies, which is how it ends up as one clean .exe). Runs on Windows; there's a Linux build too.
Repo: https://github.com/mfernandes-ancl/ancl
Honest disclaimers: it's a one-person project, so it's not a polished commercial product — expect rough edges and thin docs in spots. I'm not selling anything; I mainly want feedback from people who do this for a living. If you try it against real equipment I'd genuinely like to hear what broke, and which protocols/functions matter most to you — that's what I'd work on next.