Transferring large data sets in EtherNet/IP using Explicit Messaging
I keep a big bag next to my desk. It’s filled with questions I’ve gotten over the years from customers. Some of them are really good and make me think. A lot of them are just good questions that always confuse the casual user of a technology like EtherNet/IP, and others, well, some of them are just peculiar.
I remember one guy that sent me an email asking about the battle for the Argonne Forest in World War I. He wanted to know how the battles of the 77th Infantry Division affected the progression of the overall battle in Europe. Wow! I admit to being a history buff, but I’m not a professor of World War I history.
Well, I looked into the bag, and for today’s article I spread out a bunch of questions on my desk that all revolve around EtherNet/IP assemblies, moving huge data sets over EtherNet/IP and making your EtherNet/IP device look like two devices. It’s a bit technical, and if you’re new to EtherNet/IP, you may just want to watch my video introduction to EtherNet/IP or read the 6.5 things you have to know about EtherNet/IP.
The reason that moving lots of data over EtherNet/IP is important to so many people today is because today, more than ever, they have devices that generate lots of data. This hasn’t been a big issue in the past, but it is gathering steam. More and more devices are going to become archivers, archiving all sorts of production, maintenance and operational data. That data needs to get transferred someplace, and since the device support EtherNet/IP, that’s the apparent first choice.
It’s just that it isn’t always easy to do that. There’s two messaging options in EtherNet/IP, Explicit and Implicit, and in today’s article I am going to focus on how to move large data sets with Explicit Messaging.
Explicit Messaging is the mechanism in which an Originator (the one “originating” the message) sends a service code (an action to perform) to a Target. The Originator is usually a PLC but doesn’t have to be. The service code can be one predefined by the EtherNet/IP specification or a vendor service code created by the vendor to support some special service, like transferring a large data set. The Target receives the message, performs the service requested in the message, and returns a response that includes a status code.
It’s important to know that this can be, but usually isn’t, a scheduled service. There is no requirement for an Originator to ever send an Explicit Message. The Originator can send it every 50msecs or every 50 days or once and never again. It’s strictly at the whim of the Originator.
EtherNet/IP Explicit Messaging is pretty simple and straightforward if you are setting the drive’s ramp time to 50msec or getting the value of Input 17 or issuing a command to start a recalibration process. But if you are sending a message requesting …