1. 主站的角色:唯一的"总调度"
EtherCAT 网络里只有主站会主动发帧,所有从站只被动响应。主站负责三件事:
- 建网:上电扫描从站、读 SII、构建拓扑与配置(PDO 映射、SM、FMMU、DC)
- 运数据:每个周期发一个 LRW 数据报,一次完成全网输入输出交换
- 管状态:驱动每个从站在 INIT → PRE-OP → SAFE-OP → OP 状态机里安全推进
1.1 为什么普通网卡就够
EtherCAT 主站不需要专用实时以太网控制器。实时性的关键在两点:网卡驱动要快且可预测(最好支持直接访问 DMA、时间戳),控制任务的调度要确定(RTOS / 实时补丁)。一张普通的 Intel/瑞昱千兆或百兆网卡就能跑通 100 Mbps 的 EtherCAT。
EtherCAT = 协议实时 + 软主站;不像 PROFINET IRT 那样"硬件绑死"。这也是它在机器人和中小自动化领域流行的原因——一颗 Linux 工控板就能当主站。
2. 主站软件栈怎么选
| 主站栈 | 类型 | 平台 | 特点 |
|---|---|---|---|
| SOEM(Simple Open EtherCAT Master) | 开源库 | Windows / Linux / 嵌入式(用户态) | 轻量、跨平台、易集成,机器人/创客项目首选,很多开源机械臂用它 |
| IgH EtherCAT Master(EtherLab) | 开源 | Linux(内核模块) | 内核态直操网卡,实时性上限高;配 PREEMPT_RT 后抖动可到个位数 µs;功能全面 |
| TwinCAT(倍福) | 商业 IDE | Windows | 把 PC 变成 PLC+主站,工程工具链最完整,自动化产线事实标准 |
| EC-Master(Acontis/盟通) | 商业 | Windows RTX / Linux / VxWorks / QNX | 高性能软主站标杆,最小周期可到 125 µs,支持冗余/拓扑扫描,汽车产线常见 |
| CODESYS / KPA 等 | 商业/开源 | 多平台 | CODESYS 把主站做进 PLC 运行时;KPA 有开源与非开源版本 |
选型要点:数量少、想省钱、要灵活 → SOEM;Linux 高性能 → IgH;要完整工程环境、快速交付 → TwinCAT;硬实时、商用认证 → EC-Master。
3. 主站启动流程:从"一片空白"到"全网运行"
- 扫描拓扑:用位置寻址(APRD)逐站读 ESC 寄存器/类型,识别出"链路里有几个站、分别是什么"
- 读 SII:用 FPRD 读每个从站 EEPROM 里的从站信息(厂商 ID、产品码、PDO 默认映射、DC 能力…)
- 下发配置:写 PDO 映射、SM 配置、FMMU 映射、DC 参数到每个从站
- 推进状态机:逐个把从站从 INIT 推进到 OP
- 周期运行:每个周期发 LRW 交换过程数据,同时按需发邮箱/诊断
4. EtherCAT 状态机:从站的"安全启动链路"
每个从站都有四态,由主站驱动迁移,每次迁移都要主站确认成功后才会继续(请求→等从站状态回显→确认):
| 状态 | 可用功能 | 说明 |
|---|---|---|
| INIT | 仅数据链路层 | 刚上电;只能做 DL 级操作(读寄存器) |
| PRE-OP | + 邮箱 | 可以 CoE/Sdo 读写对象字典(配置参数),但不交换过程数据 |
| SAFE-OP | + 过程数据输入 | 从站开始上报实际值(输入有效),但输出被钳制在安全值,不驱动执行器 |
| OP | + 过程数据输出 | 全速运行,输入输出全部激活,驱动器开始接受目标值 |
还有两个辅助态:BOOT(用于 FoE 固件下载)和 错误(故障时从站自动退态)。任何一步迁移失败,主站都要诊断并回退,绝不强推——这是 EtherCAT 安全性的体现。
从 OP 退到 INIT 会清空所有配置,下次要重新走一遍配置流程;现场"每次重启都要重新下载配置"通常是 SII 没存好或主站在用内存态配置。
5. 邮箱通信:EoE / CoE / SoE / FoE
过程数据是"周期快件",配置/诊断是"非周期挂号信",走邮箱:
| 协议 | 全称 | 用途 |
|---|---|---|
| CoE | CANopen over EtherCAT | 对象字典 + SDO/PDO;支持 CiA 402 驱动行规——上一专题学的 CANopen 知识直接复用 |
| EoE | Ethernet over EtherCAT | 在 EtherCAT 里"隧道"普通以太网/IP,给从站配置 IP、走 Modbus TCP 等 |
| SoE | Servo over EtherCAT | 源自 SERCOS III,伺服专有参数体系,老式伺服设备常见 |
| FoE | File over EtherCAT | 文件传输,最常用于从站固件升级(BOOT 态下下载 .bin) |
对伺服应用,CoE + CiA 402 是最主流组合:周期用 CSP/CSV/CST 模式交换目标/实际值,非周期用 SDO 读写参数(如 607Ah 目标位置、6060h 操作模式——索引和 CANopen 一模一样)。
6. 主站侧的 DC 同步
DC 是"主站定策略、从站执行":主站在启动时测量传播延迟、配置参考时钟,运行中每个周期读取各从站时钟差值并下发校正。主站自身通常也用网卡时间戳把主站时钟对齐到参考时钟,实现主从一体化同步。
- 周期抖动:软主站 + 实时补丁下,典型 2~5 µs;配合从站 DC 同步,全网络实际动作对齐在 ±100 ns 量级
- 多轴插补(CNC/机器人):必须开 DC,否则轴间相位差会积累成轨迹误差
7. 交互式演示:EtherCAT 状态机
点击命令按钮,驱动从站在四个状态间安全迁移。注意迁移必须"逐步进行"——不允许跳级。
观察要点:每个状态开放的功能不同(INIT→PRE-OP 打开邮箱、SAFE-OP 打开输入、OP 打开输出);迁移是单向推进、逐步完成的,故障时回退也是逐级。
8. 主站小结
- 主站是唯一主动发帧者,一张标准网卡 + 软件调度即可
- 选型:SOEM 轻量灵活 / IgH 高性能 / TwinCAT 工程化 / EC-Master 硬实时
- 启动流程:扫描 → 读SII → 配SM/FMMU/DC → 状态机推进 → 周期运行
- 状态机四态:INIT → PRE-OP → SAFE-OP → OP,逐步开放邮箱/输入/输出
- 邮箱:CoE(CiA 402)、EoE、SoE、FoE,伺服主用 CoE
- DC 同步让所有轴对齐动作,多轴系统必须开
下一篇把镜头切到从站:ESC 芯片怎么选、从站固件怎么写、SII 里存了什么、过程数据在从站里怎么走。