ABB机器人码垛程序
abb机器人码垛工作原理
abb机器人码垛工作原理
ABB机器人码垛的工作原理主要涉及三个步骤:包装袋整理、检测抓取和码垛输送。
首先,包装袋经过输送机被送到整平机,整平机对包装袋进行压平操作,使物料压实均匀充满包装袋,保持袋型平整。
然后,整理好的包装袋到达抓取辊道,机械手检测到抓取辊道上有包装袋后,机械手到达定位点转向包装袋处,机械手张开夹起包装袋进行转向,按照设置好的编组进行堆放、码垛。
最后,将包装袋按照设置好的垛型进行码放,完成码垛后有叉车或行车直接将托盘运走,完成码垛工序。
此外,ABB码垛机器人还利用激光测距、超声波或者CCD相机等传感器对目标物体进行定位,然后再利用机械手臂将目标物体搬运到指定位置。
如需了解更多信息,建议查阅相关资料或咨询专业人士。
码垛程序详解,如何编写ABB码垛程序?
码垛程序详解,如何编写ABB码垛程序?在编写码垛程序之前,我们首先要清楚码垛是什么,码垛其实就是机械手的基于一个基准点所做的偏移,中心思想就是满几进1。
我们来解释下,我们首先要定一个基准点,我们的下面所有的点位的偏移都是在基准点X Y Z方向上的偏移。
如图所示:以物体1的位置为基准点,当我们在X正方向以40mm的距离的偏移做偏移运动。
如图在X方向我们假设摆放5个物体,我们这一行的空间就用完了,我们就需要在重新开始一行来摆放我们的物体,所以我们就是需要在Y方向进行偏移,偏移35mm的距离,来继续摆放我们的物体。
如下图:假设当我们在Y方向上只能摆放4行物体时,当我们摆满4行物体,最下面一层就已经被我们摆满,这时候我们还要摆放就只能接着向上摆放,也就是往Z方向上偏移了。
如下图所示;当我们明白码垛的含义之后,我们再来看下在ABB机械手中如何编写码垛程序。
机器计算的方式和我们运算的刚好相反,机器是先计算层数,再计算行数,最后再计算产品在一列中的位置。
如下PROC pallet1() !码垛计算程序jishu1 := nproduct; !产品计数nx := 0; !列数ny := 0; !行数nz := 0; !层数dx := 0 - kuan; ! X方向偏移距离dy := chang; ! Y方向偏移距离dz := 0 - gao; !Z方向偏移距离WHILE jishu1 > 20 DO !程序会先计算产品有几层,当产品满足一层有20时,会在Z方向 jishu1 := jishu1 - 20; 加1。
当产品不满一层时,程序会继续往下运行。
nz := nz + 1;ENDWHILEWHILE jishu1 > 5 DO !计算产品有几行,一行产品有5个,当产品满足5时.会在Y方向 jishu1 := jishu1 - 5; 加1.当产品不满1行时,程序会继续往下运行。
ny := ny + 1;ENDWHILEWHILE jishu1 > 1 DO !最后计算产品在一列有几个产品,也就是产品在X方向的位置jishu1 := jishu1 - 1;nx := nx + 1;ENDWHILEX := nx * dx; !X方向偏移的距离Y := ny * dy; !Y方向偏移的距离Z := nz * dz; !Z方向偏移的距离ENDPROCPROC quliao() !放料程序IF nproduct = 1 THENfristpoint;ENDIFIF nproduct > 1 THENpallet1; !码垛计算程序SetDO DO11_CONTROL_1, 1;MoveJ Offs(q10,X,Y,Z + 200), v1000, z1, tool0\WObj:=wobj_shangxialiao; !抬高点MoveL Offs(q10,X,Y,Z), v300, fine, tool0\WObj:=wobj_shangxialiao; !放料点,偏移点位WaitTime 1;MoveL Offs(q10,X,Y,Z+200), v300, fine, tool0\WObj:=wobj_shangxialiao; !抬高点ENDIFENDPROC详细的程序可以私聊我。
6.1 ABB工业机器人重叠式码垛应用编程
5
6
7
8
1
2
3
4
X
任务一:重叠式码垛应用编程
五、设计重叠式码垛流程
1.工件拾取位置计算
从1计数,会产生很多加1、减1的操作 实际使用中可从0开始计数,工件号变为0-7, 行数为0-1,列数为0-3
任务一:重叠式码垛应用编程
二、码垛类型
任务一:重叠式码垛应用编程
二、码垛类型
任务一:重叠式码垛应用编程
三、FOR指令(P154)
FOR指令,实现循环功能的语句,作用是根据条件让某些语句循环执行, 在RAPID程序中,FOR循环语句的语法格式如下:
FOR 变量名 FROM 表达式1 TO 表达式2 DO 程序语句;
三、FOR指令
第三次执行:
任务一:重叠式码垛应用编程
三、FOR指令
第四次执行:
任务一:重叠式码垛应用编程
四、表达式的编辑
1、使用功能按钮编辑表达式
在程序编写过程中,有时会遇到单个变量无 法完全表达参数的情况,例如需要的值是1个常 数和1个变量之和,此时就涉及表达式的使用。 表达式指定了一个值的求值方法,在程序中用指 令参数“<EXP>”来表示。
五、设计重叠式码垛流程
1.工件拾取位置计算
Y 1、2、3、4号工件为第一行 5、6、7、8号工件为第二行
初始工件位置计算程序: PickHang:=((N-1)DIV 4)+1; PickLine:=((N-1)MOD 4)+1; PickoffX:= (PickLine-1)*50; PickoffY:= (PickHang-1)*75;
ENDFOR 其中,变量名为计数变量,实现对循环进行计数,语句被执 行一次之后变量的值加1(默认);表达式1的运算结果为计数变量 的初始值;表达式2的运算结果为计数变量的终止值,当计 数变量的值大于表达式2的值时循环将结束。
ABB机器人4轴码垛项目编程教学【教程】
1、码垛知识储备1.1 轴配置监控指令ConfL :其指定ABB机器人在线性运动及圆弧运动过程中是否严格遵循程序中已设定的轴配置参数。
默认情况下轴配置监控是打开的,当关闭轴配置监控后,机器人在运动过程中采取*接近当前轴配置数据的配置到达指定目标点。
例如:目标点p10中,数据[1,0,1,0]就是此目标点的轴配置数据;ConST robtarget p10 :=[[*,*,*],[*,*,*,*],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];ConfL \Off;MoveL p10, v1000, fine, tool0;机器人自动匹配一组*接近当前各关节轴姿态的轴配置数据移动至目标点p10,到达p10点时,轴配置数据不一定为程序中指定的[1,0,1,0]在某些应用场合,如离线编程创建目标点或手动示教相邻两目标点间轴配置数据相差较大时,在机器人运动过程中容易出现报警“轴配置错误”而造成停机,此种情况下,若对轴配置要求较高,则一般通过添加中间过渡点,若对轴配置要求不高,则可通过指令ConfL\Off关闭轴监控,使机器人自动匹配可行的轴配置来到达指定目标点。
注:CofJ用法与ConfL相同,只不过前者为关节线性运动过程中的轴监控开关,影响的是MoveJ;而后者为线性运动过程中的轴监控开关,影响的是MoveL。
1.2 计时指令在机器人运动过程中,我们经常需要利用计时功能来计算当前机器人运行节拍,并通过写屏指令显示相关信息。
这里我们以一个完整的计时案例来学习一下关于计时并显示计时信息的综合运用:VAR clock clock1;!定义时钟数据clock1VAR num CycleTime;!定义数字型数据CycleTime,用于存储时间数值ClkReset clock1;!时钟复位ClkStart clock1;!开始计时机器人运动指令等ClkStop clock1;!停止计时CycleTime :=ClkRead(clock1);!读取时钟当前数值,并赋值给CycleTimeTPErase;!清屏TPWrite “The Last CycleTime is ”\Num:= CycleTime ;!写屏,在示教器屏幕上显示节拍信息,假设当前数值CycleTime为10,则示教器屏幕上*终显示信息为:“The Last CycleTime is 10”1.3 动作触发指令TriggL:在线性运动过程中,在指定位置准确的触发事件(如置位输出信号、激活中断等)。
阐述abb机器人 码垛程序编程 方法与步骤
ABB机器人是一种自动化工业机器人,可用于各种生产线上的码垛操作。
码垛是指将产品按照一定的规则叠放起来,以方便运输、存储或其他后续处理。
在生产环境中,码垛通常需要精确的排列和叠放,而ABB机器人可以通过编程实现自动化的码垛操作,提高生产效率和准确性。
在实际操作中,编写ABB机器人的码垛程序是至关重要的。
下面我们将结合ABB机器人的特点和编程方法,详细阐述ABB机器人码垛程序编程的方法与步骤。
1. 确定码垛需求和规则在进行ABB机器人码垛程序编程之前,首先需要确定具体的码垛需求和规则。
这包括需要码垛的产品规格、堆放的方式、堆放的高度、堆放的稳定性要求等。
只有明确了这些需求和规则,才能更好地进行编程设计。
2. 了解ABB机器人的编程语言ABB机器人使用的是ABB RobotStudio软件,可以通过该软件进行编程。
了解该软件的编程语言和功能,是进行码垛程序编程的基础。
该软件支持多种编程语言,包括ABB的RAPID编程语言和基于图形的FlexPendant编程方式,可以根据实际情况选择合适的编程方式进行操作。
3. 编写码垛程序在确定了需求和规则,并掌握了相应的编程语言和工具之后,就可以开始编写码垛程序。
首先需要创建一个新的项目,并在项目中创建一个新的程序。
然后根据产品规格和堆放规则,编写具体的码垛程序。
这包括机器人的移动路径规划、夹爪的动作控制、产品的堆放位置计算等。
4. 调试和优化程序编写完成后,需要进行程序的调试和优化。
这包括在仿真环境中模拟运行程序,检查程序的运行效果和是否符合需求和规则。
如果发现问题,需要对程序进行优化和修改,直至达到理想的效果。
5. 在实际环境中应用程序在程序调试和优化完成后,可以将程序应用到实际的生产环境中。
在操作时需要注意安全和稳定性,确保码垛操作的效率和准确性。
总结起来,ABB机器人的码垛程序编程需要根据需求和规则进行编程设计,掌握ABB RobotStudio软件的编程语言和功能,编写码垛程序,进行调试和优化,最后将程序应用到实际环境中。
如何通过ABB机器人创建码垛程序
如何通过ABB机器人创建码垛程序ABB机器人是一种先进的自动化解决方案,可以用于创建码垛程序来提高生产效率和减少人力成本。
以下是如何通过ABB机器人创建码垛程序的详细步骤:1.设计产品排列方案:在创建码垛程序之前,需要设计产品的排列方案。
这涉及到确定产品的属性、尺寸和重量,以及确定如何合理地排列产品以最大程度减少空隙,并确保产品之间的稳定性。
2.创建工作站布局:根据产品排列方案,创建机器人的工作站布局。
这包括确定机器人放置的位置、输送带的位置和运动轨迹等。
在布局过程中,要确保机器人可以高效地访问和处理产品,并且具有足够的空间来执行码垛任务。
3.编写机器人控制程序:使用ABB机器人编程语言(如RAPID)编写机器人控制程序。
这个程序将指导机器人在码垛过程中的动作和行为。
编写程序时,需要定义机器人的运动路径、姿势和速度,以及如何识别和处理产品。
编写程序前,可以先使用ABB机器人的模拟器进行测试和调试。
4.设置机器人传感器:配置机器人所需的传感器以实现精确的产品识别和定位。
这可以包括视觉传感器、激光传感器和力传感器等。
传感器将帮助机器人准确地捕捉和处理产品信息。
5.运行和优化码垛程序:将编写的程序上传到机器人控制系统中,并启动机器人以执行码垛任务。
在运行过程中,监视机器人的行为和性能,并根据需要进行优化和调整。
这可能涉及到调整程序参数、修改工作站布局或更改产品排列方案。
通过不断优化,可以提高码垛的效率和准确性。
6.故障排除和维护:在使用ABB机器人创建码垛程序后,持续监测机器人的运行状态,并定期进行维护和保养。
及时发现和解决故障可以确保机器人的稳定性和持续运行。
总结起来,通过ABB机器人创建码垛程序需要经历设计产品排列方案、创建工作站布局、编写机器人控制程序、设置机器人传感器、运行和优化码垛程序以及故障排除和维护等步骤。
这些步骤的顺序和重要性可能会因具体的码垛需求而有所不同。
因此,在实际操作中,应根据特定的应用场景和要求进行调整和优化。
ABB机器人码垛程序
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, tGripper\WObj:=wobj0;ENDPROCPROC PickIF()IF bPickPart = FALSE AND nJob <> 0 AND DI10_1Product0K = 1 THEN!CalculatePick;MoveJ Offs(pPick,0,0,400), vFast, z200,tGripper\WObj:=wobj0;!MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0\WObj:=wobj0, DO10_1JiaZhua, 1;MoveL pPick, vFast, fine, tGripper\WObj:=wobj0;Close1;GripLoad LoadFull;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfL\Off;MoveJ pAfterPick, vFast, z60, tGripper\WObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfL\Off;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, vFast, z10,tGripper\WObj:=wobj0;elseAccset 90, 90;MoveJ pAbovePlace, vFast, z10,tGripper\WObj:=wobj0;EndifAccset 100,100;! place first boxConfL\Off;!MoveLOffs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripper\WObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripper\WObj:=wobj0;Open1;ConfL\Off;MoveLOffs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripper\WObj:=wobj0;GripLoad LoadEmpty;Accset 100,100;bPickPart:=FALSE;Incr nCount1;HandshakeOF;MoveJ pAbovePick, vFast, z200, tGripper\WObj:=wobj0;MoveL Offs(pPick,0,0,400), vFast, z10, tGripper\WObj:=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) THEN Set DO10_4MaDuoOK;WaitDI DI10_2TuoPanOK, 0;SetDO\SDelay:=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;!Layer2CASE 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;!layer4CASE 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; CASE 6:pPlace1:=p25Base0;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y+nBagW;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700; CASE 7:pPlace1:=p25Base90;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:=1;bTwice:=FALSE;pAfterPick、trans、z:=pPick、trans、z+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700; CASE 8:pPlace1:=p25Base180;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y-nBagW;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;CASE 9:pPlace1:=p25Base270;pPlace1、trans、x:=pPlace1、trans、x-nBagL-nBagW;pPlace1、trans、y:=pPlace1、trans、y;pPlace1、trans、z:=pPlace1、trans、z+nBagH;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;bTag:=True;CASE 10:pPlace1:=p25Base0;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y+nBagL+nBagW;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700;CASE 11:pPlace1:=p25Base90;pPlace1、trans、x:=pPlace1、trans、x+nBagL+nBagW;pPlace1、trans、y:=pPlace1、trans、y;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700;CASE 12:pPlace1:=p25Base180;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y-nBagL-nBagW;pPlace1、trans、z:=pPlace1、trans、z+nBagH;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; CASE 13:pPlace1:=p25Base270;pPlace1、trans、x:=pPlace1、trans、x-nBagL;pPlace1、trans、y:=pPlace1、trans、y;pPlace1、trans、z:=pPlace1、trans、z+nBagH;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 14:pPlace1:=p25Base0;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y+nBagL;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700; CASE 15:pPlace1:=p25Base90;pPlace1、trans、x:=pPlace1、trans、x+nBagL;pPlace1、trans、y:=pPlace1、trans、y;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700; CASE 16:pPlace1:=p25Base180;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y-nBagL;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+500;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+700; CASE 17:pPlace1:=p25Base270;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:=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 18:pPlace1:=p25Base0;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 19:pPlace1:=p25Base90;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 20:pPlace1:=p25Base180;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 21:pPlace1:=p25Base270;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick、trans、z:=pPick、trans、z+400;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+400; CASE 22:pPlace1:=p25Base0;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y+nBagW;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 23:pPlace1:=p25Base90;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick、trans、z:=pPick、trans、z+400;pAbovePlace:=pPlace1;pAbovePlace、trans、z:=pPick、trans、z+400;CASE 24:pPlace1:=p25Base180;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y-nBagW;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 25:pPlace1:=p25Base270;pPlace1、trans、x:=pPlace1、trans、x-nBagL-nBagW;pPlace1、trans、y:=pPlace1、trans、y;pPlace1、trans、z:=pPlace1、trans、z+3*nBagH;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 26:pPlace1:=p25Base0;pPlace1、trans、x:=pPlace1、trans、x;pPlace1、trans、y:=pPlace1、trans、y+nBagL+nBagW;pPlace1、trans、z:=pPlace1、trans、z+3*nBagH;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1、2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick、trans、z:=pPick、trans、z+400;。
abb机器人搬运码垛程序
abb搬运码垛程序目录:1、简介2、系统硬件2.12.2 码垛工作台3、系统软件3.1 ABB RobotStudio3.2 码垛程序4、编程步骤4.1 创建工作目录4.2 连接4.3 创建码垛程序4.4 算法设计4.5 编写程序代码4.6 调试程序5、运行程序6、附件1、简介:本文档将介绍ABB在搬运和码垛任务中的程序开发方法。
通过使用ABB RobotStudio软件,结合和码垛工作台的硬件设备,可以实现自动化的搬运码垛操作。
2、系统硬件:2.1 :- 品牌:ABB- 型号:- 功能:搬运和码垛任务2.2 码垛工作台:- 品牌:- 型号:- 功能:提供码垛操作的工作平台,包括传送带、传感器等附件3、系统软件:3.1 ABB RobotStudio:- 版本:- 功能:用于程序的开发、调试和仿真3.2 码垛程序:- 开发环境:ABB RobotStudio- 功能:实现在搬运和码垛任务中的运动控制和路径规划4、编程步骤:4.1 创建工作目录:- 在ABB RobotStudio中创建新的工作目录,用于存放码垛程序和相关文件4.2 连接:- 使用ABB RobotStudio中的连接功能,将开发环境与实际的进行连接4.3 创建码垛程序:- 在工作目录中创建新的码垛程序- 设定的起始位置和姿态- 设置码垛工作台的位置和尺寸参数4.4 算法设计:- 根据具体的码垛任务需求,设计相应的算法- 包括货物识别、路径规划、运动控制等方面的算法设计4.5 编写程序代码:- 使用ABB RobotStudio提供的编程语言,编写的运动控制和路径规划代码- 根据算法设计的结果,将相应的命令和参数写入程序4.6 调试程序:- 在ABB RobotStudio中进行程序的调试和仿真- 检查程序的正确性和稳定性,进行必要的修改和优化5、运行程序:- 将调试好的程序至实际的系统- 配置工作环境,包括码垛工作台的准备、传感器的调整等 - 运行程序,观察的运动和码垛任务的执行情况6、附件:本文档涉及的附件包括:- ABB RobotStudio软件安装包- 和码垛工作台的规格参数文档 - 码垛程序源代码文件- 算法设计文档和相关说明7、法律名词及注释:(待补充)。
ABB工业机器人现场编程-码垛应用
学习目标
1
了解机器人码垛应用
学习使用IO指令控制机器人夹具 掌握ABS和offs功能 设计并实现码垛操作
2
3
4
1.1 机器人码垛应用
1.各位老师是否听过码垛机、码垛机械手、码垛机器人这 样的名词? 2.我们面前的ABB-IRB120肯定是可以完成码垛应用的,但 能不能叫它是码垛机器人呢? 3.什么是通用工业机器人?什么是特种工业机器人? 4.现在市面上的焊接机器人又是怎么构成的呢? 5.码垛指的到底是什么意思? 6.码垛主要应用在什么工序?
指令集2.Set 逻辑判断: (1)变量A赋值 (2)示教取件原点及调用offs功 能计算偏移量 (3)调用FOR语句进行循环控制 指令集3. MoveL、MoveJ、MoveC
动作4.Reset 需要考虑: (1)变量B赋值 (2)示教摆件原点及调用offs功 能计算偏移量 (3)调用FOR语句进行循环控制
动作1.前往取件点路径 动作2.取件点取件 需要考虑: (1)确定取件组内成员数 (2)确定取件原点及偏移量 (3)确定取件次数 动作3.前往摆件点路径 动作4.摆件点摆件 需要考虑: (1)确定摆件组内成员数 (2)确定摆件原点及偏移量 (3)确定摆件次数 指令集1.MoveL、MoveJ、MoveC
注意:取件/摆件原点示教在高于平放物料块上表面40MM的位置 思考:如果需要连续码垛2个以上的物料块应该怎么处理?
1.2 使用IO指令控制机器人夹具
1.安装并调试气动夹具 2.使用示教器“IO仿真”测试夹具 3.使用示教器设置功能键用于快捷操作夹具
4.使用IO指令方式操作夹具
1.3 ABS和offs功能
1. 详细内容请参考《工业机器人实操与应用技巧》第5章
基于abb机器人码垛搬运流程
基于abb机器人码垛搬运流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!ABB 机器人码垛搬运流程通常包括以下步骤:1. 系统初始化:启动机器人系统和相关设备。
ABB机器人码垛程序
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, tGripper\WObj:=wobj0;ENDPROCPROC PickIF()IF bPickPart = FALSE AND nJob <> 0 AND DI10_1Product0K = 1 THEN!CalculatePick;MoveJ Offs(pPick,0,0,400), vFast, z200, tGripper\WObj:=wobj0;!MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0\WObj:=wobj0, DO10_1JiaZhua, 1;MoveL pPick, vFast, fine, tGripper\WObj:=wobj0;Close1;GripLoad LoadFull;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfL\Off;MoveJ pAfterPick, vFast, z60, tGripper\WObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfL\Off;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;elseAccset 90, 90;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;EndifAccset 100,100;! place first boxConfL\Off;!MoveLOffs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripper\WObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripper\WObj:=wobj0;Open1;ConfL\Off;MoveL Offs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripper\WObj:=wobj0; GripLoad LoadEmpty;Accset 100,100;bPickPart:=FALSE;Incr nCount1;HandshakeOF;MoveJ pAbovePick, vFast, z200, tGripper\WObj:=wobj0;MoveL Offs(pPick,0,0,400), vFast, z10, tGripper\WObj:=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;SetDO\SDelay:=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;!Layer2CASE 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;!layer4CASE 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;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;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 6:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagW; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 7:pPlace1:=p25Base90;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:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 8:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagW; pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=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;CASE 9:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL-nBagW; pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+nBagH;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;bTag:=True;CASE 10:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL+nBagW; 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+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 11:pPlace1:=p25Base90;pPlace1.trans.x:=pPlace1.trans.x+nBagL+nBagW;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+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 12:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagL-nBagW; pPlace1.trans.z:=pPlace1.trans.z+nBagH;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;CASE 13:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+nBagH;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 14:pPlace1:=p25Base0;pPlace1.trans.y:=pPlace1.trans.y+nBagL; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 15:pPlace1:=p25Base90;pPlace1.trans.x:=pPlace1.trans.x+nBagL; pPlace1.trans.y:=pPlace1.trans.y;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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 16:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagL; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 17:pPlace1:=p25Base270;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:=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 18:pPlace1:=p25Base0;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 19:pPlace1:=p25Base90;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 20:pPlace1:=p25Base180;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 21:pPlace1:=p25Base270;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+400;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+400;CASE 22:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagW;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 23:pPlace1:=p25Base90;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+400;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+400;CASE 24:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagW;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 25:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL-nBagW; pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+3*nBagH;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;。
[优质文档]ABB机器人码垛程序
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, tGripper\WObj:=wobj0;ENDPROCPROC PickIF()IF bPickPart = FALSE AND nJob <> 0 AND DI10_1Product0K = 1 THEN!CalculatePick;MoveJ Offs(pPick,0,0,400), vFast, z200,tGripper\WObj:=wobj0;!MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0\WObj:=wobj0, DO10_1JiaZhua, 1;MoveL pPick, vFast, fine, tGripper\WObj:=wobj0;Close1;GripLoad LoadFull;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfL\Off;MoveJ pAfterPick, vFast, z60, tGripper\WObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfL\Off;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, vFast, z10,tGripper\WObj:=wobj0;elseAccset 90, 90;MoveJ pAbovePlace, vFast, z10,tGripper\WObj:=wobj0;EndifAccset 100,100;! place first boxConfL\Off;!MoveLOffs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripper\WObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripper\WObj:=wobj0;Open1;ConfL\Off;MoveLOffs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripper\WObj:=wobj0;GripLoad LoadEmpty;Accset 100,100;bPickPart:=FALSE;Incr nCount1;HandshakeOF;MoveJ pAbovePick, vFast, z200, tGripper\WObj:=wobj0;MoveL Offs(pPick,0,0,400), vFast, z10, tGripper\WObj:=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) THEN Set DO10_4MaDuoOK;WaitDI DI10_2TuoPanOK, 0;SetDO\SDelay:=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;ENDPROCPROC 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;!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;。
ABB左右码垛详细解说
MODULE MainMoudlePERS wobjdata WobjPallet_L:=[FALSE,TRUE,"",[[-456.216,-2058.49,-233.373],[1,0,0,0]],[[0,0,0],[ 1,0,0,0]]]!定义左侧码盘工件坐标系WobjPallet_LPERS wobjdata WobjPallet_R:=[FALSE,TRUE,"",[[-421.764,1102.39,-233.373],[1,0,0,0]],[[0,0,0],[1 ,0,0,0]]];!定义右侧码盘工件坐标系WobjPallet_RPERS tooldata tGripper:=[TRUE,[[0,0,527],[1,0,0,0]],[20,[0,0,150],[1,0,0,0],0,0,0]];!定义工具坐标系数据tGripperPERS loaddata LoadFull:=[20,[0,0,300],[1,0,0,0],0,0,0.1];!定义有效载荷数据LoadFullPERS wobjdata CurWobj;!定义工件坐标系数据CurWobj,此工件坐标系作为当前使用坐标系。
即当在左侧码垛时,将左侧码盘坐标系WobjPllaet_L赋值给该数据;当在右侧码垛时,则将WobjPllaet_R赋值给该数据PERS jointtarget jposHome:=[[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!定义关节目标点数据,各关节轴数值为0,用于手动将机器人运动至各关节轴机械零位CONST robtarget pPlaceBase0_L:=[[296.473529255,212.21064316,3.210904169],[0,0.70711295,-0.707100 612,0],[-2,0,-3,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!左侧不旋转放置基准位置CONST robtarget pPlaceBase90_L:=[[218.407102669,695.953395421,3.210997808],[0,-0.000001669,1,0], [-2,0,-2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!左侧旋转90°放置基准位置CONST robtarget pPlaceBase0_R:=[[296.473529255,212.21064316,3.210904169],[0,0.707221603,-0.70699 194,0],[1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!右侧旋转不旋转放置基准位置CONST robtarget pPlaceBase90_R:=[[218.407102669,695.953395421,3.210997808],[0,-0.00038594,0.9999 99926,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!右侧旋转90°放置基准位置CONST robtarget pPick_L:=[[1627.550991372,-426.974661352,-26.736921885],[0,0.707109873,-0.707103 689,0],[-1,0,-2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!左侧抓取位置CONST robtarget pPick_R:=[[1611.055992534,442.364097921,-26.736584068],[0,0.707220363,-0.7069931 81,0],[0,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!右侧抓取位置CONST robtarget pHome:=[[1505.00,-0.00,878.55],[1.28548E-06,0.707107,-0.707107,-1.26441E-06],[0, 0,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!程序起始点,即Home点PERS robtarget pPlaceBase0;PERS robtarget pPlaceBase90;PERS robtarget pPick;PERS robtarget pPlace;!定义目标点数据,这些数据是机器人当前使用的目标点。
ABB机器人码垛程序
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, tGripper\WObj:=wobj0;ENDPROCPROC PickIF()IF bPickPart = FALSE AND nJob <> 0 AND DI10_1Product0K = 1 THEN!CalculatePick;MoveJ Offs(pPick,0,0,400), vFast, z200, tGripper\WObj:=wobj0;!MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0\WObj:=wobj0, DO10_1JiaZhua, 1;MoveL pPick, vFast, fine, tGripper\WObj:=wobj0;Close1;GripLoad LoadFull;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfL\Off;MoveJ pAfterPick, vFast, z60, tGripper\WObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfL\Off;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;elseAccset 90, 90;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;EndifAccset 100,100;! place first boxConfL\Off;!MoveLOffs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripper\WObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripper\WObj:=wobj0;Open1;ConfL\Off;MoveL Offs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripper\WObj:=wobj0; GripLoad LoadEmpty;Accset 100,100;bPickPart:=FALSE;Incr nCount1;HandshakeOF;MoveJ pAbovePick, vFast, z200, tGripper\WObj:=wobj0;MoveL Offs(pPick,0,0,400), vFast, z10, tGripper\WObj:=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;SetDO\SDelay:=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;!Layer2CASE 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;!layer4CASE 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;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;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 6:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagW; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 7:pPlace1:=p25Base90;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:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 8:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagW; pPlace1.trans.z:=pPlace1.trans.z;nOffsX1:=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;CASE 9:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL-nBagW; pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+nBagH;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;bTag:=True;CASE 10:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagL+nBagW; 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+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 11:pPlace1:=p25Base90;pPlace1.trans.x:=pPlace1.trans.x+nBagL+nBagW;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+500;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 12:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagL-nBagW; pPlace1.trans.z:=pPlace1.trans.z+nBagH;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;CASE 13:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL;pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+nBagH;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 14:pPlace1:=p25Base0;pPlace1.trans.y:=pPlace1.trans.y+nBagL; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 15:pPlace1:=p25Base90;pPlace1.trans.x:=pPlace1.trans.x+nBagL; pPlace1.trans.y:=pPlace1.trans.y;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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 16:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagL; 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+500; pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+700;CASE 17:pPlace1:=p25Base270;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:=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 18:pPlace1:=p25Base0;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 19:pPlace1:=p25Base90;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 20:pPlace1:=p25Base180;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 21:pPlace1:=p25Base270;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+400;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+400;CASE 22:pPlace1:=p25Base0;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y+nBagW;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 23:pPlace1:=p25Base90;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:=-500;nLevel:=1;bTwice:=FALSE;pAfterPick.trans.z:=pPick.trans.z+400;pAbovePlace:=pPlace1;pAbovePlace.trans.z:=pPick.trans.z+400;CASE 24:pPlace1:=p25Base180;pPlace1.trans.x:=pPlace1.trans.x;pPlace1.trans.y:=pPlace1.trans.y-nBagW;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 25:pPlace1:=p25Base270;pPlace1.trans.x:=pPlace1.trans.x-nBagL-nBagW; pPlace1.trans.y:=pPlace1.trans.y;pPlace1.trans.z:=pPlace1.trans.z+3*nBagH;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;。
6.2 ABB工业机器人纵横交错式码垛应用编程
IF reg1>100 GOTO highvalue; lowvalue: reg1:=1; … GOTO ready; highvalue: reg1:=reg1+1; … ready: …
任务二:纵横交错式码垛应用编程
三、偏移指令
1. Offs偏移功能 Offs: 以选定目标点为基准,沿着选定工件坐标的X、Y、Z轴方向偏移一定的距离。
任务二:纵横交错式码垛应用编程
四、纵横交错式码垛流程设计
任务二:纵横交错式码垛应用编程
四、纵横交错式码垛流程设计(P168)
1.拾取位置计算
Pickhang :=N DIV 4; PickLine := N MOD 4; PickOffX:= Pickhang*60; PickOffY:= PickLine*30;
PutOffsX:=0; PutOffsY:= (N MOD 2) *30 ; PutOffsA:=0; ENDIF
任务二:纵横交错式码垛应用编程
四、纵横交错式码垛流程设计(P168)
2.放置位置计算
N为2、3、6、7时实际对应是偶数层,即第2和4层。 偶数层的X、Y及角度偏移值计算如下: IF ((N DIV 2) MOD 2)=1 THEN PutOffsX:=-15+(N MOD 2) *30; PutOffsY:=15 PutOffsA:=90; ENDIF
35分钟
MoveL Offs (p10, 0, 0,10) ,v1000,z50,tool0\WObj: =wobj1;
注意:其参考的坐标系为工件坐标系
任务二:纵横交错式码垛应用编程
三、偏移指令
2. RelTool偏移指令 RelTool: 以选定目标点为基准,可以让机器人绕着当前工具在平移一定距离的同时旋转一定角度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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, tGripper\WObj:=wobj0;ENDPROCPROC PickIF()IF bPickPart = FALSE AND nJob <> 0 AND DI10_1Product0K = 1THEN!CalculatePick;MoveJ Offs(pPick,0,0,400), vFast, z200,tGripper\WObj:=wobj0;!MoveLDO Offs(pPick,0,0,100), vFast, z20, tool0\WObj:=wobj0,DO10_1JiaZhua, 1;MoveL pPick, vFast, fine, tGripper\WObj:=wobj0;Close1;GripLoad LoadFull;Accset 50,50;HandshakeIF;bPickPart:=TRUE;ConfL\Off;MoveJ pAfterPick, vFast, z60, tGripper\WObj:=wobj0;ENDIFENDPROCPROC PlaceOF()IF DI10_2TuoPanOK = 1 AND bPickPart = TRUE THENCalculatePlace;ConfL\Off;!MoveL Offs(pOver,0,0,nOffsZ2), vFast, z200, tGripper;IF bTag=true thenAccset 70, 70;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;elseAccset 90, 90;MoveJ pAbovePlace, vFast, z10, tGripper\WObj:=wobj0;EndifAccset 100,100;! place first boxConfL\Off;!MoveLOffs(pPlace1,nOffsX1,nOffsY1,nOffsZ1),vTurn,z10,tGripper\WObj:=wobj0;MoveL pPlace1, vMiddle, fine, tGripper\WObj:=wobj0;Open1;ConfL\Off;MoveLOffs(pPlace1,0,0,nOffsZ1),vMiddle,z5,tGripper\WObj:=wobj0;GripLoad LoadEmpty;Accset 100,100;bPickPart:=FALSE;Incr nCount1;HandshakeOF;MoveJ pAbovePick, vFast, z200, tGripper\WObj:=wobj0;MoveL Offs(pPick,0,0,400), vFast, z10, tGripper\WObj:=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) THEN Set DO10_4MaDuoOK;WaitDI DI10_2TuoPanOK, 0;SetDO\SDelay:=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);; 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;! pAfterPick.trans.z;! ;! ;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;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 2:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 3:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 4:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 5:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!Layer2CASE 6:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 7:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 8:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 9:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 10:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!Layer3CASE 11:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 12:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 13:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 14:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 15:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!layer4CASE 16:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 17:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 18:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 19:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 20:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!layer5CASE 21:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 22:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 23:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 24:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 25:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-300;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!layer6CASE 26:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 27:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 28:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 29:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 30:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!layer7CASE 31:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 32:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 33:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 34:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 35:pPlace1:=pBase90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;!layer8CASE 36:pPlace1:=pBase180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 37:pPlace1:=pBase0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 38:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 39:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 40:pPlace1:=pBase270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=100;nLevel:=2;bTwice:=FALSE;;pAbovePlace:=pPlace1;;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;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=600;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 2:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 3:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 4:pPlace1:=p25Base180;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 5:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 6:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 7:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 8:pPlace1:=p25Base180;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 9:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 10:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 11:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;CASE 12:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 13:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 14:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 15:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAbovePlace:=pPlace1;;CASE 16:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 17:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 18:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 19:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 20:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 21:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 22:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 23:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 24:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 25:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 26:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 27:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 28:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 29:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 30:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 31:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 32:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 33:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 34:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 35:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 36:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 37:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 38:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 39:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 40:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 41:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 42:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 43:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 44:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 45:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 46:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 47:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 48:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 49:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 50:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 51:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 52:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 53:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 54:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 55:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 56:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 57:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 58:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 59:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 60:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 61:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 62:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 63:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 64:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 65:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 66:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 67:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 68:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 69:pPlace1:=p25Base270;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 70:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 71:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 72:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 73:pPlace1:=p25Base270;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=500;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;bTag:=True;CASE 74:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 75:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 76:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;CASE 77:pPlace1:=p25Base270;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 78:pPlace1:=p25Base0;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 79:pPlace1:=p25Base90;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;;pAbovePlace:=pPlace1;;CASE 80:pPlace1:=p25Base180;;;;nOffsX1:=0;nOffsY1:=0;nOffsZ1:=nBagH*1.2;nOffsZ2:=-500;nLevel:=1;bTwice:=FALSE;pAbovePlace:=pPlace1;;DEFAULT:ErrWrite "Wrong box Count...","Single box must be thelast one of a Pallet";Stop;EXIT;ENDTESTENDPROCENDMODULE。