4. 单轴速度与位置控制实战
单轴运动控制是西门子PLC多轴工程的起点。无论后续做插补、同步还是凸轮,最底层都离不开四种基本运动:点动(Jog)、回零(Homing)、绝对定位(MC_MoveAbsolute)和相对定位(MC_MoveRelative)。本节以S7-1500搭配工艺对象(TO_PositioningAxis)为对象,把四种运动的编程与调试一次讲透。
一、先明确坐标与方向约定
在编程前必须固定参照系,否则正负号会混乱。本节统一约定:以丝杠水平轴为例,电机正转驱动滑台向右移动,位置值增大,即向右为正、向左为负;位置单位mm,速度单位mm/s,加速度单位mm/s²。回零后原点位置为0,绝对定位的TargetPosition均以该原点为基准。切换参照系(如改为以负限位为基准)必须重新回零并说明。
二、四种运动的本质区别
点动是速度控制,PLC只给方向和速度,轴持续运动直到松开指令;回零是寻找机械基准,把编码器或增量值绑定到物理原点;绝对定位是位置控制,轴运动到相对原点的确定坐标;相对定位是位置增量控制,轴在当前实际位置基础上再走一段距离。理解这四者的输入量差异,是正确选型指令的关键。
三、工艺对象与指令调用
在TIA Portal中先添加工艺对象“PositioningAxis”,配置驱动、编码器、机械参数(丝杠导程、减速比)和限位开关。之后在OB1或循环中断OB中调用运动控制指令。四种运动对应的指令为:MC_Power(使能)、MC_Home(回零)、MC_MoveJog(点动)、MC_MoveAbsolute(绝对定位)、MC_MoveRelative(相对定位)。所有指令的Axis引脚绑定工艺对象DB,Execute上升沿触发。
// 使能轴(必须最先执行)
MC_Power(
Axis := "Axis_1",
Enable := TRUE,
EnablePos := TRUE,
EnableNeg := TRUE,
Status => #stPower,
Busy => #bPowerBusy,
Error => #bPowerErr);
// 回零:模式3=主动回零,找参考点开关
MC_Home(
Axis := "Axis_1",
Execute := #bHomeTrig,
Position := 0.0,
Mode := 3,
Done => #bHomeDone,
Busy => #bHomeBusy,
Error => #bHomeErr);
// 绝对定位:走到120.0 mm
MC_MoveAbsolute(
Axis := "Axis_1",
Execute := #bAbsTrig,
Position := 120.0,
Velocity := 80.0,
Acceleration := 500.0,
Deceleration := 500.0,
Direction := 0,
Done => #bAbsDone,
Busy => #bAbsBusy,
Error => #bAbsErr);
// 相对定位:在当前基础上再走+30.0 mm
MC_MoveRelative(
Axis := "Axis_1",
Execute := #bRelTrig,
Distance := 30.0,
Velocity := 60.0,
Acceleration := 400.0,
Deceleration := 400.0,
Done => #bRelDone,
Busy => #bRelBusy,
Error => #bRelErr);
四、点动编程要点
点动通常用两个按钮分别控制正、负方向。MC_MoveJog的JogForward和JogPositive引脚为TRUE时轴按设定速度运动,为FALSE时按JogDeceleration减速停止。注意点动速度不宜过高,建议设为额定速度的10%~20%,例如50 mm/s,便于观察。点动前必须已使能轴,且未触发硬限位。
五、回零的调试与判断
回零是后续定位的前提。以主动回零模式3为例,轴先以回零速度向参考点开关方向运动,碰到开关后减速,再反向寻找编码器零脉冲,找到后把该点设为Position(通常为0)。调试时观察:轴是否朝正确方向找开关、碰到开关后是否减速、最终Done位是否置1。若轴一直找不到开关,检查参考点开关接线、回零方向和回零速度是否过高等。回零完成后,ActualPosition应稳定显示0.0 mm。
六、绝对与相对定位的调试
绝对定位调试时,先确认已回零,再给TargetPosition=120.0,观察轴是否准确停在120.0 mm。用游标卡尺或光栅尺复核实际位置,偏差应在工艺允许范围内(如±0.05 mm)。相对定位调试时,先记录当前ActualPosition,再触发Distance=+30.0,运动后ActualPosition应增加30.0。若方向相反,检查Distance正负号或机械方向定义。
七、常见故障与排查
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 轴不动 | 未使能或EnablePos/Neg为FALSE | 检查MC_Power的Status和Error |
| 回零找不到原点 | 参考点开关未接、方向错、速度过高 | 监控开关输入点,降低回零速度 |
| 绝对定位位置偏差 | 未回零、机械间隙、编码器分辨率错 | 重新回零,检查机械参数配置 |
| 相对定位方向反 | Distance符号与机械方向不一致 | 核对正方向定义,修正符号 |
| 运动到限位急停 | 目标位置超程或限位开关触发 | 检查软限位配置和目标坐标 |
八、参数示例与结果判断
以某丝杠轴为例:导程10 mm/r,减速比1:1,编码器分辨率10000脉冲/r,则1 mm对应1000脉冲。设定Velocity=80 mm/s、Acceleration=500 mm/s²。执行绝对定位到120.0 mm,理论运动时间约1.5 s(含加减速)。调试时用Trace功能记录ActualPosition曲线,观察是否平滑到达目标、有无超调。若超调过大,适当降低加速度或提高减速比。最终判断标准:Done位置1、ActualPosition稳定在120.0±0.05 mm、无Error报警。
掌握这四种基本运动的编程与调试,就具备了单轴控制的完整能力。实际工程中,点动用于手动调整,回零建立基准,绝对定位用于确定工位,相对定位用于步进补偿,四者配合构成单轴运动控制的基础框架。