Skip to main content

Read/Write Rockwell Automation Logix based PLC's

Project description

pylogix

pylogix is a communication driver that lets you easily read/write values from tags in Rockwell Automation ControlLogix, CompactLogix and Micro8xx PLC's over Ethernet I/P using Python. Only PLC's that are programmed with RSLogix5000/Studio5000 or Connected Components Workbench (Micro8xx), models like PLC5, SLC, MicroLogix are not supported. They use a different protocol, which I have no plans to support.

There are many devices that support CIP objects that allow for automatic disocvery (like RSLinx does), which pylogix can discover, but will likely not be able to interact with in any other meaningful way. Pylogix is really only intended to talk to the above mentioned PLC's and is only tested against them. It likely will not communicate with any other brands.

For general support or questions, I created a discord, feel free to join and ask questions, I'll do my best to help in a timely manner.

Getting Started

There are currently no dependencies so you can get going quickly without having to install any other prerequiste packages. Both python2 and python3 are supported.

Installing

Install pylogix with pip (Latest version):

pylogix@pylogix-kde:~$ pip install pylogix

To install previous version before major changes (0.3.7):

pylogix@pylogix-kde:~$ pip install pylogix==0.3.7

To upgrade to the latest version:

pylogix@pylogix-kde:~$ pip install pylogix --upgrade

Alternatively, you can clone the repo and manually install it:

pylogix@pylogix-kde:~$ git clone https://github.com/dmroeder/pylogix.git
pylogix@pylogix-kde:~$ cd pylogix
pylogix@pylogix-kde:~/pylogix$ python setup.py install --user

Verifying Installation

To verify the installation on Linux, open the terminal and use the following commands:

pylogix@pylogix-kde:~$ python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pylogix
>>> pylogix.__version__
'0.7.10'

Your First Script:

The cloned repository will come with many examples, I'll give one here. We'll read one simple tag and print out the value. All methods will return the Response class, which contains TagName, Value and Status.

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)

NOTE: If your PLC is in a slot other than zero (like can be done with ControLogix), then you can specify the slot with the following:

comm.ProcessorSlot = 2

NOTE: If you are working with a Micro8xx PLC, you must set the Micro800 flag since the path is different:

comm.Micro800 = True

Optionally set a specific maximum size for requests/replies. If not specified, defaults to try a Large, then a Small Forward Open (for Implicit, "Connected" sessions).

comm.ConnectionSize = 508

Other Features

Pylogix has features other than simply reading/writing. See the documentation for more info, see the examples directory simple use cases for the various methods.

FAQ

Here's a list of frequent asked questions. faq

Authors

  • Burt Peterson - Initial work
  • Dustin Roeder - Maintainer - dmroeder
  • Fernando B. (TheFern2) - Contributor - TheFern2
  • Ottowayi - Contributor - ottowayi
  • Perry Kundert - Contributor - pjkundert

License

This project is licensed under Apache 2.0 License - see the LICENSE file for details.

Acknowledgements

  • Archie of AdvancedHMI for all kinds pointers and suggestions.
  • Thanks to ottowayi for general python and good practice advice
  • Thanks to all of the users that have tested and provided feedback.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pylogix-0.8.2-py2.py3-none-any.whl (44.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pylogix-0.8.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pylogix-0.8.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 44.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for pylogix-0.8.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2a40a228dca1f2a9e32f0e4d85370f1ec395e94ffb6623ccf06b2d1009f2e647
MD5 28c1e19db8b942f2a736af7d3ff0161f
BLAKE2b-256 f1b371dffe66f8e225979d10f3f44679659c4ccbab91cc66f0ef702b05c97b5b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page