KUKA机器人码垛程序怎么写(案例)
注:本文章文字、图片部分来自网络
版权归原作者,侵删。
工博士提供了 KUKA,Yaskawa, ABB,Kawasaki和 FANUC等各种新型机器人 。我们相信,我们真正地在协助第四次工业革命的进步,并为所有涉及机器人技术的人们增加优势和收益!如果您想获得更多信息,请在线或致电与我们联系 。
Cell.src为主程序,与PLC通讯调用其他子程序。正常工作前,应先手动回到Home位,选定cell.src,再将模式切换为EXT—AUTO。
t.src为回home 位程序,自编。
TREATMENT_PIECE.src为工件型号处理程序,里面有TREATMENT_PIECE和TREATMENT_PIECE2,意思是有2种类型的工件,目前我们生产的只用**种,TREATMENT_PIECE2暂时可以不考虑,如果以后工件换型要用到就稍加调整,步骤与TREATMENT_PIECE功能一样。下面PICK_UP和PICK_UP2同理。
工件型号处理调用程序,调用顺序如下:
DEF TREATMENT_PIECE()
INI
$OUT[183]=FALSE ///循环开始
$OUT[182]=FALSE ///放料工件为0
$OUT[179]=FALSE ///IFW位置为0
$OUT[180]=FALSE ///面罩位置为0
$OUT[181]=FALSE ///吹洗位置为0
$OUT[184]=FALSE ///机械手夹爪工件为0
PICK_UP() ///抓料程序
SCROLL_DOWN() ///抖料程序
IFW_TANK() ///IFW冲洗程序
PIN_POINT() ///面罩冲洗程序
BLOWING() ///吹洗程序
DEPOSIT() ///放料程序
END
**步:PICK_UP.src 机械手抓料程序
DEF PICK_UP() ///定义程序名
INI ///定义变量
PTP HOME Vel= 100 % DEFAULT ///回到home点
$OUT[183]=FALSE ///循环开始
$OUT[182]=FALSE ///工件放料位为0
$OUT[179]=FALSE ///IFW位置为0
$OUT[180]=FALSE ///面罩位置为0
$OUT[181]=FALSE ///吹洗位置为0
$OUT[184]=FALSE ///夹爪为0
SET GRP 1 State=OPN CONT at START Delay=0ms ///夹爪打开
TRIGGERWHENDISTANCE=0 DELAY=0 DO H50(GRP_APO,1,1,GCONT)PRIO=-1
;VADO SOTTO AL PEZZO ALCARICO
;GO UNDER PART LOAD ///进入工件加载
LIN P1 Vel=0.1 m/s CPDAT1 Tool[1] Base[0] ///关键点:工件下面位置1,每次修改的**个主要位置
LIN P5 Vel=0.1 m/s CPDAT4 Tool[1] Base[0] ///位置1到位后上升进入定位销位置2
SET GRP 1 State=CLO CONT at START Delay=0ms ///夹爪夹紧
LIN P6 Vel=0.1 m/s CPDAT5 Tool[1] Base[0] ///位置2顶起来后驶出位置3
;ESCO DAI RULLI
;GO OUT BY ROLLER ///驶出轨道
LIN P3 Vel=0.09 m/s CPDAT3 Tool[1] Base[0] ///驶出位置,不用改
$OUT[184]=TRUE ///机器人抓料位置为1
PTP P4 Vel=100 % PDAT2 Tool[1] Base[0] ///驶出位置,不用改
END
第二步:SCROLL_DOWN.src 抖料位置程序
DEF SCROLL_DOWN() ///这步精度不高*简单,只要不撞合适就行。
INI
;VADO SU SCROLLO PEZZO
;GO TO SCROLL DOWN
PTP P1 CONT Vel=100 % PDAT1 Tool[1] Base[0]
PTP P2 CONT Vel=100 % PDAT8 Tool[1] Base[0]
;INIZIO DI SCROLLO
;START SCROLL DOWN
PTP P3 CONT Vel=100 % PDAT4 Tool[1] Base[0]
PTP P4 CONT Vel=100 % PDAT5 Tool[1] Base[0]
PTP P5 CONT Vel=100 % PDAT6 Tool[1] Base[0]
;FINE SCROLLO
;END SCROLL DOWN
PTP P7 CONT Vel=100 % PDAT7 Tool[1] Base[0]
END
第三步: IFW_TANK.src IFW池冲洗程序
DEF IFW_TANK()
INI
;VADO SU VASCA IFW
;GO ON TANK IFW
PTP P1 CONT Vel=100 % PDAT1 Tool[1] Base[0] ///这些位置都不撞就行
PTP P2 CONT Vel=100 % PDAT2 Tool[1] Base[0]
;ENTRO IN VASCA IFW
;IN SIDE THE TANK IFW
LIN P3 Vel=2 m/s CPDAT1 Tool[1] Base[0]
PTP P8 Vel=100 % PDAT7 Tool[1] Base[0]
LIN P9 Vel=2 m/s CPDAT9 Tool[1] Base[0] ///关键点2:这个位置距离池中喷嘴很近,注意防撞。
WAIT Time=5 sec
LIN P10 Vel=2 m/s CPDAT10 Tool[1] Base[0]
$OUT[179]=TRUE ///机器人在IFW位置
;INIZIO MOVIMENTO PERLAVAGGIO IFW
;START OF MOVEMENT FORWASHING IFW
WHILE NOT($IN[177]) ///IFW 时间结束
LIN P5 Vel=2 m/s CPDAT7 Tool[1] Base[0]
LIN P6 Vel=2 m/s CPDAT8 Tool[1] Base[0]
PTP P11 Vel=100 % PDAT8 Tool[1] Base[0]
PTP P12 Vel=100 % PDAT9 Tool[1] Base[0] ///手动的时候,这个位置可以驶出
ENDWHILE
$OUT[179]=FALSE ///在IFW位置为0
;FINE MOVIMENTO LAVAGGIO IFW
;FINE MOTION WASHING IFW
;ESCO DALLA VASCA IFW
;GO OUT BY TANK IFW ///驶出池子
PTP P7 Vel=100 % PDAT6 Tool[1] Base[0] ///这些位置都安全
END
第四部: PIN_POINT.src 面罩冲洗程序
DEF PIN_POINT()
INI
;VADO SU PIN_POINT
;GO ON PIN_POINT
PTP P1 Vel=100 % PDAT1 Tool[1] Base[0] ///普通位置,不碰就行
;ENTRO NEL PIN_POINT
;WITHIN THE PIN_POINT
LIN P2 Vel=2 m/s CPDAT1 Tool[1] Base[0]
LIN P10 Vel=0.2 m/s CPDAT6 Tool[1] Base[0] ///关键点3 :注意缸盖的2个定位孔,调试时注意将气缸伸出调整在正中心
$OUT[180]=TRUE ///在面罩里位置为1
WAITFOR($IN[178]) ///PLC指令:面罩冲洗结束
$OUT[180]=FALSE ///在面罩里位置为0
;ESCO DALLA MASCHERA DELPIN_POINT
;GO OUT THE MASK OF PIN_POINT
LIN P6 Vel=0.2 m/s CPDAT5 Tool[1] Base[0] ///驶出面罩
;MOVIMENTI PER SVUOTAMENTOPEZZO DA ACQUA
;MOVEMENTS FOR DRAINING PIECEWATER
PTP P8 Vel=100 % PDAT3 Tool[1] Base[0]
WAIT Time=0.2 sec
PTP P9 Vel=100 % PDAT4 Tool[1] Base[0] ///普通位置
WAIT Time=0.2 sec
PTP P7 Vel=100 % PDAT2 Tool[1] Base[0]
END
第五步: BLOWING.src 吹洗程序
DEF BLOWING()
INI
;MI SPOSTO VERSO LASOFFIATURA
;I MOVE TO BLOWING
PTP P1 CONT Vel=100 % PDAT1 Tool[1] Base[0] ///这步都是普通位置,合适就行
$OUT[181]=TRUE ///吹洗位置为1
;SONO DAVANTI ALLA SOFFIATURA
;ARE IN FRONT OF BLOWING
PTP P4 CONT Vel=100 % PDAT4 Tool[1] Base[0]
;PASSO DUE VOLTE NELLASOFFIATURA
;STEP TWO TIMES IN BLOWING
LIN P7 Vel=0.2 m/s CPDAT2 Tool[1] Base[0]
LIN P8 Vel=0.2 m/s CPDAT3 Tool[1] Base[0]
LIN P5 Vel=0.2 m/s CPDAT1 Tool[1] Base[0] ///吹三次
;FINE SOFFIATURA
;END BLOWING
$OUT[189]=TRUE ///吹洗结束为1
PTP P6 Vel=100 % PDAT6 Tool[1] Base[0]
$OUT[181]=FALSE ///吹洗位置为0
$OUT[189]=FALSE ///吹洗结束为0
END
第六部: DEPOSIT.src 机械手放料位置程序
DEF DEPOSIT()
INI
PTP P1 Vel=100 % PDAT1 Tool[1] Base[0]
WAITFOR($IN[184]) ///PLC输入,放料位置为0
LIN P2 Vel=1 m/s CPDAT1 Tool[1] Base[0] ///进入轨道
SET GRP 1 State=OPN CONT at START Delay=0ms ///夹爪打开
LIN P3 Vel=0.08 m/s CPDAT2 Tool[1] Base[0] ///放料无精度要求,合适就行
LIN P5 Vel=0.08 m/s CPDAT4 Tool[1] Base[0] ///放料
WAIT Time=0.5 sec
LIN P8 Vel=0.08 m/s CPDAT6 Tool[1] Base[0]
LIN P6 Vel=2 m/s CPDAT5 Tool[1] Base[0]
$OUT[182]=TRUE ///放料工件位置为1
$OUT[184]=FALSE ///机械手工件为0
$OUT[183]=TRUE ///循环结束为1
PTP P7 Vel=100 % PDAT2 Tool[1] Base[0]
END
在此处联系我们或致电与我们联系,以获取有关机器人解决方案的快速简便的报价。
了解更多库卡机器人配件,库卡机器人官网,请咨询:KUKA机器人
- 下一篇:KUKA机器人销售的一些心得
- 上一篇:库卡所有软件包功能介绍(技术干货)!!!