pylogix
Read/Write Rockwell Automation Logix based PLC's
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Low friction: the package is a pure-Python wheel with no runtime dependencies, installs quickly, and is actively maintained with a recent release.
License · maintenance · safety
Apache License 2.0 (permissive) — Apache 2.0 permissive license allows free use, modification, and distribution in commercial and open-source projects with minimal restrictions.
last release 2026-02-23 (172 days) · last repo commit 2026-05-18 · 722 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 236,105 downloads/mo, #8,990 on PyPI
Alternatives
Verify before relying
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)- 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).
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 on it.
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
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.
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.
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)
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 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.6 |
Evidence: pylogix-1.1.5-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “rockwell plc communication python”
- pylogixPylogix reads and writes tag values from Rockwell Automation…
- devolo-plc-apiProvides a Python API to communicate with devolo PLC (powerline…
- python-snap7Pure Python library for reading and writing data to Siemens S7 PLCs…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pyads · python-snap7 · devolo-plc-api · intelhex · velbus-aio · pyModbusTCP · Adax-local · pyRFXtrx · elkm1-lib · zigpy-zigate