Giter Club home page Giter Club logo

pylogix's Introduction

pylogix

PyPI PyPI Versions MicroPython PyPI - Downloads

WARNING: There is a possibility of a scam using the pylogix name. Be careful with anything claiming to be pylogix. https://www.notpylogix.com

Pylogix is a communication driver that lets you easily read/write values from tags in Rockwell Automation ControlLogix, CompactLogix, and Micro8xx PLCs over Ethernet I/P using Python. Only PLCs that are programmed with RSLogix5000/Studio5000 or Connected Components Workbench (Micro8xx), models like PLC5, SLC, and MicroLogix are not supported. They use a different protocol, which I have no plans to support. You can also connect to RSEmulate, but it may require additional configuration. See the Emulate document for more information.

Many devices support CIP objects that allow for automatic discovery (like RSLinx does), which pylogix can discover but will likely not be able to interact with in any other meaningful way. Pylogix is only intended to talk to the above-mentioned PLCs 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, and I'll do my best to help promptly.

Getting Started

There are no dependencies, so you can get going quickly without installing other prerequisite 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

Installing MicroPython

Checkout Documentation

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
  • Joe Ryan - Contributor - jryan
  • Perry Kundert - Contributor - pjkundert

License

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

Acknowledgments

  • 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.
  • Joe Ryan for Omron testing and feedback

pylogix's People

Contributors

dmroeder avatar thefern2 avatar drbitboy avatar githubdragonfly avatar gilsand avatar sdmolt avatar caprinux avatar amber-vale avatar georgemakrakis avatar tobiasht avatar philipphaefele avatar pjkundert avatar nusaqib avatar jprogin avatar david-2d3fe9 avatar garrett92 avatar dgilbank avatar clau72 avatar bengood avatar aansel-plenty avatar william-brumble avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.