EtherCAT从会到不会——重要概念(2)

本来还想着起什么名字,但是对比起内容,名字什么的一点都不重要。

最近我又想起要写点什么东西防止最后什么都不剩下。那就从EtherCAT开始吧!

ESI(EtherCAT Slave Information)文件

每个EtherCAT从站都有其自己的ESI文件(XML配置文件),该文件说明了从站所提供的功能、属性等数据。主站可以根据档案内部的数据对从站进行初始化设置。

所以EtherCAT主站必须获取从站ESI文件的信息,否则无法对从站进行控制

通讯模式

周期性数据(Process Data)

由于EtherCAT一般采用COE协议对从站进行周期性数据的交换。所以如不特殊说明,一般讲EtherCAT通讯的周期数据,都是指PDO。主站通过与从站交互PDO数据从而实现对从站设备的实时控制。

非周期性数据(Mailbox)

同理,非周期数据一般就指代SDO

EtherCAT总线实现

分布式时钟(Distribute Clock)

为什么需要分布式时钟

EtherCAT网络为多个设备彼此串接而形成,所有通讯的数据需要一站一站依次通过,这会导致不同从站收到数据时间点也会不一致。为了实现各个从站(轴)动作的一致性,所以需要调整各个从站本地时钟(local time)的偏移以达到时间同步。

一般以主站连接到的第一个拥有DC功能的从站时钟作为参考时钟(reference clock)。

实现DC同步

要实现DC总共分为3步

第一步:传输延时(Propagation delay)测量

  • 主站发送广播指令给全部从站,从站收到指令时会记录下此时的从站本地时钟(local time)。
  • 主站读取每一个从站的本地时钟,根据拓扑关系计算出各个从站与参考时钟之间传输延迟时间,然后将传输延迟时间写入从站的寄存器(system time delay register)。

第二步:时钟偏移(offset)补偿

  • 主站比较从站的本地时钟与参考时钟,就能算出各个从站的相对偏移,然后将偏移值算入从站寄存器(system time offset register),这样就算出了绝对系统时钟(absolute system time)

第三步:漂移(driff)补偿

  • 静态漂移补偿:主站通过在传输时延和偏移补偿之后,单独向从站多次(15000次)发送单独的帧来进行校对。
  • 动态漂移补偿:周期性读取参考时钟,与其他从站本地时钟比较进行漂移修正。

DC同步流程
DC同步流程

EtherCAT同步模式

  • Free Run Mode(主站与从站之间不同步)
  • SyncManager Mode(从站收到 Sync Event 后产生中断)
  • DC Mode(周期性产生Sync0信号去中断)

EtherCAT同步模式

DC模式运行举例

各个从站由于接线的顺序获取到数据的时间是不一致的,但是触发动作的 Sync0 中断信号是同时的。

DC时钟例子

状态机

EtherCAT状态机

如上是EtherCAT总线运行的状态机。
一个从站的运行必须依次经历这四种状态,即Init(初始化) -> Pre-Operational(预运行) -> Safe-Operational(安全运行) -> Opreational(运行)

当从站设备处于Opreational(运行)状态时,EtherCAT主站才可以对从站进行周期性数据的交互。

状态机动作描述

状态\切换 描述
Init(初始化) 1. AL无通讯
2. 主站初始化ESC寄存器
Init to Pre-Op(IP) 1. 主站配置DL地址寄存器
2. 主站配置 Mailbox 通道参数
3. 主站初始化 Distribute Clock 同步
4. 主站设置AL Control register请求跳转至Pre-Op状态
Pre-Operational(预运行) 1. AL Mailbox 通讯启动
Pre-Op to Safe-Op(PS) 1. 主站使用 Mailbox 初始化 Process Data Mapping
2. 主站配置 Process Data 通讯的 SyncManager 通道
3. 主站配置 FMMU
4. 主站设置AL Control register请求跳转至Safe-Op状态
Safe-Operational(安全运行) 1. AL Mailbox 通讯进行
2. Process Data只允许写入,不产生输出信号
Safe-Op to Op(SO) 1. 主站发送有效输出数据
2. 主站设置AL Control register请求跳转至Op状态
Operational 1. Process Data、Mailbox通讯全部有效

参考资料:

  • ET1100datasheet

EtherCAT从会到不会——重要概念(2)
https://jacobblog.pages.dev/2026/03/08/EtherCAT-02重要概念/
作者
Jacob Chen
发布于
2026年3月8日
许可协议