- List of Abbreviations
EtherCAT is a real-time capable fieldbus system.
A PC with real-time OS, like Linux with RT-patch, and Ethernet hardware can be used as the master.
The slaves require special EtherCAT hardware.
With EtherCAT, data packets, so-called PDOs (process data objects), are sent cyclically from the master to the slaves and from the slaves to the master.
A PDO can, for example, be an encoder value or an output value for a drive.
Acyclic messages, so-called SDOs (service data objects), are not discussed in this documentation.
At its lowest level, ethercat uses an ethernet frame to send EtherCAT datagrams containing commands to read or write data, or both ('r', 'w', 'rw'). Each Datagram consists of a header, its data and the working counter, which servers as a status indicator or checksum. Depending on the operation, the counter is either not incremented at all (+0), by 1, 2 or 3, if data was read, written or both.
The data that is actually read or written is accessed using a 4Gbit address space using byte.bit addressing. EtherCAT technically bit alignment, though in practice most things seem to be byte aligned. This address space is called the Process Data Image or PDI. Object living in that space are often referred to as Process Data Objects or PDOs, though it's not entirely clear, whether that strictly refers to PDOs in the sense of CANOpen or is to be understood as a separate term.
Each Slave Device can be configured to output some of its PDOs on the EtherCAT bus. This is done through the ENI file.
The PDOs can then be accessed on the master by calculating their offset into the respective buffer (RX buffer for TX PDOs, TX buffer for RX PDOs). An example mapping is shown below.
Ec-Engineer specific: Note that that the TX buffer is padded to the size of the RX buffer. This ensures that a device's first RX & TX PDO will allways be at the same offset. In general, whichever buffer is smaller is padded to the size of the bigger one.