您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > ABB工业机器人编程-第九章
工作站描述码垛是物流自动化技术领域的一门新兴技术,码垛要求将袋装、箱体等对象按照一定模式和次序码放在托盘上,以实现物料的搬运、存储、装卸、运输等物流活动。本项目工作站机器人采用ABBIRB460工业机器人,控制柜采用ABBIRC5控制柜,工业机器人对传输带输送来的物体进行码垛操作。工作站描述码垛机器人工作站由IRB460机器人、吸盘工具、传输带、控制柜、码垛托盘组成。机器人末端法兰装有吸盘工具。工作站描述码垛机器人工作站的工作过程:传输带将物体运输到传输带的末端,安装在传输带末端的传感器检测物体是否到位,物体到位后将信号传递给机器人,机器人末端吸盘工具吸取物体,然后机器人将物体送到码垛托盘,码垛物体尺寸为600mmx400mmx200mm,按照下图所示的码垛方式进行码垛。9.1通讯板卡配置1在此工作站中配置一个DSQC652通信板卡(数字量16进16出),总线地址为10。单机“控制器”中的“示教器”下的“虚拟示教器”。9.1通讯板卡配置2将示教器运行模式切换至“手动”模式。点1点2点3点49.1通讯板卡配置3打开示教器菜单栏中的“控制面板”。9.1通讯板卡配置4单击“控制面板”下的“配置”。9.1通讯板卡配置5双击“DeviceNetDevice”配置通讯板卡9.1通讯板卡配置6单击“添加”9.1通讯板卡配置7将“使用来自模板的值”更改为“DSQC65224VDCI/ODevice”9.1通讯板卡配置8将通讯板卡名称改为“BOARD10”9.1通讯板卡配置9将通讯板卡地址“Address”改为“10”9.1通讯板卡配置10单击“确定”9.1通讯板卡配置11提示重启时点击“否”,暂不重启示教器,待创建完信号后再重启9.1通讯板卡配置12点击“后退”9.2IO信号配置1在此工作站共设置了2个数字量输出输入信号,在示教器依次单击“菜单”-“控制面板”-“配置”,然后双击“Signal”,进入IO信号配置9.2IO信号配置2点击“添加”9.2IO信号配置3添加数字量输入信号diBoxInPos,表示物品到位传感器9.2IO信号配置4添加数字量输出信号doGripper,表示机器人末端执行器吸盘动作信号9.3工具坐标系设置在此工作站中,工具部件为吸盘工具,需要创建一个tGripper的工具坐标系。工具坐标系沿着默认坐标系tool0的Z轴正方向偏移160mm,工具本身负载1Kg,其他值保持默认9.3工具坐标系设置9.3工具坐标系设置9.3工具坐标系设置9.3工具坐标系设置9.3工具坐标系设置9.4工件坐标系设置在本工作站中,工件坐标系采用系统默认的初始工件坐标系(此工作站的Wobj0与机器人基座标系重合)。9.5有效载荷设置在本工作站中,载荷数据采用系统默认的初始载荷数据load0。9.6创建标志1)托盘满标志bPalletFull(1)在“程序数据”窗口中视图下拉菜单中选择“全部数据类型”,然后找到并选中bool数据类型9.6创建标志(2)单击“bool”后然后单击“创建”出现如图3-25所示的“数据声明”窗口。在“数据声明”窗口将名称改为bPalletFull,并单击“确定”。9.6创建标志(3)将其初始值赋为False9.6创建标志2)创建工件计数数据nCount(1)nCount为num类型的数据,在数据类型窗口中选择num类型数据并单击,出现创建num类型数据窗口,将其名称修改为nCount9.6创建标志(2)将其初值赋为1。9.7目标点示教此工作站中的关键目标点主要有:工作原点(pHome)、传送带抓取工件位置(pPick)、放置基准点(pPlaceBase)。下面以创建pHome目标点为例,在数据窗口中选择robtarget类型数据并单击,出现创建robtarget类型数据窗口,将其名称修改为pHome,存储类型为可变量。9.7目标点示教3个目标点数据创建完成9.7目标点示教下面对各个目标点进行示教,示教时选择工具坐标tGripper,工件坐标系默认为Wobj0。1)pPick示教在布局窗口,将物品移动到传送带末端,通过移动机器人,使工具位置如下图所示,选中“编辑”菜单,单击“修改位置”,这样pPick目标点示教完成。9.7目标点示教2)pHome示教在pPick目标点基础上,通过移动机器人的Z方向,使工具位置如下图所示,同样的方法对pHome目标点进行示教。9.7目标点示教3)pPlaceBase示教机器人要完成如图3-32所示的第一层和第二层码垛方式,需要对码垛工件位置进行示教。如果把所有的放置位置全部示教会比较麻烦,导致示教过程较长,从下图可以看出每个工件长宽高一样,只需建立一个放置基准点pPlaceBase,其余位置可用指令Reltool进行偏移放置。9.7目标点示教通过移动机器人,使工具位置如下图所示,利用上述方法对pPlaceBase目标点进行示教。9.7目标点示教完成pPlaceBase示教后,根据码垛类型和工件的尺寸完成其余目标点的设置。第一层共有5个位置,分别为RelTool(pPlaceBase,0,0,0\Rz:=0)、RelTool(pPlaceBase,-600,0,0\Rz:=0)、RelTool(pPlaceBase,100,-500,0\Rz:=90)、RelTool(pPlaceBase,-300,-500,0\Rz:=90)、RelTool(pPlaceBase,-700,-500,0\Rz:=90)。第二层共有5个位置,分别为RelTool(pPlaceBase,100,-100,-250\Rz:=90)、RelTool(pPlaceBase,-300,-100,-250\Rz:=90)、RelTool(pPlaceBase,-700,-100,-250\Rz:=90)、RelTool(pPlaceBase,0,-600,-250\Rz:=0)、RelTool(pPlaceBase,-600,-600,-250\Rz:=0)。9.7目标点示教4)创建pPlace位置创建一个robtarget类型的可变量pPlace,该变量的作用是将用pPlaceBase所表示的工件位置赋值给pPlace,机器人按照pPlace的位置放置工件9.8创建例行程序MainModule程序模块已经建立,可在示教器的程序编辑器中查看9.8创建例行程序新建例行程序Main、rInitAll、rModify、rPick、rPlace、rPlaceRD、rPosition9.9程序解析PROCMain()//主程序rInitAll;//调用初始化程序,用于复位机器人位置、信号、数据等WHILETRUEDO//进入死循环IFbPalletFull=FALSETHEN//判断是否已码垛完成rPick;//调用抓取子程序rPlace;//调用放置子程序ELSEWaitTime0.3;//码垛完成,机器人等待0.3秒ENDIFENDWHILEENDPROC9.9程序解析PROCrInitAll()//初始化程序pActualPos:=CRobT(\tool:=tGripper);//实时读取机器人位置pActualPos.trans.z:=pHome.trans.z;//将机器人Z方向位置保持在原点PHome的Z方向位置MoveLpActualPos,v500,fine,tGripper\WObj:=wobj0;//将机器人移动到pActualPos位置MoveJpHome,v500,fine,tGripper\WObj:=wobj0;//将机器人移动到原点PHome位置bPalletFull:=FALSE;//复位托盘满信号nCount:=1;//将工件计数赋为初始值1ResetdoGripper;//复位吸盘信号ENDPROC9.9程序解析PROCrPick()//抓取程序MoveJOffs(pPick,0,0,300),v2000,z50,tGripper\WObj:=wobj0;//将机器人移动到抓取位置的上方300mm处WaitDIdiBoxInPos,1;//等待物品到位信号MoveLpPick,v500,fine,tGripper\WObj:=wobj0;//将机器人移动到抓取位置SetdoGripper;//机器人移动到抓取位置后使吸盘吸取物品MoveLOffs(pPick,0,0,300),v500,z50,tGripper\WObj:=wobj0;//将机器人移动到抓取位置上300mm处ENDPROC9.9程序解析PROCrPlace()//放置程序rPosition;//调用放置位置计算程序MoveJOffs(pPlace,0,0,300),v2000,z50,tGripper\WObj:=wobj0;//将机器人移动到放置工件位置的上方300mm处MoveLpPlace,v500,fine,tGripper\WObj:=wobj0;//将机器人移动到放置位置ResetdoGripper;//复位吸盘动作信号MoveLOffs(pPlace,0,0,300),v500,z50,tGripper\WObj:=wobj0;//将机器人移动到放置工件位置的上方300mm处rPlaceRD;//调用放置次数判断程序ENDPROC9.9程序解析PROCrPlaceRD()//放置次数计算程序IncrnCount;//放置次数自加1IFnCount=11THENnCount:=1;//放置次数大于等于11时,将计数nCount赋值为1,复位托盘满信号,并将机器人移动到工作原点bPalletFull:=TRUE;MoveJpHome,v1000,fine,tGripper\WObj:=wobj0;ENDIFENDPROC9.9程序解析PROCrPosition()//放置位置计算程序TESTnCount//根据nCount数值,计算放置位置数据CASE1://第一个放置位置pPlace:=RelTool(pPlaceBase,0,0,0\Rz:=0);CASE2://第二个放置位置pPlace:=RelTool(pPlaceBase,-600,0,0\Rz:=0);CASE3://第三个放置位置pPlace:=RelTool(pPlaceBase,100,-500,0\Rz:=90);CASE4://第四个放置位置pPlace:=RelTool(pPlaceBase,-300,-500,0\Rz:=90);9.9程序解析CASE5://第五个放置位置pPlace:=RelTool(pPlaceBase,-700,-500,0\Rz:=90);CASE6://第六个放置位置pPlace:=RelTool(pPlaceBase,100,-100,-250\Rz:=90);CASE7://第七个放置位置pPlace:=RelTool(pPlaceBase,-300,-100,-250\Rz:=90);CASE8://第八个放置位置pPlace:=RelTool(pPlaceBase,-700,-100,-250\Rz:=90);CASE9://第九个放置位置pPlace:=RelTool(pPlaceBase,0,-600,-250\Rz:=0);9.9程序解析CASE10://第十个放置位置pPlace:=RelTool(pPlaceBase,-600,-600,-250\Rz:=0);DEFAULT:Stop;//当放置次数大于等于11时,停止机器人运动ENDTESTENDPROC9.9程序解析PROCrModify()//目标点示教程序,不在主程序内使用MoveLpHome,v1000,fine,tGripper\WObj:=wobj0;//机器人原点位置示教MoveLpPick,v1000,fine,tGripper\WObj:=wobj0;//机器人抓取位置示教MoveLpPlaceBase,v1000,fine,tGripper\WObj:=wobj0;//机器人放置基准点位置示教ENDPRO
本文标题:ABB工业机器人编程-第九章
链接地址:https://www.777doc.com/doc-4134507 .html