EC-Motion Advanced - 运动控制库
总体描述
EC-Motion Advanced 是 EC-Master 主站协议栈的扩展组件,面向基于 CiA402® 设备配置文件的驱动器,提供完整的运动控制解决方案。该库支持单轴与多轴运动控制,无需额外昂贵的运动控制硬件。EC-Motion 提供类似可编程逻辑控制器(PLC)的接口,便于集成至 PLC 或任意 C++ 应用中,用于控制伺服驱动器。
内置的轨迹生成器可根据运动指令的动态参数(最大速度、加速度、减速度及冲击率)计算目标位置的速度曲线。轨迹生成器支持限制冲击率的运动,并可实现速度之间的平滑过渡。伺服驱动器可运行于周期同步位置模式(CSP)或周期同步速度模式(CSV)。

软件架构
该库提供管理类功能块,例如 McPower 可将轴设置为“已使能”状态,以及运动类功能块,例如 McMoveAbsolute 可将轴移动至指定位置。
若轴当前正在执行运动指令,新的运动功能块将被排队,待当前运动完成后自动执行。通过不同的过渡模式(低、前一、后一、高),可实现连续复杂的运动序列。
库的核心组件是轨迹生成器,在运动开始前将整个运动过程划分为多个阶段(加速、减速、恒速)。在加速与减速阶段,可对冲击率进行限制。
为实现平滑的轴运动,轨迹生成器需在每个周期内计算下一步速度,直至到达目标位置。轴层根据轴的运行模式将速度转换为目标位置(CSP 模式)或目标速度(CSV 模式)。

配置与诊断
EtherCAT 主站配置与诊断工具 EC-Engineer 可帮助用户轻松定义所有需运行轴的参数与设置。基于配置,所有兼容 CiA402 的从站驱动器均可运行,无需修改应用源代码。

在 EC-Engineer 的诊断模式下,可实时监控所有轴的输入与输出。运动控制对话框展示多个实时数据,如当前位置、运动状态等。此外,该对话框还支持完整的轴控制功能,如启停、定位等操作。

功能特性
- 支持多种操作系统:Linux、Xenomai、FreeRTOS、QNX、VxWorks、RTX64 等
- 支持多种 CPU 架构:x86、x64、ARM、ARM64
- 支持单轴与多轴运动(凸轮控制与齿轮联动)
- 高级轨迹生成器
- 支持限制冲击率的运动
- 支持连续运动序列:缓冲模式与过渡控制
- 支持运动过程中参数动态更新
- 提供 PLC 风格接口,便于集成至 PLC 系统中控制伺服驱动器
- 管理类功能块:
- McPower:控制功率级(开/关)
- McSetPosition:坐标系偏移
- McReadParameter / McReadBoolParameter:读取参数值
- McWriteParameter / McWriteBoolParameter:写入参数值
- McReadActualPosition:读取当前轴位置
- McReadActualVelocity:读取当前轴速度
- McReadMotionState:读取当前运动状态
- McReadAxisInfo:读取轴相关信息
- McReadAxisError:读取轴通用错误信息(非功能块相关)
- McReset:将轴从“错误停止”状态重置为“静止”状态
- McCalcMoveProfile / McCalcMoveTimeAtPos:计算轨迹但不实际执行运动
- 单轴运动功能块:
- McStop:命令轴执行受控停止,进入“停止中”状态
- McHalt:命令轴执行受控停止,进入“静止”状态
- McMoveAbsolute:命令轴移动至指定绝对位置
- McMoveRelative:命令轴相对当前位置移动指定距离
- McMoveVelocity:命令轴以指定速度持续运动
- McMoveContinuousAbsolute:命令轴移动至指定绝对位置并以指定速度结束
- McMoveContinuousRelative:命令轴相对当前位置移动指定距离并以指定速度结束
- 多轴运动功能块:
- McCamTableSelect:选择凸轮表并建立连接
- McCamIn:使能凸轮运动
- McCamOut:立即断开主从轴之间的凸轮连接
- McGearIn:建立主从轴之间的速度比例关系
- McGearOut:断开主从轴之间的齿轮联动关系
优势与效益
- 无需额外运动控制硬件 → 降低成本
- 与 acontis 主站协议栈 EC-Master 完美集成 → 降低开发工作量
- 支持多种操作系统与 CPU 架构,开箱即用 → 节省部署时间
- 运动控制与主站协议栈由同一供应商提供 → 简化实施流程,减少合同与沟通成本