2. 运动控制基础
在进入电子齿轮与电子凸轮的具体同步算法之前,必须先建立一套统一的运动控制语言。无论是伺服驱动器、变频器还是虚拟主轴,所有同步控制最终都归结为对轴(Axis)的位置(Position)、速度(Velocity)与加速度(Acceleration)的精确描述与换算。如果这些基础概念理解不一致,后续的电子齿轮比计算、凸轮表生成都将失去物理意义。本章将系统梳理这些核心概念,并重点解决工程中最容易出错的单位换算与坐标系定义问题。
2.1 轴的定义与运动状态量
核心原理:从物理轴到逻辑轴
在 Codesys 运动控制体系中,轴是一个软件对象,它封装了电机反馈、驱动器状态、位置/速度/加速度设定值以及控制模式。轴分为物理轴(映射到实际伺服或变频器)和虚拟轴(仅存在于 PLC 内存中,用于数学运算或作为主令源)。每个轴对象内部维护一组连续的状态量:实际位置、实际速度、实际加速度、指令位置、指令速度等。这些状态量以固定的控制周期(如 1ms 或 2ms)被刷新。
理解轴的关键在于区分指令值与实际值。指令值是 PLC 通过总线(EtherCAT、PROFINET)下发给驱动器的目标值;实际值是编码器反馈经驱动器处理后上传的值。在同步控制中,电子齿轮的输入通常取主轴的实际位置(闭环)或指令位置(半闭环),两种方式各有优劣:实际位置反馈更真实但存在滞后,指令位置响应快但无法补偿机械误差。
操作流程:在 Codesys 中创建与监控轴
- 在设备树中添加
PLCopen Motion轴对象,并关联到对应的驱动器(如CiA402驱动)。 - 设置轴的基本参数:单位、软件限位、最大速度、最大加速度(默认值用于保护)。
- 调用
MC_Power使能轴,并监控Axis.Status结构体中的ActualPosition、ActualVelocity变量。 - 使用
MC_ReadActualPosition或直接读取轴引用变量获取实时数据。
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,造成严重的比例失调。
判断方法:换算系数计算流程
| 参数 | 符号 | 典型值 | 说明 |
|---|---|---|---|
| 丝杠导程 | P | 10 mm/rev | 电机转一圈负载移动距离 |
| 减速比 | i | 1:1 或 10:1 | 电机转速/负载转速 |
| 编码器线数 | L | 2500 | 物理刻线数 |
| 倍频系数 | M | 4 | 通常为 4 倍频 |
| 每转脉冲数 | N | 10000 | N = L × M |
| 用户单位/脉冲 | U | 0.001 mm | U = P / (i × N) |
在 Codesys 中,轴配置界面提供 Scaling 选项,可以设置 Position Scaling(用户单位/编码器计数)和 Velocity Scaling。正确设置后,所有运动指令均以用户单位编程,无需关心底层脉冲数。
案例拆解:电子齿轮比计算实例
假设一台印刷机,主轴(印刷辊)直径为 100mm,从轴(裁切刀)直径为 80mm,要求印刷辊每转一圈,裁切刀转 1.25 圈(因为裁切长度与周长相关)。两轴均通过伺服电机直连(无减速机),编码器均为 131072 脉冲/转(17 位值)。
目标:设置电子齿轮比,使从轴与主轴保持同步。
计算过程:
- 主轴每转 1 圈(360°),对应用户单位 360°。
- 从轴需要转 1.25 圈,即 450°。
- 电子齿轮比 = 从轴位置增量 / 主轴位置增量 = 450 / 360 = 1.25。
- 在 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 参数,否则可能导致驱动器过流报警。
AXIS_REF 的 Scale 参数快速验证换算是否正确:写入一个已知位置指令,观察实际位置是否与预期一致。
掌握轴、位置、速度、加速度及单位换算,是后续实现高精度电子齿轮与电子凸轮的基础。下一阶段将基于这些概念,深入探讨同步控制的 PLCopen 功能块实现与参数整定。