Back to Blog

EtherCAT for Robot Joint Networks: How the Cycle-Time Budget Actually Works

Processing on the fly sounds fast in theory. Here is the actual arithmetic that tells you how many joints fit inside a 1 kHz control cycle.

EtherCAT for robot joint networks gets pitched with one line: it processes frames "on the fly," so it is fast enough for real-time servo control. That is true, but it hides the actual question a builder needs answered before wiring six or twelve joint drives into a chain: how many axes actually fit inside your control cycle, and at what point does adding one more joint blow your timing budget? Answering that takes an actual calculation, not a marketing bullet point.

Why EtherCAT processes frames differently than CAN

On a classic CAN bus (see our CAN bus joint network article for the bit-timing side of that protocol), every node listens to a shared electrical bus and arbitrates for access one message at a time. EtherCAT works differently. The master sends a single Ethernet frame that travels through the whole chain of slave devices in a physical loop. Each slave's EtherCAT Slave Controller (ESC) reads the data addressed to it and writes its own response into the same frame as it passes through, without stopping to fully receive, decode, and re-transmit like a normal Ethernet switch would. This is the "processing on the fly" part, and it is the reason EtherCAT cycle times can get into the tens of microseconds even with a dozen nodes on the chain.

But "on the fly" does not mean zero time. Every slave still adds a small, real delay as the frame passes through it, and the frame itself still takes a fixed amount of time to transmit at the physical line rate. Your cycle time is the sum of those pieces, not a fixed number a datasheet hands you.

The four pieces of an EtherCAT cycle-time budget

For a robot arm or mobile base with N joint drives daisy-chained on one EtherCAT segment, the cycle time has four components:

  1. Frame transmission time. At the standard 100 Mbit/s EtherCAT physical layer, transmission time is frame length in bits divided by 100,000,000 bits/s.
  2. Per-slave forwarding delay. Each ESC introduces a small delay as it reads and writes its process data segment before forwarding the frame to the next node. This is on the order of a few hundred nanoseconds per slave, and it applies twice per slave on a standard EtherCAT ring topology (once on the way out to the last node, once on the way back).
  3. Cable propagation delay. Signal propagation through Ethernet cable is roughly 5 nanoseconds per meter. For joint-to-joint cable runs of a meter or less inside a robot arm, this term is small but not always negligible once you sum it across many hops.
  4. Master and application processing time. The time your master's real-time task needs to prepare the outgoing frame and process the incoming one before the next cycle can start. This is set by your control software, not the fieldbus, and is easy to forget when people only quote the "wire time."

Worked example: six joints on one EtherCAT segment

Take a 6-DOF arm with one drive per joint, each drive contributing 8 bytes of process data in each direction (typical for target position, target torque, actual position, and status word packed into a compact PDO mapping). We want to know if this fits inside a 1 kHz (1000 microsecond) control cycle.

Step 1: frame length and transmission time

The Ethernet frame carries an EtherCAT header, one datagram header plus payload per slave, a working counter, and the standard Ethernet frame overhead (preamble, addresses, type field, frame check sequence, inter-frame gap). Adding up 6 slaves at roughly 8 bytes payload plus about 12 bytes of per-slave datagram overhead, plus around 60 bytes of fixed frame overhead, gives a total frame length of approximately 60 + 6 x (12 + 8) = 180 bytes, or 1440 bits.

At 100 Mbit/s, transmission time is:

t_frame = 1440 bits / 100,000,000 bits/s = 14.4 microseconds

Step 2: forwarding delay

Assume a representative forwarding delay of 500 nanoseconds per slave, a typical order of magnitude for real ESC hardware. With 6 slaves and the frame passing through each one twice (out and back on the ring), that is:

t_forward = 6 slaves x 2 passes x 500 ns = 6 microseconds

Step 3: cable propagation

With six 0.5-meter cable segments between joints, round trip distance is 6 x 0.5 m x 2 = 6 meters at roughly 5 ns/m:

t_cable = 6 m x 5 ns/m = 30 nanoseconds

This term is small enough to fold into your margin rather than track precisely, which is exactly why it is safe to ignore for short in-arm cable runs but not for a robot with joints spread across several meters of cabling, like a large gantry or a multi-arm cell.

Step 4: total wire time and the real budget

t_wire = t_frame + t_forward + t_cable = 14.4 + 6 + 0.03 ≈ 20.4 microseconds

Against a 1000 microsecond (1 kHz) cycle, 20.4 microseconds of wire time leaves roughly 98% of the cycle for the master's application logic: reading sensor data, running your control loop (see our real-time control loop article for how to budget the rest of that time against jitter), and preparing the next frame. This is the actual reason EtherCAT scales well: the wire time for a realistic joint count is a tiny fraction of a typical servo control cycle, not because the protocol is magic, but because the arithmetic genuinely works out that way at 100 Mbit/s.

Where the budget actually breaks

The wire-time math scales roughly linearly with slave count, so doubling to 12 joints roughly doubles t_forward to 12 microseconds and modestly increases t_frame, keeping total wire time comfortably under 1000 microseconds. The budget does not break from axis count alone at 1 kHz; it breaks from three other places builders hit in practice:

Practical takeaway

Before committing to an axis count and cycle rate for an EtherCAT robot joint network, run the same four-step calculation with your actual PDO sizes, slave count, and target cycle time. If wire time comfortably clears 10-20% of your cycle budget, you have margin for real-world jitter and master processing. If it starts approaching 50% or more, either drop the cycle rate, trim PDO payload per slave, or split the chain across multiple EtherCAT masters. The protocol's speed comes from real, calculable numbers, and treating it that way during design saves you from discovering the limit on a robot that is already wired.

Building or studying robotics?

Arcbotix publishes practical guides on robotics engineering, control systems and real-world builds. Explore more articles on the blog.