EtherCAT vs. ADS(Automation Device Specification)

597 Views Asked by At

What is the main difference between ADS and EtherCAT and where is their exact position on the OSI model?

1

There are 1 best solutions below

0
On

EtherCAT can be used for real-time applications, but ADS can't. That is due to the fact how they are setup.

OSI layer

The OSI layer model for EtherCAT looks like this (Wikipedia):

ISO/OSI Layer EtherCAT
7. Application Mailbox Acyclic Data Access
Cyclic Data Exchange
HTTP*, FTP*
6. Presentation
5. Session
4. Transport TCP*
3. Network IP*
2. Data link Mailbox/Buffer Handling
Process Data Mapping
Extreme Fast Auto-Forwarder
Ethernet MAC
1. Physical 100BASE-TX, 100BASE-FX

where the *'s are optional.

The ADS protocol runs on top of the TCP/IP or UDP/IP protocols.

EtherCAT

Wikipedia

With EtherCAT, the standard Ethernet packet or frame (according to IEEE 802.3) is no longer received, interpreted, and copied as process data at every node. The EtherCAT slave devices read the data addressed to them while the telegram passes through the device, processing data "on the fly". In other words, real-time data and messages are prioritized over more general, less time-sensitive or heavy load data.

Similarly, input data are inserted while the telegram passes through. A frame is not completely received before being processed; instead processing starts as soon as possible. Sending is also conducted with a minimum delay of small bit times. Typically the entire network can be addressed with just one frame.2

ADS

ADS runs on top of TCP, which is not fast enough, or UDP, which is not reliable enough, for real time purposes. This is due to the following reasons.

For TCP this is due to fact that several calls need to be made back and forth (Wikipedia):

The server must be listening (passive open) for connection requests from clients before a connection is established. Three-way handshake (active open), retransmission, and error detection adds to reliability but lengthens latency.

For UDP it is the fact that there is no way to check if a message was delivered (Wikipedia):

UDP is suitable for purposes where error checking and correction are either not necessary or are performed in the application; UDP avoids the overhead of such processing in the protocol stack. Time-sensitive applications often use UDP because dropping packets is preferable to waiting for packets delayed due to retransmission, which may not be an option in a real-time system.1

TCP/UDP difference

To remember the difference between TCP and UDP the following joke might help:

RedneckBob on April 1, 2014

"Hi, I'd like to hear a TCP joke."

"Hello, would you like to hear a TCP joke?"

"Yes, I'd like to hear a TCP joke."

"OK, I'll tell you a TCP joke."

"Ok, I will hear a TCP joke."

"Are you ready to hear a TCP joke?"

"Yes, I am ready to hear a TCP joke."

"Ok, I am about to send the TCP joke. It will last 10 seconds, it has two characters, it does not have a setting, it ends with a punchline."

"Ok, I am ready to get your TCP joke that will last 10 seconds, has two characters, does not have an explicit setting, and ends with a punchline."

"I'm sorry, your connection has timed out. Hello, would you like to hear a TCP joke?"

shawabawa3 on April 2, 2014

I'd reply with a UDP joke, but you might not get it