3、应用层协议概述:CoE、FoE、EoE、SoE、VoE的定位与选择场景

EtherCAT 数据链路层与物理层解决了"如何高效、实时地传输数据"的问题,但真正让设备之间"理解彼此"的,是应用层协议。EtherCAT 技术组(ETG)在设计之初并未强制规定单一应用层协议,而是提供了多种协议选项,以兼容工业自动化领域已有的软件生态和通信习惯。这五种协议——CoE、FoE、EoE、SoE、VoE——各自源于不同的技术背景,适用于不同的设备类型和工程场景。本章将逐一剖析它们的协议定位、报文特征、适用设备与选型判断方法,帮助工程师在项目规划阶段做出合理决策。

EtherCAT 主站 应用层协议统一承载 CoE CANopen over EtherCAT 伺服/IO/传感器 对象字典 + PDO/SDO FoE File over EtherCAT 固件升级/参数文件 类似 TFTP 的简单机制 EoE Ethernet over EtherCAT 以太网帧隧道传输 用于非实时以太网设备 SoE SERCOS over EtherCAT 传统伺服驱动迁移 IDN 参数寻址 VoE Vendor-specific over EtherCAT 厂商自定义协议封装 图:EtherCAT 五种应用层协议与设备类型的对应关系

上图展示了五种应用层协议在 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 超时"错误。分析过程如下:

  1. 检查从站信息 XML(ESI)文件,确认驱动器对象字典中 0x6060(操作模式)默认值为 0(无模式);
  2. 通过 CoE SDO 写入 0x6060 = 8(周期同步位置模式),但写入失败;
  3. 进一步排查发现,驱动器在启动阶段处于 NMT 状态"Pre-Operational",此时 SDO 通道可用但 PDO 未激活;
  4. 正确流程应为:主站先发送 NMT 命令切换到 Operational 状态,再通过 SDO 配置参数,最后激活 PDO 映射。

修正后,主站依次执行:NMT 启动节点 → SDO 配置 0x6060 和 0x607A(目标位置)→ 映射 PDO 到过程数据 → 切换 Operational。设备正常运行,位置控制周期 1ms,同步抖动小于 100ns。此案例说明 CoE 的 NMT 状态机管理是调试中的常见盲区。

常见误区:许多工程师将 CoE 的 SDO 与 PDO 混用,试图在周期性过程数据中传输大块参数。这会导致总线周期延长和实时性下降。正确做法是:运行参数用 PDO,配置参数用 SDO,且 SDO 访问尽量在 Pre-Operational 阶段完成。

3.2 FoE:File over EtherCAT——固件升级的标准化方案

核心原理

FoE(File over EtherCAT)是一种简单、可靠的文件传输协议,其设计灵感来自 TFTP(简单文件传输协议)。它通过 EtherCAT 邮箱通道传输文件数据,支持三种操作:Read(从站读取文件)、Write(向从站写入文件)、Data(文件数据块)。FoE 报文包含文件名、文件大小、校验和等字段,支持断点续传和错误重试。

FoE 的最大优势在于不依赖从站的操作系统或文件系统,仅需在从站固件中实现简单的文件读写逻辑。这使得它成为 EtherCAT 从站固件升级的事实标准。

操作流程:固件升级的标准步骤

  1. 主站发送 FoE Write 请求,包含目标文件名(如 "firmware.bin");
  2. 从站响应确认,进入接收模式;
  3. 主站分块发送文件数据(每块最大 1472 字节),从站每收到一块返回 ACK;
  4. 文件发送完毕,主站发送校验和,从站验证并写入 Flash;
  5. 从站复位重启,完成升级。

实战场景:产线设备批量固件更新

某汽车焊装车间有 120 个 EtherCAT 从站(IO 模块和阀岛),需要统一升级固件以修复通信故障。初始方案是逐台使用调试器烧录,预计耗时 8 小时。改用 FoE 后:

  • 主站脚本遍历所有从站,通过 FoE 并行推送固件镜像(每个从站约 200KB);
  • 单站升级时间约 3 秒,120 个站点总耗时不到 6 分钟;
  • 升级完成后自动校验版本号,生成报告。

关键参数:FoE 块大小设为 1024 字节,超时重试 3 次,校验算法采用 CRC32。实际运行中,有 2 个从站因 Flash 写入失败报错,通过 FoE 重试机制自动恢复。此案例表明 FoE 不仅适用于研发阶段,更是产线维护的必备工具。

经验提醒:FoE 传输过程中不要断电。建议在从站设计中加入双备份(A/B 分区)机制,防止升级失败导致设备变砖。同时,FoE 文件名应包含版本号(如 "app_v2.1.bin"),便于追溯。

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 编程
实时性要求 < 1msCoE 或直接过程数据EoE 延迟不可控
传输大块数据(> 1MB)FoE 或 EoEFoE 更高效,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 共享),当多台相机同时传输时,需合理分配带宽。

风险提示:EoE 的延迟抖动可能导致 TCP 超时重传。在工业现场,建议将 EoE 设备数量控制在 8 台以内,并避免在 EoE 通道上传输实时控制指令。对于时间敏感型应用,应使用 IEEE 1588 PTP 或 EtherCAT 分布式时钟进行同步。

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 表示"驱动器状态"。

判断方法与选型依据

对比维度SoECoE
参数寻址IDN(如 S-0-0001)对象字典索引(如 0x6060)
设备行规SERCOS 行规CiA 402 等
适用设备老式 SERCOS 驱动新开发驱动
生态支持逐渐减少主流选择

实战场景:数控机床的 EtherCAT 改造

某机床厂有一批 2010 年投产的 SERCOS 驱动系统,因备件停产需要升级。原方案是更换全部驱动器和电机,成本约 80 万元。采用 SoE 方案后:

  1. 保留原有 SERCOS 驱动器,仅更换通信接口模块为 SoE 从站;
  2. 主站使用 EtherCAT 运动控制器,通过 SoE 发送 SERCOS 命令;
  3. 原有 NC 程序中的 IDN 参数无需修改,直接映射到 SoE 报文;
  4. 改造后系统运行稳定,定位精度保持原水平。

此案例说明 SoE 在存量设备改造中的独特价值。但需注意,SoE 的实时性能略低于原生 CoE,且新项目不建议采用 SoE,因为其生态正在萎缩。

总结:SoE 是"过渡性"协议,适用于已有 SERCOS 投资保护的场景。新项目应优先选择 CoE,以获得更好的生态支持和长期可维护性。

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 方案。

经验总结:VoE 适合产品原型验证和小批量专用设备。对于量产产品,建议将自定义数据标准化为 CoE 对象,以降低客户集成成本。

3.6 协议选择决策框架与综合对比

在实际项目中,选择哪种应用层协议并非单一因素决定,而是需要综合设备类型、实时性要求、开发资源、生态兼容性等多维度考量。以下给出一个实用的决策流程:

  1. 第一步:识别设备类型——是伺服驱动、IO 模块、传感器、网关还是特殊设备?
  2. 第二步:评估实时性需求——是否需要周期性过程数据?周期是多少?
  3. 第三步:检查现有软件资产——是否有 CANopen、SERCOS 或以太网协议栈积累?
  4. 第四步:考虑长期维护——协议是否主流?是否有足够的参考资料和社区支持?
协议实时性典型设备开发复杂度生态成熟度推荐指数
CoE高(μs 级)驱动、IO、传感器中★★★★★★★★★★
FoE低(非周期)所有需升级的设备低★★★★☆★★★★☆
EoE低(ms 级)相机、网关、HMI低★★★★☆★★★☆☆
SoE高老式 SERCOS 驱动高★★☆☆☆★★☆☆☆
VoE取决于实现专用设备高★☆☆☆☆★☆☆☆☆

从工程实践看,CoE 是的主流选择,覆盖了约 80% 的 EtherCAT 从站设备。FoE 作为辅助协议,几乎被所有从站支持用于固件升级。EoE 在需要接入标准以太网设备时不可或缺。SoE 和 VoE 则属于特定场景的补充方案。

最终建议:新项目默认选择 CoE + FoE 组合。若需接入以太网设备,增加 EoE。仅在改造存量 SERCOS 系统时考虑 SoE,仅在标准协议无法覆盖的极端场景下使用 VoE。无论选择哪种协议,务必在项目初期完成协议一致性测试,避免后期集成阶段才发现兼容性问题。