第1章:点位运动指令——让机器学会“点到点”的精准移动
大家好,我是老张。在自动化这行摸爬滚打了十几年,今天咱们来聊聊运动控制里最基础、也最核心的东西——点位运动指令。
你想想看,不管多复杂的自动化设备,归根结底就是让电机从一个位置跑到另一个位置。这听起来简单,但里面的门道可不少。我刚开始带项目那会儿,就因为搞混了绝对定位和相对定位,让一台价值几十万的设备撞了限位……嗯,从那以后,我对这几个指令的理解就特别深刻了。
一、知识体系总览
先给大家画个图,把今天要讲的四个指令串起来。这样你心里就有个谱了。
这张图把四个指令的关系说清楚了。绝对定位和相对定位是“怎么走”,回零是“找起点”,急停是“怎么停”。咱们一个一个来拆解。
二、绝对定位指令(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
// 注意:软件急停后,电机可能因为惯性还会滑行一段距离
// 如果需要立即锁死,需要配合伺服使能断开
急停后的处理流程:
- 按下急停按钮 → 硬件切断动力电源
- PLC检测到急停信号 → 执行STOP指令
- 清除运动缓冲区中所有未执行的指令
- 记录当前故障状态
- 等待人工复位后,重新回零再启动
嗯,这里要注意:急停之后不要直接恢复运行。我见过有人为了省事,急停后直接清除报警就继续跑程序,结果因为位置偏移导致撞机。正确的做法是:急停 → 排查原因 → 手动回零 → 重新开始。
六、四个指令的对比总结
| 指令 | 参考基准 | 重复执行结果 | 典型应用 | 风险点 |
|---|---|---|---|---|
| MOV / ABS | 原点 | 每次都到同一位置 | 取放料、定位工位 | 原点丢失后位置全错 |
| MOV / INC | 当前位置 | 每次移动固定增量 | 传送带步进、分度盘 | 容易超出行程 |
| HOME | 机械原点 | 回到原点 | 设备启动、故障恢复 | 速度过快可能冲过开关 |
| STOP | 无 | 停止运动 | 紧急情况、故障保护 | 软件停止有惯性滑行 |
说实话,这四个指令看着简单,但真正用好它们,需要你对设备、对工艺有深刻理解。我刚开始带徒弟的时候,总让他们先花一周时间,就练这四个指令的配合使用。基本功扎实了,后面学插补、学电子凸轮才不费劲。
好了,这一章的内容就到这儿。记住:绝对定位找位置,相对定位找距离,回零找起点,急停保安全。把这四个指令吃透了,你的运动控制就算入门了。
公众号:蓝海资料掘金营,微信deep3321