单轴控制基础:轴参数配置、使能/禁用、点动、/相对定位、速度/加速度/减速度设置
在Codesys运动控制体系中,单轴控制是所有复杂运动(电子凸轮、插补、同步)的基石。无论是控制伺服电机还是步进电机,轴对象(Axis)的配置质量直接决定了后续运动控制的稳定性与精度。本章将围绕轴参数配置、使能/禁用逻辑、点动操作、/相对定位以及速度/加速度/减速度设置五个核心模块展开,帮助学员建立从“轴能转”到“轴转得准、转得稳”的完整认知链路。
核心原理:轴对象与运动控制指令模型
在Codesys V3中,轴(Axis)是一个软件抽象对象,它通过现场总线(如EtherCAT、CANopen、PROFINET)映射到物理驱动器。轴对象内部封装了位置、速度、加速度、状态机、报警等属性。所有运动控制指令(如MC_Power、MC_MoveAbsolute)都是功能块(Function Block),它们以轴引用(Axis Reference)作为输入参数,通过调用内部状态机来改变轴的行为。理解这一点至关重要:轴参数配置不是“写几个数字”,而是定义轴对象与物理世界的映射关系。例如,电机每转的脉冲数、减速比、丝杠导程共同决定了“用户单位”与“编码器计数”之间的换算系数。如果该系数配置错误,即使程序逻辑完全正确,轴的物理位移也会与期望值产生偏差。
MC_ReadAxisInfo 和 MC_ReadActualPosition 可以验证映射是否正确。建议在首次上电时,以低速点动运行并对比实际位移与指令位移,误差应小于一个编码器分辨率。
轴参数配置:从驱动器到控制器的完整链路
轴参数配置通常分为三个层次:驱动器参数(通过驱动器调试软件设置)、总线从站配置(在Codesys设备树中设置)、轴对象参数(在轴配置界面或程序中设置)。对于Codesys轴对象,关键参数包括:
- 单位换算:设置位置单位(mm、deg、inch)、每转脉冲数、减速比、丝杠导程。例如,伺服电机编码器分辨率为131072脉冲/转,减速比10:1,丝杠导程10mm,则每毫米脉冲数 = 131072 × 10 / 10 = 131072脉冲/mm。
- 限位与软限位:硬件限位开关输入映射,以及软件限位(正/负方向最大位置)。软限位在使能后立即生效,防止程序错误导致超程。
- 回零方式:定义回零模式(如限位开关回零、编码器Z相回零、扭矩回零)、回零方向、回零速度。回零是定位的前提。
- 动态特性:默认速度、加速度、减速度、急停减速度。这些值作为运动指令未指定时的默认值。
- 滤波与跟随:位置指令滤波时间常数、速度前馈系数、跟随误差监控阈值。这些参数影响动态响应和跟随精度。
| 参数类别 | 典型参数 | 设置依据 | 错误后果 |
|---|---|---|---|
| 单位换算 | 每转脉冲数、减速比、导程 | 电机铭牌、机械图纸 | 定位距离错误、速度显示异常 |
| 限位 | 硬限位输入、软限位位置 | 行程开关安装位置、机械行程 | 超程撞机、报警停机 |
| 回零 | 回零模式、方向、速度 | 原点开关位置、工艺需求 | 回零失败、原点偏移 |
| 动态特性 | 默认速度、加速度、减速度 | 负载惯量、电机扭矩、工艺节拍 | 过冲、震荡、定位超时 |
| 监控 | 跟随误差阈值、到位窗口 | 系统刚性、精度要求 | 误报警或漏报警 |
使能/禁用:安全与控制的边界
使能(Enable)是轴从“可配置”状态进入“可运行”状态的关键步骤。在Codesys中,MC_Power 功能块控制轴的使能状态。使能过程包括:驱动器上电、抱闸释放(如有)、伺服使能信号置位。禁用过程则相反,且必须考虑安全顺序——先停止运动,再禁用伺服,最后抱闸闭合。一个常见的错误是:在轴运动过程中直接调用禁用指令,导致伺服立即失去扭矩,运动部件在惯性下继续滑行,可能造成碰撞或位置丢失。
正确的使能/禁用流程应遵循以下步骤:
- 检查轴状态(
MC_ReadAxisStatus),确认无报警、无急停。 - 调用
MC_Power并设置Enable := TRUE,等待Status变为 TRUE。 - 执行运动指令前,确认轴已处于
Standstill或Discrete Motion状态。 - 禁用时,先执行停止指令(如
MC_Halt),等待轴完全停止,再设置Enable := FALSE。 - 对于带抱闸的垂直轴,应在禁用前先触发抱闸闭合,防止溜车。
MC_Power。软件禁用存在扫描周期延迟,无法满足安全完整性等级(SIL)要求。安全回路必须独立于运动控制器。
点动控制:调试与手动操作的核心手段
点动(Jog)是设备调试、对刀、手动调整时最常用的功能。Codesys提供 MC_Jog 功能块,支持连续点动和脉冲点动两种模式。连续点动时,只要 JogForward 或 JogBackward 输入为 TRUE,轴就持续运动;脉冲点动则每次触发移动一个固定距离。点动速度通常以百分比或速度指定,且应支持实时倍率调整(如通过HMI滑块)。
点动实现的关键在于方向互锁和速度限制。程序必须确保正转和反转信号不会同时为 TRUE,否则轴会立即停止并可能报警。此外,点动速度不应超过轴的最大允许速度,且应低于回零速度,以保证操作安全。在Codesys中,点动指令会覆盖当前轴的运动状态,因此调用前应确认轴处于空闲状态,或使用 MC_Stop 先停止当前运动。
// 点动功能块实例化与调用示例
MC_Jog(
Axis := Axis_1,
JogForward := bJogFwd,
JogBackward := bJogBwd,
Mode := MC_JOGMODE_CONTINUOUS,
Velocity := 50.0, // 单位:mm/s
Acceleration := 200.0,
Deceleration := 200.0,
Execute := bJogExecute,
Done => bJogDone,
Busy => bJogBusy,
Error => bJogError,
ErrorID => wJogErrorID
);
/相对定位:坐标系的两种哲学
定位(MC_MoveAbsolute)和相对定位(MC_MoveRelative)是运动控制中最基础的两种定位方式。定位的目标位置是相对于机器原点的坐标值,要求轴已完成回零操作;相对定位的目标位置是相对于当前实际位置的增量,不依赖原点。选择哪种方式取决于工艺需求:例如,在贴片机中,每个贴装位置都是坐标,使用定位;而在传送带上的推料机构,每次推料距离固定,使用相对定位更简单。
两种定位方式在指令参数上几乎相同,但内部处理逻辑不同。定位需要轴对象具备有效的原点位置,且目标位置必须在软限位范围内。相对定位则不需要原点,但目标位置 = 当前实际位置 + 距离。在实际应用中,需要注意位置溢出问题:当轴运动范围很大且使用32位位置计数器时,多次相对定位可能导致位置值溢出。Codesys支持64位位置变量(LREAL),建议在大型设备中使用LREAL类型的位置变量。
| 对比维度 | 定位 | 相对定位 |
|---|---|---|
| 目标位置定义 | 相对于原点的坐标 | 相对于当前位置的增量 |
| 前置条件 | 必须完成回零 | 无需回零 |
| 重复精度 | 高(每次定位到同一物理点) | 受累积误差影响 |
| 典型应用 | 加工中心换刀、贴片机 | 传送带推料、步进送料 |
| 程序可读性 | 目标位置直观,便于工艺调整 | 需计算增量,调试时不易理解 |
速度/加速度/减速度设置:动态特性的工程权衡
速度、加速度、减速度是运动控制中影响效率、精度和机械寿命的核心参数。速度决定了节拍,加速度决定了启停冲击,减速度决定了停止距离和定位稳定性。在Codesys中,这些参数可以在轴配置中设置默认值,也可以在每次运动指令中单独指定。工程实践中,需要根据负载惯量比、电机扭矩、机械刚性和工艺要求综合确定。
加速度设置过大会导致机械冲击、振动和跟随误差增大;设置过小则延长运动时间,降低效率。减速度设置不当会导致过冲(overshoot)或定位震荡。Codesys支持梯形速度曲线和S形速度曲线(通过 MC_SetSCurve 或轴参数配置)。S形曲线在加减速起始和结束阶段平滑过渡,适合高精度定位和易碎工件搬运,但会增加运动时间。
实战案例:包装机切刀轴的参数整定与定位调试
某包装机切刀轴采用伺服电机驱动凸轮机构,要求切刀在连续运行中每200ms完成一次切割,切割位置精度±0.1mm。初始调试时,设备出现切割位置偏移和切刀抖动问题。以下是完整的排查与整定过程:
背景与约束:电机额定转速3000rpm,编码器分辨率131072脉冲/转,减速比5:1,凸轮机构等效转动惯量0.002kg·m²。工艺要求切割速度120次/分钟,即每次切割周期500ms,其中运动时间300ms,静止等待200ms。
初始现象:实际切割位置与设定值偏差最大达0.8mm,且切刀在停止位置附近出现持续约50ms的震荡。
分析过程:首先检查轴参数配置,确认单位换算正确(每度脉冲数 = 131072 × 5 / 360 = 1820.4脉冲/度)。然后监控实际位置曲线,发现跟随误差在加减速阶段达到0.3mm,停止阶段存在约0.1mm的过冲。进一步检查加速度设置,发现加速度为5000°/s²,减速度为4000°/s²,明显偏大。计算负载惯量比:电机转子惯量0.00005kg·m²,负载惯量0.002kg·m²,惯量比40:1,远超推荐的10:1以内。
实际操作步骤:
- 将加速度从5000°/s²降低至2000°/s²,减速度调整至2500°/s²,观察跟随误差降至0.15mm。
- 启用S形曲线(S-curve),设置平滑时间20ms,震荡现象明显减弱。
- 调整位置环增益(在驱动器侧),从默认的30 1/s提高至45 1/s,同时降低速度前馈系数从100%至80%,减少过冲。
- 重新测量切割位置偏差,稳定在±0.05mm以内,满足工艺要求。
结果对比:调整前位置偏差0.8mm,调整后0.05mm;震荡时间从50ms缩短至10ms以内;单次切割周期从520ms缩短至480ms,节拍提升约8%。
风险与代价:降低加速度导致单次运动时间增加约30ms,但通过优化S曲线和增益,总周期反而缩短。需要注意的是,提高位置环增益可能引发机械共振,需配合陷波滤波器使用。
复盘经验:轴参数配置必须结合机械负载特性,不能盲目追求高速。加减速度、S曲线、增益三者需要联动整定,且应使用示波器或Codesys的Trace功能记录实际位置曲线,以数据驱动决策。
常见误区与总结复盘
在单轴控制的学习和实践中,以下误区最为常见:
- 误区一:忽略单位换算验证。很多工程师配置完参数后直接运行,发现位置不对才回头检查。正确做法是使用
MC_ReadActualPosition手动转动电机,对比实际位移与反馈值。 - 误区二:使能/禁用顺序颠倒。在轴运动过程中直接禁用,或禁用后立即重新使能,可能导致驱动器报警或位置丢失。应遵循“先停后禁、先使后动”的原则。
- 误区三:点动速度设置过高。点动是手动操作,速度过高容易发生碰撞。建议点动速度不超过最大速度的20%,并设置独立的点动加速度。
- 误区四:定位前未回零。如果轴未回零,定位会以当前位置为原点,导致定位错误。程序应在首次定位前检查
MC_ReadAxisStatus的Homed标志。 - 误区五:加减速度参数“一刀切”。不同运动阶段(点动、定位、回零)应使用不同的动态参数。例如,回零速度应低于定位速度,点动加速度应小于定位加速度。
总结而言,单轴控制虽然是最基础的运动控制形式,但涉及的知识面涵盖机械传动、电气驱动、控制理论和软件编程。只有将轴参数配置、使能逻辑、点动操作、定位方式和动态特性作为一个整体来理解和调试,才能真正实现“轴转得准、转得稳、转得快”的目标。建议学员在实验台上完成以下练习:配置一根虚拟轴,分别使用定位和相对定位完成一个往返运动,并通过Trace功能观察位置曲线和速度曲线,加深对加减速过程的理解。