ABB机器人应用手册.docx
《ABB机器人应用手册.docx》由会员分享,可在线阅读,更多相关《ABB机器人应用手册.docx(25页珍藏版)》请在冰豆网上搜索。
ABB机器人应用手册
ABB机器人应用手册
1:
回原点操作…………………………………………………………………………………2
2:
全自动运行…………………………………………………………………………………3
3:
手动运行……………………………………………………………………………………3
4:
回校准点……………………………………………………………………………………4
5:
机器人退盘…………………………………………………………………………………4
6:
调整垛型……………………………………………………………………………………5
7:
程序法调整垛型………………………………………………………………………………8
8:
程序法调整抓烟点……………………………………………………………………………9
9:
简单程序了解…………………………………………………………………………………10
10:
编程实例……………………………………………………………………………………11
编程实例1:
………………………………………………………………………………11
编程实例2:
………………………………………………………………………………12
编程实例3:
………………………………………………………………………………13
11:
机器人工作流程……………………………………………………………………………16
12:
修改密码……………………………………………………………………………………17
13:
系统备份还原………………………………………………………………………………18
14:
系统I/O信号………………………………………………………………………………18
15:
机器人当前备忘……………………………………………………………………………18
16:
机器人与PLC的交互信号…………………………………………………………………18
机器人应用手册
1:
回原点操作
机器人自动运行前必须先回原点。
包括开机,中途打手动,中途故障处理后等。
1.1常用方式,手动状态下:
(推荐该方法)
【开始菜单→自动生产窗口→pp移至main→长按使能键+短按运行键】
A:
如果机器人应经在任意一道抓烟等待点或者在机器人原点附近等程序已知的位置,该步骤就可以让机器人会自动回到原点,到位后释放使能键。
B:
如果机器人不在上述所述的位置,机器人不会动作,窗口弹出一个请求”Moverobotmanuallynearhomeposition”,此时:
B1:
如果确定从当前位置回到HOME位置的途中无障碍物,不会导致机器人碰撞,则忽略该提示,按“确定”,此时屏幕指针会指向“MoveJpHome,v200,fine,tSucker;”,【长按使能键+短按运行键】,机器人将回原点,到位后释放使能键。
B2:
如果不能确定路径安全,则手动摇机器人到HOME点附近的安全区域,再【长按使能键+短按运行键】,机器人将回原点,到位后释放使能键。
注:
(安全区域:
三道抓烟点上方半米以上的空间区域)
1.2其他方式,手动状态下:
【开始菜单→程序编辑器→调试→pp移至main→长按使能键+短按运行键】
A:
如果机器人应经在任意一道抓烟等待点或者在机器人原点附近等程序已知的位置,该步骤就可以让机器人会自动回到原点,到位后释放使能键。
B:
如果机器人不在上述所述的位置,机器人不会动作,窗口弹出一个请求”Moverobotmanuallynearhomeposition”,此时,
B1:
如果确定从当前位置回到HOME位置的途中无障碍物,不会导致机器人碰撞,则忽略该提示,按“确定”,此时屏幕指针会指向“MoveJpHome,v200,fine,tSucker;”,【长按使能键+短按运行键】,机器人将回原点,到位后释放使能键。
B2:
如果不能确定路径安全,则手动摇机器人到HOME点附近的安全区域,再【长按使能键+短按运行键】,机器人将回原点,到位后释放使能键。
注:
(安全区域:
三道抓烟点上方半米以上的空间区域)
1.3其他方式,手动状态下:
【任意窗口→找到MoveJpHome,v200,fine,tSucker指令→调试→单击该指令→movepp到光标→判断回程安全后长按使能键+短按单步运行键】尽量少用!
2:
全自动运行
机器人自动运行前机器人必须在原点,同时,程序指针必须在主程序开头。
具体操作:
【回原点操作】→【钥匙打自动→屏幕确认→上电按钮→开始菜单→自动生产窗口→pp移至main→短按运行键】
此时,会弹出对话窗口,继续步骤:
【pallet→输入密码007→确认→输入第一托盘箱数→确认→输入第二托盘箱数→确认→输入第三托盘箱数→确认】
此时,屏幕下方出现stop和run等选项。
如果要让机器人100%全速自动运行,直接按【RUN】。
如果要让机器人低速自动运行,点击run下方的设置按钮,设置好机器人运行的速比,再点击标题栏开始菜单右边闪烁的提示框,再选择其中的【RUN】。
此时,机器人开始自动码垛运行。
注1:
(自动运行过程中可以随时按下停止键,机器人将暂停。
若再按下运行键,机器人将继续自动运行;若暂停后按下单步运行键,机器人将单步执行一句指令。
)
注2:
(自动运行过程中可以随时点击屏幕右下角的设置按钮,改变机器人运行速度。
)
注3:
(我们站在控制柜处,面向机器人时的左边是第一个托盘,右边是第三个。
)
注4:
(机器人自动运行前,吸盘上不能有烟箱信息,否则机器人将不动作。
)
注5:
(机器人掉烟后,机器人要打自动后才能复位输送机掉烟故障。
)
3:
手动运行
该功能主要用于调试时使用,包括调整坐标系,调整垛型等,编辑程序,调整参数,检查码垛动作等。
在钥匙不打自动,机器人不上电的情况下,通过长按使能键保持机器人持续运行,中途可以随时修改程序,编辑参数,随时让机器人动作倒回再执行等。
【普通操作员不使用该功能】
【回原点操作】→【开始菜单→程序运行窗口→pp移至main→长按使能键→短按运行键】
此时,会弹出对话窗口,继续步骤:
【pallet→输入密码007→确认→输入第一托盘箱数→确认→输入第二托盘箱数→确认→输入第三托盘箱数→确认】
此时,屏幕下方出现stop和run等选项。
如果要让机器人以手动全速运行,直接按【RUN】。
(手动全速约自动运行速度的20%)
如果要让机器人更低速运行,点击run下方的设置按钮,设置好机器人运行的速比,再点击标题栏开始菜单右边闪烁的提示框,再选择其中的【RUN】。
此时,机器人开始手动码垛运行。
该运行如果如果不暂停的话,其动作将与自动运行时完全一样,但速度很低。
注1:
(手动运行过程中可以随时释放使能键,机器人将暂停。
若再长按使能键和短按运行键,机器人将继续手动运行;若暂停后长按使能键和短按单步运行键,机器人将手动单步执行一句指令。
)
注2:
(手动运行过程中可以随时点击屏幕右下角的设置按钮,改变机器人运行速度。
)
注3:
(中途可以暂停机器人动作,在理解程序的前提下,可以把光标移动到该段程序的任意指令上,再选择【调试→把程序指针移动到光标→长按使能键和短按单步运行键】,机器人将执行选中的指令动作。
例如,机器人从指令A执行到了指令B,此时可以暂停,编辑指令A,再让机器人回头执行指令A。
)
注4:
(手动运行前,机器人吸盘上不能有烟箱信息,否则机器人将不动作。
)
4:
回校准点
该程序可以让机器人6个轴回到各自编码器的0点位置。
用于机器人意外丢失零点后的检查,或准备长期断电前也要让机器人回到校准点。
如果得知公司将停电,必须在停电前关闭机器人电源,否则意外断电将可能导致机器人丢失校准点。
回校准点步骤:
【开始菜单→程序编辑器→调试→pp移至例行程序→选择子程序rcalib→确定→长按使能键+短按运行键】,机器人将回到各轴的编码器0点,释放使能键。
注:
如果发现机器人码垛位置不准,且回校准点后发现各轴并未在各自零点刻度上,则怀疑校准点丢失,需要校正各轴零点后再执行【校准编码器】操作。
随后需要验证码垛位置是否正确。
(一般来说码垛已经不再精确了,需要微调抓烟点坐标和工件坐标系)。
5:
机器人退盘
该程序可以让机器人在必要情况下执行退盘动作。
正常情况码垛不足24件又需要退盘时,应该在输送机操作终端上选择“强制退盘”,但前提是机器人处于自动状态。
如果机器人只能处于手动状态或因机器人故障导致操作终端退盘操作无效,可以让机器人执行退盘。
机器人程序退盘步骤:
【开始菜单→程序编辑器→调试→pp移至例行程序→选择子程序reject1或reject2或reject3→确定→长按使能键+短按运行键】,按完运行键后立即放开使能键和运行键,机器人将发送指令给PLC强退相应的托盘。
注1:
(如果持续按着,将会持续退多个盘)
6:
调整垛型
1:
个别烟包码放位置不合格
如果机器人码垛个别烟包位置不合格,可以调用rOffsPallet1A()子程序来调整单件烟箱位置。
注:
如图,烟包在托盘上的坐标是以工件坐标系为基准的,以第三个托盘上的大件烟箱为例,如果要把图中的烟箱往托盘边角移动,则具体调整垛型步骤如下:
【开始菜单→程序编辑器→调试→pp移至例行程序→选择子程序rOffsPallet3A()→确定→长按使能键+短按运行键】,此时,将跳出一个询问界面,要求输入要调整的烟箱号。
根据界面上提示操作:
【看到提示"Whichbagplacepositionneedmodified?
"→输入要调整的箱号AA→确定→看到提示“Nowyouchooseis:
AA”和“Nowyouneedmodifyis:
X0”和“PleaseinputX-directionoffsetdistance”→输入X方向的偏移量#X→确定→看到提示“Nowyouneedmodifyis:
Y0”和“PleaseinputY-directionoffsetdistance”→输入Y方向的偏移量#Y→确定→看到提示“Nowyouneedmodifyis:
Z0”和“PleaseinputZ-directionoffsetdistance”→输入Z方向的偏移量#Z→确定→按提示继续类似步骤的调整下一个箱号或释放使能键,结束设置】
注:
"Whichbagplacepositionneedmodified?
"——你要调整哪个烟箱?
输入要调整的箱号AA——AA可以是01-24的任意箱号。
“Nowyouchooseis:
AA”——你现在选的箱号是AA
“Nowyouneedmodifyis:
X0”——当前X方向的偏移量是0
“PleaseinputX-directionoffsetdistance”——请输入你要的X方向偏移量
“Nowyouneedmodifyis:
Y0”——当前Y方向的偏移量是0
“PleaseinputY-directionoffsetdistance”——请输入你要的Y方向偏移量
“Nowyouneedmodifyis:
Z0”——当前Z方向的偏移量是0
“PleaseinputZ-directionoffsetdistance”——请输入你要的Z方向偏移量
假设要把第三托盘上大件烟箱的第6件往左边偏移10毫米,往入库方向偏移5毫米,则在上述过程中,【输入要调整的箱号AA替换为06】,往入库方向偏移5毫米即工件坐标系中往X负方向移动5毫米,即【请输入你要的X方向偏移量为-5】,往左边移动10毫米,则【请输入你要的Y方向偏移量输入为-10】(注意,如果显示的“Nowyouneedmodifyis:
3”,表示当前偏移量已经是3了,不能输入-10,而是输入-7,即该偏移量是不累加的,一定谨慎输入,否则可能导致偏移超出预期。
)。
Z轴不需要偏移的话就输入他原来的值即可。
这样单件烟箱的偏移设置即结束。
注:
例行程序里调整单件偏移量的子程序:
rOffsPallet3A()——调整第三托盘大箱偏移量的子程序
rOffsPallet3B()——调整第三托盘小箱偏移量的子程序
rOffsPallet2A()——调整第二托盘大箱偏移量的子程序
rOffsPallet2B()——调整第二托盘小箱偏移量的子程序
rOffsPallet1A()——调整第一托盘大箱偏移量的子程序
rOffsPallet1B()——调整第一托盘小箱偏移量的子程序
注意:
目前由于程序的缺陷,该字程序调整对于21-24件的烟箱是无效的。
21-24坐标需要直接在PATTERN.MOD里直接修改对应的子程序。
而且,通过试验,21-24的Y坐标已经调整倒左极限了,若继续向左移动接近机器人的工作极限范围,可能导致不可预期的23-24放烟位置的改变。
所以,若最后证实无法改变突破该极限时放烟坐标的突发变化,则不应该修改程序缺陷,以避免被继续的通过rOffsPallet改变偏移量。
2:
垛型整体需要偏移
需要调整托盘工件坐标系
如果24件烟箱相互位置很整齐,但整体在托盘上的位置不准确,即要一次性将24件烟箱往同一方向移动或者要改变坐标系姿态时需要调整工件坐标系。
注意,调整坐标系不仅可以调整XYZ三个位置坐标,还可以调整q1q2q3q4等坐标系姿态,需要谨慎。
否则姿态的稍大偏移会导致跺型较大的偏差。
工件坐标系的位姿是在机器人基坐标系上表达的,与工件坐标系不同,需要注意。
具体方法:
以调整第三托盘大箱的工件坐标系为例:
【开始菜单→程序编辑器→调试→pp移至例行程序→选择子程序rDefineWobj_3A()→确定→长按使能键+短按运行键】,此时,将跳出一个询问界面:
"plsmanualjoggingTCPtocorrectpostowPal3A"
请手动操作机器人工具中心点到第三托盘大箱的工件坐标系的正确位置上
"thenrunagain"
位置调整好后再按“run”
弹出对话框"PosisOK?
"
确定位置后就按“OK”
调整完毕。
注意:
该方法在实际使用中调整效果超出预期,不很理想。
在掌握前不使用该方法。
以下为程序调整法,谨慎使用
7:
调整垛型
1:
个别烟包码放位置不合格
可以参照【6】中所述的常规方法。
使用该方法调整后,如果要查看当前所有烟箱的偏移量,可以查看【开始菜单→程序编辑器→模块→DATE→确认】,即可以查看当前机器人使用的各坐标系参数等。
具体为:
persposdelpos3A{24}:
=[[1,2,6],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,-20,0],[0,-20,0],[0,-20,0],[0,-20,0]];
以上的坐标即为第三托盘大箱烟箱的单件偏移量。
总共有24组数据,按方法【6】手动调整垛型后将会在该组数据中看到相应得变化,例如24组中的第一组[1,2,6]表示第一件烟的X方向偏移量为1,Y方向偏移量为2,Z方向偏移量为6。
所以,我们可以通过直接一次性的修改该偏移坐标来改变各个烟箱的偏移量。
但由于在【开始菜单→程序编辑器→模块→DATE→确认】中只能查看该数据而不能编辑,所以需要改这组数据时需要将ABB当前系统备份到U盘,在电脑上编辑DATE.MOD里的persposdelpos3A{24},再加载到机器人后就可以改变系统的烟箱的单件偏移了。
同理,可以在电脑上修改其他托盘大小箱的单件偏移。
注意:
一般情况下不使用该方法调整单件垛型,除非用于批量的修改或则在电脑上修改工件坐标系时顺便校正的。
2:
垛型整体需要偏移
参照前面【6】所描述的,通过示教器调整的托盘坐标系实际效果不易保证。
所以调整整体垛型时暂时使用下述方法更为可靠。
具体操作为:
把机器人系统备份出来到PC上,打开DATE.MOD文件,查找到该坐标参数:
PERSwobjdatawPal3A:
=[FALSE,TRUE,"",[[1135.54,1889.35,-57.5993],[0.924229,0.00832902,-0.00467486,-0.381719]],[[-0.004441,0.002503,0.003785],[1,-0.000208,0,0]]];
该坐标就是第三托盘大箱的工件坐标系参数。
其中,第一组参数是该工件坐标系在机器人基坐标系中的[XYZ]坐标,第二组是机器人的四元素坐标[q1q2q3q4],用来定义工件坐标系在基坐标系中的姿态,一般不需要去修改。
第三组数据是机器人146等轴的配置,不管。
当需要程序修改整个码垛位置时,例如把第三托盘大箱的码垛垛型做整体偏移,首先要注意由于工件坐标系与基坐标系的方向是不同的:
如图所示,根据CAD测算,机器人基坐标系与六个工件坐标系得夹角约为45度。
所以,如果要将整个垛型往入库方向移动20毫米,则需要角度换算到基坐标系。
需要修改PERSwobjdatawPal3A中的第一组坐标[XYZ],实际的值现在为[1135.54,1889.35,-57.5993](意思为该托盘的工件坐标系在基坐标系中的位置)。
据三角函数可以计算的出为达到工件坐标系往入库方向移动20毫米,则需要把[1135.54,1889.35,-57.5993]参数X方向左移14毫米,Y方向上移14毫米。
即新的PERSwobjdatawPal3A:
坐标系[XYZ]坐标改为[1135.54-14,1889.35+14,-57.5993],即[1121.54,1903.35,-57.993],这样就完成了工件坐标系整体移动20毫米。
把该程序加载到机器人即可。
注:
一般不用,但这个方法可以在精确的不改变工件坐标系姿态的情况下改变它的位置。
实际上,要实现整体垛型的偏移,也可以通过改变所有24件烟箱的单件偏移量来实现。
8:
调整抓烟点
如果需要改变机器人的抓烟位置,例如发现机器人抓烟时将烟箱下压过度导致过载报警或其他需要调整的情况时,可以查找到抓烟点的坐标在DATE模块中的位置如下
CONSTrobtargetpPick1TypeA:
[[555.04,-1310.79,275.14],………………
CONSTrobtargetpPick1TypeB
CONSTrobtargetpPick3TypeA:
等六个坐标,包括姿态与位置等。
如果需要调整,则方法与程序调整垛型方式一样,同样需要作坐标系的转换,除了Z轴的坐标。
注意,如果改变抓烟点的XY坐标,则需要考虑是否会影响到放烟时Z方向的坐标不变时放下的烟箱是否被下压。
9:
简单程序了解
机器人指令的注解:
在程序中,常常看到moveJ和moveL等指令,简要注解:
MoveAbsJ指令,目标点用六个轴伺服电机的偏转角度值来指定的。
例如回较准点的指令为:
MoveAbsJjCalib,v200,fine,tSucker;把各轴的电机偏转角度回到0度。
因为目标点jCalib的实际坐标在DATE数据库里的值为:
CONSTjointtargetjCalib:
=[[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
MOVEJ指令是机器人的TCP从A点运动到B点但不保证AB两点之间的轨迹是直线,此指令适合用于机器人大范围的两点间的运动。
例如机器人会原点的指令为:
MoveJpHome,v200,fine,tSucker\WObj:
=wobj0;
关节轴移动机器人到原点,速度为200毫米每秒,性质为必须到达目标点,运动主体为吸盘,参考坐标系为wobj0(基坐标)。
MOVEL指令是机器人的TCP从A点运动到B点,AB两点之间的轨迹是直线,此指令适合用于机器人直线运动,如果大范围的移动用此指令的话就容易进行死点。
例如机器人抓烟时的指令过程为:
MoveJOffs(pPick,0,0,300),vMaxEmpty,z50,tSucker\WObj:
=wobj0;
曲线移动机器人到当前赋值过的pPick抓烟点的上方300毫米处,半径距离50毫米。
MoveLOffs(pPick,0,0,50),vMidEmpty,z5,tSucker\WObj:
=wobj0;
直线移动机器人到当前赋值过的pPick抓烟点的上方50毫米处
其他动作指令如:
rVacuumOn1:
调用子程序rVacuumOn1让吸盘1启动负压吸气
rVacuumOn2:
调用子程序rVacuumOn2让吸盘2启动负压吸气
IncrnBoxCount:
给抓烟计数器加1
PulseDO\PLength:
=0.6,doIF1Counter,输出0.6秒高电平,告诉PLC取走一件烟
rEjectPal1:
调用rEjectPal1子程序,第一托盘强制退盘
IFbOF1=TRUE:
内部定义的bOF1状态,如果第一托盘允许放货。
其他与PLC对接的信号等见附录1《ABBPLC对接信号》
MOVE指令举例:
直接坐标运动相对坐标运动
10:
编程实例
编程实例1:
新线一号机器人程序中有如下指令
1-20件放烟位置指令:
MoveLpPlaceFirst,vMinLoad,fine,tSucker\WObj:
=CurWobj;
解析:
机器人线性移到第一件烟的放烟点pPlaceFirst,速度为满载低速,性质为必须到达目标点,运动主体为吸盘,坐标系为当前坐标系(实际指向一个工件坐标系)。
1-20件烟箱偏移修正指令:
以放第9件烟时X坐标为例,有一句计算偏移量的
pPlaceFirst.trans.x:
=pPlaceFirst.trans.x+delpos3A{9}.x;
(第一件放烟点的X坐标)=(放烟点的X坐标)+(我们设定的偏移量)
根据上述两句程序,放烟位置指令中放烟点的坐标使用的是pPlaceFirst,而烟箱偏移修正程序中让该放烟坐标加上了我们设定的偏移量delpos3A{1}.x,所以我们可以通过设置roffspallet3A()等的偏移量来有效的调整1-20件烟箱的垛型偏移。
但是,
21-24件放烟位置指令:
MoveLpPlace,v300,fine,tSucker\WObj:
=CurWobj;
解析:
机器人线性移动到放烟点pPlace,速度为300毫米每分钟,性质为必须到达目标点,主体为吸盘,坐标系为当前坐标系(实际指向一个工件坐标系)。
21-24件烟箱偏移修正指令:
以第21件X坐标为例,计算偏移量的语句
pPlaceFirst.trans.x:
=pPlaceFirst.trans.x+delpos3A{21}.x;
这里把我们设定的偏移量加到与1-20件烟一样的pPlaceFirst坐标中,但实际放烟时程序不使用pPlaceFirst,而是放到pPlace坐标上,这导致我们通过调用roffspallet3A()等无论如何修改21-24件烟的偏移量都无法成功。
21-24件码垛位置不符合,导致堆垛机报警。
同样的问题会出现在将来换牌抓单烟箱码在21-24位置的时候。
机器人都是按指令执行动作的,如果熟悉流程和各指令有利于分析机器人的异常情况,包括故障发生时通过查看当前机器人的程序指针来判断发生的故障是什么。
根据上面的实例,看出该机器人的偏移量设置程序里有缺陷。
解决方法:
暂时已经修改,