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).
Results
The EtherCAT master packet gets dropped.
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_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 ).
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).
Results
Two cases have been detected:
An EtherCAT LRW message never arrives, leading to an FSoE error:

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:

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).