Package: pylogix
pylogixWARNING:There is a possibility of a scam using the pylogix name. Be careful with anything claiming to be pylogix.https://www.notpylogix.comPylogix 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 arenotsupported.  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 Emulatedocumentfor 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 adiscord.  Feel free to join and ask questions, and I'll do my best to help promptly.Getting StartedThere are no dependencies, so you can get going quickly without installing other prerequisite packages.  Both python2 and python3 are supported.InstallingInstall pylogix with pip (Latest version):pylogix@pylogix-kde:~$pipinstallpylogixTo install previous version before major changes (0.3.7):pylogix@pylogix-kde:~$pipinstallpylogix==0.3.7To upgrade to the latest version:pylogix@pylogix-kde:~$pipinstallpylogix--upgradeAlternatively, you can clone the repo and manually install it:pylogix@pylogix-kde:~$gitclonehttps://github.com/dmroeder/pylogix.gitpylogix@pylogix-kde:~$cdpylogixpylogix@pylogix-kde:~/pylogix$pythonsetup.pyinstall--userVerifying InstallationTo verify the installation on Linux, open the terminal and use the following commands:pylogix@pylogix-kde:~$python3Python 3.8.5 (default, Jan 27 2021, 15:41:15)[GCC 9.3.0] on linuxType "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.frompylogiximportPLCwithPLC()ascomm: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 = 2NOTE: If you are working with a Micro8xx PLC, you must set the Micro800 flag since the path is different:comm.Micro800 = TrueOptionally 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 = 508Installing MicroPythonCheckoutDocumentationOther FeaturesPylogix has features other than simply reading/writing.  See thedocumentationfor more info, see the examples directory
simple use cases for the various methods.FAQHere's a list of frequent asked questions.faqAuthorsBurt Peterson-Initial workDustin Roeder-Maintainer-dmroederFernando B. (TheFern2)-Contributor-TheFern2Joe Ryan-Contributor-jryanPerry Kundert-Contributor-pjkundertLicenseThis project is licensed under Apache 2.0 License - see theLICENSEfile for details.AcknowledgmentsArchie 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