首页 > 工业机器人 > 库卡KUKA机器人程序注释详解(项目案例)

库卡KUKA机器人程序注释详解(项目案例)

日期:2019-12-28   人气:  来源:http://www.zr-robot.com/  作者:admin
简介:1、Cell.src为主程序,与PLC通讯调用其他子程序。正常工作前,应先手动回到Home位,选定cell.src,再将模式切换为EXTAUTO。 2、t.src为回home 位程序,自编。 3、TREATMENT_PIECE.src为工件型号处理程序,里面有TREATMENT_PIECE和TREATMENT_PIECE2,意思是有……
库卡KUKA机器人程序注释详解(项目案例)

1、Cell.src为主程序,与PLC通讯调用其他子程序。正常工作前,应先手动回到Home位,选定cell.src,再将模式切换为EXT—AUTO。
 
2、t.src为回home 位程序,自编。
 
3、TREATMENT_PIECE.src为工件型号处理程序,里面有TREATMENT_PIECE和TREATMENT_PIECE2,意思是有2种类型的工件,目前我们生产的只用第一种,TREATMENT_PIECE2暂时可以不考虑,如果以后工件换型要用到就稍加调整,步骤与TREATMENT_PIECE功能一样。下面PICK_UP和PICK_UP2同理。
 
4、工件型号处理调用程序,调用顺序如下:

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=DELAY=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]  ///关键点:注意缸盖的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