跳到主要内容

运动指令参考

本页汇总所有机器人运动相关指令和参数,供编程时快速查阅。

运动指令一览

指令说明路径类型速度
MOVJ关节运动不确定(各轴同时到达)
MOVL直线运动TCP 走直线
MOVC圆弧运动TCP 走圆弧(需要中间点)
HOME回原点关节运动到机械零位

指令语法

MOVJ

MOVJ 目标点位 [, Speed := 速度] [, Accel := 加速度] [, Zone := 平滑半径];

MOVL

MOVL 目标点位 [, Speed := 速度] [, Accel := 加速度] [, Zone := 平滑半径];

MOVC

MOVC 中间点位, 目标点位 [, Speed := 速度];

HOME

HOME [Speed := 速度];

参数说明

参数类型默认值说明
SpeedREAL50运动速度。MOVJ 使用 % (1~100);MOVL 可用 mm/s
AccelREAL50加速度百分比 (1~100)
ZoneREAL0转角平滑半径 (mm)。0 = 精确停顿到位

辅助指令

指令说明示例
DELAY延时等待 (秒)DELAY 0.5;
WAIT等待条件成立WAIT DI[1] = TRUE;
WAIT ... Timeout带超时等待WAIT DI[1] = TRUE, Timeout := 3.0;

IO 操作

操作示例
读取数字输入IF DI[1] = TRUE THEN ...
写数字输出DO[1] := TRUE;
读取模拟输入val := AI[1];
写模拟输出AO[1] := 5.0;

运动选择指南

MOVJ vs MOVL 怎么选
  • 空行程(从一个工位到另一个工位)→ MOVJ,速度最快
  • 工作行程(接近/离开工件、焊接/涂胶路径)→ MOVL,路径精确
  • 经验法则:不碰东西的用 MOVJ,碰东西的用 MOVL

MOVL 技术原理

笛卡尔空间直线插补

MOVL 在笛卡尔空间沿 TCP 直线插补. 每个插补周期 (1 ms) 系统计算下一个 TCP 位姿, 再用逆运动学求出 6 个关节角作为伺服目标。

for each 1 ms:
u = t / T_total (0..1)
pos = pos_start + u · (pos_end - pos_start) (直线)
ori = Slerp(ori_start, ori_end, u) (姿态球面插值)
q = InverseKinematics(pos, ori, config) (逆解)
下发 q 到伺服

姿态插值 (Slerp)

姿态用四元数球面线性插值:

Slerp(q0, q1, u) = q0 · sin((1-u)·θ) / sin(θ) + q1 · sin(u·θ) / sin(θ)

其中 θ = arccos(q0 · q1), 保证姿态沿最短球面路径变化, 不会突然翻转。

MC_MoveLinearAbsolute 功能块

VAR
mcL : MC_MoveLinearAbsolute;
END_VAR

mcL(
Robot := Robot1,
Execute := bStart,
TargetPosition := pPick,
Velocity := 50.0, // mm/s
Acceleration := 500.0, // mm/s²
Deceleration := 500.0,
Jerk := 5000.0, // mm/s³
Zone := 2.0,
OriMode := ORI_INTERPOLATE,
ToolId := 1,
UserFrameId := 1,
ConfigStrict := FALSE, // TRUE = 严格用点位的 Config, FALSE = 允许切换
BufferMode := BUFFER
);

姿态模式

MOVL 默认姿态沿起终点 Slerp 插值. 也可指定:

OriMode效果
ORI_INTERPOLATESlerp (默认)
ORI_KEEP_START保持起点姿态
ORI_KEEP_END立即跳到终点姿态 (罕用)
ORI_PATH_FOLLOW姿态跟随切线 (MoveC/Spline 常用, MoveL 下意义不大)

速度 / 加速度单位

指标单位典型值
TCP 速度 Velocitymm/s20 (焊接) ~ 500 (搬运)
TCP 加速度 Accelerationmm/s²200 ~ 2000
TCP 跃度 Jerkmm/s³2000 ~ 10000
姿态速度 OriVelocity°/s30 ~ 180
姿态加速度 OriAcceleration°/s²300 ~ 1800

TCP 速度和姿态速度各自有限制, 系统取更严格的那个作为整段约束。

构型切换 (Config Flip)

直线运动中, 如果终点 Config 与起点不同, 机器人需经过奇异点翻转构型. Darra 默认:

  • ConfigStrict = TRUE: 严格要求点位的 Config, 无法到达报错
  • ConfigStrict = FALSE: 允许走不同 Config 到达, 但插值不平滑

稳妥做法: 示教时固定构型, 不让构型切换在 MOVL 中发生。

Zone 详解

Zone 几何

Zone 半径 R 内, TCP 不精确到达 EndPoint, 而是沿过渡曲线 (圆弧或三次曲线) 平滑到下一段:

实际路径: P_prev ─── straight ──→ 半径 R 处入弯 ─ blend ─→ 出弯 ──→ P_next
|<---- zone 区 ---->|

Zone 越大过渡越平滑, 速度损失越小, 但偏离示教点越多。

Zone 推荐

场景Zone
精确到位 (取放, 焊点)0
焊缝中间点1~3 mm
连续弧段2~5 mm
空行程中转20~50 mm

焊接最后一点 Zone = 0, 否则焊枪会提前收弧偏离焊缝。

同步 IO

MOVL 执行中可触发 IO:

mcL(
Robot := Robot1, Execute := TRUE,
TargetPosition := pWeld_End,
Velocity := 10.0,
TriggerType := TRIG_DISTANCE, // 按距离触发
TriggerValue := 5.0, // 距终点 5 mm
TriggerOutput := ADR(DO_Arc), // 触发的 IO
TriggerState := FALSE // 置为 FALSE (收弧)
);

焊接尾段提前 5 mm 收弧可以避免尾部熔池溅落。

示例: 精密插销装配

PROGRAM PinInsertion
VAR
mcJ, mcL1, mcL2 : MC_MoveLinearAbsolute;
step : INT := 0;
END_VAR

CASE step OF
0: // 快速接近
mcJ(..., TargetPosition := pApproach, Velocity := 300);
IF mcJ.Done THEN step := 10; END_IF;

10: // 慢速直线下降, 距离 10 mm
mcL1(..., TargetPosition := pPre_Insert,
Velocity := 20, Zone := 0);
IF mcL1.Done THEN step := 20; END_IF;

20: // 最后 5 mm 超慢, 允许力反馈
mcL2(..., TargetPosition := pInserted,
Velocity := 2, // 2 mm/s
ForceMonitor := TRUE,
ForceLimit := 30.0); // 30 N 力限
IF mcL2.Done THEN step := 30; END_IF;

30: // 退出
mcL1(..., TargetPosition := pApproach, Velocity := 50);
END_CASE;

参数表

参数类型单位范围默认说明
TargetPositionROBOT_POS---目标
VelocityLREALmm/s0.1..200050切向速度
AccelerationLREALmm/s²1..10000500加速度
JerkLREALmm/s³100..1000005000跃度
OriVelocityLREAL°/s1..720180姿态速度
OriAccelerationLREAL°/s²1..36001800姿态加速度
ZoneLREALmm0..1000平滑半径
OriModeENUM--INTERPOLATE姿态模式
ConfigStrictBOOL--TRUE严格构型
ForceMonitorBOOL--FALSE力反馈监控
ForceLimitLREALN0..500100力上限

排错清单

现象原因解决
报 "Singularity on path"直线路径经过奇异改路径, 插过渡点
速度跑不到设定曲率限速或关节速度瓶颈降姿态速度或简化路径
姿态在中间翻转 180°Slerp 边界情况在中间加姿态约束点
构型切换报错ConfigStrict = TRUE 且点位构型不同改 FALSE 或重示教点位
Zone 大但路径不平滑相邻段速度差太大速度保持连续
焊道头尾有堆积起弧 / 收弧时机错用 TriggerDistance 提前 / 延后

最佳实践

  1. 工作段用 MOVL: 接触工件的所有动作用直线
  2. 速度由工艺定: 焊 8 mm/s, 涂胶 40 mm/s, 搬运 200 mm/s
  3. Zone 与精度权衡: 关键点 Zone = 0, 过渡点 Zone = 2~5
  4. 姿态对齐工艺: 焊枪垂直焊缝, 涂胶嘴沿切线
  5. 配 TriggerDistance 精确 IO: 工艺 IO 不是 DELAY, 而是距离触发
  6. 预先检查路径: 3D 视口看是否经过奇异, 提前绕开
  7. 力监控加一层保险: 精密装配必开 ForceMonitor

相关文档