C# SDK 概述
DarraEtherCAT C# SDK 提供了用于开发 EtherCAT 主站应用程序的类库,支持主站与从站之间的高速实时通信。
安装
- NuGet 包管理器
- 直接引用 DLL
Install-Package DarraEtherCAT
或使用 .NET CLI:
dotnet add package DarraEtherCAT
如果不使用 NuGet,可以直接引用编译好的 DLL:
- 从 下载页面 或配置工具导出目录获取
DarraEtherCAT.dll和DarraEtherCAT.xml - 在项目中添加引用:
<Reference Include="DarraEtherCAT">
<HintPath>lib\DarraEtherCAT.dll</HintPath>
</Reference>
- 确保
Darra.Core.dll在运行目录中
XML 文档文件
将 DarraEtherCAT.xml 与 DLL 放在同一目录,即可获得完整的 IntelliSense 方法提示和注释。
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 7+ (推荐 Windows 10/11) |
| .NET | .NET Standard 2.0 (兼容 .NET Framework 4.6.1+ / .NET 6+) |
| 网络适配器 | 常规以太网网卡 |
| 权限 | 管理员权限 |
安装 DarraRT 驱动
DarraRT 驱动提供微秒级实时性能,完全免费。详见 下载页面。
✅ 优势:< 1μs 抖动 · 最优 DC 同步 · 替代低端控制卡 · 无需专用硬件
快速开始
使用 Darra 配置工具
- 打开 Darra 配置工具,扫描 EtherCAT 网络
- 配置从站参数(PDO 映射、DC 设置等)
- 导出 DENI 配置文件
- 在代码中加载 DENI 文件初始化主站
// 推荐方式:使用 DENI 文件
var result = new DarraEtherCAT()
.SetENI(@"C:\EtherCAT\MyProject.deni")
.Build();
if (result.Success)
{
var master = result.Master;
master.SetState(EcState.OP);
// 开始通信...
}
高级 API
SDK 提供了一组高级 API,简化常见操作流程:
| 功能 | 说明 |
|---|---|
| 一步初始化 (EcInit) | JSON 配置一步完成主站初始化,无需逐步调用 |
| 状态链转换 (SetState) | 自动执行多步状态转换链 |
| 启动参数管线 (AddStartupParameter/Apply) | 批量添加启动参数并一次性应用 |
| CiA 402 驱动状态机 | 一步使能/故障复位/状态解析 |
| EMCY 紧急消息缓冲 | 读取从站紧急消息历史记录 |
| PDO 类型化读写 | 按类型直接读写 PDO 数据(U16/I32/F32 等) |
| 拓扑查询 | 构建并查询从站网络拓扑树 |
快速示例:
// 一步使能伺服驱动器
slave.CiA402.Enable();
// 类型化 PDO 读写
var input = slave.PDO.InputsMapping<ServoInput>();
var output = slave.PDO.OutputsMapping<ServoOutput>();
// 读取紧急消息
var emcyList = slave.CoE.GetEmergencyHistory();
// 拓扑查询
var children = slave.Children;