资源描述
ABB机器人程序
一、试验目标
1、掌握示教器触摸屏控制界面及功效使用
2、掌握机器人手动操纵
3、学习三个关键数据设定
4、掌握ABB机器人运动指令
5、掌握功效指令Offs( )使用
二、试验器材
1、RobotStudio仿真软件
2、IRB120平台数模
三、试验项目
1、建立工具数据并测试新建工具数据
2、建立工件数据并测试新建工件数据
3、建立有效载荷数据
4、建立程序模块与例行程序
5、运动指令利用
6、导出程序模块
四、试验准备
1.三个关键程序数据设定
在进行正式编程之前,就需要构建起必要编程环境,其中有三个必须程序数据(工具数据tooldata、工件坐标wobjdata、负荷数据loaddata)就需要在编程前进行定义。下面介绍这三个程序数据设定方法。
1.1工具数据tooldata
工具数据tooldata用于描述安装在机器人第六轴上工具TCP、质量、重心等参数数据。通常不一样机器人应用配置不一样工具,比如说弧焊机器人就使用弧焊枪作为工具,而用于搬运板材机器人就会使用吸盘式夹具作为工具,如图所表示。
图 机器人工具
默认工具(toolO)工具中心点(Tool CenterPonit)位于机器人安装法兰中心,如图所表示。图中A点就是原始TCP点。
图 原始TCP点
执行程序时,机器人将TCP移至编程位置。这意味着,假如要更改工具以及工具坐标系,机器人移动将随之更改,方便新TCP抵达目标。
全部机器人在手腕处都有一个预定义工具坐标系,该坐标系被称为toolO。这么就能将一个或多个新工具坐标系定义为too10偏移值。
工具TCP设定原理以下:(详见《ABB机器人应用手册.07》 4.4.1 工具数据tooldata设定)
1)首先在机器人工作范围内找一个非常精准固定点作为参考点。
2)然后在工具上确定一个参考点(最好是工具中心点)。
3)用之前介绍手动操纵机器人方法,去移开工具上参考点,以四种以上不一样机器人姿态尽可能与固定点刚好碰上。为了取得更准确TCP,在以下例子中使用六点法进行操作,第四点是用工具参考点垂直于固定点,第五点是工具参考点从固定点向将要设定为TCPX方向移动,第六点是工具参考点从固定点向将要设定为TCPZ方向移动。
4)机器人经过这四个位置点数据计算求得TCP数据,然后TCP数据就保留在tooldata这个程序数据中被程序进行调用。
TCP取点数量区分:
4点法:不改变tool0 坐标方向, 工具参考点垂直于固定点。
5点法:改变too10Z方向。
6点法,改变too10X和Z方向。(在焊接应用最为惯用)。
前三个点姿态相差尽可能大些,这么有利于TCP精度提升。
1.2工件坐标wobjdata
工件坐标对应工件,它定义工件相对于大地坐标(或其余坐标)位置。机器人能够拥有若干个工件坐标系,或者表示不一样工件,或者表示同一工件在不一样位置若干副本。(详见《ABB机器人应用手册.07》 4.4.2 工件坐标wobjdata设定)
对机器人进行编程时就是在工件坐标中创建目标和路径。这带来很多优点:
1)重新定位工作站中工件时,只需更改工件坐标位置,全部路径将即刻随之更新。
2)允许操作以外轴或传送导轨移动工件,因为整个工件可连同其路径一起移动。
A是机器人大地坐标,为了方便编程,给第一个工件建立了一个工件坐标B,并在这个工件坐标B中进行轨迹编程。
假如台子上还有一个一样工件需要走一样轨迹,那只需建立一个工件坐标C,将工件坐标B中轨迹复制一份,然后将工件中坐标从B更新为C,则无需对一样工件进行重复轨迹编程了。
假如在工件坐标B中对A对象进行了轨迹编程,当工件坐标位置改变成工件坐标D后,只需在机器人系统重新定义工件坐标D后,则机器人轨迹就自动更新到C了,不需要再次轨迹编程了。因A相对于B,C相对于D关系是一样,并没有因为整体偏移而发生改变。
在对象平面上,只需要定义三个,就能够建立一个工件坐标。
Ø X1点确定工件坐标原点。
Ø X1、X2确定工件坐标X正方向。
Ø Y1确定工件坐标Y正方向。
工件坐标等符合右手定则。
1.3有效载荷loaddata
对于搬运应用机器人,应该正确设定夹具质量、重心tooldata以及搬运对象质量和重心数据loaddata。
(详见《ABB机器人应用手册.07》 4.4.3有效载荷loaddata设定)
2.机器人运动指令
机器人在空间中运动主要关于节运动(MoveJ)、线性运动、圆弧运动(MoveC)和绝对位置运动(MoveAbsJ)四种方式。(MoveL)
2.1绝对位置运动指令(MoveAbsJ)
绝对位置运动指令应用:机器人以单轴运行方式运动至目标点,绝对不存在奇点,运动状态完全不可控,防止在正常生产中使用此指令,惯用于检验机器人零点位置,指令中TCP与Wobj只与运行速度关于,与运动位置无关。惯用于机器人六个轴回到机械零点(0°)位置。绝对位置运动指令是机器人运动使用六个轴和外轴角度值来定义目标位置数据。
2.2关节运动指令(MoveJ)
关节运动应用:机器人以最快捷方式运动至目标点,机器人运动状态不完全可控,但运动路径保持唯一,惯用于机器人在空间大范围移动。
关节运动指令适合机器人大范围运动时使用,不轻易在运动过程中出现关节铀迸入机械死点问题。
关节运动指令是在对路径精度要求不高情况下,机器人工具中心点TCP从一个位置移动到另一个位置,两个位置之间路经是不一定是直线。关节运动如图所表示。
2.3线性运动指令(MoveL)
线性运动应用:机器人以线性移动方式运动至目标点,当前点与目标点两点确定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现奇点,惯用于机器人在工作状态移动。
线性运动是机器人TCP从起点到终点之间路径一直保持为直线,通常如焊接、涂胶等应用对路径要求高场所使用此指令。线性运动示意图如图所表示。
2.4圆弧运动指令(MoveC)
圆弧运动应用:机器人经过中间点以圆弧移动方式运动至目标点,当前点、中间点与目标点三点决定一段圆弧,机器人运动状态可控,运动路径保持唯一,惯用于机器人在工作状态移动。
圆弧路径是在机器人可抵达空间围内定义三个位置点,第一个点是圆弧起点,第二个点用于圆弧曲率,第三个点是圆弧终点。圆弧运动示意图如图所表示。
3.I/O控制指令
Set数字信号置位指令用于将数字输出(Digital Output)置位为“1”, Reset数字信号复位指令用于将数字输出(Digital Output)复位为“0”。
假如在Set、Reset指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsj转弯区数据,必须使用fine才能够准确地输出I/O信号状态。
详细请查看《ABB机器人应用手册》第五章。
五、试验步骤
1. 工作站导入
打开试验一工作站打包文件,伴随向导恢复系统
2. TCP_Table导入
导入TCP_Table模型,其中包含TCP_table与TCP-练习笔两个部分。
3. 三个必须程序数据定义
在进行正式编程之前,就需要构建起必要编程环境,其中有三个必须程序数据(工具数据tooldata、工件坐标wobjdata、负荷数据loaddata)就需要在编程前进行定义。下面介绍这三个程序数据设定方法。
3.1 调整机器人姿态至TCP-练习笔并夹住
首先调整机器人姿态,把一轴和五轴调到90度,右击IRB120_3_58__01点击机械装置手动关节
基于工作数据tool2,机器人手动线性和捕捉
捕捉到笔中心位置
并输出DO_007把笔抓起(控制器状态为手动)
3.2工具数据tooldata设定
点击“菜单”——“手动操纵”——“工具坐标”——“新建...”——“确定”,新建工具名称为“tool_pen”,其余数据属性保持默认即可。
3.2.1 选取TCP 和 Z,X(6点法)设定TCP
在工具坐标界面下选择“tool_pen”——“编辑”——“定义”,选取“TCP 和 Z,X(6点法)”设定TCP。
优先修改点4、延伸器点X,和延伸器点Z
l 点4位置
基于工作数据tool3,机器人手动线性和捕捉,快速定位点4位置
l 延伸器点X位置
l 延伸器点Z位置
l 点1位置(随意)
l 点2位置(随意)
l 点3位置(随意)
完成示教,按确定后计算误差值,对误差进行确认,误差越小越好,但也要以实际验证效果为准。
在工具坐标界面下选择“tool_pen” ——“编辑”——“更改值...”,单击箭头向下翻页(此页面显示内容就是TCP定义时生成数据)。在此页面中,依照实际情况设定工具质量mass(单位kg)和重心位置数据(此重心X/Y/Z是基于tool0偏移值,单位mm),然后单击“确定”。
在手动操纵界面下设定以下参数,动作模式选定为“重定位”;坐标系选定为“工具”;工具坐标选定为“too1_pen”。
使用摇杆将工具参考点靠上固定点,然后在重定位模式下手动操纵机器人,假如TCP设定精准话,能够看到工具参考点与固定点一直保持接触,而机器人会依照重定位操作改变姿态。
3.2.2机器人、练习笔回原位点位置
工具坐标创建完成后,可复位DO_007把笔放下
l 机器人回原位点位置
l 笔回原位点位置
效果图以下
3.3 工件坐标wobjdata设定
重复以上操作,调整机器人姿态,把一轴和五轴调到90度,把笔夹起来。
点击“菜单”——“手动操纵”——“工件坐标”——“新建...”——“确定”,新建工件坐标属性保持默认即可。
在工件坐标界面下选择“wobj1”——“编辑”——“定义”,选取“3点”设定TCP。
注:在设定工件坐标前先选定对应工具坐标,应选择tool_pen。
X1,X2,Y1示教点以下
基于工作数据tool3,机器人手动线性和捕捉,快速定位
X1点位置
X2点位置
Y1点位置
点击“确定”并对自动生成工件坐标数据进行确定。
在手动操纵界面下设定以下参数,动作模式选定为“线性”;坐标系选定为“工件坐标”;工件坐标选定为“wobj1”。使用摇杆在线性模式下手动操纵机器人,假如工件坐标设定精准话,能够看到机器人X/Y/Z轴以新建wobj1坐标系为基准进行平移。
完成操作后可重复上述方法把机器人和笔回到原点。
3.4负荷数据loaddata设定
点击“菜单”——“手动操纵”——“有效载荷”——“新建...”——“确定”,新建工件坐标属性保持默认即可。
在有效载荷界面下选择“load1”——“编辑”——“更改值”
对有效载荷数据依照实际情况进行设定,确定完成设定。
4.创建程序模块
点击“菜单”——“程序编辑器”,当有“不存在程序...”弹窗时点击“取消”即可。
3、在T_ROB1/模块界面,点击“文件”——“新建模块...”,弹窗点击“是”即可,新建“Module1”模块。
在T_ROB1/模块界面,选中模块Module1点击“显示模块”,然后点击“例行程序”进行例行程序创建。
在T_ROB1/Module1/例行程序界面,点击“文件”——“新建例行程序...”,首先建立一个主程序,将名称设定为“main”,然后单击“确定”。
在T_ROB1/Module1/例行程序界面,点击“文件”——“新建例行程序...”,建立Initialize初始化程序、Take_Pen取笔程序、Put_Pen放笔程序、Square画方行程序和Circle画圆行程序
在T_ROB1/Module1/例行程序界面,选中Initialize()点击“显示例行程序”就能够进行编程了。
注:编程前需要选择对应工具数据和工件数据。
添加指令
按次序添加如图所表示指令(工具坐标为tool0,工件坐标为wobj0)
程序:(注意运动指令速度和转弯数据)
PROC Initialize()
AccSet 100, 100;
!加速度限制指令
VelSet 100, 300;
!速度限制指令
MoveAbsJ [[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]\NoEOffs, v100, z50, tool0;
!用MoveAbsJ指令,机器人回原
Reset DO_007;
!复位夹具
MoveAbsJ [[90,0,0,0,90,0],[0,0,0,0,0,0]]\NoEOffs, v100, z50, tool0;
!用MoveAbsJ指令,将工具垂直大地并将机器人转到TCP台
ENDPROC
在T_ROB1/Module1/例行程序界面,选中Take_Pen()点击“显示例行程序”就能够进行编程了。
在编程之前需要对所需要工具坐标和工件坐标进行选定,此试验工具坐标和工件坐标为tool0和wobj1。
按次序添加如图所表示指令
其中P1目标点建立以下,双击选中*号
Offs()指令操作以下,双击目标p1
程序:(注意运动指令速度和转弯数据)
PROC Take_Pen()
MoveJ Offs(p1,0,-2,150), v100, z50, tool0\WObj:=wobj1;
!用MoveJ和Offs指令,移动到笔正斜上方位置
MoveL Offs(p1,0,-2, 0), v50, fine, tool0\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正旁边位置
MoveL p1, v50, fine, tool0\WObj:=wobj1;
!用MoveL指令,移动到笔位置
Set DO_007;
!置位抓手输出信号
WaitTime 1;
!置位抓手后等候1秒,待抓手完全夹紧
MoveL Offs(p1,0,0,150), v100, z50, tool0\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正上方位置
ENDPROC
示教点以下
P1
示教点操作以下,机器人抵达P1位置,选中P1修改位置(手动操纵中三个关键数据要与程序对应才可成功修改位置)
在T_ROB1/Module1/例行程序界面,选中Put_Pen()点击“显示例行程序”就能够进行编程了。
在编程之前需要对所需要工具坐标和工件坐标进行选定,此试验工具坐标和工件坐标为tool0和wobj1。
程序:(注意运动指令速度和转弯数据)
PROC Put_Pen()
MoveJ Offs(p1,0,0,150), v100, z50, tool0\WObj:=wobj1;
!用MoveJ和Offs指令,移动到笔正上方位置
MoveL p1, v50, fine, tool0\WObj:=wobj1;
!用MoveL指令,移动到笔位置
Reset DO_007;
!复位抓手输出信号
WaitTime 1;
!复位抓手后等候1秒,待抓手完全松开
MoveL Offs(p1,0,0,150), v100, z50, tool0\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正上方位置
ENDPROC
在T_ROB1/Module1/例行程序界面,选中Square()点击“显示例行程序”就能够进行编程了。
在编程之前需要对所需要工具坐标和工件坐标进行选定,此试验工具坐标和工件坐标为tool_pen和wobj1。
程序:(注意运动指令速度和转弯数据)
PROC Square()
MoveJ Offs(p100,0,0,150), v100, z50, tool_pen\WObj:=wobj1;
!用MoveJ和Offs指令,移动到方形正上方位置
MoveL p100, v50, z50, tool_pen\WObj:=wobj1;
!用MoveL指令,移动到笔位置
MoveL Offs(p100,0,50, 0), v100, z50, tool_pen\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正上方位置
MoveL Offs(p100,50,50,0), v100, z50, tool_pen\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正上方位置
MoveL Offs(p100,50,0, 0), v100, z50, tool_pen\WObj:=wobj1;
!用MoveL和Offs指令,移动到笔正上方位置
MoveL p100, v100, z50, tool_pen\WObj:=wobj1;
!用MoveL指令,移动到笔位置
MoveL Offs(p100,0,0,150), v100, z50, tool_pen\WObj:=wobj1;
!用MoveL和Offs指令,移动到方形正上方位置
ENDPROC
示教点以下:
P100
在T_ROB1/Module1/例行程序界面,选中Circle()点击“显示例行程序”就能够进行编程了。
在编程之前需要对所需要工具坐标和工件坐标进行选定,此试验工具坐标和工件坐标为tool_pen和wobj1。
程序:(注意运动指令速度和转弯数据)
PROC Circle ()
MoveJ Offs(p200,0,0,150), v100, z50, tool_pen\WObj:=wobj1;
!用MoveJ和Offs指令,移动到圆正上方位置
MoveL p200, v50, z50, tool_pen\WObj:=wobj1;
!用MoveL指令,移动到圆位置
MoveC p201, p202, v100, z10, tool0;
!用MoveC指令,移动到圆弧中点和末端位置
MoveC p203, p200, v100, z10, tool0;
!用MoveC指令,移动到圆弧中点和末端位置
MoveL Offs(p200,0,0,150), v100, z50, tool_pen\WObj:=wobj1;
!用MoveL和Offs指令,移动到方形正上方位置
ENDPROC
示教点以下:
P200 P201
P202 P203
在T_ROB1/Module1/例行程序界面,选中main()点击“显示例行程序”就能够进行编程了。利用ProcCall调用子程序。
依次调用所需例行程序
调试
编程完成后,点击“调试”——“PP移至Main”,然后按下使能按钮,利用面板调试按钮调试程序。
导出程序
在T_ROB1/模块界面,选中“Moudule1”点击“文件”——“另存模块为...”
选择存放路径,可储存于U盘供便于加载到其余控制器,其中路径不能带汉字字符。
导入程序模块调试
导入前应把被导入系统程序模块中Main()例行程序删除或者重命名
在新系统T_ROB1/模块界面,点击“文件”——“加载模块...”
选中导出模块文件进行导入
导入成功后会有错误提醒,依照错误提醒建立对应DO_007信号
RAPID错误,主要是是那个关键数据重建,建立相对应工具数据tool_pen和工件数据wobj1,并重新定于即可
检验程序
调试
编程完成后,点击“调试”——“PP移至Main”,然后按下使能按钮,利用面板调试按钮调试程序。
注意:因导入程序示教点与原系统示教点有差异,须手动降低程序运行速度进行单步调试,确定程序无误和路径安全下即可连续运行。
展开阅读全文