文章目录

伺服电机的绝对定位与相对定位

发布于 2026-03-23 21:52:18 · 浏览 3 次 · 评论 0 条

伺服电机的绝对定位与相对定位是运动控制系统的核心概念,直接影响设备精度、安全性和调试效率。理解两者的本质差异,并在正确场景下灵活切换,是工程师的必备技能。


核心概念辨析

绝对定位以固定坐标原点为基准,所有位置指令指向唯一物理坐标。系统上电后无需回零即可获知当前位置,断电重启后位置信息不丢失。

相对定位以当前位置为基准,指令数值表示位移增量。每次运动都是"再走多少距离",坐标系随设备移动而动态变化。

两者的本质差异可通过一个场景理解:让电机从任意位置移动到机械原点。

  • 绝对定位:发送 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_MoveAbsolutePosition 是固定坐标;MC_MoveRelativeDistance 是增量值,每次触发都在当前位置基础上叠加。


回零(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

高级技巧:坐标系管理

复杂设备常需多坐标系切换。以五轴加工中心为例:

  1. 机床坐标系(MCS):固连于机械结构,绝对值编码器的原始反馈。
  2. 工件坐标系(WCS):通过G代码或HMI设定,执行 G54-G59 切换。
  3. 局部坐标系:子程序内的临时偏移,使用 G52 设定。

伺服驱动器的内部处理流程:

graph LR A["上位指令: WCS位置 100"] --> B["坐标变换: -WCS偏移量"] B --> C["MCS目标位置: 1100"] C --> D["伺服环: 位置/速度/电流"] D --> E["电机执行"] E --> F["绝对编码器反馈"] F --> G["反馈变换: +WCS偏移量"] G --> H["上位显示: WCS位置 100.001"]

关键理解:无论采用何种坐标系,伺服驱动器最终都转换为电机轴的绝对角度执行。所谓"相对定位"只是上位逻辑层的概念,底层仍是绝对位置闭环。


调试 checklist

  1. 确认编码器类型,查阅手册确认是否为真绝对值
  2. 测量机械行程,计算编码器分辨率是否满足精度要求(通常要求分辨率≥定位精度的5倍)
  3. 配置软限位,正限位值略小于机械硬限位,留10-20mm缓冲
  4. 测试回零重复精度,连续10次回零,用千分表记录分散度
  5. 验证断电保持,记录位置后断电10分钟,上电核对偏差
  6. 编写急停处理,急停后是否需要重新回零,或保持绝对位置继续运行

评论 (0)

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

扫一扫,手机查看

扫描上方二维码,在手机上查看本文