// the find
rootkiller6788/mini-scada-hmi-engineering
SCADA HMI engineering built from scratch, learn SCADA architecture, ISA-101 HMI & historian via practical C coding
A collection of eight standalone C modules that each re-implement a slice of industrial SCADA/HMI engineering — alarm rationalization (ISA-18.2), historian compression, ISA-101 display design, DNP3/Modbus master-RTU architecture, and clones of commercial platforms like WinCC, FactoryTalk View SE, and iFIX/Ignition. Aimed at students or engineers who want runnable code to go with SCADA coursework rather than just reading the standards.
Genuinely zero-dependency — pure C99/C11 against libc/libm, so it builds anywhere GCC and make exist without vendoring a protocol stack. Scope is reasonable: swinging-door compression for the historian and an ISA-18.2 state machine for alarms are the right primitives to pick if you're teaching those standards. Each module is self-contained with its own include/src/examples/tests, so you can pull just the one you need instead of the whole tree.
Every one of the eight modules has an identical doc set (course-alignment.md, course-tree.md, coverage-report.md, gap-report.md, knowledge-graph.md) across completely unrelated domains — that's the fingerprint of a templated/LLM generation pipeline, not domain-expert-authored code, and it makes the 'maps to real ISA/IEC standards' claim hard to trust without reading the C line by line. Stray .lean files sit next to the C sources claiming formal verification, but the Makefiles only invoke GCC/Make — there's no Lean toolchain wired into the build, so those proofs (if they typecheck at all) aren't actually checked by CI or `make test`. Zero stars, zero forks, no CI config, and Python helper scripts named fix_examples.py / writetest.py in the master-RTU module suggest the examples needed post-hoc patching to compile. Nothing here has touched a real DNP3/Modbus device or OPC UA server — it's a conceptual model of these platforms, not an interoperable implementation, so don't expect it to talk to actual field hardware.