1、ABB机器人码垛程序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 DOReadType;clock2re;PickIF;clock2re;PlaceOF;ENDWHILEENDPROCPROC clock2re()!tempint:=movstat; IF DI10_1Product0K = 0 or DI10_2TuoPanOK = 0 ThenIF tempint
2、thenClkStart CLK2;ELSEClkStop CLK2;ENDIFElseClkStop CLK2;EndIFEndprocPROC InitAll()MoveHome;Reset DO10_1JiaZhua;Reset DO10_2YaBan;Reset DO10_3ZhuaOK;Reset DO10_4MaDuoOK;Waittime ;bPickPart:=FALSE;ClkReset CLK1;ClkStart CLK1;ClkReset CLK2;MoveL Offs(pPick,0,0,400), vFast, z10, tGripperWObj:=wobj0;END
3、PROCPROC 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
4、;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfLOff;MoveJ pAfterPick, vFast, z60, tGripperWObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfLOff;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper; IF bTag=true then Accset 70, 70; MoveJ pAbovePl
5、ace, vFast, z10, tGripperWObj:=wobj0; elseAccset 90, 90; MoveJ pAbovePlace, vFast, z10, tGripperWObj:=wobj0; EndifAccset 100,100;! place first boxConfLOff;!MoveL Offs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripperWObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripperWObj:=wobj0;Open1;ConfLOff;MoveL
6、 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;ENDIFENDPROCPROC Han
7、dshakeIF()IF nJob=1 THEN!Set DO10_3ZhuaOK;ENDIFIF nJob=2 THEN!Set DO10_3ZhuaOK;ENDIFENDPROCPROC HandshakeOF()IF (nCount1=40 and nJob =1) or (nCount1=80 and nJob =2) THENSet DO10_4MaDuoOK;WaitDI DI10_2TuoPanOK, 0;SetDOSDelay:=,DO10_4MaDuoOK,0;nCount1:=0;ClkStop CLK1;ClkStop CLK2;TPErase;nCycleCount:=
8、ClkRead(CLK1);Waitingtime:=ClkRead(CLK2);TPWrite Cycle time: Num:=nCycleCount;TPWrite Waiting time in this Cycle: Num:=Waitingtime;ClkReset CLK2;ClkReset CLK1;ClkStart CLK1;ENDIFENDPROCPROC MoveHome() TempP1:=CRobT(Tool:=tool0 WObj:=wobj0); ; MoveJ TempP1, v1000, z20, tGripper;MoveJ pHome, v1000, z2
9、0, tGripper;ENDPROCPROC 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;ENDIFENDPROCPROC Open1()Reset DO10_2YaBan;Waittime ;Reset DO10_1
10、JiaZhua;waittime ;!Waittime nTimeGripper;ENDPROCPROC Close1()Set DO10_1JiaZhua;Waittime ;WaitDI DI10_4Zhua1End, 1;Set DO10_2YaBan;Waittime ;!Waittime nTimeGripper;WaitDI DI10_4Zhua1End, 1;!WaitDI DI10_6Zhua2End, 1;ENDPROCPROC CalculatePick()IF nJob = 1 THENpPick:=pPick1;ELSEIF nJob = 2 THENpPick:=pP
11、ick1;ENDIF !pAbovePick:=pPick;!pAfterPick:=pPick;!Pattern80;! CalculatePlace()IF nJob = 1 THENnBagL:=nBag50L;nBagW:=nBag50W;nBagH:=nBag50H;Pattern80;ELSEIF nJob = 2 THENnBagL:=nBag25L;nBagW:=nBag25W;nBagH:=nBag25H;Pattern100;ENDIF !pAbovePlace:=pPlace1;pAfterPlace:=pAbovePlace;ENDPROCPROC Pattern80(
12、)bTag:=FALSE;TEST nCount1+1CASE 1:pPlace1:=pBase180; 2:pPlace1:=pBase0; 3:pPlace1:=pBase90; 4:pPlace1:=pBase90; 5:pPlace1:=pBase90; CASE 6:pPlace1:=pBase180; 7:pPlace1:=pBase0; 8:pPlace1:=pBase270; 9:pPlace1:=pBase270; 10:pPlace1:=pBase270; 11:pPlace1:=pBase180; CASE 12:pPlace1:=pBase0; 13:pPlace1:=
13、pBase90; 14:pPlace1:=pBase90; 15:pPlace1:=pBase90; CASE 16:pPlace1:=pBase180; 17:pPlace1:=pBase0; 18:pPlace1:=pBase270; 19:pPlace1:=pBase270; 20:pPlace1:=pBase270; 21:pPlace1:=pBase180; CASE 22:pPlace1:=pBase0; 23:pPlace1:=pBase90; 24:pPlace1:=pBase90; 25:pPlace1:=pBase90; 26:pPlace1:=pBase180; 27:p
14、Place1:=pBase0; 28:pPlace1:=pBase270; 29:pPlace1:=pBase270; 30:pPlace1:=pBase270; 31:pPlace1:=pBase180; CASE 32:pPlace1:=pBase0; 33:pPlace1:=pBase90; 34:pPlace1:=pBase90; 35:pPlace1:=pBase90; 36:pPlace1:=pBase180; 37:pPlace1:=pBase0; 38:pPlace1:=pBase270; 39:pPlace1:=pBase270; 40:pPlace1:=pBase270;
15、DEFAULT:ErrWrite Wrong box Count.,Single box must be the last one of a Pallet;Stop;EXIT;ENDTESTENDPROCPROC Pattern100()bTag:=FALSE;TEST nCount1+1CASE 1:pPlace1:=p25Base270; 2:pPlace1:=p25Base0; 3:pPlace1:=p25Base90; 4:pPlace1:=p25Base180; 5:pPlace1:=p25Base270; CASE 6:pPlace1:=p25Base0; 7:pPlace1:=p
16、25Base90; 8:pPlace1:=p25Base180; 9:pPlace1:=p25Base270; 10:pPlace1:=p25Base0; 11:pPlace1:=p25Base90; 12:pPlace1:=p25Base180; 13:pPlace1:=p25Base270; CASE 14:pPlace1:=p25Base0; 15:pPlace1:=p25Base90; 16:pPlace1:=p25Base180; 17:pPlace1:=p25Base270; 18:pPlace1:=p25Base0; 19:pPlace1:=p25Base90; 20:pPlac
17、e1:=p25Base180; 21:pPlace1:=p25Base270; CASE 22:pPlace1:=p25Base0; 23:pPlace1:=p25Base90; 24:pPlace1:=p25Base180; 25:pPlace1:=p25Base270; 26:pPlace1:=p25Base0; 27:pPlace1:=p25Base90; 28:pPlace1:=p25Base180; 29:pPlace1:=p25Base270; CASE 30:pPlace1:=p25Base0; 31:pPlace1:=p25Base90; 32:pPlace1:=p25Base
18、180; 33:pPlace1:=p25Base270; 34:pPlace1:=p25Base0; 35:pPlace1:=p25Base90; 36:pPlace1:=p25Base180; 37:pPlace1:=p25Base270; CASE 38:pPlace1:=p25Base0; 39:pPlace1:=p25Base90; 40:pPlace1:=p25Base180; 41:pPlace1:=p25Base270; 42:pPlace1:=p25Base0; 43:pPlace1:=p25Base90; 44:pPlace1:=p25Base180; 45:pPlace1:
19、=p25Base270; CASE 46:pPlace1:=p25Base0; 47:pPlace1:=p25Base90; 48:pPlace1:=p25Base180; 49:pPlace1:=p25Base270; 50:pPlace1:=p25Base0; 51:pPlace1:=p25Base90; 52:pPlace1:=p25Base180; 53:pPlace1:=p25Base270; CASE 54:pPlace1:=p25Base0; 55:pPlace1:=p25Base90; 56:pPlace1:=p25Base180; 57:pPlace1:=p25Base270
20、; 58:pPlace1:=p25Base0; 59:pPlace1:=p25Base90; 60:pPlace1:=p25Base180; 61:pPlace1:=p25Base270; CASE 62:pPlace1:=p25Base0; 63:pPlace1:=p25Base90; 64:pPlace1:=p25Base180; 65:pPlace1:=p25Base270; 66:pPlace1:=p25Base0; 67:pPlace1:=p25Base90; 68:pPlace1:=p25Base180; 69:pPlace1:=p25Base270; CASE 70:pPlace
21、1:=p25Base0; 71:pPlace1:=p25Base90; 72:pPlace1:=p25Base180; 73:pPlace1:=p25Base270; 74:pPlace1:=p25Base0; 75:pPlace1:=p25Base90; 76:pPlace1:=p25Base180; 77:pPlace1:=p25Base270; CASE 78:pPlace1:=p25Base0; 79:pPlace1:=p25Base90; 80:pPlace1:=p25Base180; DEFAULT:ErrWrite Wrong box Count.,Single box must be the last one of a Pallet;Stop;EXIT;ENDTESTENDPROCENDMODULE
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1