pylogix
Read/Write Rockwell Automation Logix based PLC's
What it is and what it does
Pylogix is a communication driver for reading and writing tag values on Rockwell Automation PLCs (ControlLogix, CompactLogix, Micro8xx) over Ethernet I/P. It abstracts the low-level protocol details, letting you connect to a PLC by IP address and issue read/write commands using simple Python method calls. The library returns a Response object containing the tag name, value, and status for each operation.
The package has no external dependencies and installs as a pure-Python wheel, making it quick to set up in any Python environment. It is designed specifically for PLCs programmed with RSLogix5000/Studio5000 or Connected Components Workbench; older Rockwell models (PLC5, SLC, MicroLogix) and non-Rockwell brands are not supported. The maintainer provides examples and documentation for common tasks and maintains an active Discord community for support.
Use it for:
- Read sensor values and discrete states from a ControlLogix PLC in a Python monitoring or data-logging application.
- Write setpoints or control commands to a CompactLogix PLC from a Python script or web service.
- Automate testing of PLC logic by scripting tag reads and writes in a test harness.
- Build a custom HMI or dashboard that communicates with a Micro8xx PLC over Ethernet I/P.
- Integrate PLC data into a Python-based industrial analytics or historian system.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pylogix reads and writes tag values from Rockwell Automation ControlLogix, CompactLogix, and Micro8xx PLCs over Ethernet I/P using Python, with no external dependencies.
Yes. Pylogix is the standard open-source choice for Rockwell PLC communication in Python. It has no dependencies, is actively maintained, carries a permissive license, and solves a specific and well-defined problem. Install it if you need to read or write tags on a supported Rockwell PLC model; do not install if your PLC is an older Rockwell model or a different brand.
Install
pylogix on PyPI
pip
pip install pylogixuv
uv add pylogixpoetry
poetry add pylogixInstalling pylogix
Before you install
Low friction: the package is a pure-Python wheel with no runtime dependencies, installs quickly, and is actively maintained with a recent release.
License in practice
Apache 2.0 permissive license allows free use, modification, and distribution in commercial and open-source projects with minimal restrictions.
Quickstart
pip install pylogix
from pylogix import PLC
with PLC() as comm:
comm.IPAddress = '192.168.1.9'
ret = comm.Read('MyTagName')
print(ret.TagName, ret.Value, ret.Status)
Target PLC must be a ControlLogix, CompactLogix, or Micro8xx model programmed with RSLogix5000/Studio5000 or Connected Components Workbench; other PLC brands and older protocols (PLC5, SLC, MicroLogix) are not supported.
Verify before relying
- Whether the package works reliably with RSEmulate and what additional configuration may be needed beyond the documented steps.
- Performance characteristics when reading/writing large numbers of tags or high-frequency polling scenarios.
- Compatibility with Python versions beyond 2.7 and 3.6 (the fact sheet lists only these classifiers).
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 172 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 236,105/month — #8,990 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pylogix-1.1.5-py2.py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
pyadspyads is a Python wrapper for TwinCAT's ADS…
permissive · top 15,000 on PyPI
python-snap7Pure Python library for reading and writing…
permissive · top 15,000 on PyPI
devolo-plc-apiProvides a Python API to communicate with…
copyleft · top 15,000 on PyPI
intelhexRead, write, and manipulate Intel HEX files, a…
permissive · top 5,000 on PyPI
velbus-aioAn asyncio-based Python library for controlling…
permissive · top 15,000 on PyPI
pyModbusTCPA pure-Python Modbus/TCP client and server…
permissive · top 15,000 on PyPI
Adax-localA Python library for local communication with…
permissive · top 15,000 on PyPI
pyRFXtrxA Python library that communicates with RFXtrx…
copyleft · top 15,000 on PyPI
elkm1-libAsynchronous Python library for communicating…
permissive · top 15,000 on PyPI
zigpy-zigateProvides a Python 3 driver for ZiGate Zigbee…
copyleft · top 15,000 on PyPI