ABB 分两类外部轴:
Independent(独立外部轴):独立机械单元,不参与机器人 TCP 插补,只做点位运动;
linked(链接协调外部轴,变位机 / 地轨):和机器人本体耦合,支持 Coord 协调运动,机器人直线 / 圆弧时外部轴同步联动。
外部轴位置存储在 robtarget 的 ExtAx 数组,ExtAx 顺序对应逻辑轴号 7‑12。
一、基础概念
ExtAx:
extax1对应逻辑轴 7,extax2逻辑轴 8,extax3逻辑轴 9…… 以此类推。本体轴 1‑6:Robtarget 里
a,b,c,d,e,f;外部轴 7:
ExtAx1;外部轴 8:ExtAx2;外部轴 9:ExtAx3。
修改过逻辑轴号,ExtAx 下标同步跟着变化。
二、独立外部轴调用(最常用:分度转台、地轨只定位,不协同插补)
方式 1:Joint 运动 MoveJ,robtarget 携带外部轴位置
PROC MoveExtAxis()
MoveJ pHome, vmax, fine, tool0\WObj:=wobj0;
! pPos1 里保存本体姿态 + ExtAx1(7轴)、ExtAx2(8轴)位置
MoveJ pPos1, v1000, fine, tool0\WObj:=wobj0;
ENDPROC
示教 pPos1 点位时,点动把外部轴走到目标位置,存储点位就自动记录外部轴ExtAx数值。
方式 2:只动外部轴,本体不动,用 MoveAbsJ(关节绝对运动)
MoveAbsJ 使用 jointtarget,同时包含本体 6 轴 + 外部轴
PROC MoveExt_AbsJ()
! 本体保持当前姿态不动,外部轴7转到90°,8转到0°
JointTarget jt1:=[[*],[90,0,0,0,0,0]];
MoveAbsJ jt1, v500, fine, tool0;
ENDPROC
jointtarget 格式:
[本体6轴,[E7,E8,E9,E10,E11,E12]]
方式 3:异步并行运动 StartMove,外部轴跑,机器人本体同时干活
适合多工位转台,减少节拍,独立单元才可以用
VAR robtarget pTurnPos;
PROC ParallelMove()
StartMove pTurnPos, v800, fine, tool0\WObj:=wobj0; !启动外部轴后台运行
!机器人本体执行其他动作,外部轴并行跑
MoveJ pWork, v1000, fine, tool0\WObj:=wobj0;
WaitMove; !等待外部轴运动完成
ENDPROC
三、linked 链接协调外部轴(变位机、协调地轨,Coord 协调运动)
用于焊接、切割,机器人 TCP 直线 / 圆弧,变位机同步转动工件。 必须选定对应的工作对象 Wobj,Wobj 绑定 linked 机械单元。
示例:协调运动,MoveL/MoveC 自动带动外部轴同步
PROC CoordWeld()
MoveJ pPre, v1000, fine, tool0\WObj:=wobjWork; !wobjWork绑定变位机单元
MoveL pWeld1, v200, fine, tool0\WObj:=wobjWork; !变位机跟随TCP同步运动
MoveC pArc,pWeld2, v200, fine, tool0\WObj:=wobjWork;
ENDPROC
✅关键点:
Wobj 的
MechanicalUnit必须选择对应的 linked 变位机机械单元;robtarget 中 ExtAx 自动记录变位机关节位置;
必须完成工装标定 CalibPos,否则轨迹偏移。
linked 单元不要用 MoveAbsJ 单独驱动变位机,尽量用 MoveL/MoveL,由协调模型计算轴位置。
四、直接赋值修改外部轴位置(程序内修改 ExtAx 数值)
可以在程序里手动改写外部轴数值,不需要重新示教点位。
VAR robtarget pTest;
PROC SetExtValue()
pTest:=pHome;
pTest.ExtAx1:=45; !逻辑7轴 设置45度/mm
pTest.ExtAx2:=120.5; !逻辑8轴 设置120.5
MoveJ pTest, v800, fine, tool0\WObj:=wobj0;
ENDPROC
单位:旋转轴 = 度 °;直线轴 = 毫米 mm。
五、读取外部轴当前位置
VAR jointtarget jtNow;
jtNow:=CJointT(); !读取全部关节当前位置
! jtNow.ExtAx1 就是7轴当前值,jtNow.ExtAx2是8轴当前值
六、示教器快速示教带外部轴点位操作步骤
手动模式,机械单元选择完整单元(本体 + 外部轴);
点动本体 + 外部轴到目标姿态;
新建 robtarget 点位 → 修改位置,确认保存;
点位自动把本体姿态 + 所有外部轴 ExtAx 全部存入。
七、常见踩坑
调用外部轴点位但是外轴不动
独立轴:机械单元选错;robtarget 是旧点位,修改过逻辑轴号导致 ExtAx 错位;
linked 协调轴:Wobj 没有绑定变位机机械单元,协调运动不生效。
修改逻辑轴号后旧程序点位错乱
ExtAx 数组下标跟随逻辑轴号,旧点位的 ExtAx 对应关系全部改变,必须重新示教。
linked 变位机使用 MoveAbsJ 强行驱动关节,容易出现超程、轨迹冲突;优先使用 MoveL/MoveC 协调模式。
并行 StartMove 仅支持Independent 独立机械单元,linked 协调单元不支持异步启动。
快速对比
表格
| 外部轴类型 | 推荐运动指令 | 是否支持 StartMove |
|---|---|---|
| Independent 独立外部轴 | MoveJ / MoveAbsJ | ✅支持并行异步 |
| linked 协调外部轴 | MoveL / MoveC(依靠 Wobj 绑定单元) | ❌不支持 StartMove |


