It was an interesting process to sniff and break apart the ECOM protocol. But with the help of Wireshark I was able to create a simple class to read/write Inputs,Outputs,V Memory, and C Memory Bits. My class may look a bit hokey to those more skilled at python than I, but I've found it very usefull.
If you're stuck with an old generation H0-ECOM ethernet module and want to make use of it this post may be of use to you. I was able to get a few from work as we phased in new gear. We only had a couple ECOM-100 modules (ModbusTCP). So I was driven to get these working with my Raspberry Pi.
With mine I made a raspberry controlled sprinkler system using the Koyo DL-06 as my remote I/O. There was no logic programmed into the PLC because I wanted my pi to control it 100%. But with this python code anyone could make a raspberry pi powered cheap HMI or web based HMI for their system.
Link to PythonKoyo library:
https://github.com/SimplyAutomationized/PythonKoyo/blob/master/Koyo.py
Example code:
import Koyo as plc
myKoyo = plc.Koyo('192.168.1.26')
myKoyo.WriteOutput(0,1) # write output Y0 to true, (if this isn't tied to any rung in the ladder it should turn on)
print myKoyo.ReadInput(5)
print myKoyo.ReadC(16) #this currently only returns data of the first 4 bytes of C Memory
if(myKoyo.ReadOutput(5)):
myKoyo.WriteC(16,false)
else:
myKoyo.WriteC(16,true)
#other helpful commands:
myKoyo.FindKoyo() #return a list (ip,mac) of koyo plcs on the network
myKoyo.ChangeIP(mac,newIP) #change an ip address of a koyo that's plugged into your subnet
Hope this helps anyone with a Koyo. Other options are trying to install the C Library AutomationDirect provides on the website. I was unable to compile it and found this much more enjoyable.
No comments:
Post a Comment