How to diagnose an EtherCAT communication problem

This page describes the procedures to diagnose EtherCAT communication problems of the following type:

EtherCAT package drop

Use an Ethernet probe to sniff the traffic between the EtherCAT master and slave to see the dropped packages.

Setup

  • PC1: computer running the script packet_drop_test.py, is connected to the EtherCAT network using a USB-Ethernet adapter.

  • PC2: computer connected to the Ethernet probe.

  • EtherCAT slave: Safety-drive (for instance, the DEN-S-NET).

pdo_test.drawio.png

Results

  • The EtherCAT master packet gets dropped.

master_packet_drop.PNG

master_packet_drop_pc1.pcapng master_packet_drop_pc2.pcapng

The logs show that the PDO packet (#8531 on the left side) is sent by the master but does not reach the slave.


  • The EtherCAT slave packet gets dropped.

slave_packet_drop.PNG

slave_packet_drop_pc1.pcapng slave_packet_drop_pc2.pcapng

The logs show that the PDO packet (#8344 on the right side) is sent by the slave but does not reach the master.


Analyzing the logs, we see that whenever a packet is lost, there is always a packet from a different protocol (DHCPv6, mDNS, UDP, etc.) before or after it. When this packet arrives at the USB-Ethernet it causes it to cancel all pending transfers (URB_FUNCTION_ABORT_PIPE ).

usb_logs.PNG

master_packet_drop_pc1_usb.pcapng slave_packet_drop_pc1_usb.pcapng


EtherCAT late package timeout

Use a Network analyzer to see the messages between the EtherCAT master and slave.

Setup

  • PC1: Computer running the Network analyzer, connected to the EtherCAT network.

  • PC2: Computer running the Network analyzer, connected to the Ethernet probe.

  • EtherCAT slave: Safety-drive (for instance, the DEN-S-NET).

1737555721349-pdo_test.drawio.png

Results

Two cases have been detected:

  • An EtherCAT LRW message never arrives, leading to an FSoE error:

image-20250122-143340.png
Example 1 - LWR message not sent

The logs on the left show that the last LRW packet (#1867) sent by the Master has ID 67. The logs on the right show how the Slave’s last received LRW packet (#1866) belongs to the previous message with ID 66, and that the Masters' last packet (#1867) never arrived.

  • An EtherCAT LRW message arrives late, leading to an FSoE error:

image-20250122-151113.png
Example 2 - LWR message arrives late to master

The logs on the right show how the Slave received the LRW packet (#2085) with ID 36 sent by the master, immediately sent the LRW packet (#2086) and then the BRD packet (#2087). The logs on the right show how the Master sent the first LRW packet (#2085) with ID 36, and then received first the BRD packet (#2086) 15.86 ms later, followed by the LRW packet (#2087).