The following are a few introductory lines on EtherCAT:
The EtherCAT master sends a telegram that passes through each node. Each EtherCAT slave device reads the data addressed to it “on the fly”, and inserts its data in the frame as the frame is moving downstream.
My questions from the above text:
- What does reading data "on the fly" mean?
- How can data be inserted in the frame while its moving? Doesn't it need to be copied first in a buffer and then updated?
This text is taken from http://www.ethercat.org/en/technology.html.
An EtherCAT network can be compared to a railway where each station can off-load and re-load train cars while the train moves through the station.
It means the reading happens at the same time when the frame is transmitting. It's pretty much like the cut-through technology used by switches. You don't store the whole received frame first, process it, and then forward it. Instead, you read it as it is transmitting through you "on the fly" like a train passing through a station.
The key to this is all these are done by slave's specific hardware(e.g., FPGA, ASIC). This hardware chip is called EtherCAT Slave Controller (ESC) in EtherCAT's parlance. ESC guarantees the "on the fly" feature.
Refer to this fabulous animation on youtube: EtherCAT Functional Principle.