LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to send generic CIP messages with the NI-Industrial Communications for EtherNet/IP library

I'm trying to read/write values over EtherNet/IP to a Keyence NQ-MP8L. The NQ-MP8L lets you send messages to Keyence sensors (the FD series flow meter for example) over IO-Link using generic CIP messages. However, I can't figure out how to do this with the NI-Industrial Communications for EtherNet/IP library. 

Here's were I get stuck: the manual for the NQ specifies the EtherNet/IP request message for reading from IO-Link with 5 inputs: service, class, instance, attribute, and request data. The closest function I could find in the LabVIEW library is "Get Attribute Single" which only has 3 inputs: class, instance, and attribute. Is there another vi that supports generic CIP messaging?

 

I was able to create a Python script demonstrating sending the EtherNet/IP request and getting a good response from the IO-Link sensor, but as I'm targeting compact RIO I'd like to have a solution that works in LabVIEW. I might look into using libplctag instead.

 

Thanks!

 

0 Kudos
Message 1 of 2
(102 Views)

Unfortunately, the NI Ethernet/IP library does not expose the possibility to specify the service code for requests.

 

Watch this presentation from Richard Thomas at GDevCon #4 in Edinburgh: https://youtu.be/R4GN_-X__GA

 

The relevant part is around 17:00.

 

Possibly you could look into using the Ethernet/IP driver from Kirschenhofer Maschinentechnik. https://www.vipm.io/package/kirschenhofer_maschinen_gmbh_lib_ethernet_ip/

A collegue of mine used it to communicate with a PLC in the past. It wasn't trivial but eventually did work after some technical support from Kirschenhofer.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 2
(54 Views)