库卡KUKA-MoveJ()/MoveL()-运动程序-私有库

简介:

  • 用于替代KUKA联机表单,降低编程难度

应用:

1.首先需要在主程序中新增两条运动指令:一条PTP和一条LIN

2.在初始化程序中新增配置语句

初始化程序

DEF prog_initial()

$BWDSTART = FALSE

PDAT_ACT = PPDAT1

LDAT_ACT = LCPDAT1

FDAT_ACT = FP1

END

3.新增MoveJ和MoveL子程序

MoveJ轴运动程序

DEF MoveJ(JPOS:IN,JTOOL:IN,JBASE:IN,JVEL:IN,JAPO:IN)

;*******************************************

;Name       :MoveJ

;Author     :Wen

;Version    :1.0

;Created    :05.17.2021

;Go to target position as soon as possible

;*******************************************

DECL E6POS JPOS   ;target position

DECL INT JTOOL      ;tool number

DECL INT JBASE       ;base number

DECL REAL JVEL       ;velocity scale unit:%

DECL REAL JAPO      ;approach scale unit:%

FDAT_ACT.TOOL_NO = JTOOL

FDAT_ACT.BASE_NO = JBASE

IF JAPO > 0 THEN

PDAT_ACT.APO_DIST = JAPO

BAS(#PTP_PARAMS,JVEL)

PTP JPOS C_PTP

ELSE

BAS(#PTP_PARAMS,JVEL)

PTP JPOS

ENDIF

END

MoveL线运动程序

DEF MoveL(LPOS:IN,LTOOL:IN,LBASE:IN,LVEL:IN,LAPO:IN)

;*******************************************

;Name       :MoveL

;Author     :Wen

;Version    :1.0

;Created    :05.17.2021

;Go to target position as line

;*******************************************

DECL E6POS LPOS       ;target position

DECL INT LTOOL          ;tool number

DECL INT LBASE           ;base number

DECL REAL LVEL           ;velocity scale unit:%

DECL REAL LVEL_LINE ;velocity           unit:m

DECL REAL LAPO          ;approach scale unit:%

FDAT_ACT.TOOL_NO = LTOOL

FDAT_ACT.BASE_NO = LBASE

LVEL_LINE = 2.0 * LVEL / 100

IF LAPO > 0 THEN

LDAT_ACT.APO_DIST = LAPO

BAS(#CP_PARAMS,LVEL_LINE)

LIN LPOS C_DIS

ELSE

BAS(#CP_PARAMS,LVEL_LINE)

LIN LPOS

ENDIF

END

4.应用样例:

 其他需说明事项:

  • 自编子程序相比联机表单优势在于编程和调试方便,可以在工程师站将程序全部编好下进机器人即可生效。
  • 劣势在于机器人在运动中异常停止时,因为是调用子程序运动,所以并不能通过指针来确定是哪一条运动指令出了问题
  • C2中在满足姿态条件的前提下,第一条运动指令可以为LIN,C4中不允许第一条运动指令为LIN
库卡机器⼈怎么⽤c语⾔写程序,KUKA机器⼈之了解简单的机 器⼈程序 ⾸先提出⼏个问题: 机器⼈是怎记住位置的? 机器⼈是怎么到达它的⽬标点的? 到达⽬标点的速度多快? 什么样的姿态到达? 机器⼈能不能识别障碍? 带着这些问题我们开始学习第⼀条指令 PTP运动指令 运动指令在⽰教器上是酱紫的。被称为"联机表单",通过输⼊或者选择就可以实现运动指令的编辑 机器⼈就是通过这些运动指令记住⾃⼰需要到达的⽬标位置的。 我们来学习⼀下怎么添加⼀个这样的运动指令 前提条件 已设置运⾏⽅式 T1 机器⼈程序已选定。 1. 将 TCP 移向应被⽰教为⽬标点的位置。 2. 将光标置于其后应添加运动指令的那⼀⾏中。 3. 菜单序列指令 > 运动 > PTP。也可按下"运动"。 就会出现这样⼀个联机表单 1.运动类型 PTP/LIN/CIRC 2.⽬标点的名称 3.是否精确到达⽬标点 4.运⾏速度 5.运⾏参数 其中2和5都带有 标志,这是可以点开跳出更多选项的窗⼝。 那么我们分别介绍⼀下: 1.运动类型 PTP/LIN/CIRC PTP 是指从当前位置到达某⼀点的运⾏⽅式为,点到点⽅式 就是说不考虑两点之间的轨迹,机器⼈会6个轴同时启动同时停⽌,并且以主导轴(范围最⼤的轴)的运⾏速度,计算整个运⾏过程的运⾏速 度。 LIN 是指直线运动,即当前位置到达⽬标点的运⾏⽅式,以直线⽅式运⾏。 CIRC 是指圆弧运动,圆弧运动需要⼀个辅助点和⽬标点,两个运动点来实现,其运⾏轨迹是从当前位置到达⽬标点,并经过辅助点形成⼀ 个圆弧的轨迹运动 2.⽬标点的名称。是指我们需要到达的⽬标点的名字,新打开⼀个运动指令会默认以Px的形式出现。 3.是否精确到达⽬标点。在我们编辑⼀个程序时,经常会为了躲避障碍,或者在调整姿态时添加过度点,这些过度点不需要机器⼈精确到达 这个位置,更不需要机器⼈到达位置停下来,因此这样的点就可以设置成"CONT"。 这样可以缩短节拍,让机器⼈的动作更流畅,并且可以减少机器⼈的磨损。 如图,P2点就是我们添加了"CONT"的运动指令。 4.运⾏速度 。指机器⼈到达⽬标点以多块的速度到达。这⾥需要注意⼀下速度的单位。 第⼀个选框选PTP运动时,速度单位是"%",LIN/CIRC时这⾥的单位是M/S 就是说以轨迹运动,是每秒多少⽶的速度单位。⽽PTP运动则是以机器⼈各个电机的功率的百分⽐来计算的。 因此。点位⽰教的好的,就会运⾏更快、更节省能源、减少机器⼈的机械磨损。 5运动参数 这⾥包含了加速度、逼近距离、姿态引导 加速度,是指从静⽌状态到达设定速度的时间。 轨迹逼近距离(如果在栏 (3) 中输⼊了 CONT),是指逼近的范围⼤⼩ 姿态引导(仅限于沿轨迹的运动),在LIN和CIRC运动中以什么样的姿态引导⽅式到达⽬标点。分为"标准""恒定不变" 如果点开1或者5旁边的 符号会分别跳出以下两个选框。 不需要多说 看图就知道什么意思啦 ==================================================================== ⼀个运动指令其实也是⼀个折合,打开来就是这个样⼦的,刚刚所填写的信息都会以不同⽅式在这下⾯调⽤或者传输到其他⼦程序⾥⾯。 在8.5以后出现了SPTP指令,这个指令的折合展开来看,与以前版本有很⼤的不同。 这⾥⾯的句法完全变了个模样。 ;FOLD SPTP P1 Vel=100 % PDAT1 Tool[1] Base[1] ;%{PE};FOLD Parameters ;%{h};Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP;ENDFOLDSPTP XP1 WITH $VEL_AXIS[1] = SVEL_JOINT(100.0), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值