finds.dev← search

// the find

ottowayi/pycomm3

★ 505 · Python · MIT · updated Dec 2025

A Python Ethernet/IP library for communicating with Allen-Bradley PLCs.

pycomm3 is a Python library for talking to Allen-Bradley PLCs over Ethernet/IP without needing RSLinx or any Rockwell software installed. It targets ControlLogix, CompactLogix, Micro800, and legacy SLC/MicroLogix hardware. The audience is industrial automation engineers and developers building SCADA tooling or data pipelines against Rockwell hardware.

The API is genuinely clean for this domain: one `read` and one `write` method handle every data type, including UDTs and BOOL arrays, without the caller needing to know CIP internals. Automatic tag list upload means you don't need an L5X export or manual tag mapping — the driver discovers what's in the PLC at connection time. Multi-tag batching and fragmented read/write are handled transparently, which matters when you're polling hundreds of tags in a tight loop. The `generic_message` escape hatch mirrors the Logix MSG instruction closely enough that people porting ladder logic to Python will find it familiar.

The README opens with a bold notice that the library is no longer actively developed — Python 3.6–3.10 support only, nothing past that, and last meaningful commit activity points to a project in maintenance-mode at best. Online tests require a physical PLC, so there's no way to run the full test suite in CI without real hardware, making contributions difficult. Struct writes don't support partial updates — you have to send the complete structure every time, which is a foot-gun if you're only changing one field of a large UDT. SLCDriver is explicitly called legacy with minimal future development, which is a problem if you're on older MicroLogix hardware.

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 →