// the find
paulscherrerinstitute/s7plc
EPICS driver for communication with PLCs
EPICS device/driver support module for Siemens S7 PLCs, communicating over TCP using the S7 protocol. Targets accelerator and large-scale physics facility control systems where EPICS is the standard middleware. Not a general-purpose PLC library — this is squarely for scientists and controls engineers already inside the EPICS ecosystem.
Covers the full EPICS record type surface area (analog in/out, binary, int64, calcout) with proper template DB files so integration is mostly wiring rather than coding. The driver handles byte-order and data-type conversion at the driver layer, which is where it belongs. Includes a working example with memory layout docs and an ADL display — rare for niche EPICS support modules. Active enough to have seen a push in early 2025 despite being a very stable, narrow piece of infrastructure.
8 stars and 7 forks tells you exactly how niche this is — community help essentially doesn't exist outside PSI itself. No unit tests anywhere; correctness relies entirely on manual hardware-in-the-loop testing. The S7 protocol implementation is embedded in the driver rather than using an established library like snap7, which means any protocol edge cases are yours to debug. Documentation is a single HTML file and a README — no explanation of threading model, reconnection behavior, or error propagation to EPICS alarm states.