ABB机器人码垛程序_第1页
ABB机器人码垛程序_第2页
ABB机器人码垛程序_第3页
ABB机器人码垛程序_第4页
ABB机器人码垛程序_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选文库MODULE MainModule PROC Main() TPErase; TPReadNum nCount1, Qing Shu Ru Yi Ma Bao Shu! ; TPReadNum nJob, Qing Shu Ru Mo Shi:50KG:=1,25KG:=2!; InitAll; WHILE TRUE DO ReadType; clock2re; PickIF; clock2re; PlaceOF; ENDWHILE ENDPROC PROC clock2re() !tempint:=movstat; IF DI10_1Product0K = 0 or DI10_2TuoPanOK = 0 Then IF tempint0.25 then ClkStart CLK2; ELSE ClkStop CLK2; ENDIF Else ClkStop CLK2; EndIF Endproc PROC InitAll() MoveHome; Reset DO10_1JiaZhua; Reset DO10_2YaBan; Reset DO10_3ZhuaOK; Reset DO10_4MaDuoOK; Waittime 0.5; bPickPart:=FALSE; ClkReset CLK1; ClkStart CLK1; ClkReset CLK2; MoveL Offs(pPick,0,0,400), vFast, z10, tGripperWObj:=wobj0; ENDPROC PROC PickIF() IF bPickPart = FALSE AND nJob 0 AND DI10_1Product0K = 1 THEN !CalculatePick; MoveJ Offs(pPick,0,0,400), vFast, z200, tGripperWObj:=wobj0; !MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0WObj:=wobj0, DO10_1JiaZhua, 1; MoveL pPick, vFast, fine, tGripperWObj:=wobj0; Close1; GripLoad LoadFull; Accset 50,50; HandshakeIF; bPickPart:=TRUE; ConfLOff; MoveJ pAfterPick, vFast, z60, tGripperWObj:=wobj0; ENDIF ENDPROC PROC PlaceOF() IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THEN CalculatePlace; ConfLOff; !MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper; IF bTag=true then Accset 70, 70; MoveJ pAbovePlace, vFast, z10, tGripperWObj:=wobj0; else Accset 90, 90; MoveJ pAbovePlace, vFast, z10, tGripperWObj:=wobj0; Endif Accset 100,100; ! place first box ConfLOff; !MoveL Offs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripperWObj:=wobj0; MoveL pPlace1, vMiddle, fine, tGripperWObj:=wobj0; Open1; ConfLOff; MoveL Offs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripperWObj:=wobj0; GripLoad LoadEmpty; Accset 100,100; bPickPart:=FALSE; Incr nCount1; HandshakeOF; MoveJ pAbovePick, vFast, z200, tGripperWObj:=wobj0; MoveL Offs(pPick,0,0,400), vFast, z10, tGripperWObj:=wobj0; !MoveJ pHome, vFast, z200, tGripper; ENDIF ENDPROC PROC HandshakeIF() IF nJob=1 THEN !Set DO10_3ZhuaOK; ENDIF IF nJob=2 THEN !Set DO10_3ZhuaOK; ENDIF ENDPROC PROC HandshakeOF() IF (nCount1=40 and nJob =1) or (nCount1=80 and nJob =2) THEN Set DO10_4MaDuoOK; WaitDI DI10_2TuoPanOK, 0; SetDOSDelay:=0.5,DO10_4MaDuoOK,0; nCount1:=0; ClkStop CLK1; ClkStop CLK2; TPErase; nCycleCount:=ClkRead(CLK1); Waitingtime:=ClkRead(CLK2); TPWrite Cycle time: Num:=nCycleCount; TPWrite Waiting time in this Cycle: Num:=Waitingtime; ClkReset CLK2; ClkReset CLK1; ClkStart CLK1; ENDIF ENDPROC PROC MoveHome() TempP1:=CRobT(Tool:=tool0 WObj:=wobj0); TempP1.trans.z:=500 ; MoveJ TempP1, v1000, z20, tGripper; MoveJ pHome, v1000, z20, tGripper; ENDPROC PROC ReadType() IF nPriority = 1 AND DI10_1Product0K = 1 THEN !nJob:=1; ! Incr nPriority; ELSEIF nPriority = 2 AND DI10_1Product0K = 1 THEN !nJob:=2; !Incr nPriority; ELSE !nJob:=0; !Incr nPriority; !IF nPriority2 nPriority:=1; ENDIF ENDPROC PROC Open1() Reset DO10_2YaBan; Waittime 0.0; Reset DO10_1JiaZhua; waittime 0.1; !Waittime nTimeGripper; ENDPROC PROC Close1() Set DO10_1JiaZhua; Waittime 0.0; WaitDI DI10_4Zhua1End, 1; Set DO10_2YaBan; Waittime 0.0; !Waittime nTimeGripper; WaitDI DI10_4Zhua1End, 1; !WaitDI DI10_6Zhua2End, 1; ENDPROC PROC CalculatePick() IF nJob = 1 THEN pPick:=pPick1; ELSEIF nJob = 2 THEN pPick:=pPick1; ENDIF !pAbovePick:=pPick; !pAfterPick:=pPick; !Pattern80; !pAbovePick.trans.z:= pAfterPick.trans.z; !pAbovePick.trans.y:= pAfterPick.trans.y-500; !pAfterPick.trans.y:= pAfterPick.trans.y-500; ENDPROC PROC CalculatePlace() IF nJob = 1 THEN nBagL:=nBag50L; nBagW:=nBag50W; nBagH:=nBag50H; Pattern80; ELSEIF nJob = 2 THEN nBagL:=nBag25L; nBagW:=nBag25W; nBagH:=nBag25H; Pattern100; ENDIF !pAbovePlace:=pPlace1; pAfterPlace:=pAbovePlace; ENDPROC PROC Pattern80() bTag:=FALSE; TEST nCount1+1 CASE 1: pPlace1:=pBase180; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=500; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; bTag:=True; CASE 2: pPlace1:=pBase0; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 3: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 4: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x+2*nBagW; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 5: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x+nBagW; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+20; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; !Layer2 CASE 6: pPlace1:=pBase180; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+nBagL-5; pPlace1.trans.z:=pPlace1.trans.z+nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 7: pPlace1:=pBase0; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+nBagL-5; pPlace1.trans.z:=pPlace1.trans.z+nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 8: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 9: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x+2*nBagW-25; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=2; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 10: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x+nBagW; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=2; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; !Layer3 CASE 11: pPlace1:=pBase180; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; bTag:=True; CASE 12: pPlace1:=pBase0; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 13: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 14: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x+2*nBagW; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 15: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x+nBagW; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-500; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; !layer4 CASE 16: pPlace1:=pBase180; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+nBagL-5; pPlace1.trans.z:=pPlace1.trans.z+3*nBagH+80; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 17: pPlace1:=pBase0; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+nBagL-5; pPlace1.trans.z:=pPlace1.trans.z+3*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 18: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 19: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x+2*nBagW-25; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=2; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; CASE 20: pPlace1:=pBase270; pPlace1.trans.x:=pPlace1.trans.x+nBagW; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+2*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=2; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+400; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+400; !layer5 CASE 21: pPlace1:=pBase180; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+4*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+500; bTag:=True; CASE 22: pPlace1:=pBase0; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y; pPlace1.trans.z:=pPlace1.trans.z+4*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+500; CASE 23: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+4*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1; pAbovePlace.trans.z:=pPick.trans.z+500; CASE 24: pPlace1:=pBase90; pPlace1.trans.x:=pPlace1.trans.x+2*nBagW; pPlace1.trans.y:=pPlace1.trans.y+25; pPlace1.trans.z:=pPlace1.trans.z+4*nBagH; nOffsX1:=0; nOffsY1:=0; nOffsZ1:=nBagH*1.2; nOffsZ2:=-300; nLevel:=1; bTwice:=FALSE; pAfterPick.trans.z:=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论