KUKA程序解读.docx
《KUKA程序解读.docx》由会员分享,可在线阅读,更多相关《KUKA程序解读.docx(20页珍藏版)》请在冰豆网上搜索。
KUKA程序解读
&ACCESSRVP1
&REL1324
&COMMENTDNL_5SchFrontDoorLkr240r2700_prime_s
&PARAMDISKPATH=KRC:
\R1\1_Geely_User\lProduction
DEFDNL_5LFD080ROB01()工位主程序
;*DefaultsrcTemplateforKuka-Krc-Volvo
;*Created01/10/2012bySiemensPLM
;*
;*Study:
FrontDoorL
;*Program:
DNL_5SchFrontDoorLkr240r2700_prime_s
;*GenerationDate:
05/01/2013at10:
01:
54
;*Robot:
LFD080ROB01(kr240r2700_prime_s)
;*User:
Administrator
;*TecnomatixSoftware:
ProcessSimulateoneMServer13
;*Olp:
Kuka-Krc-Volvo0.0
;*Rcs:
krc8.2_r01
;*Controller:
v8.2(KRC4)
CTime(TRUE,1)计时(计时器1,置位为TRUE)
CollisionDetectBEGIN(TorqSequence1)碰撞检测开启
MovInitAll()初始化所有
Inittool(GrippGP01a)抓手初始化
Inittool(StatdoserSG01A)
Inittool(StatDoserSG01B)
DNL_5SchDefault()生产程序
CollisionDetectEND(TorqSequence1,25)碰撞检测关闭
CTime(FALSE,1)计时器(结束计时1,置位为false)
END循环结束
GLOBALDEFDNL_5SchDefault()全局程序步序
WaitSignal(AllocateStation);1进入大区域,信号:
1
WaitSignal(AllocateST01a);3等待ST01条件满足抓件,信号:
3
WaitSignal(AllocateZone1);21进入干涉区1,信号21
DNL_5Get080ST01()机器人去ST01抓件
WaitSignal(ReleaseZone1);22释放干涉区1,信号22
WaitSignal(ReleaseST01a);4释放ST01,信号4
WaitSignal(RequestSeala);33请求进入涂胶,信号23
DNL_5Seal080SG01a()080涂胶胶枪A
DNL_5Seal080SG01b()080涂胶胶枪B
DNL_5SealChk080FGH01()照相检测
GlueingCheck(#DNL_5)涂胶抽检
WaitSignal(FinishSeala);34释放涂胶完成,信号34
WaitSignal(AllocateST01b);5进入涂胶枪B,信号5
WaitSignal(AllocateZone2);23进入干涉区2,信号23
WaitSignal(AllocateZone9);61进入干涉区9,信号61
DNL_5Put090ST01()090ST01放件程序
WaitSignal(ReleaseZone9);62释放干涉区9,信号62
WaitSignal(ReleaseZone2);24释放干涉区2,信号24
WaitSignal(ReleaseST01b);6释放ST01B,信号24
WaitSignal(ReleaseStation);2离开大区域,信号:
2
WaitSignal(WoekIsDone);31释放信号,工作完成,31
END
DEFDNL_5Get080ST01()抓080ST01
MovSetAcc(100)加速时间100m/s
GripperCheckNoPart(#PartPresent1)抓手没有检测到板件
GripperCls(#Sequence1,)抓手阀1夹紧
GripperCheckClo(#Sequence1)抓手阀1检测信号
GripperOpn(#Sequence4,)抓手阀4打开
GripperCheckOpn(#Sequence4)抓手阀4打开检测信号
VacuumSupervisionOff(#VacPresent1)吸盘1检测关闭(删了也可以)
VacuumSupervisionOff(#VacPresent2)吸盘2检测关闭
MovA(HomeGrippGP01a,Exact,100)原点位置MovL(ToInGetFixtST01_20,fine,0.5,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovL(ToInGetFixtST01_10,fine,0.5,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovLFrame(InGetFixtST01,0.5,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovP(ingetfixst01,Exact,100,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovP运动类型:
运动类型(轨迹方向和过渡点编号,运动模式(coares、exact、fine),速度(0%-100%),工具坐标系,车型坐标系
MovL运动类型:
运动类型(轨迹方向和过渡点编号,运动模式(coares、exact、fine),速度(0m/s-2m/s),工具坐标系,车型坐标系
GripperCheckPart(#PartPresent1)抓手检测板件信号
WaitSignal(RequestPickPart);9等待抓件信号,9
Vacuum_On(#Vacuum1,)吸盘1,吸气打开
Vacuum_On(#Vacuum2,)吸盘2,吸气打开
GripperCls(#Sequence4,)抓手阀4夹紧
GripperCheckClo(#Sequence4)抓手阀4夹紧检测
VacuumSupervisionOn(#VacPresent1)吸盘1,检测开启
VacuumSupervisionOn(#VacPresent2)吸盘2,检测开启
WaitSignal(FinishPickPart);10
MovL(FrInGetFixtST01_10,fine,0.15,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovL(FrInGetFixtST01_20,fine,0.3,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtST01_30,Coarse,100,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtST01_40,Coarse,100,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtST01_50,Coarse,100,GrippGP01a,DNL_5FixtST01,DNL_5GrippGP01aLoadA)
MovA(HomeGrippGP01a,Exact,100)
END
所有的轨迹做了删减!
!
!
!
大致解释如下
MovP运动类型:
运动类型(轨迹方向和过渡点编号,运动模式(coares、exact、fine),速度(0%-100%),工具坐标系,车型坐标系
MovL运动类型:
运动类型(轨迹方向和过渡点编号,运动模式(coares、exact、fine),速度(0m/s-2m/s),工具坐标系,车型坐标系
DEFDNL_5Seal080SG01a()080涂胶枪A涂胶程序
MovSetAcc(100)加速度设为100m/S
Inittool(StatDoserSG01a)初始化胶枪a
PrepareEquipment(StatDoserSG01a,DNL_5BD4132)激活胶枪
MovA(HomeGrippGP01a,Exact,100)
MovPMovL(ToDNL_5BD120264136_20,Fine,0.5,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovL(ToDNL_5BD120264136_10,Fine,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
GlueL(#On,DNL_5BD120264136_On,DNL_5BD4136,Coarse,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
涂胶打开,开始涂胶轨迹
GlueL(#Apply,DNL_5BD120264136_10,DNL_5BD4136,Coarse,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
涂胶应用类似于过度点
GlueL(#Off,DNL_5BD120264136_Off,DNL_5BD4136,Coarse,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
涂胶关闭,开始涂胶轨迹
MovL(FrDNL_5BD120261226_10,Fine,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovL(FrDNL_5BD120261226_20,Coarse,0.15,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovP(FrDNL_5BD120261226_30,Coarse,100,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)(FrDNL_5BD120261226_40,Coarse,100,StatDoserSG01a,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovA(HomeGrippGP01a,Exact,100)
EndEquipment(StatDoserSG01a)
END
DEFDNL_5Seal080SG01b()080涂胶枪A涂胶程序
MovSetAcc(100)加速度设为100m/S
Inittool(StatDoserSG01b)初始化胶枪B
PrepareEquipment(StatDoserSG01b,DNL_5BD5562)激活胶枪B
MovA(HomeGrippGP01a,Exact,100)
MovP(ToDNL_5BD120475562_40,Fine,100,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
;MovP(ToDNL_5BD120475562_40,Fine,100,StatDoserSG01b,ROB,DNL_5GrippGP01aLoadA)
MovP(ToDNL_5BD120475562_30,Coarse,100,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
(#Apply,DNL_5BD120475602_960,DNL_5BD5602,Coarse,0.15,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
GlueL(#Apply,DNL_5BD120475602_970,DNL_5BD5602,Coarse,0.15,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
GlueL(#Off,DNL_5BD120475602_Off,DNL_5BD5602,fine,0.15,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovL(FrDNL_5BD120475602_10,Fine,0.15,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovP(FrDNL_5BD120475602_20,Coarse,100,StatDoserSG01b,DNL_5CarGP01a,DNL_5GrippGP01aLoadA)
MovA(HomeGrippGP01a,Fine,100)
EndEquipment(StatDoserSG01b)释放胶枪B
END
DEFDNL_5Put090ST01()去090ST01放件
MovSetAcc(100)加速度100M/s
MovA(HomeGrippGP01a,Exact,100)
MovP(ToInPutDeskST01_20,Coarse,100,GrippGP01a,DNL_5DeskST02,DNL_5GrippGP01aLoadA)
MovP(ToInPutDeskST01_10,Coarse,100,GrippGP01a,DNL_5DeskST02,DNL_5GrippGP01aLoadA)
MovLFrame(InPutDeskST01,0.5,GrippGP01a,DNL_5DeskST02,DNL_5GrippGP01aLoadA)
WaitSignal(RequestDropPart);13请求放件,信号13
GripperSupervisionOff(#PartPresent1)抓手阀1,检测关
GripperSupervisionOff(#PartPresent2)抓手阀2,检测关
VacuumSupervisionOff(#VacPresent1)吸盘1,检测关
VacuumSupervisionOff(#VacPresent2)吸盘2,检测关
GripperOpn(#Sequence1,)抓手阀1,打开
GripperOpn(#Sequence4,)抓手阀4,打开
GripperCheckOpn(#Sequence4)抓手阀4,检测打开
Vacuum_Blow(#Vacuum1,,10)吹气1,10s
Vacuum_Blow(#Vacuum2,,10)吹气2,10s
WaitSignal(FinishDropPart);14等待放件完成,信号14
MovL(FrInPutDeskST01_10,Coarse,1,GrippGP01a,DNL_5DeskST02)
Vacuum_Off(#Vacuum1,#NoCheck)真空阀1检测关
Vacuum_Off(#Vacuum2,#NoCheck)真空阀2检测关
GripperCheckNoPart(#PartPresent1)抓手没有检测到板件
MovP(FrInPutDeskST01_20,Coarse,100,GrippGP01a,DNL_5DeskST02)
MovP(FrInPutDeskST01_30,Coarse,100,GrippGP01a,DNL_5DeskST02)
MovP(FrInPutDeskST01_40,Coarse,100,GrippGP01a,DNL_5DeskST02)
MovP(FrInPutDeskST01_50,Coarse,100,GrippGP01a,DNL_5DeskST02)
MovP(FrInPutDeskST01_60,Fine,100,GrippGP01a,ROB)
MovA(HomeGrippGP01a,Exact,100)回原点的轨迹
END
DEFDNL_5Put080PC01()放件到080检测台
MovSetAcc(25)加速度25M/s
GripperCheckPart(#PartPresent1)抓手检测到工件
MovA(HomeGrippGP01a,Exact,100)
MovP(ToInPutDeskPC01_30,Coarse,100,GrippGP01a,DNL_5DeskPC01,DNL_5GrippGP01aLoadA)
MovP(ToInPutDeskPC01_20,Coarse,100,GrippGP01a,DNL_5DeskPC01,DNL_5GrippGP01aLoadA)
MovP(ToInPutDeskPC01_10,Coarse,100,GrippGP01a,DNL_5DeskPC01,DNL_5GrippGP01aLoadA)
GripperSupervisionOff(#PartPresent1)抓手检测关
MovLFrame(InPutDeskPC01,0.5,GrippGP01a,DNL_5DeskST01,DNL_5GrippGP01aLoadA)
VacuumSupervisionOff(#VacPresent1)吸盘1,检测关
VacuumSupervisionOff(#VacPresent2)吸盘2,检测关
Vacuum_Blow(#Vacuum1,,10)吸盘1,吹气,10S
Vacuum_Blow(#Vacuum2,,10)吸盘2,吹气,10S
GripperOpn(#Sequence1,)抓手阀1打开
GripperCheckOpn(#Sequence1)抓手阀1检测打开
GripperOpn(#Sequence4,)抓手阀4打开
GripperCheckOpn(#Sequence4)抓手阀4检测打开
WaitSignal(AllocateGlueingCheck_Put);39等待涂胶检测结束,信号39
MovL(FrInPutDeskPC01_10,Coarse,1,GrippGP01a,DNL_5DeskPC01)
GripperCheckNoPart(#PartPresent1)抓手检测信号1没有检测到板件
Vacuum_Off(#Vacuum1,#NoCheck)吸盘1,关
Vacuum_Off(#Vacuum2,#NoCheck)吸盘2,关
MovP(FrInPutDeskPC01_20,Coarse,100,GrippGP01a,DNL_5DeskPC01)
MovP(FrInPutDeskPC01_30,Coarse,100,GrippGP01a,DNL_5DeskPC01)
MovP(FrInPutDeskPC01_40,Coarse,100,GrippGP01a,DNL_5DeskPC01)
MovA(HomeGrippGP01a,Exact,100)
END
DEFDNL_5Get080PC01_OK()080抓检测台上合格的板件
MovSetAcc(25)加速度25M/s
MovA(HomeGrippGP01a,Exact,100)
GripperCheckNoPart(#PartPresent1)抓手板件传感器1,没有检测到板件
GripperOpn(#Sequence1,)抓手阀1,打开
GripperCheckOpn(#Sequence1)抓手阀1,检测打开
GripperOpn(#Sequence4,)抓手阀4,打开
GripperCheckOpn(#Sequence4)抓手阀4,检测打开
MovP(ToInGetFixtPC01_110,Coarse,100,GrippGP01a,ROB)
MovP(ToInGetFixtPC01_30,Coarse,100,GrippGP01a,DNL_5FixtPC01)
MovP(ToInGetFixtPC01_20,Coarse,100,GrippGP01a,DNL_5FixtPC01)
MovP(ToInGetFixtPC01_10,Coarse,100,GrippGP01a,DNL_5FixtPC01)
GripperCls(#Sequence1,)抓手阀1,关闭
GripperCheckClo(#Sequence1)抓手阀1,检测关闭
MovLFrame(InGetFixtPC01,0.5,GrippGP01a,DNL_5FixtPC01)
GripperSupervisionOff(#PartPresent1)抓手板件传感器,检测关
GripperCheckPart(#PartPresent1)抓手板件传感器1,检测到板件
Vacuum_On(#Vacuum1,)吸盘1,吸气
VacuumSupervisionOn(#VacPresent1)吸盘1,检测开启
Vacuum_On(#Vacuum2,)吸盘2,吸气
VacuumSupervisionOn(#VacPresent2)吸盘2,检测开启
GripperCls(#Sequence4,)抓手阀4,关闭
GripperCheckClo(#Sequence4)抓手阀4,检测关闭
WaitSignal(AllocateGlueingCheck_Get);79
MovL(FrInGetFixtPC01_10,Coarse,1,GrippGP01a,DNL_5FixtPC01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtPC01_20,Coarse,100,GrippGP01a,DNL_5FixtPC01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtPC01_30,Coarse,100,GrippGP01a,DNL_5FixtPC01,DNL_5GrippGP01aLoadA)
MovP(FrInGetFixtPC01_80,Coarse,100,GrippGP01a,ROB,DNL_5GrippGP01aLoadA)
MovA(HomeGrippGP01a,Exact,100)
END
DEFDNL_5Get080PC01_NOK()080抓检测台上不合格的板件
MovSetAcc(25)加速度25M/s
MovA(HomeGrippGP01a,Exact,100)
GripperCheckNoPart(#PartPrese