2. 运动控制基础

在进入电子齿轮与电子凸轮的具体同步算法之前,必须先建立一套统一的运动控制语言。无论是伺服驱动器、变频器还是虚拟主轴,所有同步控制最终都归结为对轴(Axis)的位置(Position)、速度(Velocity)与加速度(Acceleration)的精确描述与换算。如果这些基础概念理解不一致,后续的电子齿轮比计算、凸轮表生成都将失去物理意义。本章将系统梳理这些核心概念,并重点解决工程中最容易出错的单位换算与坐标系定义问题。

运动控制基础概念关系与单位换算链路 轴 (Axis) 物理轴 / 虚拟轴 单位:用户单位 / 脉冲 位置 (Position) 位置 / 相对位置 单位:mm, deg, inc 速度 (Velocity) 指令速度 / 实际速度 单位:u/s, rpm, rps 加速度 Acceleration 单位:u/s² 单位换算核心链路 用户单位 (mm) 电机圈数 (rev) 编码器脉冲 (inc) 驱动器内部单位 PLC 逻辑单位 ÷螺距 ×编码器线数 ×电子齿轮比 比例映射 坐标系定义 机床坐标系 (MCS) / 工件坐标系 (WCS) 原点 / 相对原点 / 同步参考点 同步控制关键参数 主轴位置 → 从轴位置映射 电子齿轮比 = 从轴/主轴 位置增量比

2.1 轴的定义与运动状态量

核心原理:从物理轴到逻辑轴

在 Codesys 运动控制体系中,轴是一个软件对象,它封装了电机反馈、驱动器状态、位置/速度/加速度设定值以及控制模式。轴分为物理轴(映射到实际伺服或变频器)和虚拟轴(仅存在于 PLC 内存中,用于数学运算或作为主令源)。每个轴对象内部维护一组连续的状态量:实际位置、实际速度、实际加速度、指令位置、指令速度等。这些状态量以固定的控制周期(如 1ms 或 2ms)被刷新。

理解轴的关键在于区分指令值与实际值。指令值是 PLC 通过总线(EtherCAT、PROFINET)下发给驱动器的目标值;实际值是编码器反馈经驱动器处理后上传的值。在同步控制中,电子齿轮的输入通常取主轴的实际位置(闭环)或指令位置(半闭环),两种方式各有优劣:实际位置反馈更真实但存在滞后,指令位置响应快但无法补偿机械误差。

操作流程:在 Codesys 中创建与监控轴

  1. 在设备树中添加 PLCopen Motion 轴对象,并关联到对应的驱动器(如 CiA402 驱动)。
  2. 设置轴的基本参数:单位、软件限位、最大速度、最大加速度(默认值用于保护)。
  3. 调用 MC_Power 使能轴,并监控 Axis.Status 结构体中的 ActualPosition、ActualVelocity 变量。
  4. 使用 MC_ReadActualPosition 或直接读取轴引用变量获取实时数据。
工程提示:在调试阶段,建议同时记录指令位置与实际位置。若两者偏差持续增大,说明存在跟随误差,这可能是电子齿轮比设置不当或 PID 参数不匹配导致的。

2.2 单位换算:用户单位、电机单位与脉冲单位

核心原理:为什么必须统一单位

运动控制系统中存在三层单位体系:用户单位(如毫米、度、英寸)、电机单位(转、转/分)、反馈单位(编码器脉冲或增量)。Codesys 的轴对象允许用户自定义用户单位,但驱动器内部通常使用脉冲或转速单位。电子齿轮比的本质就是主轴用户单位增量与从轴用户单位增量之间的比例,但底层计算必须换算到统一的反馈单位上。

例如,一个丝杠导程为 10mm/rev,电机编码器为 2500 线(4 倍频后为 10000 脉冲/转)。若用户希望以 mm 为单位编程,则位置换算系数为:

1 mm = 10000 / 10 = 1000 脉冲
1 mm/s = 1000 脉冲/s = 0.1 rev/s = 6 rpm

如果忽略此换算,直接设置电子齿轮比为 1:1,那么从轴移动 1mm 时,主轴实际只移动了 0.001mm,造成严重的比例失调。

判断方法:换算系数计算流程

参数符号典型值说明
丝杠导程P10 mm/rev电机转一圈负载移动距离
减速比i1:1 或 10:1电机转速/负载转速
编码器线数L2500物理刻线数
倍频系数M4通常为 4 倍频
每转脉冲数N10000N = L × M
用户单位/脉冲U0.001 mmU = P / (i × N)

在 Codesys 中,轴配置界面提供 Scaling 选项,可以设置 Position Scaling(用户单位/编码器计数)和 Velocity Scaling。正确设置后,所有运动指令均以用户单位编程,无需关心底层脉冲数。

案例拆解:电子齿轮比计算实例

假设一台印刷机,主轴(印刷辊)直径为 100mm,从轴(裁切刀)直径为 80mm,要求印刷辊每转一圈,裁切刀转 1.25 圈(因为裁切长度与周长相关)。两轴均通过伺服电机直连(无减速机),编码器均为 131072 脉冲/转(17 位值)。

目标:设置电子齿轮比,使从轴与主轴保持同步。

计算过程:

  1. 主轴每转 1 圈(360°),对应用户单位 360°。
  2. 从轴需要转 1.25 圈,即 450°。
  3. 电子齿轮比 = 从轴位置增量 / 主轴位置增量 = 450 / 360 = 1.25。
  4. 在 Codesys 中,电子齿轮功能块 MC_GearIn 的参数 RatioNumerator 设为 5,RatioDenominator 设为 4(即 5:4 = 1.25)。

验证:主轴实际移动 1000 个用户单位(1000°),从轴应移动 1250°。通过监控从轴实际位置确认。

风险提示:若主轴与从轴机械传动比存在误差(如皮带打滑),单纯依赖电子齿轮比无法补偿。此时需要引入位置校正或凸轮曲线修正。

2.3 坐标系:、相对与同步参考系

核心原理:坐标系是同步控制的基准

在电子齿轮与电子凸轮中,坐标系决定了“从哪里开始计数”。坐标系以机床原点为基准,位置值始终为正或负;相对坐标系以上一次指令终点为基准,位置值表示增量。对于同步控制,更关键的是同步参考系——即主轴位置为零时,从轴的位置定义。

例如,在飞剪控制中,主轴编码器每转一圈对应剪切一次。若从轴(剪刃)在主轴 0° 时位于 -10mm 处(等待位置),在主轴 180° 时必须到达 +10mm(剪切点)。这个映射关系就是凸轮表或电子齿轮的坐标系基准。

操作流程:设置坐标系与原点

  • 使用 MC_Home 建立机床原点,可选择 Reference 模式(寻找限位开关)或 Direct 模式(直接设定当前位置为原点)。
  • 在轴参数中设置 Position Range(如 0~360° 或 -10000~+10000),用于模数轴(旋转轴)的循环计数。
  • 对于电子齿轮,MC_GearIn 的 MasterOffset 参数用于定义主轴位置偏移,SlaveOffset 用于定义从轴初始偏移。

常见误区与复盘

误区一:认为电子齿轮比只与机械直径相关,忽略了编码器分辨率差异。实际上,如果两轴编码器分辨率不同,齿轮比必须包含分辨率换算因子。

误区二:坐标系原点未统一。例如主轴使用增量编码器,每次上电后原点随机,导致从轴同步位置错乱。解决方法是使用值编码器或每次上电执行回零。

误区三:加速度单位混淆。在设置电子齿轮的从轴加速度限制时,若主轴速度单位为 rpm,从轴加速度单位为 mm/s²,必须换算后才能设置合理的 Acceleration 参数,否则可能导致驱动器过流报警。

经验总结:在项目启动阶段,建议制作一张单位换算表(如上文表格),并固化到设计文档中。所有参与调试的工程师必须使用同一套单位体系。在 Codesys 中,可以通过 AXIS_REF 的 Scale 参数快速验证换算是否正确:写入一个已知位置指令,观察实际位置是否与预期一致。

掌握轴、位置、速度、加速度及单位换算,是后续实现高精度电子齿轮与电子凸轮的基础。下一阶段将基于这些概念,深入探讨同步控制的 PLCopen 功能块实现与参数整定。