跳转至

运动指令

运动指令分两族:轨迹指令Linear/CW/CCW,进入前瞻规划,连续平滑)与独立指令(其余全部,逐条执行、前后速度归零)。轴参数一律用轴名(XY…)。点击指令名查看独立介绍页。

点位运动

指令 签名 说明
MoveAbs MoveAbs(轴, 目标位置 [, F, 速度]) 绝对点位运动。仅单轴(多轴参数只有第一轴生效)
MoveInc MoveInc(轴, 距离 [, F, 速度]) 增量点位运动。同样仅单轴
Rapid Rapid(轴1, 距离1 [, 轴2, 距离2 …]) 快速点位,各轴按自身参数限速(MaxSpeedClamp)
MoveAbs(X, 100, F, 500)   -- X 到 100,速度 500
MoveInc(Y, -5, F, 100)    -- Y 反向走 5

点位运动语义

  • 异步受理:命令在运动被控制器受理后即返回,不等运动到位。完成判定用 WaitMotion 或查询轴状态。
  • 速度必须带 F:省略 F, 速度 时按 0 速度处理,命令立即"完成"但轴不会动。
  • 同任务串行:同一任务上一条点位运动还在执行时提交下一条(包括不同轴)会报 MotionError (53)。同轴顺序用 WaitMotion 分隔;两轴同时协调运动用 Linear;互不干扰的并行运动请拆分到不同任务。
  • 模态无关MoveAbs 恒为绝对、MoveInc 恒为增量,不受 Abs/Inc 影响;模态只影响 Linear/CW/CCW/Rapid 的端点解释(上电默认增量)。

连续轨迹(前瞻规划)

指令 签名 说明
Linear Linear(轴1, 终点1 [, 轴2, 终点2 …] [, F, 速度]) 多轴协调直线;F 为合成进给速度
CW CW(轴1, 终点1, 轴2, 终点2, I, i, J, j [, F, 速度]) 顺时针圆弧。圆心 = 起点 + (I, J) 相对偏移
CCW 同上 逆时针圆弧

圆弧要点:只支持 IJ 圆心法(R 法不支持);圆心不受 Abs/Inc 影响,终点跟随当前模式;过弯速度受 √(CoordinatedCircularAccelLimit × R) 向心限制。

Linear(X, 100, Y, 50, F, 200)            -- 直线到 (100, 50)
CW(X, 100, Y, 0, I, -20, J, 0, F, 100)   -- 顺时针半圆,圆心在起点左侧 20

轴状态控制

指令 说明
Enable 使能(CiA402),阻塞至完成,超时 5 s 报 EnableTimeout;轴有故障时立即报错
Disable 禁用,超时 5 s
Home 回零(阻塞式,完成后才执行下一行);需先 Enable
HomeConditional 条件回零:仅对尚未回零的轴执行回零,已回零的轴直接跳过(阻塞式同 Home)
FaultAck 无参数 = 清除全部轴故障;FaultAck(X) 清指定轴
Abort 中止运动。注意:会中止所有任务上的运动
Dwell 等待指定毫秒(占用本任务流,后续指令顺延)
WaitMotion 阻塞等待运动完成:无参 = 等本任务全部运动停止;带轴 = 等该轴停止

速度模式与特殊运动

指令 签名 说明
FreeRun FreeRun(轴, 速度) 持续速度输出(点动),速度符号决定方向,受 MaxSpeedClamp 钳制
FreeRunStop FreeRunStop(轴…) 停止 FreeRun
Oscillate Oscillate(轴, 幅值, 频率, 次数 [, 占空比]) 往复摆动。注意:内核内部把幅值减半(传入的是峰-峰值);频率 ≤ 500 Hz
Brake Brake(轴, 1/0) 抱闸吸合/释放(详见 IO 指令

常见写法

Enable(X, Y)
HomeConditional(X, Y)   -- 已回零则跳过,未回零才执行
WaitMotion(X)

-- 矩形扫描
VelocityOn()
for i = 1, 5 do
    Linear(X, 100, F, 200)
    Linear(Y, 50,  F, 200)
    Linear(X, 0,   F, 200)
    Linear(Y, 0,   F, 200)
end
VelocityOff()