- AI 提示词
- CLI / API 指令文档
AI 提示词
使用前
建议
安装包按运行时设计,装上后会进入软实时。不建议在日常开发机上安装测试。
请先自行安装调试工具,把主站做到 OP,并导出 DENI。安装包在 下载。
系统
推荐 Windows 11 专业版,软实时可用。
Windows 11 IoT 企业版 同样可用。
若使用 Windows 10,须为 21H2 或更高 的 IoT 企业版,才符合微软软实时条件。
Windows 10 专业版 可以安装。
提示词
复制下面这段交给 AI(ChatGPT / Claude / Copilot / Codex)。把括号里的内容换成你自己的。
先读取 https://ethercat.darra.xyz/ai-prompts.txt
用 C# SDK(可改 Java / Python / C / C++ / Rust)按这份 DENI 写 EtherCAT 主站程序。
DENI:(填路径或把文件发来)
从站和功能:(例如 Delta ASDA-A3,CSP 位置控制)
AI 工具接入点
支持 MCP 的 AI 工具可以直接连 https://ethercat.darra.xyz/mcp(Streamable HTTP,免鉴权),调内置工具查产品概况、定价、SDK/驱动安装、错误码、故障排查和 FAQ。技能目录在 /.well-known/agent-skills/index.json,服务卡在 /.well-known/mcp/server-card.json。
CLI / API 指令文档
Darra EtherCAT SDK 六语言 API 一致。详细参考见 SDK 文档。
快速开始(C#)
// 初始化:DENI 由配置工具导出,流式构建(失败时 Master 为 null)
var master = new DarraEtherCAT()
.SetENI(@"C:\EtherCAT\config.deni")
.Build()
.Master;
if (master == null) { Console.WriteLine("初始化失败"); return; }
// 进入 OP(同步;另有 SetStateAsync 异步、SetState(state, out error) 带错误返回)
master.SetState(EcState.OP);
// PDO 零拷贝结构体映射
ref readonly var input = ref master.Slaves[0].PDO.InputsMapping<MyInput>();
ref var output = ref master.Slaves[0].PDO.OutputsMapping<MyOutput>();
// 状态与从站
Console.WriteLine(master.State); // EcState.OP / SafeOp / PreOp / Init
Console.WriteLine(master.SlaveCount); // 从站数
核心 API(C#)
| 类别 | API | 说明 |
|---|---|---|
| 构造 | new DarraEtherCAT() | 流式 API 入口 |
| 配置 | SetENI(path) / SetNetwork(...) / SetEsiFile(path) | 加载 DENI/ENI 或网口配置,Build() 时生效 |
| 初始化 | Build() / BuildAsync() / Validate() | 构建主站;失败时 .Master 为 null |
| 状态机 | SetState(EcState.OP) | 同步阻塞;SetStateAsync 异步;SetState(state, out error) 带错误返回 |
| PDO | Slaves[i].PDO.InputsMapping<T>() | 输入结构体零拷贝(ref readonly) |
Slaves[i].PDO.OutputsMapping<T>() | 输出结构体零拷贝(ref) | |
| SDO | slave.SDORead(idx, sub) / slave.SDOWrite(idx, sub, value) | CoE SDO 读写;最近错误看 slave.CoE.LastSdoError |
| 诊断 | slave.ErrorCode + ALErrorClassifier.Classify() | AL 错误码与分类 |
| 查询 | master.State / master.SlaveCount | 主站状态 / 从站数量 |
六语言入口对照
| 语言 | 入口与初始化 | 进 OP | 文档 |
|---|---|---|---|
| C# | new DarraEtherCAT().SetENI(path).Build().Master | master.SetState(EcState.OP) | C# |
| C++ | EtherCATMaster master(dll); + SetENI(path).Build() | master.SetState(EcState::OP) | C++ |
| C | Initialize() + SetNetwork(master_index, ...) | SetState(master_index, EC_STATE_OPERATIONAL) | C |
| Java | new EtherCATMaster().setENI(path).build() | master.setState(EcState.OP) | Java |
| Python | EtherCATMaster() + master.set_eni(path) | master.set_state(EcState.OP) + master.start() | Python |
| Rust | EtherCATMaster::builder().set_eni(path).build()? | master.set_state(EcState::Operational)? | Rust |
各语言均有异步与带错误返回的状态切换形式;SDO、PDO、事件 API 见对应语言的 slave / master 分页文档。