ABB机器人程序编写与运行_第1页
ABB机器人程序编写与运行_第2页
ABB机器人程序编写与运行_第3页
ABB机器人程序编写与运行_第4页
ABB机器人程序编写与运行_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五:

ABB机器人程序编写与运行

1.RAPID程序的组成与结构2.常用的RAPID程序指令使用(赋值指令、运动指令、I/O控制指令和条件逻辑判断指令等)3.RAPID程序特殊指令的使用(FUNCTION功能指令、中断指令TRAP等)知识要点:任务1:认识RAPID程序RAPID程序的结构说明如下:RAPID程序是由程序模块与系统模块组成的。一般地,只通过新建程序模块来构建机器人程序,而系统模块多用于系统方面的控制。用户可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但是不一定在每个模块都包含这四种对象。程序模块之间的数据,例行程序、中断程序和功能是可以互相调用的。在RAPID程序中,只有一个主程序main,并且存在任意一个程序模块中,并且是作为整个RAPID程序执行的起点,其他例行程序都可以被主程序main调用。1、赋值指令和C语言的赋值指令不同,ABB机器人RAPID程序的赋值指令是“:=”,“:=”赋值指令主要在用于对程序数据进行赋值。赋值可以是一个常量或数学表达式任务2:认识常用RAPID程序指令1、赋值指令1)进入需添加赋值指令的例行程序,在指令列表中选择“:=”,2)单击“更改数据类型”,选择“num”数字型数据类型3)在列表中找到“num”数据类型并选择,然后单击“确定”4)选择变量“reg2”1、赋值指令5)选择“<EXP>”并显示蓝色高亮,6)打开“编辑”菜单,单击“仅限定选择内容”选项7)通过在界面打开的软键盘,输入数字10,然后单击“确定”,如图5.8所示。单击“确定”按钮。7)通过在界面打开的软键盘,输入数字10,然后单击“确定”,如图5.8所示。单击“确定”按钮。8)通过以上步骤操作,在程序编辑窗口就能看到所添加的指令(2)添加带数学表达式的赋值指令操作

1)进入需添加赋值指令的例行程序,在指令列表中选择“:=”,如图所示。2)选择变量“reg1”,如图所示。3)选择“<EXP>”选项,界面显示为蓝色高亮,4)选择变量“reg2”,5)单击运算符“+”,6)选择“<EXP>”选项,显示为蓝色高亮7)打开“编辑”菜单,单击“仅限定选择内容”选项8)通过在界面打开的软键盘,输入数字8,然后单击“确定”,如图所示。单击“确定”按钮。(2)添加带数学表达式的赋值指令操作

10)在弹出的对话框中单击“下方”按钮,指令就添加到当前光标的下方处11)通过以上步骤操作,在程序编辑窗口就能看到所添加的指令2、运动指令

工业机器人在空间中的运动主要包括有关节运动指令(MoveJ)、线性运动指令(MoveL)、圆弧运动指令(MoveC)和绝对运动指令(MoveAbsJ)四种方式。(1)关节运动指令MoveJ机器人以最快捷的方式运动至目标点,运动状态不完全可控,但运动路径保持唯一,常用于机器人在空间大范围进行移动,不容易在运动过程中出现关节轴进入机械死点的问题。(1)关节运动指令MoveJ

参数含义MoveJ关节运动指令P1、p2目标点位置数据V500运动速度数据Z30转弯区数据tool1工具坐标数据wobj1工件坐标数据对于界面里的两条关节指令解析如下表5.1所示。(2)线性运动指令MoveL

线性运动指令MoveL,是指机器人TCP从当前点以线性方式运动到目标点,当前点与目标点始终保持一条直线。此时机器人的运动状态可控,运动路径是保持唯一的。(3)圆弧运动指令MoveC

圆弧运动指令MoveC,是指机器人TCP以圆弧的方式从当前点开始,经过一个中间点,最终运动到目标点位置,当前点、中间点、目标点,三点决定一段圆弧。圆弧运动时,机器人的运动状态是可控的,运动路径保持唯一。常用于机器人在工作状态下移动。(3)圆弧运动指令MoveC

参数含义MoveC圆弧运动指令P1圆弧第一个点(当前点)P2圆弧第二个点(中间点)P3圆弧第三个点(目标点)V500运动速度数据Z10转弯区数据tool1工具坐标数据wobj1工件坐标数据对于界面里的线性运动指令、圆弧运动指令解析如下表所示。表5.2“MoveC”指令解析(4)绝对位置运动指令MoveAbsJ

绝对位置运动指令MoveAbsJ,是指机器人以单轴的运动方式运动至目标点,在运动过程中,绝对不存在死点,运动状态完全不可控。MoveAbsJ指令常用于机器人六个轴回到机械零点位置,应避免在生产过程中使用该指令。绝对位置运动指令是机器人的运动使用六个轴和外轴的角度值来定义目标位置数据。参数含义MoveAbsJ绝对位置运动指令\NoEOffs外轴不带偏移数据V500运动速度数据Z30转弯区数据tool1工具坐标数据wobj1工件坐标数据3、I/O控制指令

(1)“Set”输出端口信号置位指令功能:“Set”输出端口信号置位指令用于将数字输出端口置位为“1”。(2)“Reset”数字输出信号复位指令3、I/O控制指令

3、I/O控制指令

(3)“WaitDI”数字输入端口信号判断指令功能:“WaitDI”数字输入端口信号判断指令用于当前数字输入端口信号的值是否与目标值一致。(4)“WaitDO”数字输出端口信号判断指令功能:“WaitDO”数字输出端口信号判断指令用于当前数字输出端口信号的值是否与目标值一致。例如:WaitDOdo1,1;!等待do1=1当程序执行以上指令时,等待do1端口信号值为1。如果do1值为1,则程序继续往下执行。如果do1值为0,则程序一直等待。如果达到最大等待时间300s(此时间可以根据实际在参数中设定)以后,do1的值还不为1,则机器人报警或进入出错处理程序。(4)“WaitUntil”信号判断指令功能:“WaitUntil”信号判断指令用于布尔量、数字量和I/O信号值当前数字输出端口信号的值是否与目标值一致。例如:WaitUntilflag1=true;!等待flag1为真当程序执行以上指令时,等待flag1变量状态。如果flag1值为真,则程序继续往下执行。如果flag1值为假,则程序一直等待。如果达到最大等待时间300s(此时间可以根据实际在参数中设定)以后,flag1的值还不为真,则机器人报警或进入出错处理程序。3、I/O控制指令

4、逻辑指令

(1)“CompactIF”紧凑型条件判断指令“CompactIF”紧凑型条件判断指令只要用于当一个条件满足以后,就执行一句指令,如图5.33所示,如果flag2的状态为TRUE,则do2就被置位为1。4、逻辑指令

(2)“IF条件判断指令”“IF条件判断指令”主要用于根据不同的条件执行不同的指令。如图5.34所示:当num2为1时,则flag2会被赋值为TRUE;当num2为2时,则flag2会被赋值为FALSE;如果以上两种条件都不满足,程序则执行ELSE部分,将do2置位为1。条件判定的条件数量可以根据实际应用的情况进行增减。(3)“FOR”重复执行判断指令功能:“FOR”重复执行判断指令根据循环变量在指定范围内递增或递减而重复执行语句块,主要用于一个或多个指令需要重复执行数次(执行次数确定)的情况。FOR<循环变量>FROM<初始值>TO<终止值>[STEP<步长>]DO<语句块>ENDFOR循环开始时,循环变量从初始值开始,如果未指定STEP步长值,则默认STEP值为1,如果是递减的情况,STEP值设定为-1。每次循环时,都要重新计算循环变量,只要变量不在循环范围内,循环将结束,程序继续执行后续的语句。如图5.35所示,例行程序CompactIFRoutine将重复执行20次。4、逻辑指令

(4)“WHILE”条件判断指令功能:“WHILE”条件判断指令主要用于在给定条件满足(条件表达式为真)的情况下,程序会一直重复执行对应的指令(语句块)。一旦条件不满足(表达式求值为假),就不会执行语句块指令,循环结束,继续执行循环后续指令。WHILE<条件表达式>DO<语句块>ENDWHILE4、逻辑指令

(1)“ProcCall”调用例行程序指令功能:和C语言函数调用功能类似,“ProcCall”调用例行程序指令用于在指定位置调用例行程序,其操作如下:1)打开一个例行程序,选择“<SMT>”即为要调用例行程序的位置,并在“添加指令”列表中选择“ProcCall”指令

5、其他常用指令

(2)“RETURN”返回例行程序指令功能:和C语言“Return”调用功能类似,“RETURN”返回例行程序指令被执行时,则立刻结束本例行程序的执行,返回程序指针到调用此例行程序的位置

(3)“WainTime”时间等待指令功能:和C语言的“delay”延时指令类似,“WainTime”时间等待指令主要用于程序在等待一个指定的之间后,再继续往下执行。

5、其他常用指令

任务3:建立一个基本PAPID程序

建立一个基本的RAPID程序的基本步骤可以参考如下:1)确定RAPID程序需要多少个程序模块。需要多少程序模块主要取决于实际应用情况的复杂性,可以根据实际需要,把各种不同的功能(逻辑控制、位置计算等)放到不同的程序模块当中,方便日后的程序管理。2)确定各个程序模块需要建立多少个例行程序。在每个程序模块里,针对不同的功能(吸盘打开作业、吸盘停止作业、夹具打开、夹具关闭等),可分别建立各自的例行程序,方便程序之间的调用。1、建立PAPID程序实例

1)单击左上角“ABB”主菜单,打开ABB机器人的主菜单界面,单击“程序编辑器”,如图所示。2)在弹出的对话框中单击“取消”按钮,如图所示。3)单击“文件”菜单,然后在弹出的菜单中单击“新建模块”4)在弹出的对话框中单击“是”按钮5)在“名称”一栏中,通过“ABC”按钮,进行模块名称的设定,然后单击“确定”1、建立PAPID程序实例

6)选中“Module1”,然后单击“显示模块”7)单击“例行程序”,进行RAPID例行程序的创建8)在Module1模块界面,单击“文件”菜单,然后点击“新建例行程序”菜单9)首先创建一个主程序,并将其命名为“main”,然后单击“确定”按钮10)在完成main主程序创建后,根据步骤8)和步骤9)依次建立相关例行程序:rMoveStart()、rInitial()、rMoveTask()11)返回ABB主菜单,点击进入“手动操纵”界面,确认已选择要使用的工具坐标系和工件坐标系1、建立PAPID程序实例

12)回到程序编辑器界面,单击“显示例行程序”按钮,然后点击“rMoveStart()”例行程序13)单击“添加指令”菜单,在窗口右边打开指令列表。14)在指令列表中选择“MoveJ”指令

15)关闭指令列表,双击“*”程序点,进入指令参数修改界面16)通过新建程序点或选择相应的参数数据(程序点),可以设定运行轨迹点的名称、速度、转弯半径等数据1、建立PAPID程序实例

18)选中图5.58所示的指令行,单击“修改位置”,将机器人当前位置记录下来。19)单击“修改”按钮进行位置确认20)单击“例行程序”,返回新建例行程序界面,单击“rInitial()”例行程序,然后单击“显示例行程序”22)在“rInitial()”例行程序中,在程序运行之前,可以加入需要初始化的参数内容,如设定速度参数、加速度参数,或者进行I/O复位操作等23)与步骤20)一样,单击“例行程序”,返回新建例行程序界面,单击“rMoveTask()”,然后单击“显示例行程序”。24)添加运动指令“MoveJ”,并将程序的各部分参数值设置为合适的参数值

25)手动操纵机器人,将机器人移动至图5.63所示位置,作为机器人的p1点1、建立PAPID程序实例

26)选中p1点,单击“修改位置”,在随后弹出的界面中,单击“是”按钮,将机器人当前位置记录到p1中27)添加运动指令“MoveL”,并将程序中的参数设定为合适的数值29)手动操纵机器人,将机器人移至图5.66所示位置,作为机器人的p2点1、建立PAPID程序实例29)选中p2程序点,单击“修改位置”,在随后弹出来的界面中,单击“是”按钮,将机器人的当前位置记录到p2点中30)单击“例行程序”,返回至新建例行程序界面,如图所示。31)单击“main”主程序,然后单击“显示例行程序”,进行程序结构的设定,调用初始化例行程序“rInitial”,点击“<SMT>”选中程序行,单击“添加指令”打开添加指令列表,单击“ProcCall”指令

32)单击“rInitial”例行程序,在弹出对话框中,点击“确定”按钮33)添加“WHILE”指令,并将条件设定为“TRUE”1、建立PAPID程序实例34)添加“IF”指令35)选用“IF”指令是为了判断di1(输入口1)的状态,当di1=1时,才能继续执行IF指令后面的路径运动,选中“<EXP>”,并单击“编辑”36)在弹出的界面中,单击“ABC”按钮,输入“di1=1”,然后单击“确定”。37)在“IF”指令下,选中“<SMT>”,然后单击“ProcCall”,依次调用例行程序“rMoveTask”和“rStart”

1、建立PAPID程序实例38)在“IF”指令下方添加“WaitTime”指令,值设定为0.5,防止系统CPU过载39)单击“调试”,打开程序调试菜单40)单击“检查程序”,对程序的语法进行检查41)单击“确定”按钮,完成程序语法检查,若有语法错误,系统会提示出错位置与建议操作2、调试RAPID程序

在完成程序的编辑后,需要对程序进行调试,调试的目的主要有两个:一是检查程序中的位置点是否正确,二是检查程序的逻辑控制是否有不合理、不正确的地方。(1)调试rMoveStart例行程序1)在“程序编辑器”中打开“调试”菜单,选择“PP移至例行程序”

2)单击选中“rStart”例行程序,单击“确定”按钮2、调试RAPID程序(3)调试main主程序1)打开程序调试菜单,单击“PP移至Main”菜单。如图所示。2)程序指针跳至主程序的第一行指令,按下示教器使能键,开启电机,按一下“程序启动”按键,即可运行整个程序。观察机器人移动轨迹是否正确。若运行过程中需要停止机器人,应先按下“程序停止”按键,然后再松开使能键。如图5.86所示。由于main主程序中要;判断di1输入信号值是否为1,程序一直停留在IF循环外。为了让程序继续运行,可以参考前面章节内容,将di1值强制设置为1,保证程序的正常运行。

3、自动运行RAPID程序

在手动状态下,完成了机器人程序的调试后,可以将机器人投入到自动运行状态。自动运行可按如下步骤进行操作:首先将状态钥匙旋至左侧的自动状态,如图5.87所示。2)在弹出的对话框中,单击“确定”按钮,确认状态的切换3)单击“PP移至Main”菜单,将程序指针移至指向主程序的第一行指令4)在弹出的对话框中,单击“是”按钮,确认移动PP。5)按下控制柜上的白色控制按钮,使电机处于开启状态,如图5.87所示。6)按下示教器上的“程序启动”按键,随着程序指针不断往下移动,机器人按照设定的运动轨迹自动运行。任务4:特殊指令使用-1、使用FUNCTION功能

(1)“ABS()”功能指令的使用方法1)新建“AbsRoutine()”例行程序,打开“添加指令”列表,选择“:=”赋值指令,2)确定为num数据类型,如果不是num数据类型,可将其更改为该数据类型,3)选择数据列表中的“reg1”。4)选择赋值指令后的“<EXP>”,并单击“功能”标签,5)在弹出的对话框中选择“Abs()”功能,然后选择“reg2”6)单击“确定”标签,完成Abs功能的添加操作(2)“Offs()”功能指令的使用方法

1)新建“OffsRoutine()”例行程序,打开“添加指令”列表,选择“:=”赋值指令。2)单击“更改数据类型”,选择“robtarget”数据类型,然后单击“确定”,3)单击“新建”,分别建立名称为p50和p60的变量,然后单击“确定”,4)选择赋值指令后的“<EXP>”,单击“功能”标签,5)选择“Offs()”功能,6)选择数据列表中的“p50”。7)对后面三个“<EXP>”分别编辑输入X、Y、Z方向的偏移值100mm,200mm,300mm,8)单击“确定”标签,完成Offs功能的添加操作2、使用RAPID程序特殊指令及功能

(1)TEST-CASE分支循环指令当一个变量有多种取值可能时,TEST-CASE循环指令用于对一个变量进行判断,从而执行不同的程序,TEST指令主要用于测试变量的数值,根据变量值不同跳转到预定义的CASE分支中,达到执行不同程序的目的。如果没有找到预定义的CASE程序段,将会跳转到DEFAULT段(2)GOTO指令GOTO指令主要用于跳转到例行程序的指定的标签位置,配合Lable指令(跳转标签)使用,在如下的GOTO指令应用实例中,执行Routine2程序过程中,当判断条件di1=1满足时,程序指针会自动跳转到带跳转标签rStart的位置,开始执行Routine3的程序。2、使用RAPID程序特殊指令及功能

(3)运动设定指令VelSet、AccSet1)速度设定指令VelSetVelSet指令用于设定程序运行的最大速度和倍率。该指令仅可用于主任务T_ROB1,在MultiMove系统中可用于运动任务中2)加速度设定指令AccSetAccSet可定义机器人的加速度。当处理不同的机器人负载时,应当采用合适的机器人加速度,使机器人的移动更加顺畅。该指令仅可用于主任务T_ROB1,在MultiMove系统中可用于运动任务中。AccSet50,100;!加速度限制到正常值的50%AccSet100,50;!加速度坡度限制到正常值的50%3、使用中断程序TRAP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论