3、应用层协议概述:CoE、FoE、EoE、SoE、VoE的定位与选择场景
EtherCAT 数据链路层与物理层解决了"如何高效、实时地传输数据"的问题,但真正让设备之间"理解彼此"的,是应用层协议。EtherCAT 技术组(ETG)在设计之初并未强制规定单一应用层协议,而是提供了多种协议选项,以兼容工业自动化领域已有的软件生态和通信习惯。这五种协议——CoE、FoE、EoE、SoE、VoE——各自源于不同的技术背景,适用于不同的设备类型和工程场景。本章将逐一剖析它们的协议定位、报文特征、适用设备与选型判断方法,帮助工程师在项目规划阶段做出合理决策。
上图展示了五种应用层协议在 EtherCAT 网络中的位置关系。主站通过统一的 EtherCAT 数据帧承载不同协议的报文,而从站设备根据自身功能选择一种或多种协议进行通信。下面逐一深入分析每种协议的技术细节与适用场景。
3.1 CoE:CANopen over EtherCAT——最主流的驱动与IO协议
核心原理
CoE(CANopen over EtherCAT)是将 CANopen 的应用层协议映射到 EtherCAT 数据链路层之上。它完整保留了 CANopen 的核心机制:对象字典(OD)、PDO(过程数据对象)、SDO(服务数据对象)以及网络管理(NMT)状态机。在 EtherCAT 中,PDO 被映射到周期性过程数据通道,实现高速实时交换;SDO 则通过邮箱(Mailbox)通道进行非周期性的参数读写。
CoE 的报文结构非常清晰:邮箱报文头中的 CoE 服务类型字段(如 SDO 请求/响应、PDO 映射、紧急事件等)决定了后续数据的解析方式。对于伺服驱动器、变频器、远程 IO 模块等设备,CoE 提供了标准化的设备行规(如 CiA 402 驱动行规),使得不同厂商的设备可以互换。
判断方法与选型依据
| 判断维度 | CoE 适用场景 | 非适用场景 |
|---|---|---|
| 设备类型 | 伺服驱动器、步进驱动器、变频器、IO 模块、传感器 | 需要传输大文件的设备 |
| 数据交换模式 | 周期性过程数据(位置/速度/电流)+ 非周期参数访问 | 纯非周期大块数据传输 |
| 兼容性需求 | 需要与现有 CANopen 设备软件兼容 | 已有 SERCOS 或 PROFINET 软件栈 |
| 开发资源 | ETG 提供成熟协议栈,资料丰富 | 对协议栈代码体积有极端要求 |
实战场景:伺服驱动器的 CoE 配置与运行
某包装机械项目采用 EtherCAT 总线控制 8 台伺服驱动器。初始现象是设备上电后无法进入运行状态,主站报"SDO 超时"错误。分析过程如下:
- 检查从站信息 XML(ESI)文件,确认驱动器对象字典中 0x6060(操作模式)默认值为 0(无模式);
- 通过 CoE SDO 写入 0x6060 = 8(周期同步位置模式),但写入失败;
- 进一步排查发现,驱动器在启动阶段处于 NMT 状态"Pre-Operational",此时 SDO 通道可用但 PDO 未激活;
- 正确流程应为:主站先发送 NMT 命令切换到 Operational 状态,再通过 SDO 配置参数,最后激活 PDO 映射。
修正后,主站依次执行:NMT 启动节点 → SDO 配置 0x6060 和 0x607A(目标位置)→ 映射 PDO 到过程数据 → 切换 Operational。设备正常运行,位置控制周期 1ms,同步抖动小于 100ns。此案例说明 CoE 的 NMT 状态机管理是调试中的常见盲区。
3.2 FoE:File over EtherCAT——固件升级的标准化方案
核心原理
FoE(File over EtherCAT)是一种简单、可靠的文件传输协议,其设计灵感来自 TFTP(简单文件传输协议)。它通过 EtherCAT 邮箱通道传输文件数据,支持三种操作:Read(从站读取文件)、Write(向从站写入文件)、Data(文件数据块)。FoE 报文包含文件名、文件大小、校验和等字段,支持断点续传和错误重试。
FoE 的最大优势在于不依赖从站的操作系统或文件系统,仅需在从站固件中实现简单的文件读写逻辑。这使得它成为 EtherCAT 从站固件升级的事实标准。
操作流程:固件升级的标准步骤
- 主站发送 FoE Write 请求,包含目标文件名(如 "firmware.bin");
- 从站响应确认,进入接收模式;
- 主站分块发送文件数据(每块最大 1472 字节),从站每收到一块返回 ACK;
- 文件发送完毕,主站发送校验和,从站验证并写入 Flash;
- 从站复位重启,完成升级。
实战场景:产线设备批量固件更新
某汽车焊装车间有 120 个 EtherCAT 从站(IO 模块和阀岛),需要统一升级固件以修复通信故障。初始方案是逐台使用调试器烧录,预计耗时 8 小时。改用 FoE 后:
- 主站脚本遍历所有从站,通过 FoE 并行推送固件镜像(每个从站约 200KB);
- 单站升级时间约 3 秒,120 个站点总耗时不到 6 分钟;
- 升级完成后自动校验版本号,生成报告。
关键参数:FoE 块大小设为 1024 字节,超时重试 3 次,校验算法采用 CRC32。实际运行中,有 2 个从站因 Flash 写入失败报错,通过 FoE 重试机制自动恢复。此案例表明 FoE 不仅适用于研发阶段,更是产线维护的必备工具。
3.3 EoE:Ethernet over EtherCAT——非实时以太网设备的接入桥梁
核心原理
EoE(Ethernet over EtherCAT)将标准的以太网帧封装在 EtherCAT 邮箱报文中,通过隧道方式传输。从站设备(如视觉相机、协议转换器)通过 EoE 可以获得一个虚拟的以太网接口,其上层可以运行 TCP/IP、UDP 等标准协议栈。EoE 在 EtherCAT 网络中创建了多个虚拟 LAN(VLAN),每个 EoE 设备拥有独立的 MAC 地址和 IP 地址。
需要特别强调的是,EoE 是非实时通道。由于以太网帧需要经过邮箱分段和重组,其延迟通常在毫秒级,且存在不确定性。因此 EoE 仅适用于非实时的数据交换,如相机图像传输、设备配置、诊断信息等。
判断方法与选型依据
| 需求特征 | 推荐方案 | 原因 |
|---|---|---|
| 需要 TCP/IP 协议栈 | EoE | 直接支持标准 Socket 编程 |
| 实时性要求 < 1ms | CoE 或直接过程数据 | EoE 延迟不可控 |
| 传输大块数据(> 1MB) | FoE 或 EoE | FoE 更高效,EoE 更灵活 |
| 设备已有以太网接口 | EoE | 无需修改设备固件 |
实战场景:视觉相机的 EtherCAT 集成
某电子装配线需要在 EtherCAT 网络中集成 4 台 GigE 视觉相机。初始方案是相机通过独立以太网交换机连接主控 PC,但这样增加了布线和维护成本。改用 EoE 后:
- 每台相机通过 EoE 从站模块接入 EtherCAT 环网;
- 主站为每个 EoE 设备分配独立 IP(192.168.1.101~104);
- 视觉软件通过标准 TCP/IP 协议采集图像,单张图像(500KB)传输时间约 15ms;
- 相机触发信号通过 CoE 过程数据实时传输,确保拍照时刻与运动控制同步。
此方案将网络层次从"EtherCAT + 独立以太网"简化为"单一 EtherCAT 网络",减少了交换机故障点。但需注意,EoE 带宽受限于 EtherCAT 邮箱通道速率(通常 100Mbps 共享),当多台相机同时传输时,需合理分配带宽。
3.4 SoE:SERCOS over EtherCAT——传统伺服系统的平滑迁移
核心原理
SoE(SERCOS over EtherCAT)将 SERCOS 接口的通信机制映射到 EtherCAT 上。SERCOS 是传统数控系统广泛使用的运动控制总线,其核心是IDN(标识号)参数寻址方式。SoE 保留了 SERCOS 的通信阶段(Phase 0~4)和 IDN 参数模型,使得原有 SERCOS 设备可以无缝迁移到 EtherCAT 网络。
SoE 的报文结构包含:命令类型(如 SERCOS 的 MDT 主站数据报文、AT 从站应答报文)、IDN 编号、数据块等。与 CoE 的对象字典不同,SoE 使用 IDN 作为参数唯一标识,例如 IDN S-0-0001 表示"驱动器状态"。
判断方法与选型依据
| 对比维度 | SoE | CoE |
|---|---|---|
| 参数寻址 | IDN(如 S-0-0001) | 对象字典索引(如 0x6060) |
| 设备行规 | SERCOS 行规 | CiA 402 等 |
| 适用设备 | 老式 SERCOS 驱动 | 新开发驱动 |
| 生态支持 | 逐渐减少 | 主流选择 |
实战场景:数控机床的 EtherCAT 改造
某机床厂有一批 2010 年投产的 SERCOS 驱动系统,因备件停产需要升级。原方案是更换全部驱动器和电机,成本约 80 万元。采用 SoE 方案后:
- 保留原有 SERCOS 驱动器,仅更换通信接口模块为 SoE 从站;
- 主站使用 EtherCAT 运动控制器,通过 SoE 发送 SERCOS 命令;
- 原有 NC 程序中的 IDN 参数无需修改,直接映射到 SoE 报文;
- 改造后系统运行稳定,定位精度保持原水平。
此案例说明 SoE 在存量设备改造中的独特价值。但需注意,SoE 的实时性能略低于原生 CoE,且新项目不建议采用 SoE,因为其生态正在萎缩。
3.5 VoE:Vendor-specific over EtherCAT——厂商自定义协议的灵活通道
核心原理
VoE(Vendor-specific over EtherCAT)允许设备厂商在 EtherCAT 邮箱中封装自定义协议数据。VoE 报文头包含厂商 ID 和自定义类型字段,从站和主站根据厂商 ID 识别并解析数据。VoE 不定义任何标准化的数据格式,完全由厂商自行约定。
VoE 的典型应用场景包括:私有诊断协议、特殊功能扩展、非标准设备接入。例如,某传感器厂商可能使用 VoE 传输其特有的校准数据格式。
判断方法与使用建议
- 当标准协议(CoE/FoE)无法满足需求时,才考虑 VoE;
- VoE 应作为"最后手段",优先使用标准协议以保证互操作性;
- 使用 VoE 时,必须提供详细的协议文档和示例代码;
- 建议在 VoE 中预留版本号和功能码字段,便于后续扩展。
实战场景:特殊传感器的数据接入
某半导体设备使用一种高精度压力传感器,其数据格式为 24 位 ADC 值 + 温度补偿系数。标准 CoE 对象字典无法直接表达这种混合数据。厂商通过 VoE 定义了一个私有协议:
VoE 报文格式(厂商 ID: 0x1234):
字节 0: 命令码(0x01=读数据,0x02=写参数)
字节 1-2: 寄存器地址
字节 3-4: 数据长度
字节 5-N: 数据负载(ADC 值 + 温度系数)
主站通过 VoE 周期读取传感器数据(每 10ms 一次),并在应用层解析。此方案虽然可行,但增加了主站软件的定制开发量。后续该厂商发布了 CoE 版本固件,将 ADC 值映射到 0x6000 对象,温度系数映射到 0x6001,最终替换了 VoE 方案。
3.6 协议选择决策框架与综合对比
在实际项目中,选择哪种应用层协议并非单一因素决定,而是需要综合设备类型、实时性要求、开发资源、生态兼容性等多维度考量。以下给出一个实用的决策流程:
- 第一步:识别设备类型——是伺服驱动、IO 模块、传感器、网关还是特殊设备?
- 第二步:评估实时性需求——是否需要周期性过程数据?周期是多少?
- 第三步:检查现有软件资产——是否有 CANopen、SERCOS 或以太网协议栈积累?
- 第四步:考虑长期维护——协议是否主流?是否有足够的参考资料和社区支持?
| 协议 | 实时性 | 典型设备 | 开发复杂度 | 生态成熟度 | 推荐指数 |
|---|---|---|---|---|---|
| CoE | 高(μs 级) | 驱动、IO、传感器 | 中 | ★★★★★ | ★★★★★ |
| FoE | 低(非周期) | 所有需升级的设备 | 低 | ★★★★☆ | ★★★★☆ |
| EoE | 低(ms 级) | 相机、网关、HMI | 低 | ★★★★☆ | ★★★☆☆ |
| SoE | 高 | 老式 SERCOS 驱动 | 高 | ★★☆☆☆ | ★★☆☆☆ |
| VoE | 取决于实现 | 专用设备 | 高 | ★☆☆☆☆ | ★☆☆☆☆ |
从工程实践看,CoE 是的主流选择,覆盖了约 80% 的 EtherCAT 从站设备。FoE 作为辅助协议,几乎被所有从站支持用于固件升级。EoE 在需要接入标准以太网设备时不可或缺。SoE 和 VoE 则属于特定场景的补充方案。