KUKA 机器人SPS.SUB程序解析

本文详细解析了KUKA机器人的SPS.SUB程序,包括STATE_T结构定义、CMD_STAT枚举类型、MODUS_T结构以及中断函数声明。程序中涉及到CWRITE命令的使用,用于通过命令通道启动CELL程序,并对通道进行了定义。此外,还包含了扭矩监视、夹持技术等功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

&ACCESS  RVO
&COMMENT PLC on control
DEF  SPS ( )
  ;FOLD DECLARATIONS
  ;FOLD BASISTECH DECL
  ;Automatik extern

  DECL STATE_T STAT

定义STATE_T类型的变量。该结构为:
STRUC STATE_T 
CMD_STAT RET1, CMD_STAT是枚举类型数据,组成了STATE_T结构的第一个数据RET1
INT HITS ,
INT LENGTH  
其中CMD_STAT是枚举类型的数据:
ENUM CMD_STAT  CMD_OK, CMD_TIMEOUT, DATA_OK, DATA_BLK, DATA_END, CMD_ABORT, CMD_REJ, CMD_PART, CMD_SYN, FMT_ERR 

CWRITE有关的返回值如下表:


    变量类型 MODUS_T(结构类型)定义多少通道写入,有下列值 SYNC
库卡机器⼈怎么⽤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)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值