EtherCAT 是一种用于自动化的实时以太网协议。它允许您使用 PC 或笔记本电脑控制标准工业设备,无需接口卡或特殊适配器。所需的仅是带有 RJ45 端口的标准以太网卡。它提供了低且非常可预测的延迟,因此它是构建现代 CNC、机器人和其他机器的理想运动控制网络。最流行的 EtherCAT 应用协议似乎是用于伺服驱动的 CANopen(通过 EtherCAT)CiA402。
该项目是 CoE CiA402 标准的免费实现,适用于 ODrive、STMBL 或您下一个项目等开放电机控制器。在此过程中,它展示了如何使用免费和开源工具进行 EtherCAT 设备开发。
轴结构具有状态、转换和动作标志,具体操作由应用程序决定。
cia402_axis_t cia402axis; // 创建运动控制轴的实例
cia402_initialize(&cia402axis, &OD.Status_Word, &mockOD.ALstatus); // 初始化
// ...
while (true) { // 在主循环中
// ... // 从 CAN 总线或 EtherCAT 读取 PDO
cia402_state_machine(&cia402axis, controlword); // 处理状态机
if (axis.flags.axis_func_enabled) { /* 实现您的驱动程序跟随命令 */ }
if (axis->flags.hv_power_applied) { /* 如果适用,启用高压电源 */ }
if (axis->flags.brake_applied) { /* 如果适用,释放刹车 */ }
if( /* 应用程序检测到错误条件 */ ) {
cia402axis.state = FAULT_REACTION_ACTIVE; // 触发故障反应
cia402_state_machine(&cia402axis, controlword); // 处理状态机
}
}
STM32 的示例应用 在这里
./examples 目录包含平台.io 项目,展示如何在 STM32 上使用 LAN9252 和 AX58100 ESC 以及 SOES 库。
/docs 中的 文档 包含进度日志及一些决策的理由。
Hackaday.io 项目在这里,以便于更方便的讨论。
EtherCAT 技术、商标名称和标识“EtherCAT”是 Beckhoff Automation GmbH 的知识产权,并受到保护。