[etherlab-dev] EtherCat performance

Mladen Knezic mladen_knezic at etfbl.net
Tue Mar 23 18:36:14 CET 2010

Hello Niranjan,

Please note my comments below as I will try to give you some of the answers.

>As per my knowledge EtherCat performance mainly depends on payload data
>which is sent in the EtherCat frame. I would like to know
>Do any other factors or components affect the etherCat performance?

This is correct, if there are small number of slave devices in network. In 
case when there are large number of slaves with small payload in network 
(hundreds of slaves) forwarding delay becomes significant (approximately this 
delay is 1us for typical two-port slave including PHY delays). This delay can 
be reduced when EBUS is used on physical layer which is in case of modular 
devices with internal EBUS backbone. Also, physical topology plays an 
important role when communication cycle of the EtherCAT system is evaluated 
(redundant ring topology is the most efficient while the star topology proven 
to be the most efficient topology).

I can send you some results and conclusions of my research thesis about this 
topic if you are interested about the details.

>1. Does the performance depend on the Ethernet controller which is used?

Could be. Mostly, the communication stack of the operating system is 
responsible for this (remember that the EtherCAT master is implemented in 
software). I'm not sure if the actual hardware can be introduce such a 
latencies as a inefficient communication stack of protocol implemented in OS. 
People generally try to avoid these problems by modifying device driver in 
order to reduce large latencies and jitter. 

>2. Does the performance depend on the network topology?

Yes. Pretty much in some cases.

>3. What are components (like PHY delay, slave forwarding delay and any other
>components) to be considered while calculating the EtherCat cycle time?

All of these that you mentioned have to be considered when calculating 
EtherCAT cycle time. There are also cable propagation delays but they are 
small in amount and can be neglected in most cases.

>4. What are distributed clocks? If distributed clocks are used can this help
>in improving the performance.

Distributed clocks are used to synchronize local system times of each slave 
in network (with <<1us accuracy). This means that output update and input 
acquisition times are accurately synchronized (happens at approximately same 
time in all network). Performance (by means of network cycle time) doesn't 
have anything with clock synchronization. You can have cycles of 10ms with 
the <<1us synchronization accuracy.

>Will this affect my actual performance?
>I heard that the performance is affected by type of Ethernet controller
>chip? Is that correct?

Could be. But you have to do some research and calculations on the actual 
system. I am very interested to hear about your results.

>I ‘m very much concerned about this because when I send a shared payload
>data (3 commands LRW,LWR,LRD) of 49 bytes to 3 different  Slave I/O devices
>(digital output and analog input slave devices) my actual EtherCat cycle
>time achieved
>is 38 to 40 us (micro seconds) but the expected result according to IEEE
>report says that it just take 17 us(micro seconds).

If you could provide me some more details about this I would definitely do 
some calculations and comparisons to your results. Does each device has 49 
bytes data or it is 49 bytes for all devices (and if this is the case please 
provide me with the information what is the payload for each device)? Have 
you got these numbers (I'm referring to 38 to 40us) by measuring cycle time 
or by another way? To what IEEE report you are referring when you are 
expecting cycle time of 17us?

Best regards,

Mladen Knezic
Teaching Assistant
Faculty of Electrical Engineering
Banja Luka, Bosnia and Herzegovina
Web: www.etfbl.net
Phone: +387 65 804 205
Fax: +387 51 211 408

More information about the Etherlab-dev mailing list