伺服电机的绝对定位与相对定位是运动控制系统的核心概念,直接影响设备精度、安全性和调试效率。理解两者的本质差异,并在正确场景下灵活切换,是工程师的必备技能。
核心概念辨析
绝对定位以固定坐标原点为基准,所有位置指令指向唯一物理坐标。系统上电后无需回零即可获知当前位置,断电重启后位置信息不丢失。
相对定位以当前位置为基准,指令数值表示位移增量。每次运动都是"再走多少距离",坐标系随设备移动而动态变化。
两者的本质差异可通过一个场景理解:让电机从任意位置移动到机械原点。
- 绝对定位:发送
MoveAbs(0),系统内部自动计算当前位置到原点的矢量距离,一次性完成定位。 - 相对定位:需执行回零程序(寻找原点传感器),记录零点偏移量,后续运动才具备参考基准。
硬件基础:编码器类型决定定位能力
定位模式的实现依赖编码器反馈机制,常见三类硬件方案:
| 编码器类型 | 定位能力 | 断电保持 | 典型应用 |
|---|---|---|---|
| 增量式 | 仅相对定位 | 丢失位置 | 低成本传送带、风机 |
| 电池备份绝对值 | 绝对定位 | 依赖电池 | 机床、自动化产线 |
| 机械多圈绝对值 | 绝对定位 | 永久保持 | 重工机械、风电变桨 |
增量式编码器输出脉冲序列,控制器通过脉冲计数推算位置。断电后计数清零,再次上电时电机位置未知,必须执行回零操作建立坐标系。
单圈绝对值编码器在360°机械角度内具备唯一编码,但多圈位置仍需电池记忆。电池耗尽或首次调试时,同样需要设定原点。
多圈绝对值编码器(如17-23位分辨率)通过齿轮机构记录4096圈甚至更多圈数,机械结构保证断电后圈数信息不丢失,真正实现"上电即知位"。
参数配置:从理论到代码
关键参数定义
| 参数名 | 功能说明 | 设置要点 |
|---|---|---|
HomePosition |
机械原点坐标 | 通常设为0,也可根据工艺偏移 |
SoftLimitPos/Neg |
软件限位 | 绝对定位模式下必须配置,防止撞机 |
Modulo |
模轴周期 | 旋转工作台需设置360°或特定分度 |
HomeOffset |
原点偏移补偿 | 修正传感器安装位置误差 |
PLC程序示例(IEC 61131-3结构文本)
绝对定位功能块调用:
// 声明实例
MC_MoveAbsolute : MC_MoveAbsolute;
// 执行调用
MC_MoveAbsolute(
Axis := Servo1, // 轴接口
Execute := StartBtn, // 上升沿触发
Position := 500.0, // 目标位置(单位:mm或°)
Velocity := 100.0, // 目标速度
Acceleration := 500.0, // 加速度
Deceleration := 500.0, // 减速度
Direction := shortest, // 旋转轴方向:最短路径/正向/反向
Done => MoveDone, // 完成信号
Error => MoveError // 故障信号
);
相对定位功能块调用:
MC_MoveRelative(
Axis := Servo1,
Execute := JogFwd, // 点动前进按钮
Distance := 10.0, // 移动距离(正负决定方向)
Velocity := 50.0,
// ...其他参数同绝对定位
);
关键区别:MC_MoveAbsolute 的 Position 是固定坐标;MC_MoveRelative 的 Distance 是增量值,每次触发都在当前位置基础上叠加。
回零(Homing)机制详解
绝对定位系统并非完全免除回零,而是将回零操作前置到调试阶段。标准回零模式包括:
| 回零模式 | 动作描述 | 适用场景 |
|---|---|---|
| 模式1:直接绝对 | 以当前位置为原点,无物理找零 | 编码器已为绝对值类型 |
| 模式2:正向限位+原点 | 高速找正限位,低速退离找原点 | 原点传感器靠近正限位 |
| 模式3:负向限位+原点 | 同上,方向相反 | 原点传感器靠近负限位 |
| 模式7:原点+编码器Z相 | 找原点传感器后精确定位到Z相脉冲 | 需要最高精度 |
| 模式35:直接设定位置 | 强制写入当前位置值 | 调试或恢复异常 |
回零程序的质量决定绝对定位的可靠性。推荐在PLC中编写状态机,监控回零过程的每个阶段:
CASE HomingStep OF
0: // 等待触发
IF StartHoming THEN HomingStep := 10; END_IF;
10: // 高速找限位
MC_MoveVelocity(Axis:=Servo1, Velocity:=FastSpeed, Direction:=positive);
IF LimitSwitch THEN HomingStep := 20; END_IF;
20: // 低速退离
MC_MoveVelocity(Axis:=Servo1, Velocity:=SlowSpeed, Direction:=negative);
IF NOT LimitSwitch THEN HomingStep := 30; END_IF;
30: // 找原点
MC_Home(Axis:=Servo1, Execute:=TRUE, Position:=0);
IF MC_Home.Done THEN HomingStep := 100; END_IF;
100: // 完成
HomingDone := TRUE;
END_CASE;
典型应用场景决策
场景一:数控机床刀库
选择绝对定位。刀库有12把刀具,固定对应0°、30°、60°...330°位置。使用绝对定位直接调用 MoveAbs(180) 即可定位到第7把刀,无需关心当前在几号刀位。若用相对定位,每次换刀需计算角度差,程序复杂且易累积误差。
场景二:电子凸轮飞剪
混合使用。凸轮曲线的相位追踪用相对定位(跟随主轴脉冲增量),但剪刀的机械零位校准用绝对定位。系统上电后执行一次绝对回零,后续剪切周期内切换为相对模式响应高速脉冲。
场景三:AGV升降机构
强制绝对定位+软限位。升降行程2米,机械硬限位仅在紧急状态触发。正常运行时,绝对定位配合软件限位确保任何指令不会超出安全范围。若误发 MoveAbs(3000)(超出行程),控制器自动报错拒绝执行,而非机械撞停。
场景四:手动调试模式
相对定位的合理使用场景。维修时寸动调整,"前进5mm"比"走到坐标1273.5mm"更直观。但必须在手动模式屏蔽自动程序,防止相对运动的累积误差影响后续自动运行。
常见问题与排查
| 现象 | 根因分析 | 解决措施 |
|---|---|---|
| 绝对值电机上电位置乱跳 | 电池电压低或编码器电缆干扰 | 更换电池,检查屏蔽接地,重新回零 |
| 相对运动多次后位置漂移 | 编码器分辨率不足或机械打滑 | 改用绝对定位,或增加周期回零 |
| 绝对定位偶尔偏差一个螺距 | 丝杠导程与编码器分辨率非整数倍 | 调整电子齿轮比,或启用螺距补偿 |
| 回原点后实际位置偏差 | 原点传感器重复精度差 | 改用Z相回零,或更换高精度传感器 |
| 模轴旋转后定位反向 | 方向参数设为shortest,跨半圈时走捷径 | 明确指定Direction:=positive或negative |
高级技巧:坐标系管理
复杂设备常需多坐标系切换。以五轴加工中心为例:
- 机床坐标系(MCS):固连于机械结构,绝对值编码器的原始反馈。
- 工件坐标系(WCS):通过G代码或HMI设定,执行
G54-G59切换。 - 局部坐标系:子程序内的临时偏移,使用
G52设定。
伺服驱动器的内部处理流程:
关键理解:无论采用何种坐标系,伺服驱动器最终都转换为电机轴的绝对角度执行。所谓"相对定位"只是上位逻辑层的概念,底层仍是绝对位置闭环。
调试 checklist
- 确认编码器类型,查阅手册确认是否为真绝对值
- 测量机械行程,计算编码器分辨率是否满足精度要求(通常要求分辨率≥定位精度的5倍)
- 配置软限位,正限位值略小于机械硬限位,留10-20mm缓冲
- 测试回零重复精度,连续10次回零,用千分表记录分散度
- 验证断电保持,记录位置后断电10分钟,上电核对偏差
- 编写急停处理,急停后是否需要重新回零,或保持绝对位置继续运行

暂无评论,快来抢沙发吧!