3. EtherCAT主站与从站角色解析

EtherCAT 网络在物理上是一条以太网链路,但在逻辑上却是一个“主站发令、从站接力”的实时系统。理解主站控制器、从站设备和 ESC 芯片三者的功能边界,是后续做拓扑设计、周期估算和主站选型的前提。本节先拆解角色分工,再给出主从通信的数据流关系,最后对 TwinCAT、CODESYS、SOEM 三类典型主站方案做选型对比。

一、三类角色的功能划分

主站控制器(Master)是唯一主动发起通信的节点。它运行在标准以太网 MAC 之上,负责:生成过程数据映像(Process Data Image)、按周期下发 EtherCAT 帧、解析返回帧、执行分布式时钟同步算法、处理邮箱(Mailbox)非周期通信(CoE、FoE、EoE 等)。主站不参与数据转发,它只发一帧、收一帧,中间的所有转发由从站完成。

从站设备(Slave)是现场设备本体,例如伺服驱动器、IO 模块、编码器接口、阀岛。从站由“ESC + 应用控制器 + 外设”构成。从站本身不决定通信时序,它只响应主站帧:在帧经过时读取属于自己的输出数据、写入输入数据,并把帧交给下一个端口。

ESC 芯片(EtherCAT Slave Controller)是从站的核心硬件,通常是一颗专用 ASIC 或 FPGA IP。它承担全部实时性关键工作:

  • 端口 0/1/2/3 的帧收发与自动转发(逻辑环回);
  • 按配置的 FMMU(现场总线内存管理单元)把帧内数据映射到本地内存;
  • 按 SM(SyncManager)划分邮箱区与过程数据区,控制访问权限;
  • 分布式时钟(DC)时间戳锁存与漂移补偿;
  • EEPROM 读取、状态机(INIT→PREOP→SAFEOP→OP)管理。

关键结论:实时性由 ESC 硬件保证,主站只负责调度与算法。因此从站数量增加时,帧延迟主要来自 ESC 转发级数,而不是主站 CPU 性能。

二、主从通信关系与数据流

EtherCAT 使用“逻辑环”结构:主站发出的帧依次穿过每个从站的 ESC,最后一个从站把帧回环返回,主站收到的是被所有从站“就地处理过”的同一帧。每个从站在帧经过时只做两件事——读走输出、写入输入,因此单帧即可完成全网刷新。

EtherCAT 主从通信数据流(逻辑环) 主站 Master 过程映像 / DC 算法 邮箱 CoE / FoE 标准以太网 MAC 从站 1 ESC + 应用 FMMU / SM 伺服驱动 从站 2 ESC + 应用 FMMU / SM IO 模块 从站 n ESC + 应用 FMMU / SM 编码器接口 回环返回:帧携带全部从站写入的输入数据 下行帧 下行帧 下行帧 帧内数据区: [ 从站1 输出 | 从站1 输入 | 从站2 输出 | 从站2 输入 | … | 从站n 输出 | 从站n 输入 ] 每个从站通过 FMMU 只访问属于自己的那一段,无需主站逐站寻址。

图中橙色虚线表示回环路径。可以看到,主站只发一帧、收一帧,从站数量 n 只影响帧在环上的传播时间。以 100 Mbit/s 全双工、每站 ESC 转发延迟约 1 μs 估算,20 个从站的单程延迟约 20 μs,加上帧长与主站处理,典型 1 ms 周期内可轻松容纳数十个从站。

三、典型主站方案选型对比

主站方案决定了开发效率、实时性能和授权成本。工程上常见三类:

对比项TwinCAT 3CODESYS EtherCATSOEM
形态Beckhoff 软 PLC + 实时内核CODESYS 运行时 + EtherCAT 主站栈开源 C 库,需自行集成
实时性Windows 下 50–100 μs 抖动,配 TwinCAT RT 更优依赖底层 OS,Linux/RTE 可达百微秒级取决于宿主 OS,裸机/RTOS 可做到很低
开发效率高,图形化配置 + PLC 编程一体高,IEC 61131-3 工程化低,需手写初始化、PDO 映射、状态机
授权成本商业授权,按等级收费商业授权,按运行时收费免费(GPL/商业双许可需注意)
适用场景设备控制、产线集成、快速交付多品牌控制器、OEM 标准化嵌入式自研主站、教学与协议研究

选型建议:若目标是快速搭建可运行系统并做工艺逻辑,优先 TwinCAT 或 CODESYS;若目标是自研嵌入式主站、控制 BOM 成本或研究协议细节,选 SOEM,但必须自行实现 DC 同步、状态机切换和错误恢复。

四、实操要点:从站状态机与主站职责

上电后从站依次经历 INIT → PREOP → SAFEOP → OP。主站在 PREOP 阶段读取 EEPROM 与 SII 信息、配置 FMMU/SM;在 SAFEOP 阶段下发 PDO 映射并检查输入数据有效性;只有进入 OP 后才允许输出生效。若某从站卡在 SAFEOP,常见原因是 PDO 映射长度与 ESI 文件不一致,或 DC 配置未对齐。

调试时可用主站的“从站诊断”查看每个从站的 AL Status Code。例如 0x0011 表示无效请求状态,0x0024 表示 SM 看门狗超时,据此可快速定位是配置问题还是线缆/供电问题。

理解这三类角色的边界后,后续做网络拓扑、周期计算和主站选型时,就能明确哪些指标由硬件决定、哪些由软件决定,避免把实时性问题错误归因于主站 CPU 性能。