SDK 文档
Darra EtherCAT Master 提供 6 种编程语言的官方 SDK, 协议覆盖与行为完全对齐, 可在不同语言间无缝迁移.
选择编程语言查看对应的 SDK 文档:
功能概览
6 种 SDK 对 EtherCAT 协议家族与核心特性的支持情况, 在 6 种语言中具备等价的行为与时序保证.
| 协议 / 特性 | C# | C++ | C | Rust | Java | Python |
|---|---|---|---|---|---|---|
| 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) | ✅ 必须 |