KUKA机器人可运行的最小的KRL程序实例

机器人

533人已加入

描述

下列举例程序PTP_AXIS.SRC说明一个可运行的最小的KRL程序。 

DEFPTP_AXIS( )       ;程序名是PTP_AXIS 

$VEL_AXIS[1]=100      ;定义轴速度 

$VEL_AXIS[2]=100 

$VEL_AXIS[3]=100 

$VEL_AXIS[4]=100 

$VEL_AXIS[5]=100 

$VEL_AXIS[6]=100 

$ACC_AXIS[1]=100      ;定义轴加速度 

$ACC_AXIS[2]=100 

$ACC_AXIS[3]=100 

$ACC_AXIS[4]=100 

$ACC_AXIS[5]=100 

$ACC_AXIS[6]=100 

PTP{AXIS:A10,A2  –90,A3  90,A4  0,A5  0,A6  0} 

END 

该程序中首先定义轴的速度和加速度。必须在执行点到点运动前分配这些值。 

然后,机器人将各轴移动到AXIS指令指定的角度位置,例如轴1到0,轴2到-90,轴3到90,轴4到0,轴5到0,轴6到0。

机械零点 : 

当输入轴坐标时如果忽略了某个,机器人仅移动指定了的轴,其它轴不改变位置。使用 

PTP{A3  45} 

今轴3被移动到45

0

。请注意PTP指令中定义的角度值是绝对值。因此机器人并不是旋转45度,而是旋转到45度。 

相对运动,使用指令PTP REL。例如要旋转轴1和4都是35度,简单编程如下: 

PTP  REL  {A1  35,A4  35} 

绝对和相对轴指定坐标系的区别 

KUKA

注意,使用相对运动,则在执行期间被停止的运动不易再重新开始。重新启动或重新选择行或改变程序运行模式后,控制器不能记住已经移动了的距离,只能再以编程的全部相对距离移动,最终会导致不正确的终点。 

使用与轴相关的坐标系的运动通常是不切实际的,人工编程师在笛卡儿坐标系中思考和工作。因此,更有用的是通过POS结构在笛卡儿坐标系中输入值,如同下面的举例: 

DEF PTP_POS( ) 

$BASE=$WORLD      ;设置基本坐标系 

$TOOL=$NULLFRAME  ;设置工具坐标系 

$VEL_AXIS[1]=100      ;定义轴速度 

$VEL_AXIS[2]=100 

$VEL_AXIS[3]=100 

$VEL_AXIS[4]=100 

$VEL_AXIS[5]=100 

$VEL_AXIS[6]=100 

$ACC_AXIS[1]=100      ;定义轴加速度 

$ACC_AXIS[2]=100 

$ACC_AXIS[3]=100 

$ACC_AXIS[4]=100 

$ACC_AXIS[5]=100 

$ACC_AXIS[6]=100 

PTP{POS:X 1025,Y 0,Z 1480,A 0,B 90,C 0,S ’B010’,T ’B000010’} 

END 

现在注意,当在笛卡儿坐标系中输入终点时,必须定义输入值在基坐标系和工具坐标系中的速度和加速度。 

在我们的例子中,设置基本坐标系($BASE)与全局坐标系($WORLD)相同,标准位于机器人的底部($ROBROOT)。分配工具坐标系($TOOL)为空框架($NULLFRAME={FRAME:X0,Y0,Z0,A0,B0,C0}),意思是所有的输入值对应法兰盘的中心点。工具中心点(TCP)可以说也是位于法兰盘的中心点。如果一个工具安装在法兰盘上,则必须修改值。 

上面的PTP指令移动机器人到运动的终点,TCP被移动机器人基坐标系的X方向1025mm,Y方向0mm和Z方向1480mm 。输入值A、B和C定义的TCP的方位。状态S和转动T定义的轴的位置 

用KR6机器人测试这个举例程序会产生与前面例子相同的结果。机器人运动到机械零点。对于这种模式的机器人两种指令是一样的。 

当使用笛卡儿坐标系输入终点时,也可能省略几何说明的个别成分,指令如下: 

PTP{Z 1300,B 180} 

Z方向移动TCP到绝对位置1300mm且“倾斜”TCP180。 

也可使用机器人的相对移动命令PTP_REL。使用 

PTP_REL{Z 180,B -90} 

机器人可返回到它的原点位置,切记相对运动,一旦中断就再不能被选择。

绝对和相对笛卡儿坐标系之间的差别  

KUKA

笛卡儿坐标系中使用几何操作可以直接在运动命令中进行框架联接,这种方法,例如可

以不修改系统变量$BASE而初始化与基本坐标系的偏置。 

而且,通过冒号操作指定一个基本偏置比重新定义$BASE更有优势: 

运动指令中出现偏置操作,则必须在运动指令前设置$BASE。以该方法,即使停止了程

序后选择后续的程序段,运动总是选择了正确的基本坐标系。 

重复修改$BASE,如下顺序所示, 

… 

$BASE=$WORLD 

… 

PTP POS_1 

$BASE={X 100,Y –200,Z 1000,A 0,B 180,C 45} 

PTP POS_2 

… 

另一方面,取消POS_2运动指令,重新选择POS_1指令会导致不正确的终点,因为POS_1运动指令也和新的基本坐标系有关,顺便提及,这种情况的发生是在第一个运动指令被停止且设置了对应的计算机提前运行。 

因此,$BASE和$TOOL仅可以被设置一次,例如,在程序的初始化部分。然后可以使用几何操作进行后续的偏置。 

当作为标准的基本包提供了示教点时,各点的$BASE和$TOOL自动被存储在数据表中。 

在下面的例子中,终点坐标被移位到X方向300mm 、Y方向-100mm ,在第二个PTP命令中绕Z轴旋转90

0

。  

DEF FR_VERS( ) 

;-------声明部分------- 

EXT BAS (BAS_COMMAND:IN,REAL:IN) 

DECL AXIS HOME     ;变量HOME的类型是AXIS 

DECL FRAME BASE1      ;变量BASE1的类型是FRAME 

;----------初始化--------- 

BAS(#INITMOV,0)      ;初始化速度 

;加速度,$BASE,$TOOL,etc. 

HOME={AXIS:A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} 

BASE1={FRAME:X 300,Y -100,Z 0,A 90,B 0,C 0} 

;-----------主程序部分--------- 

PTP HOME;BCO运行 

;$BASE坐标系中的运动 

PTP{POS:X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35} 

;$BASE-CS中偏置BASE1的运动 

PTP BASE1:{POS:X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35} 

PTP  HOME 

END 

在这个例子中,速度和加速度及$BASE和$TOOL坐标系的分配不是“手动”进行,而时

由标准基本软件包中的“BAS.SRC”来完成,要这样做,必须首先使用EXT指令使程序认识。 

初始化命令 

BAS(#INITMOV,0) 

然后分配缺省值给所有重要的系统变量。 

程序被执行前,必须确定程序段一致性(BCO),也就是说,在当前机器人位置和编程位置之间必须一致。因为BCO运行不是一个编程完了,测试了的运动。所以必须按下并保持启动键(“dead man” function),以降低的速度自动执行。当机器人到达编程轨迹时,运动停止,可通过再按启动键继续执行程序。 

在“自动外部”模式不执行BCO运行! “  

明智的做法是编程一个“Home”作为第一个运动指令;移动机器人到一个明确定义的位置,这样就确立了程序段一致性。机器人在程序的结束应返回该位置。

POS定义中的“S”和“T”用于选择一个特定的, 明确定义的空间中需要许多轴定位的同一个点的机器人位置(由于运动学的特性)。 

使用笛卡儿坐标系时,在第一个运动指令中编程“Status”和“Turn”来定义一个明确的初始化位置是非常重要的。因为在连续轨迹运动中不考虑“S”和“T”(见3.3),程序的第一个运动指令必须总是一个定义了状态和转的完整的PTP指令(或一个完整的使用轴坐标系的PTP指令)。 

在后续的PTP指令中,只要不需要特定轴定位,例如要要避开障碍时可以省略“S”和“T”,机器人保持最短轴轨迹使用的S和T值,则在第一个PTP指令中编程 “S”和“T”后,每次程序运行时,机器人的轨迹都相同。 

状态和转要求是整数值、二进制形式

属性包含“Turn”属性的扩展笛卡儿位置,可以在不需要特殊移动策略(例如辅助点)时,轴的移动角度大于+180或小于-180。对于旋转轴,轴值前面的各位决定符号,

如下: 

位x=0:轴的角度 ≥0

位x=1:轴的角度<0 

KUKA

值T‘B10011’意思是指轴1、2、5的角度是负值,而轴3、4、6是正值(高位是0可以省略)。 

状态S当轴位置不明确时使用(见图18)。S根据当前机器人运动系统的不同而不同。 

KUKA

各位的意义是: 

位0:关节根部点的位置(基本/空中区域) 

位1:臂配置 

位2:关节配置 

所有6轴关节臂机器人各位的设置见下表: 

KUKA

基本/空间区域可以用笛卡儿术语形象化表示。可定义下列术语: 

关节根点:关节轴的交叉 

A1坐标系:如果轴1在0,与$ROBROOT坐标系一致;如果不等于0,则与轴1一起移动。  

基本/空间区域可如下定义: 

z  如果A1坐标系中关节根点的X值是正数,机器人在基本区域。 

z  如果A1坐标系中关节根点的X值是负数,机器人在空间区域。 

位1定义臂的位置。位的设置根据机器人使用的模式的不同而不同。对于轴3和4交叉

的机器人:如果轴3<0,位1的值是0,否则位1的值是1。对于轴3和轴4之间存在偏置的机器人 

根据偏置的大小,角度会不同,位1值也会改变。

KUKA

机器人配置中状态位的影响见图20。轴以4个不同的定位方式将机器人移动到空间中同一个点。在第一种配置中,机器人在基本位置;轴5的值约45,轴3约80。 

第二种机器人配置区别于第一种的是:轴4被旋转180,其它轴重新组合。虽然臂的配置保持完全一致,但是关节已经改变:轴5现在约是-45,因此状态位2为1。 从位置2到位置3,臂的配置改变。轴3旋转到约-50的位置,状态位的值为0。 在第四种配置中,机器人最终在空间位置。轴1被旋转180,状态为变为1。 

KUKA

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分