I remember a post by John Dobbins on 6/13/2014, copy/paste follows:
We have an Allen-Bradley Power Monitor 3000 which we want to incorporate into our controls. This device supports various protocols including EtherIP which is supported in EPICS as
device support for ContolLogix and CompactLogix PLCs. The Power Monitor 3000 however uses EtherIP in a different fashion than the PLCs. The
Power Monitor is known as an Adapter device in CIP (Common Industrial Protocol which is the basis for EtherIP). It makes itself available for
Implicit and Explicit messaging.
CIP defines various types of Objects. One of these objects is called an Assembly object and is intended to be a generic container for data. The Power Monitor has dozens of Assembly
object instances. Each Assembly object has an attribute called 'data' which is a container for an array of numbers, either shorts or floating points. One can read this attribute via Explicit Messaging using the CIP service "Get_Attribute_Single", a service
which is already implemented in the EPICS EtherIP support. I found it was straightforward to add support for the CIP service "Set_Attribute_Single" allowing me to control the Power Monitor 3000.
I know of other devices similar to the Power Monitor 3000. For example, we use an EX250 pneumatic controller from SMC Corp. We originally purchased this device with a modbus/tcp interface
but one day someone unintentionally purchased several units on e-bay with an EtherIP interface. At the time we solved the problem by having a ContolLogix PLC read the data from the EX250 and map it into tags. In the case of the EX250 there were only two Assembly
objects containing a few words of data. In the case of the Power Monitor 3000 there are dozens of Assembly objects each containing tens of words so I was interested in implementing an approach that by-passed the PLC.
I am currently working on a stand alone Java application (using Kay Kasemir's Java version of EtherIP) but wanted to share that support for these types of devices is possible.
John Dobbins
Mark,
I am running EtherNet/IP and was hoping it (or another driver) could be used to process CIP data. After reading David Dudley response, it does not sound like there is an existing EPICS driver that will help
me.
Randy
Hi Randy,
I didn’t see a reply to this, so I’ll ask a couple of questions.
I don’t really know anything about CIP, but from a quick Google study it appears to be the underlying technology
used in EtherNet/IP, DeviceNet,
CompoNet and ControlNet.
Are you actually using one of those higher-level protocols? What system is generating your CIP messages?
Mark
I am new to IOC and PLC programming, so forgive me if this is a newbie question. I search Tech Talk but did not see an answer.
I am working on a project where we will be receiving CIP (Common Industrial Protocol) data. The CIP data stream is not consider critical and is for reference only. Due to reasons beyond my control, the CIP data will need to be processed
by a program (IOC) and not a PLC. I have written an IOC program (C/C++) that receives/sends data to our Allen Bradley PLC using the Ethernet/IP driver. Can the Ethernet/IP driver be configured to receive CIP data, thereby looking and acting like a PLC? Or
is there another IOC layer/driver that could provide this ability? Or is there another solution that I am overlooking?
Many thanks.