ABB機(jī)器人碼垛程序
MODULE MainModulePROC 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<0.25 thenClkStart CLK2;ELSEClkStop CLK2;ENDIFElseClkStop CLK2;EndIFEndprocPROC 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;ENDPROCPROC 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;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfLOff;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, 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 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 HandshakeIF()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:=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;ENDIFENDPROCPROC MoveHome()TempP1:=CRobT(Tool:=tool0 WObj:=wobj0);TempP1.trans.z:=500 ; MoveJ TempP1, v1000, z20, tGripper;MoveJ pHome, v1000, z20, 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 nPriority>2 nPriority:=1;ENDIFENDPROCPROC Open1()Reset DO10_2YaBan;Waittime 0.0;Reset DO10_1JiaZhua;waittime 0.1;!Waittime nTimeGripper;ENDPROCPROC 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;ENDPROCPROC CalculatePick()IF nJob = 1 THENpPick:=pPick1;ELSEIF nJob = 2 THENpPick:=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;ENDPROCPROC 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()bTag:=FALSE;TEST nCount1+1CASE 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;!Layer3CASE 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;!layer5CASE 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:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+500;CASE 25:pPlace1:=pBase90;pPlace1.trans.x:=pPlace1.trans.x+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:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+500;!layer6CASE 26:pPlace1:=pBase180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL-5;pPlace1.trans.z:=pPlace1.trans.z+5*nBagH-50;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+nBagH;CASE 27:pPlace1:=pBase0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL-5;pPlace1.trans.z:=pPlace1.trans.z+5*nBagH-50;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500+nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+500+nBagH;CASE 28:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+4*nBagH-45;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500+nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+nBagH;CASE 29:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x+2*nBagW-25;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+4*nBagH-45;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=2;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500+nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+500+nBagH;CASE 30:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x+nBagW;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+4*nBagH-45;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=2;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500+nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+500+nBagH;!layer7CASE 31:pPlace1:=pBase180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+2*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+2*nBagH;bTag:=True;CASE 32:pPlace1:=pBase0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-40;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+2*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+2*nBagH;CASE 33:pPlace1:=pBase90;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+25;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-40;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+2*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+2*nBagH;CASE 34:pPlace1:=pBase90;pPlace1.trans.x:=pPlace1.trans.x+2*nBagW;pPlace1.trans.y:=pPlace1.trans.y+25;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-40;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+2*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+2*nBagH;CASE 35:pPlace1:=pBase90;pPlace1.trans.x:=pPlace1.trans.x+nBagW;pPlace1.trans.y:=pPlace1.trans.y+25;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-40;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+2*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+2*nBagH;!layer8CASE 36:pPlace1:=pBase180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL-5;pPlace1.trans.z:=pPlace1.trans.z+7*nBagH-40;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+3*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+3*nBagH;CASE 37:pPlace1:=pBase0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL-5;pPlace1.trans.z:=pPlace1.trans.z+7*nBagH-60;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+3*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+3*nBagH;CASE 38:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-60;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+3*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+3*nBagH;CASE 39:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x+2*nBagW-30;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-60;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=2;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+3*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+3*nBagH;CASE 40:pPlace1:=pBase270;pPlace1.trans.x:=pPlace1.trans.x+nBagW;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+6*nBagH-60;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=2;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+450+3*nBagH;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+450+3*nBagH;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;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=600;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;bTag:=True;CASE 2:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 3:pPlace1:=p25Base90;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 4:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 5:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagW;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+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700