Welcome to the NI Labs EtherNet/IP Industrial Protocol Support project. This thread is intended to foster discussion about the project, so please post your questions, comments, suggestions and bug reports and I'll be happy to respond.
This library allows direct communication between NI systems running LabVIEW and various PLCs using the EtherNet/IP industrial communications protocol. The current version supports explicit messaging communication to read or write data stored in named tags on the PLC. PLCs that support this mechanism include Allen-Bradley's ControlLogix and CompactLogix series. There are a number of native data types supported including boolean, numeric and string types.
The library can be used in LabVIEW 8.2 and up on both Windows systems as well as systems running LabVIEW RT. To use the library on an RT target you must first install the library onto the target under the Add/Remove Software tree item in MAX.
One of the goals of this release on NI Labs is to get a better idea of what features are in most demand to add support for. We'd love to get feedback regarding need for additional data types, additional PLC addressing support, Implicit I/O communication, etc.
I really appreciate NI for working on industrial protocols. It is very helpful for us in the control industry. That said, lets get into the suggestions and comments.
- It would be nice to see a native Labview version of EthernetIP, unlocked of course. Like this over on LAVA. Or maybe release the source code for ethernetIPInterface.dll. NI need to eat its own dog food here.
- Add support for IO connections or Unconnected PCCC read and write messages.
Thanks for the feedback. I can tell you we are looking at future support of I/O connections (implicit messaging) capability as well as the PCCC support, but we'd like to hear back from customers regarding the need for such features. Aside from the PCCC support to allow compatibility to older PLCs, what types of use cases would the I/O connections make easier?
While I can't explain here all the reasons for why our implementation is not 100% in LabVIEW code, I will say there are some advantages to the current approach including future usage by our CVI customers as well.
Please keep the comments and suggestions flowing,
PCCC is not only older PLCs. Some of the new Micrologix PLCs only support PCCC. I have a need for I/O connections with a 3rd party device (i.e. not Rockwell) that only has support for I/O connections. It does not support Explicit Messages. Whats CVI? Just kidding... but your telling me text based code has advantages over G? We don't use CVI but I can see why your implementation is not Labview. Its a shame not to code this in 100% Labview. Those CVI programmers don't need EIP anyway. Just code it in Labview and compile a DLL for CVI.
How can I open a new session?
I seen that the dll used has others "Functions" (like LV_OpenSession) but only the reading and writing ones are shown.
The sessions are opened on demand by LabVIEW (and closed by it as well when they are deemed to no longer be needed). You should not need to open/close the sessions manually, just leave it unwired. Explicit open/close VIs may be added to the palette eventually but their only usefulness for explicit messaging would be for allowing you to cancel a blocking operation programatically.
Hope this helps,
many thanks for the reply!
Now I'm able to read and write some tags in my Allen-Bradley PLC LOGIX 5343 but only using a code developed in LabVIEW 8.6...
If I use the same instructions in a code developed in LabVIEW 8.2, I receive the following error:
Error -251723770 occurred at EthernetIP Tag Read INT.vi;
Details: The session is invalid
Ethernet/IP Industrial Protocol: (Hex 0xF0FF0006) The session is invalid
Do you have any idea about this behaviour?
We have to integrate this functionality in our code developed in LV 8.2 without move all the software to LV 8.6...
Thanks in advance,
That is odd. Is it possible to try upgrading your 8.2 to 8.2.1? The two should have compatible behavior but I've only used 8.2.1. Another thing to confirm is checking whether there is a default string filled in on the session refnum wire. It should be there by default but you could try putting some name in manually.
I have reinstalled the EtherNet/IP driver addon and now it works fine also with LV 8.2!
I don't know what happened before...
Hi, i'm not able to run correctly the "EthernetIp Read Tag.vi" and "EthernetIp WriteTag.vi"
I have always the error:
Error -251723760 occurred at EthernetIP Tag Read DINT.vi;
Details: CIP Error - Extended status may be available
CIP Extended Status: 0x311
If i use the llb that i downloaded from LAVA always run correctly....
Studio Progetti Automation s.r.l.