跳到主要内容

SDK 文档

Darra EtherCAT Master 提供 6 种编程语言的官方 SDK, 协议覆盖与行为完全对齐, 可在不同语言间无缝迁移.

选择编程语言查看对应的 SDK 文档:

功能概览

6 种 SDK 对 EtherCAT 协议家族与核心特性的支持情况, 在 6 种语言中具备等价的行为与时序保证.

协议 / 特性C#C++CRustJavaPython
CoE (SDO/PDO/EMCY/CiA402)
EoE (Ethernet 隧道)
FoE (文件传输)
SoE (SERCOS IDN)
AoE (ADS)
VoE (Vendor)
FSoE (Fail-Safe)
状态机 (Init/PreOp/SafeOp/OP)
DC (分布式时钟)
冗余 + Hot-Connect
邮箱网关 (ETG.8200)

按场景推荐 SDK:

场景推荐 SDK
.NET 应用 (WPF/WinForms/ASP.NET)C#
嵌入式 / 微控制器 / 资源受限设备C
高性能 / 服务器 / 低延迟控制Rust 或 C++
Web 后端 / 企业系统集成Java 或 Python
数据科学 / AI / 算法验证Python

快速开始

6 个 SDK 的核心枚举值 / 错误码 / CRC16 算法在所有语言中保持字节级一致, 用户可以在不同语言间无缝迁移.

字节级一致性体现在:

  • 从站状态枚举 (Init/PreOp/SafeOp/OP/Bootstrap) 在所有 SDK 中数值与名称完全一致
  • AL Status Code, SDO Abort Code, FSoE 错误码等返回的整型与字符串描述跨语言一致
  • 邮箱 / 帧 CRC16 算法实现等价, 同一帧在任意 SDK 中产生相同校验值
  • 业务代码迁移到另一种语言时, 只需替换调用语法, 协议常量与判断逻辑保持不变

无论选择哪个 SDK, 协议覆盖与字节级行为均一致, 后期切换语言不会改变控制语义.

自动健康检查

master.Build() 时自动执行,无需客户调用:

检查项来源不通过时
驱动版本匹配自动比对实时驱动与 SDK 的 MAJOR.MINOR 版本日志 Warning,提示升级驱动
RT 核隔离配置自动检查 RT 核隔离是否已配置日志 Warning,提示重装 SDK 让 MSI 自动配置

跨语言一致 — Python / Java / Rust / C / C++ / C# 都自动跑这两个检查, 不匹配在 SDK 日志里写 Warning。

错误码本地化

AL Status Code 描述支持双语, 全部下沉到 Core.dll:

AL_StatusCode_GetDescription(code)         → English (默认, 5 SDK 跨语言用)
AL_StatusCode_GetDescriptionChinese(code) → 中文 (主界面 UI 用)
AL_StatusCode_GetRecoveryHint(code) → English (恢复建议)
AL_StatusCode_GetRecoveryHintChinese(code) → 中文 (恢复建议)

设计理由:

  • 跨语言 SDK 客户 多为海外开发者,默认英文便于阅读 + log aggregator (Splunk / ELK) 处理 ASCII 不会乱码
  • 主界面 UI (中国客户为主) 走专用中文接口,读起来更友好
  • 单一信息源 — 71 条 ETG 错误码翻译 1:1 同步,不会出现版本不一致

版本兼容策略

  • 同一 MAJOR.MINOR 内的 PATCH 互相兼容 (例 2.1.0 ↔ 2.1.5),客户升级 SDK 不需要重装驱动
  • MAJOR 或 MINOR 变化 → 必须重装配套的驱动安装包, 否则会报版本兼容错误
升级重装驱动?
PATCH (2.1.0 → 2.1.5)❌ 不需要
MINOR (2.1.x → 2.2.0)✅ 必须
MAJOR (2.x → 3.0.0)✅ 必须