Skip to content

HuangRunQiang/ecat_servo-cia402-

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECAT 伺服驱动

基于 STM32(F1,F4)的免费 EtherCAT CiA402 伺服驱动实现,附带 Arduino 示例

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 的知识产权,并受到保护。

About

Open EtherCAT CiA402 servo drive implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%