2. 对于此类应用,外轴可以选用ABB标准外轴电机,同时机器人需要有606-1 Independent Axis选项(独立轴,该轴可以无限转)。
CONSTrobtarget p100:=[[367.2689,-595.1195,572.0569],[2.74077E-07,1.151371E-07,-1,6.556488E-08],[-1,0,-2,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR bool flag1;
VAR triggdata trig1;
VAR intnum intno1;
PROC main()
reg1:=100;
ActUnit M7DM1;
trig1,0\Start,0,ao_speed,1;
! 将机器人实时TCP速度关联到ao_speed模拟量信号,比例为1(速度单位mm/s)
IDelete intno1;
CONNECT intno1 WITH tr1;
ISignalAO ao_speed, AIO_BETWEEN, 500, -200, 0, intno1;
! ao_speed信号发生变化,会触发中断程序tr1
! ao_speed在-200~500 mm/s速度变化下,触发中断
ISleep intno1;
! 先关闭中断
IndAMove M7DM1,1\ToAbsNum:=0,200;
! 开启独立轴模式,该轴旋转回零
waituntil Indinpos(m7dm1,1)=true;
MoveJ p100,v1000,fine,MyTool\WObj:=wobj0;
! 机器人移动到起点
IWatch intno1;
! 开启中断监控,此时机器人速度变化(ao_speed)会触发中断程序调整外轴速度
TriggL offs(p100,reg1,0,0),v100,trig1,z10,MyTool\WObj:=wobj0;
TriggL offs(p100,reg1,-reg1,0),v10,trig1,z5,MyTool\WObj:=wobj0;
=wobj0; :
TriggL p100,v10,trig1,fine,MyTool\WObj:=wobj0;
! 机器人运行轨迹,由于前面设置了TriggerSpeed,以上轨迹执行时,机器人实时TCP速度会关联到ao_speed信号
ISleep intno1;
! 停止中断监控
IndCMove m7dm1,1,0; !外轴速度归零,停止
waituntil IndSpeed(m7dm1,1\ZeroSpeed)=true;
IndReset M7DM1,1;
! 退出独立轴模式
stop;
ENDPROC
TRAP tr1
IndCMove m7dm1,1,ao_speed;
! 使用当前的ao_speed速度,调节独立轴的速度
ENDTRAP