第1章:点位运动指令——让机器学会“点到点”的精准移动

大家好,我是老张。在自动化这行摸爬滚打了十几年,今天咱们来聊聊运动控制里最基础、也最核心的东西——点位运动指令。

你想想看,不管多复杂的自动化设备,归根结底就是让电机从一个位置跑到另一个位置。这听起来简单,但里面的门道可不少。我刚开始带项目那会儿,就因为搞混了绝对定位和相对定位,让一台价值几十万的设备撞了限位……嗯,从那以后,我对这几个指令的理解就特别深刻了。

一、知识体系总览

先给大家画个图,把今天要讲的四个指令串起来。这样你心里就有个谱了。

点位运动指令 MOV / ABS 绝对定位指令 MOV / INC 相对定位指令 HOME 回零指令 STOP 急停指令 以原点为参考 以当前位置为参考 寻找机械原点 紧急停止运动

这张图把四个指令的关系说清楚了。绝对定位和相对定位是“怎么走”,回零是“找起点”,急停是“怎么停”。咱们一个一个来拆解。

二、绝对定位指令(MOV / ABS)

说白了,绝对定位就是告诉电机:“你给我跑到坐标1000的位置去。” 不管电机现在在哪儿,它都会以原点为基准,跑到你指定的那个绝对位置。

核心特点:

  • 以机械原点(或用户原点)为参考基准
  • 每次执行的目标位置是固定的
  • 重复执行同一指令,电机每次都跑到同一个位置

我在项目中遇到过一件事。有个客户做PCB钻孔机,每次启动后第一块板子总是偏位。查了半天,发现是操作员在手动模式下移动了轴,但没重新回零。结果绝对定位指令以为原点没变,实际上机械位置已经跑了。从那以后,我要求所有设备启动后必须先执行回零,再执行绝对定位。

来看一段典型的代码:

// 三菱PLC 绝对定位指令示例
// 将轴1以5000Hz的频率,移动到绝对位置20000脉冲处
DDRVA K20000 K5000 Y0 Y1

// 参数说明:
// K20000 - 目标位置(脉冲数)
// K5000  - 运行频率(Hz)
// Y0     - 脉冲输出口
// Y1     - 方向信号口

我的小技巧: 绝对定位适合用在“每次都要回到固定工位”的场景,比如点胶机的原点等待位、贴片机的取料位。我个人习惯在程序初始化时,先用绝对定位把所有轴拉到安全位置,再开始循环作业。

三、相对定位指令(MOV / INC)

相对定位就不同了。它说的是:“从你现在的位置,再往前走500个脉冲。” 它不关心原点在哪,只关心“相对当前位置移动多少”。

核心特点:

  • 以当前位置为参考基准
  • 目标位置 = 当前位置 + 偏移量
  • 重复执行同一指令,电机会越走越远

你想想看,如果在一个传送带上,每次来一个工件都要往前推相同的距离,用相对定位就特别方便。我做过一个自动包装线,每个包装盒间距固定,用相对定位循环执行,代码简洁又高效。

// 三菱PLC 相对定位指令示例
// 从当前位置,再移动5000个脉冲,频率3000Hz
DDRVI K5000 K3000 Y0 Y1

// 参数说明:
// K5000 - 相对移动量(脉冲数)
// K3000 - 运行频率(Hz)
// Y0    - 脉冲输出口
// Y1    - 方向信号口

注意! 我曾经犯过一个低级错误:在循环中使用相对定位,但忘记检查是否超限。结果电机一直往一个方向跑,直到撞上硬限位才停下来。所以用相对定位时,一定要配合限位检测或者软件行程保护。

四、回零指令(HOME)

回零,就是让电机去找“家”。 这个“家”通常是机械原点,由近点开关(DOG)或编码器Z信号来确定。

为什么一定要回零?因为断电后,PLC和驱动器不知道电机在哪儿。你想想看,如果不知道起点,绝对定位和相对定位都无从谈起。所以回零是所有运动控制的第一步。

常见的回零方式:

方式 原理 适用场景
近点开关回零 电机先高速找开关,碰到后减速,再找Z信号 大多数通用设备
限位回零 直接撞到限位开关后反向找原点 行程较短的场合
编码器Z信号回零 直接找编码器的零位脉冲 高精度定位
// 台达PLC 回零指令示例
// 执行轴1回零,回零速度为5000Hz,爬行速度为500Hz
ZRN K5000 K500 X0 Y0

// 参数说明:
// K5000 - 回零起始速度(Hz)
// K500  - 爬行速度(Hz),碰到近点开关后的低速
// X0    - 近点开关输入口
// Y0    - 脉冲输出口

我的经验: 回零速度不要设得太快。我见过有人为了赶时间,把回零速度设到10000Hz以上,结果电机冲过头,直接撞坏了近点开关。一般建议起始速度用额定速度的30%-50%,爬行速度用5%-10%。

五、急停指令(STOP)

急停,就是“不管三七二十一,先停下来再说”。 它和普通停止不一样。普通停止会按减速曲线慢慢停,急停是立即切断脉冲输出,或者以最大减速度停车。

这是保命的指令! 我在一个冲压设备项目上,亲眼见过急停按钮没接好,工人手被压伤的事故。所以急停必须用硬件电路实现,不能只靠软件指令。软件STOP指令只是辅助。

// 软件急停指令示例
// 立即停止所有轴的运动
STOP ALL

// 或者指定停止某个轴
STOP AXIS_1

// 注意:软件急停后,电机可能因为惯性还会滑行一段距离
// 如果需要立即锁死,需要配合伺服使能断开

急停后的处理流程:

  1. 按下急停按钮 → 硬件切断动力电源
  2. PLC检测到急停信号 → 执行STOP指令
  3. 清除运动缓冲区中所有未执行的指令
  4. 记录当前故障状态
  5. 等待人工复位后,重新回零再启动

嗯,这里要注意:急停之后不要直接恢复运行。我见过有人为了省事,急停后直接清除报警就继续跑程序,结果因为位置偏移导致撞机。正确的做法是:急停 → 排查原因 → 手动回零 → 重新开始。

六、四个指令的对比总结

指令 参考基准 重复执行结果 典型应用 风险点
MOV / ABS 原点 每次都到同一位置 取放料、定位工位 原点丢失后位置全错
MOV / INC 当前位置 每次移动固定增量 传送带步进、分度盘 容易超出行程
HOME 机械原点 回到原点 设备启动、故障恢复 速度过快可能冲过开关
STOP 停止运动 紧急情况、故障保护 软件停止有惯性滑行

说实话,这四个指令看着简单,但真正用好它们,需要你对设备、对工艺有深刻理解。我刚开始带徒弟的时候,总让他们先花一周时间,就练这四个指令的配合使用。基本功扎实了,后面学插补、学电子凸轮才不费劲。

好了,这一章的内容就到这儿。记住:绝对定位找位置,相对定位找距离,回零找起点,急停保安全。把这四个指令吃透了,你的运动控制就算入门了。


公众号:蓝海资料掘金营,微信deep3321