abb机器人搬运码垛程序
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
ABB搬包机器人操作说明一.自动运行流程:1.手动将机器人回到phome的位置。
步骤:确定机器人的当前位置相对安全,点击示教器—主菜单-程序编辑器—调试—pp移至例行程序—home-可以看到指针指到 MOVJ phome,.......;上电后点击单步运行按钮;2.在手动模式下点击示教器—主菜单-程序编辑器—调试→“PP移至main”;3.在将操作模式打到”自动”,此时试教器上会提示“控制器上已选择为自动模式,点击确认操作模式的更改.”,按确认键。
4.按下电机上电按钮给电机上电。
5.按下”start”按钮运行程序。
6.启动后,程序初始化信号,例如真空关闭信号,若夹具检测有信号,则屏幕上提示“No pruduct on the grip?”点击Yes则程序继续执行,点击NO则程序退出执行,需要在手动状态下人为将产品放下后重新执行main程序;选择产品型号确认,试教器会显示:Please choose product type!!*************************************TYPE1 TYPE2点击以选择型号;托盘上将要放第几袋料的确认过程,试教器会显示" number of next place for pallet is "为某个值,然后问你"The number is right?",如果你选择YES,就表示确认当前值正确;如果你选择NO,则试教器上会提示:"what's number of next bag for pallet 1, please input to n1?"则需要你输入正确的托盘上将要放第几袋料的数目。
(输入值1=<n1<=50,否则试教器会提示你重新输入。
)二.正常运行时外围信号的确认正常运行,机器人抓料要满足以下几个条件:1.输送链上有料袋到位;否则机器人在home点等待;屏幕提示“robot is waiting for product ready”;2.下料工位上有托盘;否则机器人屏幕提示“robot is waiting for pallet ready”;三.料包位置偏移的修改1.单独箱子位置偏移的修改:在“程序数据”→num中有nOffspallet_1(1号产品)和nOffspallet_2(2号产品)两个数组。
码垛程序详解,如何编写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详细的程序可以私聊我。
ABB机器人搬运项目程序的分析,这么详细,看完就会了!
随着自动化产线的升级,工业机器人在生产线上使用越来越频繁。
当然,工业机器人在各行业中都扮演者不同的角色,机器人可以胜任搬运、码垛、涂胶、焊接、切割等不同的工作。
那今天我们就来聊一聊ABB机器人搬运项目如何编写程序。
1.我们先来看看,这个搬运项目的要求,如图1-1:机器人把右边产品盒的4个物料抓取后放置到左边的产品盒中。
2.分析物料的位置,左右两个物料盒尺寸相同,如图1-2。
3.编程:
1)用示教器手动操作机器人示教三个位置点分别是:pickbase (抓取基准点)、placebase(放置基准点)、phome(安全点)
2)定义3个位置型数据和2个数值型数据:1.VAR robtarget pick、2.VAR robtarget place、3.VAR num cishuleijia、PERS num geshuleijia用于程序的计算
3)程序分析:
这个就是我们这个机器人搬运项目程序的分析,大家赶紧去编一下试试吧。
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:在线性运动过程中,在指定位置准确的触发事件(如置位输出信号、激活中断等)。
搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加IO(设置好需重启)6、示教目标点(同步到RAPID)7、RAPID编程一、创建机器人系统1、创建空工作站2、导入IRB 260机器人模型3、从布局创建机器人系统,勾选Chinese和709-1网络二、创建动态输送链1、添加输送链并修改位置2、创建600*400*200的物料并修改位置3、添加一个smart组件4、添加source组件5、设置物料本地原点6、添加LINEMOVER和QUEUE组件7设置LINEMOVER属性8、添加面传感器组件9、设置输送链不能被传感器检测10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿13、传感器下降沿触发source进行copy14、传感器与SC输送链的输出联系15、添加仿真开始结束组件,用于激活传感器16、添加置位复位组件,对仿真开始结束信号进行保持17、18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMART组件3、添加ATTACHER和DETACHER组件4、设置属性5、添加一个线传感器组件6、线传感器设置属性7、设置吸盘工具不能被传感器检测8、把线传感器安装到吸盘(不更新位置,保持当前位置)9、设置属性连接10、添加信号及连接11、添加信号处理取非和锁定组件12、继续信号连接13、添加一个示教物料14、应用手动线性验证SC_工具四、工作站逻辑连接五、参考代码MODULE MainMoudlePERS tooldata tGrip:=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,,],[1,0,0,0],0,0,0]];!吸盘工具数据PERS loaddata LoadEmpty:=[,[0,0,1],[1,0,0,0],0,0,0];PERS loaddata LoadFull:=[40,[0,0,50],[1,0,0,0],0,0,0];!有效载荷数据PERS robtarget pHome:=[[,,],[,,,],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!基准点PERS robtargetpActualPos:=[[1620,,],[,,,],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!实际点PERS robtarget pPick1:=[[,,],[0,,,0],[0,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路拾取目标点PERS robtarget pPlace1:=[[,,],[0,,,0],[1,0,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!1路放置基准点PERS robtarget pBase1_0:=[[,,],[0,,,0],[1,0,2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置0度姿态PERS robtarget pBase1_90:=[[,,],[0,1,,0],[1,0,3,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置90度姿态PERS robtarget pPick2:=[[,,],[0,,,0],[-1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pPlace2:=[[,,],[0,,,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PERS robtarget pBase2_0:=[[,,],[0,,,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pBase2_90:=[[,,],[0,1,,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS speeddata MinSpeed:=[1000,300,5000,1000];PERS speeddata MidSpeed:=[2500,400,5000,1000];PERS speeddata MaxSpeed:=[4000,500,5000,1000];!搬运速度定义PERS bool bPalletFull1:=FALSE;PERS bool bPalletFull2:=FALSE;!逻辑布尔量,拾取后为UE,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THENrPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime ;ENDWHILEENDPROCPROC rInitAll()Reset doGrip;pActualPos:=CRobT(\tool:=tGrip);MoveL pActualPos,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pHome,MidSpeed,fine,tGrip\WObj:=wobj0;bPalletFull1:=FALSE;nCount1:=1;bPalletFull2:=FALSE;nCount2:=1;ENDPROCPROC rPick1()MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0;MoveL pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime ;GripLoad LoadFull;MoveL Offs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0;ENDPROCPROC rPick2()MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime ;GripLoad LoadFull;MoveL Offs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROC rPlace1()rPosition1;MoveJ Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace1,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;WaitTime ;GripLoad LoadEmpty;MoveL Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount1:=nCount1+1;IF nCount1>20 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC rPlace2()rPosition2;MoveJ Offs(pPlace2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace2,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;GripLoad LoadEmpty;MoveL Offs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount2:=nCount2+1;IF nCount2>20 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 1:pPlace1:=Offs(pBase1_0,0,0,0);CASE 2:pPlace1:=Offs(pBase1_0,600+10,0,0);CASE 3:pPlace1:=Offs(pBase1_90,0,400+10,0);CASE 4:pPlace1:=Offs(pBase1_90,400+10,400+10,0);CASE 5:pPlace1:=Offs(pBase1_90,800+20,400+10,0);CASE 6:pPlace1:=Offs(pBase1_0,0,600+10,200);CASE 7:pPlace1:=Offs(pBase1_0,600+10,600+10,200);CASE 8:pPlace1:=Offs(pBase1_90,0,0,200);CASE 9:pPlace1:=Offs(pBase1_90,400+10,0,200);pPlace1:=Offs(pBase1_90,800+20,0,200);CASE 11:pPlace1:=Offs(pBase1_0,0,0,400);CASE 12:pPlace1:=Offs(pBase1_0,600+10,0,400);CASE 13:pPlace1:=Offs(pBase1_90,0,400+10,400);CASE 14:pPlace1:=Offs(pBase1_90,400+10,400+10,400);CASE 15:pPlace1:=Offs(pBase1_90,800+20,400+10,400);CASE 16:pPlace1:=Offs(pBase1_0,0,600+10,600);CASE 17:pPlace1:=Offs(pBase1_0,600+10,600+10,600);CASE 18:pPlace1:=Offs(pBase1_90,0,0,600);CASE 19:pPlace1:=Offs(pBase1_90,400+10,0,600);CASE 20:pPlace1:=Offs(pBase1_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 1:pPlace2:=Offs(pBase2_0,0,0,0);CASE 2:pPlace2:=Offs(pBase2_0,600+10,0,0);CASE 3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE 4:pPlace2:=Offs(pBase2_90,400+10,400+10,0); CASE 5:pPlace2:=Offs(pBase2_90,800+20,400+10,0); CASE 6:pPlace2:=Offs(pBase2_0,0,600+10,200);CASE 7:pPlace2:=Offs(pBase2_0,600+10,600+10,200); CASE 8:pPlace2:=Offs(pBase2_90,0,0,200);CASE 9:pPlace2:=Offs(pBase2_90,400+10,0,200);CASE 10:pPlace2:=Offs(pBase2_90,800+20,0,200);CASE 11:pPlace2:=Offs(pBase2_0,0,0,400);CASE 12:pPlace2:=Offs(pBase2_0,600+10,0,400);CASE 13:pPlace2:=Offs(pBase2_90,0,400+10,400);CASE 14:pPlace2:=Offs(pBase2_90,400+10,400+10,400); CASE 15:pPlace2:=Offs(pBase2_90,800+20,400+10,400);CASE 16:pPlace2:=Offs(pBase2_0,0,600+10,600);CASE 17:pPlace2:=Offs(pBase2_0,600+10,600+10,600);CASE 18:pPlace2:=Offs(pBase2_90,0,0,600);CASE 19:pPlace2:=Offs(pBase2_90,400+10,0,600);CASE 20:pPlace2:=Offs(pBase2_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rModify()MoveJ pHome,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase1_0,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase1_90,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase2_0,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase2_90,MinSpeed,fine,tGrip\WObj:=wobj0;ENDPROCENDMODULE。
ABB机器人是一种自动化工业机器人,可用于各种生产线上的码垛操作。
码垛是指将产品按照一定的规则叠放起来,以方便运输、存储或其他后续处理。
在生产环境中,码垛通常需要精确的排列和叠放,而ABB机器人可以通过编程实现自动化的码垛操作,提高生产效率和准确性。
在实际操作中,编写ABB机器人的码垛程序是至关重要的。
下面我们将结合ABB机器人的特点和编程方法,详细阐述ABB机器人码垛程序编程的方法与步骤。
1. 确定码垛需求和规则在进行ABB机器人码垛程序编程之前,首先需要确定具体的码垛需求和规则。
这包括需要码垛的产品规格、堆放的方式、堆放的高度、堆放的稳定性要求等。
只有明确了这些需求和规则,才能更好地进行编程设计。
2. 了解ABB机器人的编程语言ABB机器人使用的是ABB RobotStudio软件,可以通过该软件进行编程。
了解该软件的编程语言和功能,是进行码垛程序编程的基础。
该软件支持多种编程语言,包括ABB的RAPID编程语言和基于图形的FlexPendant编程方式,可以根据实际情况选择合适的编程方式进行操作。
3. 编写码垛程序在确定了需求和规则,并掌握了相应的编程语言和工具之后,就可以开始编写码垛程序。
首先需要创建一个新的项目,并在项目中创建一个新的程序。
然后根据产品规格和堆放规则,编写具体的码垛程序。
这包括机器人的移动路径规划、夹爪的动作控制、产品的堆放位置计算等。
4. 调试和优化程序编写完成后,需要进行程序的调试和优化。
这包括在仿真环境中模拟运行程序,检查程序的运行效果和是否符合需求和规则。
如果发现问题,需要对程序进行优化和修改,直至达到理想的效果。
5. 在实际环境中应用程序在程序调试和优化完成后,可以将程序应用到实际的生产环境中。
在操作时需要注意安全和稳定性,确保码垛操作的效率和准确性。
总结起来,ABB机器人的码垛程序编程需要根据需求和规则进行编程设计,掌握ABB RobotStudio软件的编程语言和功能,编写码垛程序,进行调试和优化,最后将程序应用到实际环境中。
如何通过ABB机器人创建码垛程序ABB机器人是一种先进的自动化解决方案,可以用于创建码垛程序来提高生产效率和减少人力成本。
以下是如何通过ABB机器人创建码垛程序的详细步骤:1.设计产品排列方案:在创建码垛程序之前,需要设计产品的排列方案。
这涉及到确定产品的属性、尺寸和重量,以及确定如何合理地排列产品以最大程度减少空隙,并确保产品之间的稳定性。
2.创建工作站布局:根据产品排列方案,创建机器人的工作站布局。
这包括确定机器人放置的位置、输送带的位置和运动轨迹等。
在布局过程中,要确保机器人可以高效地访问和处理产品,并且具有足够的空间来执行码垛任务。
3.编写机器人控制程序:使用ABB机器人编程语言(如RAPID)编写机器人控制程序。
这个程序将指导机器人在码垛过程中的动作和行为。
编写程序时,需要定义机器人的运动路径、姿势和速度,以及如何识别和处理产品。
编写程序前,可以先使用ABB机器人的模拟器进行测试和调试。
4.设置机器人传感器:配置机器人所需的传感器以实现精确的产品识别和定位。
这可以包括视觉传感器、激光传感器和力传感器等。
传感器将帮助机器人准确地捕捉和处理产品信息。
5.运行和优化码垛程序:将编写的程序上传到机器人控制系统中,并启动机器人以执行码垛任务。
在运行过程中,监视机器人的行为和性能,并根据需要进行优化和调整。
这可能涉及到调整程序参数、修改工作站布局或更改产品排列方案。
通过不断优化,可以提高码垛的效率和准确性。
6.故障排除和维护:在使用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搬运码垛程序目录: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机器人带传送带码垛的项目设计设计题目:ABB机器人带传送带码垛的项目设计一、项目背景随着工业自动化的不断发展,机器人技术在生产领域得到了广泛应用。
ABB机器人作为一种先进的自动化设备,具有高效、准确、可靠等优点,被广泛应用于码垛、搬运、装配等生产环节。
本设计项目旨在设计一种ABB机器人带传送带码垛的方案,以满足现代化生产的需求。
二、设计目标1、实现机器人与传送带的协同工作,提高生产效率;2、设计合理的码垛程序,确保码垛质量;3、优化设备布局,降低能耗;4、提高设备的可靠性和稳定性,减少故障率。
三、设计方案1、设备选型与配置本设计选用ABB IRB 120型机器人作为码垛设备,该机器人具有速度快、精度高、负载能力强等优点。
根据实际生产需求,配置相应的传送带、码垛机械手等设备。
2、传送带设计传送带作为物料输送的主要设备,需要具备高可靠性、高稳定性等特点。
本设计选用耐用的不锈钢网带作为传送带,并配置相应的驱动装置和张紧装置。
同时,为确保传送带的速度和定位精度,采用伺服电机驱动和控制方案。
3、码垛程序设计针对不同物料的码垛需求,设计相应的码垛程序。
本设计采用基于PLC的码垛控制方案,通过编程实现机器人的动作控制、传送带的启停控制等。
同时,为确保码垛质量,采用立体仓库存储物料,并配置相应的检测装置,实现物料的自动筛选和排序。
4、设备布局优化为降低能耗和提高设备的可靠性,本设计对设备布局进行优化。
将机器人、传送带、码垛机械手等设备合理布置,实现设备的紧凑型布局。
同时,为方便设备的维护和检修,预留足够的操作空间和安全通道。
四、实施步骤1、根据设计方案采购所需的设备和材料;2、完成设备的安装和调试工作;3、编写码垛程序并进行测试;4、对整个系统进行联机调试和优化;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. 系统初始化:启动机器人系统和相关设备。
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;。
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;。