TCP/IP Stacks Part 2

TCP/IP Stacks are crucial to the operation of your EtherNet/IP, Profinet IO or Modbus TCP application. A stack that functions incorrectly is going to cause you substantial field problems. In the worst cases, it may give you intermittent problems and you know how difficult those are to solve.


At RTA we have detected flaws in a number of stacks used in industrial applications. We’ve found problems stacks used my leading manufacutures. In cases where we have access to the vendors TCP/IP Stack source code, we just go ahead and fix the problems. But when we don’t, there is no easy resolution and if your device is dependent on that vendor, you are really at their mercy. We recently had a customer use Keil and a bug in their TCP/IP implementation cost our customer about 6 weeks.


Your best bet is to contact us before starting to design your EtherNet/IP Adapter, Modbus TCP Server or Profinet IO Device. We’ll let you know if we have identified any known flaws in that flavor of TCP/IP Stack. For some processors, we have found favorites that seem to work very well and we’ll be glad to let you know what stacks have been successful in other EtherNet/IP or Profinet IO projects.


For EtherNet/IP, there is an entire section of the ODVA specification that lists the TCP/IP Stack requirements. That specification details exactly what is required for minimal support for EtherNet/IP. You can get that from the ODVA or contact me and I will forward that section of the specification to you.


The requirements listed in that document are pretty basic:

·Internet Protocol (IP version 4) (RFC 791)

·User Datagram Protocol (UDP) (RFC 768)

·Transmission Control Protocol (TCP) (RFC 793)

·Address Resolution Protocol (ARP) (RFC 826)

·Internet Control Messaging Protocol (ICMP) (RFC 792)

·Internet Group Management Protocol (IGMP) (RFC 1112 & 2236)

·IEEE 802.3 (Ethernet) as defined in RFC 894

Essentially what that part of the specification says is that a device must support the IP, UDP, ARP and other protocols. The RFC is the Internet specification for that protocol. For example, RFC 826 describes exactly how the ARP (Address Resolution Protocol) must function.


That’s fine as far as it goes but it doesn’t really give you a mechanism to check your TCP/IP Stack against that specification. For the most part you are going to have to rely on your vendor to give you assurances that each of these protocols meets the relative TCP/IP Stack RFC.


All of our EtherNet/IP gateway devices that move data between Logix PLCs and Other devices use the uCoS TCP/IP stack which we have found works fine in EtherNet/IP applications.


But as always, your best is to always contact RTA to identify the best TCP/IP Stack for your EtherNet/IP or Profinet IO implementation.


I’ll look forward to hearing from you,