finds.dev← search

// the find

arohr/simatic

★ 5 · C · updated Jul 2014

A Ruby communication library for Siemens Simatic S7 PLCs

A Ruby binding over libnodave and rkeo for talking to Siemens S7 PLCs over ISO-TCP or RS-232. It's for someone doing industrial automation work in Ruby who needs to read/write PLC memory without dropping to C or Python.

Wraps two genuinely different transport layers (ISO-TCP via libnodave, serial via rkeo) behind one API instead of forcing you to pick a protocol upfront. Uses native C extensions bound directly rather than shelling out to a CLI tool, which matters for polling latency. EventMachine integration is a sane choice for the actual use case of one process watching several PLCs at once.

Dead since 2014 — no S7-1200/1500 compatibility testing, and the C extensions almost certainly won't build against a current Ruby or libnodave without patching extconf.rb. 5 stars and 3 forks in over a decade means nobody's validated this in production recently. The README shows one happy-path loop and a single rescued SocketError; there's no documentation of what `fetch`/`connect` actually do with PLC addressing, data types, or failure modes beyond that. No visible test coverage despite an rspec file existing — you'd be debugging PLC communication blind.

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 →