finds.dev← search

// the find

paulscherrerinstitute/s7plc

★ 8 · C · GPL-3.0 · updated Mar 2025

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →