When Not to Use EtherNet/IP

Had a call from a really nice guy down south today who wants to implement EtherNet/IP. He seems to be really, really competent and sincerely wants to architect the right solution for his application.

The only problem is that this application isn’t appropriate for EtherNet/IP. This is a situation where it just doesn’t fit. He and his group are kind of enamored with the technology and the “thrill” of using a name technology.

It’s a classic illness that all us engineers are prone to get. We let are enthusiasm for some cool technology get way ahead of the problem we’re trying to solve. I did it with DeviceNet. Long time ago I created this really cool ISA bus coprocessor that was a DeviceNet Master. I got so excited by the technical challenge that I forgot completely about the business issues. The product was a big flop.

This guys problem is that he really has an Ethernet Peer-Peer system. He has a number of distributed application components and he wants to add and remove them at will without any reconfiguration.

His application reminds me of J1939. That’s a CAN based application layer protocol just like DeviceNet. Only J1939 is all broadcast. Each node publishes its data as needed to the network and who ever needs that data listens for it. There are no masters or slaves. If a node isn’t there the data isn’t published and the listener doesn’t receive it. It’s really simple and straight forward, used in transportation applications. I implemented a system for huge yachts one time. Catepillar engines use it extensively.

So this guy wants to do the same thing on Ethernet. One choice is to use CAN and J1939 but the physical distribution of the system prohibits that solution. CAN is good to 1000 feet unless you use extenders.

He could use Profinet CBA. But the size and complexity of that mother is just prohibitive. His data is pretty simple. Not sure that CBA makes a lot of sense in his application.

Another is proprietary. He could implement a J1939 like proprietary Ethernet application layer but is that the best solution?

One of the things he is looking at is Microsoft Robotics Studio. That a system targeted to students that makes it easy to program robots. It supports a bunch of different hardware platforms including PCs which is what our southern friend is using. It has simulation and tools for accessing sensors and actuators. It is designed for distributed systems where the robots can coordinate their actions. Here’s where you can get more information: http://msdn.microsoft.com/en-us/robotics/default.aspx.

I’ll have to admit that I didn’t have a good solution for him. Any thoughts from my “legion” of loyal readers? J