支持 C, C++, C#, Rust, Python API 的 EtherCAT® 主站软件开发工具包(SDK)

EC-Master 主站协议栈专为在不同的嵌入式(实时)操作系统上运行而设计并进行了深度优化。目前已适配并提供现成实现的系统包括:Linux带与不带实时扩展)、微软 Windows 11Wind River VxWorks、BlackBerry QNX、IntervalZero RTX64、TenAsys INtime®、Integrity、Xenomai、FreeRTOS、eCos、TI-RTOS、T-Kernel 等诸多操作系统。该 EtherCAT 主站协议栈亦可移植到任何其他嵌入式操作系统上。

软件架构

ethercat master software architecture

  • 应用程序编程接口 (API)支持使用 C/C++、C#、Python 和 Rust 语言对 EtherCAT 主站核心进行编程
  • EC-Master 核心层 (Core):核心层实现了 EtherCAT 主站的关键功能。所有协议处理均在此处执行,例如过程数据传输和邮箱协议(CoE、EoE、FoE、AoE、SoE),此外还配备了完善的高级诊断功能。
  • 实时以太网驱动层:负责主站与从站之间的数据交换。支持零拷贝(Zero-copy)和/或轮询(Polling)技术结合核心层运行,以实现最佳的实时性能并最大程度降低 CPU 负载。
  • 主站与网络配置:集成的 XML 解析器支持 EtherCAT 规范中定义的 EtherCAT 网络信息(ENI)文件。
  • 操作系统层 (OS Layer):这是唯一与特定操作系统相关的层。所有的操作系统调用均在此层执行。为了达到最佳性能,大部分功能都可以使用简单的 C 语言宏来实现。

符合 ETG.1500 主站分类的功能特性

ETG ( EtherCAT Technology Group )定义了两种 EtherCAT 主站分类标准(ETG.1500),并规定了一套明确的主站功能集。其中,Class A(A类)定义了标准 EtherCAT 主站,Class B(B类)定义了最小化 EtherCAT 主站。此外,可作为可选组件的附加功能则通过扩展功能包(Feature Packs, FP)的形式进行阐述。
(*1):根据 ETG.1500 规范,对 Class A 非强制要求
(*2):根据 ETG.1500 规范,对 Class B 非强制要求

基本功能

功能名称 简短描述 Class A Class B
服务命令 支持所有 EtherCAT 服务命令 X X
数据报中的 IRQ 字段 在数据报头中使用来自从站的 IRQ(中断请求)信息 X X
具备设备仿真功能的从站 支持带与不带应用控制器的从站设备 X X
EtherCAT 状态机 支持 EtherCAT 状态机(ESM)的特定行为 X X
错误处理 检查网络或从站错误,例如:工作计数器(Working Counter / WKC)检查 X X
VLAN 虚拟局域网 支持 VLAN 标记(VLAN Tagging) X   -- (*2)  
EtherCAT 帧类型 支持标准的 EtherCAT 帧 X X
UDP 帧类型 支持 UDP 帧 -- (*1) -- (*2)
多实例 支持单个控制系统同时运行和操作多个 EtherCAT 网络 X X

过程数据交换

功能名称 简短描述 Class A Class B
周期性 PDO 周期性的过程数据对象(PDO)交换 X X
多任务 支持不同的周期任务; 支持针对 PDO 的多种更新速率(多冲程/多频率更新) X X
帧重复发送 多次发送周期帧以提高抗干扰能力/免役性 -- (*1) -- (*2)

网络配置

功能名称 简短描述 Class A Class B
在线扫描 EtherCAT 主站内包含网络配置扫描功能(可在线扫描实际拓扑) X X
读取 ENI 从 ENI(EtherCAT 网络信息)文件中获取并加载网络配置 X X
对比网络配置 在系统启动(初始化)期间,对比预配置的拓扑与实际存在的网络拓扑 X X
显式设备识别 用于热连接(Hot Connect)及防止网线插错/交叉互换的设备识别机制 X X
站点别名寻址 支持在从站中使用配置好的站点别名,即启用并使用第二地址(2nd Address) X X
访问 EEPROM 支持通过 ESC(EtherCAT 从站控制器)寄存器访问 EEPROM 的底层常规例程 X X

邮箱支持

功能名称 简短描述 Class A Class B
支持邮箱机制 邮箱传输(异步通信)的核心主功能 X X
邮箱恢复层 支持底层的邮箱弹性/恢复层(确保邮箱数据传输的可靠性) X X
多邮箱通道 支持多个邮箱通道 X X
邮箱轮询 轮询从站中的邮箱状态 X X

基于 EtherCAT 的 CAN 应用层 (CoE)

功能名称 简短描述 Class A Class B
SDO 上传/下载 支持标准和快速(Expedited)服务数据对象(SDO)传输 X X
分段传输 支持分段(Segmented)数据传输机制 X X
完全访问 支持一次性传输整个对象(包含其所有子索引 sub-indices) X X
SDO 信息服务 用于读取对象字典(Object Dictionary)的服务 X X
紧急报文 接收来自从站的紧急(Emergency)报文 X X

基于 EtherCAT 的以太网 (EoE)

功能名称 简短描述 Class A Class B
EoE 协议机制 EoE 协议机制 (EoE protocol) 用于隧道传输(Tunneling)标准以太网数据帧的服务,包含所有指定的 EoE 服务 X X X X
虚拟交换机 虚拟交换机(Virtual Switch)功能 X X
操作系统 EoE 端点接口 位于 EoE 层之上、面向操作系统的接口 FP (*1) FP (*2)

基于 EtherCAT 的文件访问 (FoE)

功能名称 简短描述 Class A Class B
FoE 协议机制 支持 FoE(File access over EtherCAT)协议 X X
固件上传/下载 支持固件升降级,密码(Password)和文件名(FileName)应由上层应用提供 X X
引导状态 支持用于固件上传/下载的引导状态(BOOT 状态机切换) X X

基于 EtherCAT 的伺服驱动类属规范 (SoE)

功能名称 简短描述 Class A Class B
SoE 服务机制 支持符合 IEC 61800-7-204 标准的 SoE 服务(伺服驱动行规) X X

基于 EtherCAT 的 ADS 通信 (AoE)

功能名称 简短描述 Class A Class B
AoE 协议机制 支持 AoE(Automation Device Specification)协议机制 X X

基于 EtherCAT 的厂商自定义通信 (VoE)

功能名称 简短描述 Class A Class B
VoE 协议机制 支持外部连接/第三方协议的厂商自定义通信机制 X X

分布式时钟同步 (DC)

功能名称 简短描述 Class A Class B
DC 同步支持 支持分布式时钟(Distributed Clock)高精度同步机制 X -- (*2)
连续传输延迟补偿 连续计算并补偿网线/硬件带来的传播延迟(Propagation Delay) X -- (*2)
同步窗口监控 持续监控各个从站中的同步时间差(时钟抖动偏差) X -- (*2)

从站到从站通信

功能名称 简短描述 Class A Class B
通过主站进行通信 路由信息在 ENI 文件中给出,或作为其他网络配置的一部分。数据拷贝可由主站软件或主站应用层处理。此功能为支持 FSoE(基于 EtherCAT 的安全协议)安全实例所必需。 X X

主站信息

功能名称 简短描述 Class A Class B
主站对象字典 支持主站对象字典(符合 ETG.5001 MDP 子行规 1100 规范) X X

Feature Packs

功能名称 简短描述 Class A Class B
线缆冗余 当任意两个从站之间的网线发生断裂时,系统仍能保持正常运行 FP FP
热连接 热连接 (Hot Connect) 支持在总线通信过程中动态添加或移除从站。新添加的从站会自动切换并进入 OPERATIONAL(运行)状态。 FP FP FP FP
TCP 服务器与远程 API 通过 TCP 服务器结合远程 API(Context.Scope.Library),允许从外部/远程系统访问和控制 EC-Master 主站 FP FP
EoE 端点 该接口允许向 EtherCAT 网络发送或从中接收标准的以太网数据帧 FP FP

产品优势

  • 性能与低 CPU 负载:可实现极高的刷新率。
  • 开箱即用:已针对众多操作系统提供现成的运行支持。
  • 广泛的架构支持:支持 x86(32位和64位)、ARM(32位和64位)以及 RISC-V CPU 架构。
  • 适配主流处理器:适用于英特尔(Intel)、德州仪器(TI)、意法半导体(ST)、博通(Broadcom)、英伟达(Nvidia)、瑞萨(Renesas)、恩智浦(NXP)、赛灵思(Xilinx)等众多厂商的处理器。
  • 专业的全流程服务:结合我们的技术服务,为您构建定制化控制系统提供专业的合作伙伴支持。根据需求,我们亦可提供完整的系统集成方案。
  • 稳定且丰富的实现:EC-Master 协议栈已在库卡(KUKA)机器人控制系统,以及安川(Yaskawa)、伦茨(Lenze)和欧姆龙(Omron)的控制器中长期稳定运行。
Free Evaluation Request