Ethernet/IP Industrial Protocol

What is Ethernet/IP?

(Taken from WikiPedia Ethernet/IP Article)
EtherNet/IP is an application layer protocol treating devices on the network as a series of "objects". EtherNet/IP is built on the Common Industrial Protocol (CIP), for access to objects from ControlNet and DeviceNet networks.

EtherNet/IP uses Ethernet physical layer network infrastructure. EtherNet/IP can be implemented in software on a microprocessor. No special hardware such as application-specific integrated circuits (ASICs) or Field Programmable Gate Arrays (FPGAs) are required. EtherNet/IP is built on the TCP/IP protocols.

EtherNet/IP can be used in automation networks which can tolerate some amount of non-determinism. This is because Ethernet physical media might not have deterministic delays.

EtherNet/IP can be easily confused as a simple combination of Ethernet and the Internet Protocol. Instead, it is an industrial application layer protocol used for communication between industrial control systems and their components, such as a programmable automation controller, programmable logic controller or an I/O system. The "IP" in EtherNet/IP, is not an abbreviation for "Internet Protocol" but instead stands for "Industrial Protocol".

What is EIPNET?

6D Systems LLC (Ingenous LLC's sister company) started a project to communicate with Allen-Bradley ControlLogix Family PLC's. The precursor for talking to a ControlLogix PLC was a library to encapsulate the CIP (Common Industrial Protocol) commands, which was named EIPNET. EIPNET is the implementation of CIP and Ethernet/IP.

A Word Of Caution

EIPNET is simply a protocol for talking to PLC's. Much in the way TCP/IP allows you to talk to Ethernet connected devices, but does not tell you how to talk, EIPNET does not tell you how to talk to a PLC. It does not allow you to just have an API like PLC.ReadTag(). What it does is allow you to implement the PLC API without having to worry about the encapsulation protocol.

Also remember that this is our open source version of the library. We are working on making the documentation better but we can't release our internal documentation because it may violate some terms of the ODVA (owner of the Ethernet/IP protocol standard). We stripped most of the documentation from this project in anticipation of open sourcing this project, and will work to put it back in as it is re-written.

We will also NOT release the ODVA standards documents with this, so please don't ask. Those documents are available for paying customers on the ODVA Website. If you happen to purchase them, please do not copy specific sections of the documents and place them here.

How Can You Help?

If you would like to become a contributing member of this project, please email us at our CodePlex address (codeplex -at- ingeniousllc dot co). If you have a fix that you need, or have found a bug in our code, please email it to the same email address and we will work on getting it fixed, or open a bug report here on CodePlex.

So you want support?

We are more than happy to answer questions as they become available, please post them in the discussions area on this website. If you would like to use this library in a commercial application and need more support, please contact us at support -at- ingeniousllc dot co and we can discuss paid support programs depending on how much support you need. Our paid customers get our full attention, but we will do our best to help everybody.

How are you allowed to use this library?

You may NOT resell this library by itself, if you wish to resell this library as part of a larger product offering, please contact us (codeplex -at- ingeniousllc dot co) to make sure you aren't violating the terms of the license. Using this library in a for-sale product is allowed (like in an HMI package), but repackaging it and offering it for sale as a library is not. Please read the terms of the license file located in the downloads, and the license is posted here. This is an amendment to the license on the license page.

Does it work on Linux or Mac under Mono?

YES!!!! This library has been compiled and run under Mono on Linux. We've also had some limited successful tests running this library on Android. The ControlLogixNET library (to be released under open source soon) was tested fully under Mono on Linux with similar or better performance results as it was on Microsoft Windows. As far as we can tell, this is the only full functionality EIP library since TuxEIP that runs on Linux.

Last edited Aug 2, 2012 at 1:17 AM by IngeniousLLC, version 9