ABB搬运工作站.docx
《ABB搬运工作站.docx》由会员分享,可在线阅读,更多相关《ABB搬运工作站.docx(52页珍藏版)》请在冰点文库上搜索。
ABB搬运工作站
ABB搬运工作站
LT
1.ABB推出的一款迄今为止最小的多用途工业机器人——紧凑、敏捷、轻量的六轴IRB120,仅重25kg,
荷重3kg(垂直腕为4kg),工作范围达580mm。
9.3知识储备
9.3.1RobotStudio知识准备
1.工作站共享
在RobotStudio中,一个完整的机器人工作站既包含前台所操作的工作站文件,还包含一个后台运行的机器人系统文件。
当需要共享RobotStudio软件所创建的工作站时,可以利用“文件”菜单中的“共享”功能,使用其中“打包”功能,可以将所创建的机器人工作站打包成工作包(.rspag格式);利用“解包”功能,可以将该工作包在另外的计算机上解包使用。
1.打包:
创建一个包含虚拟控制器、库和附加选项媒体库的工作站包。
2.解包:
解包所打包的文件,启动并恢复虚拟控制器,打开工作站。
2.加载RAPID程序模块在机器人应用过程中,如果已有一个程序模板,则可以直接将该模板加载至机器人系统中。
例如,已
有1#机器人程序,2#机器人的应用与1#机器人相同,那么可以将1#机器人的程序模块直接导入2#机器人中。
加载方法有以下两种。
(1)软件加载
在RobotStudio中的“RAPID”菜单中可以加载程序模块。
在RobotStudio5.15之前的版本中,此功能在“离线”菜单的中,“在线”菜单中也有该功能,前者针对的是PC端仿真的机器人系统,后者针对的是利用网线连接的真实的机器人系统。
1.切换到“RAPID”菜单,展开右侧RAPID,右击“T_ROB1”,选择“加载模块”。
2.浏览至需要加载的程序模块文件,单击“打开”按钮。
(2)示教器加载
在示教器中依次单击:
ABB菜单—程序编辑器—模块—文件—加载模块,之后浏览至所需加载的模块进行加载。
1.在程序编辑器模块栏中单击“文件”。
2.单击加载模块
3.浏览至所需加载的程序模块文件,单击“确定”按钮。
3.加载系统参数在机器人应用过程中,如果已有系统参数文件,则可以直接将该参数文件加载至机器人系统中。
例如,
已有1#机器人I/O配置文件,2#机器人的应用与1#机器人相同,那么可以将1#机器人的I/O配置文件直接导入2#机器人中。
系统参数文件存放在备份文件夹中的SYSPAR文件目录下,其中最常用的是其中的EIO文件,即机器人I/O系统配置文件。
系统参数加载方法有以下两种:
*一般地,两台硬件配置一致的机器人会共享I/O设置文件EIO.cfg,其他的文件可能会造成系统故障。
若错误加载参数后,可做一个“I启动”使机器人回到出厂初始状态。
(1)软件加载
在RobotStudio中,“控制器”菜单的“加载参数”功能可以用于加载系统参数。
1.在“控制器”菜单中单击“加载参数”
2.勾选“载入参数并覆盖重复项”
之后单击“打开”按钮。
3.在“Filename”(即“文件名称”)中输入“EIO”,单击跳出来的EIO.cfg,之后单击“Open”按钮。
备份文件夹中的系统参数文件保存在“SYSPAR”文件夹下。
浏览至“SYSPAR”目录后,若不能显示系统参数文件,则需要在“Filename”(即文件名称)中输入“EIO”,则自动跳出“EIO.cfg”,单击“Open”按钮之后即可打开。
(2)示教器加载
在示教器中依次单击:
ABB菜单—控制面板—配置—文件—加载参数,加载方式一般也选取第三项,即
“加载后覆盖重复项”,之后浏览至所需加载的系统参数文件进行加载。
1.打开“文件”菜单。
2.单击“加载参数”。
3.勾选“加载参数并替换副本”,之后单击“加载”按钮。
4.浏览至所需加载的系统参数文
件,选中“EIO.cfg”,单击“确定”
按钮,重新启动即可。
4.仿真I/O信号
在仿真过程中,有时需要手动去仿真一些I/O信号,以使当前工作站满足机器人运行条件。
在RobotStudio
软件的“仿真”菜单中利用“I/O仿真器”可对I/O信号进行仿真。
1.单击“仿真”菜单中的“I/O仿真器”即可在软件右侧跳出“I/O仿真器”菜单栏。
2.在“选择系统”栏中选择相应系统,包含工作站信号、机器人信号以及智能组件信号等。
3.单击需要仿真的信号,相应指示灯则会置为1,再次单击即可置为0。
9.3.2标准I/O板配置
ABB标准I/O板挂在DeviceNet总线上,常用型号有DSQC651,DSQC652。
在系统中配置标准I/O板,
至少需要设置以下四项参数:
参数名称
参数注释
Name
I/O单元名称
TypeofUnit
I/O单元类型
ConnectedtoBus
I/O单元所在总线
DeviceNetAddress
I/O单元所占用总线地址
I/O配置详细参考I/O通信一章。
9.3.3数字I/O配置
在I/O单元上创建一个数字I/O信号,至少需要设置以下四项参数:
参数名称
参数注释
Name
I/O信号名称
TypeofSignal
I/O信号类型
AssignedtoUnit
I/O信号所在I/O单元
UnitMapping
I/O信号所占用单元地址
9.3.4系统I/O配置
系统输入:
将数字输入信号与机器人系统的控制信号关联起来,就可以通过输入信号对系统进行控制
(例如,电动机上电、程序启动等)。
系统输出:
机器人系统的状态信号也可以与数字输出信号关联起来,将系统的状态输出给外围设备作
控制之用(例如,系统运行模式、程序执行错误等)。
9.3.5常用运动指令
MoveL:
线性运动指令
将机器人TCP沿直线运动至给定目标点,适用于对路径精度要求高的场合,如切割、涂胶等。
例如:
MoveLp20,v1000,z50,tool1
\WObj:
=wobj1;
如图所示,机器人TCP从当前位置p10处运动至
p20处,运动轨迹为直线。
MoveJ:
关节运动指令
将机器人TCP快速移动至给定目标点,运行轨迹不一定是直线。
例如:
MoveJp20,v1000,z50,tool1\WObj:
=wobj1;
如图所示,机器人TCP从当前位置p10处运动至p20
处,运动轨迹不一定为直线。
9.3.6常用I/O控制指令Set:
将数字输出信号置为1例如:
SetDo1;
将数字输出信号Do1置为1。
MoveC:
圆弧运动指令
将机器人TCP沿圆弧运动至给定目标点。
圆弧运动指令MoveC在做圆弧运动时一般不超过240°,所以一个完整的圆通常使用两条圆弧指令来完成。
例如:
MoveCp20,p30,v1000,z50,tool1,
\WObj:
=wobj1;
如图所示,机器人当前位置p10作为圆弧的起点,
p20是圆弧上的一点,p30作为圆弧的终点。
MoveAbsj:
绝对运动指令将机器人各关节轴运动至给定位置。
例如:
PERSjointargetjpos10:
=[[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+0
9,9E+09]];
关节目标点数据中各关节轴为零度。
MoveAbsjjpos10,v1000,z50,tool1
\WObj:
=wobj1;
则机器人运行至各关节轴零度位置。
注:
Setdo1;等同于:
SetDOdo1,1;
Resetdo1;等同于:
Reset:
将数字输出信号置为0
例如:
ResetDo1;
将数字输出信号Do1置为0
SetDOdo1,0;
另外,SetDO还可以设置延迟时间:
SetDO\SDelay:
=0.2,do1,1;
则延迟0.2s后将do1置为1。
WaitDI:
等待一个输入信号状态为设定值
例如:
WaitDIDi1,1;
等待数字输入信号Di1为1,之后才执行下面的指令。
WaitDi1,1;等同于:
WaitUntildi1=1;
另外,WaitUntil应用更为广泛,等待的是后面条件为TRUE才继续执行,如:
WaitUntilbRead=False;
WaitUntilnum1=1;
9.3.7常用逻辑控制指令
IF:
满足不同条件,执行对应程序
例如:
IFreg1>5THENSetdo1;
ENDIF
如果reg1>5条件满足,则执行SetDo1指令。
FOR:
根据指定的次数,重复执行对应程序
例如:
FORIFROM1TO10DORoutine1;
ENDFOR
重复执行10次Routine1里的程序。
FOR指令后面跟的是循环计数值,其不用再程序数据中定义,每次运行一遍FOR循环中的指令后会自动执行加1操作。
WHILE:
如果条件满足,则重复执行对应程序
例如:
WHILEreg1=reg1+1;ENDWHILE
如果变量reg1reg1加1,直至reg1TEST:
根据指定变量的判断结果,执行对应程序
例如:
TESTreg1
CASE1:
Routine1;CASE2:
Routine2;
DEFAULT:
Stop;ENDTEST
判断reg1数值,若为1则执行Routine1;若为2则
执行Routine2,否则执行stop。
9.3.8注释行“!
”
在语句前面加上“!
”,则整行语句作为注释行,不被程序执行。
例如:
!
GotothePickPosition;
MoveLpPick,v1000,fine,tool1,\WObj:
=wobj1;
9.3.9Offs偏移功能
以选定的目标点为基准,沿着选定工件坐标系的X、Y、Z轴方向偏移一定的距离。
例如:
MoveLOffs(p10,0,0,10),v1000,z50,tool0\WObj:
=wobj1;
将机器人TCP移动至以p10为基准点,沿着wobj1的Z轴正方向偏移10mm的位置。
9.3.10CRobT功能读取当前机器人目标位置数据。
例如:
PERSrobtargetp10;
P10:
=CRobT(\Tool:
=tool1\WObj:
=wobj1);
读取当前机器人目标点位置数据,指定工具数据位tool1,工件坐标系数据为wobj1(若不指定,则默认工具数据为tool0,默认工件坐标系数据为wobj0),之后将读取的目标点数据赋值给p10。
9.3.11常用写屏指令
例如:
TPRease;
TPWrite“TheRobotisrunning!
”;
TPWrite“TheLastCycleTimeis:
”\num:
=nCycleTime;假设上一次循环时间nCycleTime为10s,则示教器上面显示内容为TheRobotisrunning!
TheLastCycleTimeis:
10
9.3.12检测HOME点模板
在实训任务中,每个程序都有检测Home点的例行程序rCheckHomePos,以及比较机器人当前位置和给定位置是否相同的功能CurrentPos,其程序内容如下,在后续的代码中不再重复。
程序:
rCheckHomePos、CurrentPos
说明:
检查原点程序,如机器人不在原点位置则返回原点
PROCrCheckHomePos()
!
检测是否在Home点程序
VARrobtargetpActualPos;
!
定义一个目标点数据pActualPos
IFNOTCurrentPos(pHome,tGripper)THEN
!
调用功能程序CurrentPos。
此为一个布尔量型的功能程序,括号里面的参数分别指的是所要比较的目标点以及使用的工具数据。
!
这里写入的是pHome,是将当前机器人位置与pHome点进行比较,若在Home点,则此布尔量为True;若不在Home点,则为False。
!
在此功能程序的前面加上一个NOT,则表示当机器人不在Home点时才会执行IF判断中机器人返回Home点的动作指令
pActualpos:
=CRobT(\Tool:
=tGripper\WObj:
=wobj0);
!
利用CRobT功能读取当前机器人目标位置并赋值给目标点数据pActualpospActualpos.trans.z:
=pHome.trans.z;
!
将pHome点的Z值赋给pActualpos点的Z值
MoveLpActualpos,v100,z10,tGripper;
!
移至已被赋值的后的pActualpos点
MoveLpHome,v100,fine,tGripper;
!
移至pHome,上述指令的目的是需要先将机器人提升至与pHome点一样的高度,之后再平移至pHome点,这样可以简单地规划一条安全回Home点的轨迹
ENDIFENDPROC
FUNCboolCurrentPos(robtargetComparePos,INOUTtooldataTCP)
!
检测目标点功能程序,带有两个参数,比较目标点和所使用的工具数据
VARnumCounter:
=0;
!
定义数字型数据Counter
VARrobtargetActualPos;
!
定义目标点数据ActualPos
ActualPos:
=CRobT(\Tool:
=tGripper\WObj:
=wobj0);
!
利用CRobT功能读取当前机器人目标位置并赋值给ActualPos
IFActualPos.trans.x>ComparePos.trans.x-25ANDActualPos.trans.x=Counter+1;IFActualPos.trans.y>ComparePos.trans.y-25ANDActualPos.trans.y=Counter+1;IFActualPos.trans.z>ComparePos.trans.z-25ANDActualPos.trans.z=Counter+1;IFActualPos.rot.q1>ComparePos.rot.q1-0.1ANDActualPos.rot.q1=Counter+1;IFActualPos.rot.q2>ComparePos.rot.q2-0.1ANDActualPos.rot.q2=Counter+1;IFActualPos.rot.q3>ComparePos.rot.q3-0.1ANDActualPos.rot.q3=Counter+1;IFActualPos.rot.q4>ComparePos.rot.q4-0.1ANDActualPos.rot.q4=Counter+1;
!
将当前机器人所在目标位置数据与给定目标点位置数据进行比较,共七项数值,分别是X、Y、Z坐标值以
及工具姿态数据q1、q2、q3、q4里面的偏差值,如X、Y、Z坐标偏差值25可根据实际情况进行调整。
每项比较结果成立,则计数Counter加1,七项全部满足的话,则Counter数值为7
RETURNCounter=7;
!
返回判断式结果,若Counter为7,则返回TRUE,若不为7,则返回FALSEENDFUNC
9.4任务实施
9.4.1工作站解包
1.双击工作站打包文件:
SituationalTeaching_Carry.rspag。
2.单击“下一个”按钮。
3.单击“浏览”按钮,选择存放解包文件的目录。
4.单击“下一个”按钮。
5.机器人系统库指向“MEDIAPOOL”文件夹。
选择RobotWare版本(要求最低版本为5.14.02)。
6.单击“下一个”按钮。
7.解包就绪后,单击“完成”按钮。
8.确认后,单击“关闭”按钮。
9.解包完成后,在主窗口显示整个搬运工作站。
9.4.2创建备份并执行I启动
现有工作站已包含创建好的参数以及RAPID程序。
从零开始练习建立工作站的配置工作,需要先将此系统做一备份,之后执行I启动,将机器人系统恢复到出厂初始状态。
1.控制器菜单中打开“备份”,然后单击创建备份。
2.为备份命名,并选定保存的位置。
3.单击确定。
4.在“控制器”菜单中,单击“重启”,然后选择“I启动”。
5.在I启动
完成后,跳出BaseFram更新提示框,暂时先单击“否”按钮。
6.在“控制器”菜单中,单击“编辑系统”。
7.在左侧栏中选中“ROB_1”。
8.选中“使用当前工作站数值”。
9.单击确定按钮。
待执行热启
动后,则完成了工作站的初始化操作。
重启类型介绍如下:
◆热启动:
修改系统参数及配置后使其生效。
◆关机:
关闭当前系统,同时关闭主机。
◆B启动:
尝试从最近一次无错状态下启动系统。
◆P启动:
重新启动并删除已加载的RAPID程序。
◆I启动:
重新启动,恢复至出厂设置。
◆C启动:
重新启动并删除当前系统。
◆X启动:
重新启动,装载系统或选择其他系统,修改IP地址。
9.4.3配置I/O单元
在虚拟示教器中,根据以下的参数配置I/O单元。
Name
TypeofUnit
ConnectedtoBus
DeviceNetaddress
Board10
D651
DeviceNet1
10
9.4.4配置I/O信号
在虚拟示教器中,根据以下的参数配置I/O信号。
Name
TypeofSignal
AssignedtoUnit
UnitMapping
I/O信号注解
di00_BufferReady
DigitialInput
Board10
0
暂存装置到位信号
di01_PanelInPickPos
DigitialInput
Board10
1
产品到位信号
di02_VacuumOK
DigitialInput
Board10
2
真空反馈信号
di03_Start
DigitialInput
Board10
3
外接“开始”
di04_Stop
DigitialInput
Board10
4
外接“停止”
di05_StartAtMain
DigitialInput
Board10
5
外接“从主程序开
始”
di06_EstopReset
DigitialInput
Board10
6
外接“急停复位”
di07_MotorOn
DigitialInput
Board10
7
外接“电动机上电”
do32_VacuumOpen
DigitialOutput
Board10
32
打开真空
do33_AutoOn
DigitialOutput
Board10
33
自动状态输出信号
do34_BufferFull
DigitialOutput
Board10
34
暂存装置满载
9.4.5配置系统输入/输出
在虚拟示教器中,根据以下的参数配置系统输入/输出信号。
Type
SignalName
Action\Status
Argument1
注释
SystemInput
di03_Start
Start
Continuous
程序启动
SystemInput
di04_Stop
Stop
无
程序停止
SystemInput
di05_StartAtMain
StartMain
Continuous
从主程序启动
SystemInput
di06_EstopReset
ResetEstop
无
急停状态恢复
SystemInput
di07_MotorOn
MotorOn
无
电动机上电
SystemOutput
do33_AutoOn
AutoOn
无
自动状态输出
9.4.6创建工具数据
在虚拟示教器中,根据以下的参数设定工具数据tGripper。
参数名称
参数数值
robothold
TRUE
trans
X
0
Y
0
Z
115
rot
q1
1
q2
0
q3
0
q4
0
mass
1
cog
X
0
Y
0
Z
100
其余参数均为默认值
9.4.7创建工件坐标系数据
本工作站中,工件坐标系均采用用户三点法创建。
在虚拟示教器中,根据图所示位置设定工件坐标。
工件坐标系WobjCNV:
工件坐标系WobjBuffer:
9.4.8创建载荷数据
在虚拟示教器中,根据以下的参数设定载荷数据LoadFull。
参数名称
参数数值
mass
0.5
cog
X
0
Y
0
Z
3
其余参数均为默认值
9.4.9程序注解
本工作站要实现的动作时机器人在流水线上拾取太阳能薄板工件,将其搬运至暂存盒中,以便周转至
下一工位进行处理。
在熟悉了此RAPID程序后,可以根据实际的需要在此程序的基础上做适用性的修改,以满足实际逻辑
与动作的控制。
以下是实现机器人逻