KRL是“KUKA Robot Language”的缩写。KUKA机器人编程语言是一种类Python的高级编程语言,编程方式灵活多样,语句指令功能强大,本文对其运动编程的指令及含义进行简要归纳总结如下:在实际编程中,语句不区分大小写。
KRL中用于表示、记录、存储机器人空间位置的特定变量,其类型为结构体Structure,有如下几类:
(1)AXIS { A1, A2, A3, A4, A5, A6 } ,用于存储机器人6根轴的轴角度数据。
(2)E6AXIS { A1, A2, A3, A4, A5, A6,E1, E2, E3, E4, E5, E6},用于存储机器人6根轴和6个外部轴的轴角度数据。
(3)POS {X, Y, Z, A, B, C, S, T },用于存储机器人的TOOL(工具坐标)相对于BASE(工件坐标系)或世界坐标系(WORLD)的笛卡尔三维坐标值及分别绕三维旋转的角度值;S即Status,T即Turn,这两个参数用来规避奇异点,确保机器人空间坐标对应轴坐标的唯一性。
(4)E6POS {X, Y, Z, A, B, C, S, T,E1, E2, E3, E4, E5, E6},上述POS结构体增加6根外部轴的角度位置。
(5)FRAME {X, Y, Z, A, B, C},用于存储机器人的TOOL(工具坐标)相对于BASE(工件坐标系)或世界坐标系(WORLD)的笛卡尔三维坐标值及分别绕三维旋转的角度值。
说明:机器人程序中示教的路径点都是以E6POS结构体保存,机器人的起始点HOME是以E6AXIS结构体保存,工具坐标、工件坐标都是以FRAME结构体保存。
一、SPTP-轴运动指令:
SPTP是"Spline Point to Point"的缩写即“样条点到点运动”。SPTP是机器人轴运动即关节型运动,特点是运动轨迹非线性、路径由机器人自主决定、节拍速度通常最快,适用于无特定轨迹要求、空间中位移等场合。
SPTP指令可以定义并使用的结构体类型有:AXIS,E6AXIS,POS,E6POS,FRAME
1、sptp xp1 with $tool=tool_data[1],$base=base_data[1] ;xp1 机器人程序中示教保存的第一个路径点,存储在DAT数据列表中的名称为"XP1"
2、sptp {a1 0,a2 -90,a3 90,a4 0,a5 0,a6 0} ;让机器人的6根轴回到零点位置。
sptp {a2 -45} ;仅让机器人的A2轴运动到-45度的位置。
说明:tool和base在运动前初始化或在运动指令中给定,针对E6POS,POS类型位置。
$tool=tool_data[1] ;指定当前工具为1号工具;(工具号:1-16)
$base=base_data[1] ;指定当前工件为1号工件;(工件号:1-32)
sptp {x 100,y -100,z 200,a 0,b 0,c 0}
sptp {x 1000}
3、逼近点设置
sptp xp1 c_spl ;c_spl代表xp1是一个逼近点,非精确到达的点,旧的PTP指令用c_dis代表逼近点(ptp xp1 c_dis)。
二、SLIN-直线运动指令
SLIN指令可以定义并使用的结构体类型有:E6POS,POS,FRAME
例:slin xp1 with $tool=tool_data[1],$base=base_data[1],$vel.cp=0.5,$jerk={cp 50} c_spl
slin {x 100} with …….
三、SCIRC-圆弧运动指令
SCIRC指令可以定义并使用的结构体类型有:E6POS,POS,FRAME
例:
1、scirc xp7,xp8 c_spl with …. ;xp7是圆弧的辅助点,xp8是圆弧的目标点,
scirc xp7,xp8, ca 360 with …. ; ca 用来定义圆弧的圆心角,360度代表运动一周。
2、scirc {x 100,y 300} , {x 200,y 280} with…
Scirc {x 100,y 300} , {x 200,y 280},ca 180 with…
四、运动参数初始化的指令:
1、$tool=tool_data[1] ;指定当前工具是1号工具
$load=load_data[1] ;指定当前工具负载是1号工具负载
2、$base=base_data[1] ;指定当前工件是1号工件
3、$ipo_mode=#base,#tcp ;指定机器人运动模式
4、axis velocity ;指定机器人6根轴的移动速度
for n=1 to 6
$vel_axis[n]=100 ;100%全速移动
endfor
cp velocity ;指定机器人轨迹移动速度
$vel.cp=3 (max.3m/s) ;指定机器人工具TCP当前的轨迹移动速度为3米/秒
$vel.ori1= 100 (A,B) ;指定机器人工具绕Y、Z轴旋转的角速度为100度/秒
$vel.ori2=100 (C) ;指定机器人工具绕X轴(工具作业方向)旋转的角速度为100度/秒
5、$acc_axis[1]=100 ;指定机器人A1轴加速度为100%
$acc.cp=100 ;指定机器人TCP轨迹加速度为100%
$acc.ori1=150 ;指定机器人工具绕Y、Z轴旋转加速度
$acc.ori2=200 ;指定机器人工具绕X轴(工具作业方向)旋转加速度
6、$apo.cdis=100 c_spl (c_dis) ;指定机器人轨迹逼近距离为100mm
$apo.cvel=100 c_vel ;指定机器人速度逼近
$apo.cori=50 c_ori ;指定机器人姿态角逼近
说明:CP运动要设置以上参数,可指定其中一种即可,最常用的是距离逼近 c_dis
7、CP-PTP,也需要指定以上参数中的一种。
纯PTP的逼近: c_ptp, $apo.cptp=100,轴运动的路点逼近
ptp xp1 c_ptp
ptp xp2 c_ptp
ptp xp3 c_ptp
ptp xp4 c_ptp
四、相对运动指令:
sptp_rel ;PTP相对运动指令
slin_rel ;LIN相对运动指令
slin_rel {x 100} #base (默认相对工件坐标,可省略)
slin_rel {x 100} #tool (相对工具坐标,沿工具作业方向X+移动100,须做工具标定)
scirc_rel ;CIRC相对运动指令