Java SDK 概述
Darra EtherCAT Java SDK 提供了用于开发 EtherCAT 主站应用程序的类库,支持主站与从站之间的高速实时通信。
安装
- Maven
- Gradle
- 手动引用 JAR
<dependency>
<groupId>com.darra</groupId>
<artifactId>darra-ethercat</artifactId>
<version>1.0.0</version>
</dependency>
implementation 'com.darra:darra-ethercat:1.0.0'
如果不使用 Maven/Gradle,可以直接引用编译好的 JAR:
- 从 下载页面 获取
darra-ethercat.jar与运行时库 - 将 JAR 添加到项目 classpath
- 确保运行时库与 JAR 在同一目录或在系统库搜索路径中
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 7+ (推荐 Windows 10/11) |
| Java | JDK 11+ (推荐 JDK 17 LTS) |
| 网络适配器 | 常规以太网网卡 |
| 权限 | 管理员权限 |
安装 DarraRT 驱动
DarraRT 驱动提供微秒级实时性能,完全免费。详见 下载页面。
快速开始
使用 Darra 配置工具
- 打开 Darra 配置工具,扫描 EtherCAT 网络
- 配置从站参数(PDO 映射、DC 设置等)
- 导出 JSON 配置文件
- 在代码中加载 JSON 文件初始化主站
import com.darra.ethercat.master.*;
import com.darra.ethercat.data.*;
import com.darra.ethercat.slave.*;
// 推荐方式: JSON 配置一步初始化, try-with-resources 自动释放
try (EtherCATMaster master = EtherCATMaster.createFromJsonFile("C:\\config.json")) {
master.setState(EcState.OP);
master.Start();
// 开始通信...
} // 自动调用 close() 释放资源
PascalCase 命名风格
Java SDK 采用 PascalCase 无前缀 的属性方法命名(对齐 C#),不使用 get/set 前缀。例:master.SlaveCount() / slave.Name() / slave.CoE()。不变值用 public final 字段:slave.SlaveNum / master.MasterIndex。
高级 API
SDK 提供了一组高级 API,简化常见操作流程:
| 功能 | 说明 |
|---|---|
| JSON 一步初始化 | createFromJson() / createFromJsonFile() 一步完成主站初始化 |
| 状态链转换 (setState) | 自动执行多步状态转换链 |
| CiA 402 驱动状态机 | 一步使能/故障复位/状态解析 |
| EMCY 紧急消息缓冲 | 读取从站紧急消息历史记录 |
| PDO 零拷贝读写 | 通过 ByteBuffer 直接读写 PDO 数据 |
| 拓扑查询 | 构建并查询从站网络拓扑树 |
| WDK 实时驱动 | 微秒级 PDO 周期 |
| 冗余网络 | 双网卡环形冗余 |
快速示例:
// CiA402 驱动器使能
slave.CiA402().Enable();
// 类型化 SDO 读写
Integer pos = slave.CoE().SDOReadInt32((short) 0x6064, (byte) 0);
slave.CoE().SDOWriteInt32((short) 0x607A, (byte) 0, 100000);
// 读取紧急消息
List<CoE.EmergencyMessage> history = slave.CoE().GetEmergencyHistory();
// 拓扑查询
List<Integer> children = master.TopologyChildren(parentIdx);