工业机器人报告书
任务:工业机器人搬运的仿真程序
学 院 机械与汽车工程学院 专 业 机械工程 学生姓名 黄耀坤 学生学号 2
指导教师
一、小组任务及分工
1、小组任务:基于robotstudio平台,建立一个工业机器人搬运的仿真程序。系统具有完整的物品输送装置、 物 品、容器装置等,可演示整个搬运过程。
2、小组分工:经小组讨论,得到机器人搬运仿真程序的总体制作思路后,五个组员决定分工完成各个模块内 容,本人主要负责数据定义、主程序以及前面三个子程序的编程。
二、程序总体介绍
程序总体介绍(主程序及各子程序功能介绍):
三、程序中的需要使用的数据定义
数据定义
CONSTrobtarget
pPick:=[[394.997607159,132.703199388,12.734872184],[0.005862588,-0.00300065,0.999966662,0.004827206],[
0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONSTrobtarget
pHome:=[[-548.424175962,-238.61219249,801.420966892],[-0.000000012,-0.707106781,0.707106781,-0.000000 012],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; CONSTrobtarget
pPlaceBase:=[[100.088594059,77.835146221,158.046135973],[0.00000004,-0.000623424,0.999999806,-0.000000 001],[-1,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
!需要示教的目标点数据,抓取点pPick,HOME点pHome、放置基准点pPlaceBase
PERSrobtargetpPlace;
!放置目标点,类型为PERS,在程序中被赋予不同的数值,用以实现多点位放置
CONSTjointtargetjposHome:=[[0,0,0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
!关节目标点数据,各关节轴度数为0,即机器人到各关节轴机械刻度零位 CONSTspeeddatavLoadMax:=[3000,300,5000,1000]; CONSTspeeddatavLoadMin:=[500,200,5000,1000]; CONSTspeeddatavEmptyMax:=[5000,500,5000,1000];
CONSTspeeddatavEmptyMin:=[1000,200,5000,1000];
!速度数据,根据实际需求定义多种速度数据,以便于控制机器人各动作的速度
PERSnumnCount:=1;
!数字型变量nCount,此数据用于太阳能薄板计数,根据此数据的数值赋予放置 目标点pPlace不同的位置数 据,以实现多点位放置
PERSnumnXoffset:=145; PERSnumnYoffset:=148;
!数字型变量,用做放置位置偏移数值,即太阳能薄板摆放位置之间在X、Y方向的 单个间隔距离
VARboolbPickOK:=False;
!布尔量,当拾取动作完成后将其置为True,放置完成后将其置为False,以作逻辑 控制之用
TASKPERStooldata tGripper:=[TRUE,[[0,0,115],[1,0,0,0]],[1,[0,0,100],[0,1,0,0],0,0,0]]; !定义工具坐标系数据tGripper
TASKPERSwobjdata
WobjBuffer:=[FALSE,TRUE,\"\ !定义暂存盒工件坐标系WobjBuffer
TASKPERSwobjdata
WobjCNV:=[FALSE,TRUE,\"\],[1,0,0,0]]];
!定义输送带工件坐标系WobjCNV
TASKPERSloaddataLoadFull:=[0.5,[0,0,3],[1,0,0,0],0,0,0]; !定义有效载荷数据 LoadFull
四、主程序介绍:
PROC Main() !主程序
rInitialize; !调用初始化程序,初始化程序数据,io信号及返回Home点 此子程序中还需调用子程序rCheckHomePos,以检测机器人 是否在Home点,若不在则自动返回Home点
WHILETRUEDO !利用WHILE循环将初始化程序隔开
rPickPanel;
rPlaceInBuffer;
Waittime 0.3; ENDWHILE
ENDPROC
五、三个子程序介绍:
1、初始化程序
PROCrInitialize()
rCheckHomePos;
nCount:=1;
reset do32_VacuumOpen;
bPickOK:=False;
ENDPROC
!调用拾取程序
!调用放置程序
!循环等待时间,防止不满足机器人动作情况下程序扫描过 快,造成CPU过负荷 !初始化程序
!机器人位置初始化,调用检测是否在Home位置点程序,检测当前机器 人位置是否在HOME点,若在HOME点的话则继续执行之后的初始化相 关指令;若不在HOME点,则先返回至HOME点
!计数初始化,将用于太阳能薄板的计数数值设置为1,即从放置的第 一个位置开始摆放
!信号初始化,复位真空信号,关闭真空
!布尔量初始化,将拾取布尔量置为False
2、拾取太阳能薄板程序
PROCrPickPanel() !拾取太阳能薄板程序
IFbPickOK=FalseTHEN !当拾取布尔量bPickOK为False时,则执行IF条件下的拾取动作指令,否 则执行ELSE中出错处理的指令,因 为当机器人去拾取太阳能薄板时, 需保证其真空夹具上面没有太阳能薄板
MoveJoffs(pPick,0,0,100),vEmptyMax,z20,tGripper\\WObj:=WobjCNV;
!利用MoveJ指令移至拾取位置pPick点正上方Z轴正方向100mm处
WaitDI di01_PanelInPickPos,1; !等待产品到位信号di01_PanelInPickPos变为1,即太阳能薄板已到位
MoveLpPick,vEmptyMin,fine,tGripper\\WObj:=WobjCNV;
!产品到位后,利用MoveL移至拾取位置pPick点
Set do32_VacuumOpen; !将真空信号置为1,控制真空吸盘产生真空,将太阳能薄板拾起
WaitDI di02_VacuumOK,1; !等待真空反馈信号为1,即真空夹具产生的真空度达到需求后才认为已将 产品完全拾起。若真空夹具上面没有真空反馈信号,则可以使用固定等 待时间,如Waittime 0.3
bPickOK:=TRUE; !真空建立后,将拾取的布尔量置为TRUE,表示机器人夹具上面已拾取一 个产品,以便在放置程序中判断夹具的当前状态
GripLoadLoadFull; !加载载荷数据LoadFull
MoveLoffs(pPick,0,0,100),vLoadMin,z10,tGripper\\WObj:=WobjCNV;
!利用MoveL移至拾取位置pPick点正上方100mm处
ELSE TPERASE;
TPWRITE\"Cycle Restart Error\";
TPWRITE\"Cycle can't start with SolarPanel on Gripper\";
TPWRITE\"Please check the Gripper and then press the start button\"; stop;
!如果在拾取开始之前拾取布尔量已经为TRUE,则表示夹具上面已有产 品,此种情况下机器人不能再去拾取另一个产品。此时通过写屏指令描 述当前错误状态,并提示操作员检查当前夹具状态,排除错误状态后 再 开始下一个循环。同时利用Stop指令,停止程序运行
ENDIF ENDPROC
3、计算位置程序
PROCrCalculatePos() !计算位置子程序,检测当前计数nCount的数值,以pPlaceBase为 基准点,利用Offs指令在坐标系WobjBuffer中沿着X、Y、Z方向 偏移相应的数值
TESTnCount CASE 1: pPlace:=offs(pPlaceBase,0,0,0);
若nCount为1,pPlaceBase点就是第一个放置位置,所以X、Y、Z 偏移值均为0,也可以直接写成:pPlace:=pPlaceBase; CASE 2:
pPlace:=offs(pPlaceBase,nXoffset,0,0); !若nCount为2,位置2相对于放置基准点pPlaceBase点在X正方向 偏移了一个产品间隔
CASE 3:
pPlace:=offs(pPlaceBase,0,nYoffset,0); !若nCount为3,位置3相对于放置基准点pPlaceBase点在Y正方向 偏移了一个产品间隔
CASE 4:
pPlace:=offs(pPlaceBase,nXoffset,nXoffset,0);
!若nCount为4,位置4相对于放置基准点pPlaceBase点在X、Y正 方向各偏移了一个产品间隔 DEFAULT
TPERASE
TPWRITE\"The CountNumber is error,please check it!\"; STOP;
!若nCount数值不为Case中所列的数值,则视为计数出错,写屏 提示错误信息,并利用Stop指令停止程序循环 ENDTEST
ENDPROC
因篇幅问题不能全部显示,请点此查看更多更全内容