




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机械专业综合课程设计说明书
产品码垛作业工业机器人离线编程与
虚拟仿真
学院(系):机电信息工程学院
专业:___________机械___________
1拆垛机器人工作站构成
自动化物流系统中,与码垛应用相对应的为拆跺应用,即把成垛
的产品依次搬运至流水线上,例如烟草物流系统中出人智能仓库时的码
垛拆垛、袋装原材料拆垛并开袋、汽车零部件的拆垛上料等应用。
本工作站为箱类产品拆垛应用,成垛的原料摆放在枝板上,随枝板
流动至枝板输送链拆垛工位处,利用ABB公司的IRB6700机器人将
产品从枝板上搬运至产品输送链上,以便流至下工位进行处理,如图
6—I所示。
I)枝板输送链载有产品的枝板经由左侧的进料输送链流转至末
端拆垛工位,并且对末端设有至lj位检测传感器,当机器人完成该校
板的拆垛任务后,空枝板经由右侧输出线传至下一士位,便于空枝板的
回收,之后进料输送链传送下一个载有产品的枝板,依次循环
2)吸盘工具机器人末端法兰盘装有吸盘工具(图6-3),利用
真空发生器产生真空,对产品进行拾取处理,机器人利用输出信号控制
真空的产生与关闭,从而实现产品盒的拾取与释放,该工具采用16个
吸盘,气路分为4蹈,利用机器人4路数字输出端口分别进行控制,
3)产品输送链I机器人将拆垛产品按照指定的方式放置在产品输
送链前端,经由该输送链传送至下工位;在该输送链前端设有传感器,
用于枪测当前位置是否有物料,当没有物料时才允许机器人执行下一个
物料的放置,如图6-5所示。
2、信号组的设置与用法
在使用多个数字输出端口进行传输附,使用信号组的形式会让信号的处理变得艮
单,例如图6-6中需要处建3个数字箱出端口,假设命名为dol、do2、do3,地址夕
为I、2、3,则在系统中需要依次定义3个数字输出信号,并且在程序中每次控制主
个信号,均需要使用3条指令进行话何,如果将该3个输出端口并为一组,统一设后
个信号组改1,地址为1~3,则在程序中只需要按照二进制的排列规则对gol进行胃
即可,大大简化输出控制。如:
SetGogol.7.等同于Scidol;Setdo2;Setdo3;
SetGogol.5.当可干SetdolResetdo2,Setdo3e
3、数组的应用
在定义程序数据时,可以将同种类型、同种用途的数值存放在同
一个数据中,当调用该数据时需要写明索引号来指定我们调用的是该
数据中的哪个数值,这就是所谓的数
组。在RAPID申可以定义维数组、二维数组以及三维数组。
1.一维数组
VARnumregl{3|:=[5.7.MJ;!定义一维致SBregI
reg2:»regl(2);被赋值为7
2.二维数组
VARnumregl(3,4}:="1.2.3.4].[5.6,7,8].[9.10."J2)b!定义二维数组regl
reg2:=regl{3.2};!reg2-赋值为10
3.三维数组
VARnumreglI.2]43,4)M(5,6]J7,8]]1;!定义三维孩组regl
reg2:=regl{2.1.2).!reg2被赋值为6
在程序嫔写过程中,当需要调用大量的同种类型、同种用处的数据时,在创建数据
时可以利用数组来存放这些数据,这样便于在编程过程中对其进行灵活调用。
其至在大尾I/O信号调用过程中.也可以先将I/O进行别名的操作.格I/O信号与信
号数据关联起来,之后将这些信号数据定义为数组类型,在程序编写中便于对同类型、
同用处的信号进行调用
4、写屏指令的运用
在编写例行程序时,将该程序中的某些数据设置为参数,这样在
调用该程序时输入不同的参数数据,贝lj可对应执行在当前数据值情况
下机器人对应执行的任务。
例如,在切割应用中,频繁使用切割正方形的程序,切割正方
形的指令及算法是一致的,只是正方形的顶点位置、边长不一致,这
样可以将这两个变量设为参数。
PROCrSquare(robtargetpBase,numnSideSize)
Move
LpBase,vI000,fine,toolI\WObj:=wobjO;
MoveOffs(pBase,nSideSize,0,0),vI000,fine,toolI\
LWObj:=wobjO;
MoveOffs(pBase,nSideSize,nSideSize,的,v1000,fine,
LtoolI\WObj:=wobjO;
MoveOffs(pBase,0,nSideSi罚,0),vI000,fine,toolI\
LWObj:=wobjO;
Move
LpBase,vI000,fine,toolI\WObj:=wobjO;
ENDPRO
C
PROCMAIN()
rSqu
arepI,I00;
rSqu
arep2,200;
ENDPRO
C
在调用该切割正方形的程序时,再指定当前正方形的顶点以及边
长即可在对应位置切割对应边长大小的正方形。上述程序中,机器人
先后切割了2个正方形,以pl为顶点、100为边长的正方形,以p2
为顶点、200为边长的正方形。
在机器人应用过程中,节拍经常是我们关注的一个焦点,在RAPID
中有专门用于计时的时钟数据以及一系列的计时指令和函数。
5、记时指令的应用
在机器人应用过程中,节拍经常是我们关注的一个焦点,在RAPID卬自专门用于计
时的时钟数据以及一系列的诘时指令和函数。
时钟数据:Clock,必须定义为变单类型,最小计时单位为0.001s。
计时指令和函数:
ClkStart
.开始计时,
ClkStop
,停止计时,
ClkRes
et.时钟复位,
ClkRead.读取时钟数
值。
案例:
VARclockclockI;
PERSnumCycleTIme;
PROCrMove()
MoveLpl,vlOO,fi时,tooJO,
ClkResetclockI;
ClkStartclockI,
MoveLp2,vI00,fine,toolO;
ClkStopclockI吨
CycleTime'=ClkRead(clockI),
ENDPROC
上述案例中,机器人到达pl点后开始计时,至lj达p2点后停止计
时,之后利用CkReadi卖取当前时钟数值,并将其赋值给数值型变
量CycleTime,贝!J当前CycleTime的值即为机器人从pl点至ljp2
点的运动时间。
6、拆垛程序编写
MODULEMainMoudlePERStooldata
tVacuum:=[TRUE,[[0,0,200],[1,0,0,0)],[30,[0,0,
130],[1,0,0,0],0,0,0));I定义工具坐标系数据
tVacuum
PERSrobtarget
pPickBase:=[[1520.639271586,310.000414148,-49.999926686),[-0_
000000328,0,1,-0.000000068],[0,-1,0,0),(9E9,9E9,
9E9,9E9,9E9,9E9]];
I定义拆垛工位拾取基准点,以6.4.4节中所描述的第2种拾取情况♦
为准
PERSrobtarget
pP!aceType1:=[[353.779984371,1371.090215836,498_624386673),
[0_707I06815,0_000000588,0.707106747,0.000000435),[1,-1,
1,0),[9E9,9E9,9E9,9E9,9E9,9E9)),
I定义在产品结上放置产品的位置,第I种情况
00543,0.00000072,1,-0.000000I
27),(0,050,0),(9E9,9E9,9E9,9E9,9E9,9E9));
I定义在产品线上放置产品的位置,第2种情况
PERSrobtarget
pPlaceType3:=((654.92,1393.57,999.29),(3.86561
E-07,0.706048,-0.708164,-3.24774E-07),[0,0,-I,0),[9E+O
9,9E+09,9E+09,9E+09,9E+09,9E+09));
1定义在产品线上放置产品的位置,第3种情况
PERSrobtarget
pHo
me:=((96l.98463257,0,1800],[-0.000000365,0,1,0],[0,0,0,0],[9E9,9E
9,9E9,9E9,9E9,9E9]];
I定义机器人工作原点
PERSrobtarget
pPick:=((l515.64,310,950),(-3.28i07,0,1,-6.8巳
08],[0,-I,0,0),[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09)
I定义机器人拾取位置,此位置以pPickBase为基准计算得出
PERSrobtarget
pPickAfter:=[[1015.64,810,I600],[-3.28E-07,0,1,-6.8巳
08),(0,-I,0,0],(9E+09,9EH-09,9E+09,9E+09,9E+09,9
E+09));
I定义机器人拾取产品后的抬高位置
PERSspeeddataMinSpeed:=[500,I00,5000,I000);
PERSspeeddataMidSpeed:=[1500,200,5000,I000);
PERSspeeddataMaxSpeed:=(3000,300,5000,1000);
!定义不同的速度数捱,用于不同的运动过程
PERSloaddataLoadEmpty:=(O.O1,(0,0,1],[1,0,0,0],0儿。];
1定义机器人空负载时的有效载荷数据,重量设为O.OIkg,可
将其视为空载荷
PERSloaddata
LoadSingle:=[20,[0,0,150]5[1505
0,0],0,0,0];I定义机器人拾取I
个产品时的负载数据
PERSloaddata
LoadDouble:=[40,(0,0,500),(1,0,
0,0)夕,0,0);1定义机器人拾取
2个产品时的负载数据
PERSnumnCounter:=1;
I定义拆垛计数器
PERSnum
nCycleTime:=6.84
8,I定义数值型数
据,用于表示节拍
时间
VARclock
Timer;1定义
时钟数据,用
于计算节拍
PERSnumnPos{10,4}:=[[310,0,1300,I),(310,-610,1300,
I],[-5,0,1000,3),(-5,-620,1000,3),(605,0,1000,2),(605,-610,10
00,2),[0,0,0,2),(0,-610,0,2),[615,0,0,3),(615,-620,0,3));
1定义位置数组,第一维为10,依次对应产品垛中的I0个拾
取位置I第二维为4,分别对应单个
拾取位置中的四项属性值,依次为X偏移值、丫偏移值、Z偏移值、
拾取情况种类,拾取位置以示教的第2种情况中的拾取位置为基准,
结合该数组申的位置偏移量,最终计算出每次拾取产品时的具体位
置,从而依次完成各产品的拾取1最上面一层的两个拾取位置I、2,
如图6-34所示
中间层的4个拾取位置3'4、56,如图6・35所示最下面一层
的4个拾取位置7、8、9、10,如图636所示,其中7是
拾取基准点,其他位置均
PROCMain()
1声明主程序
rlnitAII-
I程序起始位置调用初始化程序,用于复位机器人位置、信号、
数据等
WHILETRUEDO
1采用WHILETRUEDO无限循环结构,将机器人需要重复运行
的动作与初始化程序隔离开
rPick;
I调用拾取产品的程序
rPlace;
I调用放置产品的程序
ENDWHILE
ENDPROC
PR
OC
rlnit
AH()
1声
明初
始化
程序
rMoveHome,,
I调用回工作原点HOME的程序
SetGOgoGrip,O;
1复位所有吸盘真空
1前面加上英文字符感叹号“!”贝IJ表示当前行为注释行,此处是
用于比较单端口的数字输出信号与信号组在使用上面的差别,此处使
用信号组较为方便
nCounter:=I'
I复位计数器
ENDPROC
PROCrPick()
I声明拾取产品程序
ClkResetTimer;
I复位计时器
ClkStartTimer;
I开始计时
WaitDIdiPalletlnPosI
1拆垛工位处的到位检测信号,等待产品垛到位,否则一直等待
pPick:=Offs(pPickBase,nPos{nCounter,I},nPos
{nCounter,2},nPos{nCounter,3});
I利用Offs函数以及位置数据计算当前计
数器值下的拾取位置pPickA仇
er.trans.x:=pPick.trans.x-500;
mmpPickA仇er.trans.y:=pPick.trans,y+500,
6度爷盟嗝"襄既般停置,其?值相对于PPick料兑沿着工件坐
pPickA仇er.trans.z:=1600;1计算
拾取后的中间过渡位置,其Z值为
固定值1600mm
MoveJOffs(pPick,0,0,500),MaxSpeed,z50,tVacuum\
WObj:=wobjO;
!利用MoveJ移动至当前拾取位置正上方500mm处
MoveLpPick,MinSpeed,tine,tVacuum\WObj:=wobjO;
I利用MoveL直线移动至当前拾取位置
SetGOgoGrip,15;
I置位吸盘动作,所有吸盘全部建立真空
I注释,不被执行
WaitTime0.3:
1等待0.3s,保证产品已被拾取
IFnPos{nCounter,4}=1THEN
I判断当前拾取类型,若为情况I贝lj
GripLoadLoadSingle:
I加载单个产品的负载数据
ELSE
GripLoadLoadDouble;I其他情
,况即情况2、3,贝lj加载两个
产品的负载数据
ENDIF
MOVELOffs(pPick,0,0,200),MinSpeed,z50,tVacuum\
WObj:=wobjO;
I利用MoveL直线移动至拾取位置上方200mm处
MoveLpPickAfter,MidSpeed,zI00,tVacuum\WObj:=wobjO,
1利用MoveL移动至拾取后中间过渡点
IFnCounter>=l0PulseDOdoPalletOut-
I判断当前计数是否大于等于10,即是否全部完成了当前枝板的
拆垛任务,若满足条件则发出移除当前枝板信号,将空枝板移走,并移
入下一个载有产品的校板,此处为简化版的旧用法,该指令只适用
于判断一种条件,条件满足时只执行一旬指令的特殊情况
ENDPROC
PROCrPlace()
I声明放置程序
TESTnPos{nCounter,4}
I判断当前是哪种情况
CASEI:
rPlaceTypeI;
1若是情况I,贝lj调用放置程序I
CASE3:
rPlaceTy
pe3;
I若是情况3,贝lj调用放置程序3
DEFAULT:
TPErase;
TPWrite飞hevalueoftypeiseqor,pleasecheckit!”,
Stop;
!若不为上述三种情况,贝lj清屏并写屏显示相关错误信号,并停止程
序运行
ENOTEST
IFnCounter>IOTHEN
I判断当前计数是否大于10,每个钱板上共拾取放置10次
MoveJpHome,MidSpeed,
fine,tVacuum\WObj:=wobjO;I若满足条
件则移动至HOME位置
nCounter:
=l;!计数
器复位
IF
END
;
imer
opT
ClkSt
计时
I停止
er);
d(Tim
lkRea
e:=C
leTim
nCyc
给
赋值
将其
,并
的数值
时器中
当前计
I读取
e
leTim
nCyc
ase,
TPEr
人
”\
is:
time
cycle
st
riteTa
TPW
画
tme;
ycleT
:=nC
Num
析
置的
取放
次拾
上一
显示
并写屏
屏,
I清
机
少
是多
节拍
精
C
PRO
用END
业
()
ype1
laceT
CrP
工PRO
程序I
放置
应I声明
,0;
nPos
lteml
DIdi
型Wait
中产
过程
放置
止在
品,防
没有产
置处己
放置位
线前端
产品
典!等待
撞
生碰
间发
槌品之
zI
eed,
idSp
,M
000)
I
1,0,0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国建筑行业发展趋势预测与未来市场前景研究报告
- 软件项目进度管理总结
- 模具行业技术创新规范
- 电动刮胡刀维修制度
- 数控机床安全操作手册
- 2024年幼儿园自查报告模板合集
- 2025年无人机驾驶员职业技能考核试卷:无人机飞行操作与维护安全试题
- 基于GIS的转基因水稻基因飘流风险评估系统构建与应用研究
- 基于GEM模型剖析义乌市场集群竞争力:现状、挑战与提升路径
- 基于GARCH模型的期货统计套利策略:理论、实践与创新
- 【课件】工作危害分析法(JHA)专项培训课件丨
- 中医理疗课件
- 固体化学导论全套课件
- 川崎病儿童健康管理专家共识(2024)解读 2
- 2024-2030全球铝制遮阳系统行业调研及趋势分析报告
- 非ST段抬高急性冠状动脉综合征诊断和治疗指南
- 警校生职业生涯规划
- 江苏省扬州市江都区大桥中学2025届高考英语一模试卷含解析
- 2024-2025学年九年级第一次月考化学卷(天津专用)
- 0-9任意四位数手机密码排列组合全部数据列表
- 吉林省长春市长春实验中学2024-2025学年高一上学期第一次月考数学试题(无答案)
评论
0/150
提交评论