《ABB机器人的程序编程(39页).doc》由会员分享,可在线阅读,更多相关《ABB机器人的程序编程(39页).doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-ABB机器人的程序编程-第 39 页ABBa-J-6ABB机器人的程序编程6.1任务目标 掌握常用的PAPID程序指令。 掌握基本RAPID程序编写、调试、自动运行和保存模块。6.2任务描述u 建立程序模块test12.24,模块test12.24下建立例行程序main和Routine1,在main程序下进行运动指令的基本操作练习。u 掌握常用的RAPID指令的使用方法。u 建立一个可运行的基本RAPID程序,内容包括程序编写、调试、自动运行和保存模块。6.3知识储备6.3.1程序模块与例行程序RAPID程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。应用程序是使
2、用称为RAPID编程语言的特定词汇和语法编写而成的。RAPID是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。RAPID程序的基本架构如图所示:RAPID程序程序模块1程序模块2程序模块3程序模块4程序数据主程序main例行程序中断程序功能程序数据例行程序中断程序功能程序数据例行程序中断程序功能RAPID程序的架构说明:1) RAPID程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。2) 可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,
3、用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。3) 每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。4) 在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID程序执行的起点。操作步骤:1. 单击“程序编辑器”,查看RAPID程序。2. 单击“例行程序”,查看例行程序列表。3. 单击“后退”或“模块”标签查看模块列表。4. 在“模块”和“例行程序”视图中,可以点击“文件”“新建”去建立模块或例行
4、程序。6.3.2在示教器上进行指令编程的基本操作ABB机器人的RAPID编程提供了丰富的指令来完成各种简单与复杂的应用。下面就从最常用的指令开始学习RAPID编程,领略RAPID丰富的指令集提供的编程便利性。1. 打开ABB菜单,选择“程序编辑器”。2. 选中要插入指令的程序位置,高显为蓝色。3. 单击“添加指令”,打开指令列表。4. 单击此按钮可切换到其他分类的指令列表。6.4任务实施6.4.1基本RAPID指令练习建立程序模块test12.24,模块test12.24下建立例行程序main和Routine1,在main程序下进行运动指令的基本操作练习。1.赋值指令“:=”赋值指令用于对程序
5、数据进行赋值。赋值可以是一个常量或数学表达式。下面的操作步骤以添加一个常量赋值与数学表达式赋值说明此指令的使用:常量赋值:reg1:=5;数学表达式赋值:reg2:=reg1+4;(1)添加常量赋值指令的操作1. 在指令列表中选择“:=”。2. 单击“更改数据类型”,选择num数字型数据。3. 在列表中找到“num”并选中,然后单击“确定”。4. 选中“reg1”。5. 选中“”并蓝色高亮显示。6. 打开“编辑”菜单,选择“仅限选定内容”。7. 通过软键盘输入数字“5”,然后单击“确定”。8. 单击“确定”。9. 在这里就能看到所增加的指令。(2)添加带数学表达式的赋值指令的操作1. 在指令列
6、表中选择“:=”。2. 选中“reg2”。3. 选中“”,显示为蓝色高亮。4. 选中“reg1”。5. 单击“+”按钮。6. 选中“”,显示为蓝色高亮。7. 打开“编辑”菜单,选择“仅限选定内容”,然后在弹出的软键盘画面中输入“4”,单击“确定”。8. 确认正确后,单击“确定”。9. 单击“下方”,添加指令成功。10. 单击“添加指令”,将指令列表收起来*提示:编程画面操作技巧放大/缩小画面。向上/向下翻页。向上/向下移动。2.机器人运动指令机器人在空间中运动主要有关节运动(MoveJ)、线性运动(MoveL)、圆弧运动(MoveC)和绝对位置运动(MoveAbsJ)四种方式。(1)绝对位置运
7、动指令绝对位置运动指令是机器人的运动使用六个轴和外轴的角度值来定义目标位置数据。操作步骤:1.进入“手动操纵”画面,确认已选定工具坐标与工件坐标(*提示:在添加或修改机器人的运动指令之前,一定要确认所使用的工具坐标与工件坐标)。2.选中指令的位置,打开“添加指令”菜单,选择“MoveAbsJ”指令。指令解析:MoveAbsJ *NoEOffs, v1000, z50, tool1Wobj:=wobj1;参数含义*目标点位置数据NoEOffs外轴不带偏移数据v1000运动速度数据1000mm/sz50转弯区数据tool1工具坐标数据wobj1工件坐标数据*提示:MoveAbsJ常用于机器人六个轴
8、回到机械零点(0)的位置。(2)关节运动指令关节运动指令是对路径精度要求不高的情况下,机器人的工具中心点TCP从一个位置移动到另一个位置,两个位置之间的路径不一定是直线。指令解析:MoveJ p10, v1000, z50, tool1Wobj:=wobj1;参数含义p10目标点位置数据v1000运动速度数据关节运动适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。*注意:目标点位置数据定义机器人TCP点的运动目标,可以在示教器中单击“修改位置”进行修改。运动速度数据定义速度(mm/s)转弯区数据定义转变区的大小mm。工具坐标数据定义当前指令使用的工具工件坐标数据定义
9、当前指令使用的工件坐标(3)线性运动指令线性运动是机器人的TCP从起点到终点之间的路径始终保持为直线。一般如焊接、涂胶等应用对路径要求高的场合使用此指令。(4)圆弧运动指令圆弧路径是在机器人可到达的控件范围内定义三个位置点,第一个点是圆弧的起点,第二个点用于圆弧的曲率,第三个点是圆弧的终点。指令解析:MoveL p10, v1000, fine, tool1Wobj:=wobj1;MoveC p30, p40, v1000, z1, tool1Wobj:=wobj1;参数含义p10圆弧的第一个点p30圆弧的第二个点p40圆弧的第三个点finez1转弯区数据(5)运动指令的使用示例指令:Move
10、L p1, v200, z10, tool1Wobj:=wobj1;MoveL p2, v100, fine, tool1Wobj:=wobj1;MoveJ p3, v500, fine, tool1Wobj:=wobj1;图示:200mm/s10mm100mm/s500mm/sp1p2p3说明:机器人的TCP从当前位置向p1点以线性运动方式前进,速度是200mm/s,转弯区数据是10mm,距离p1点还有10mm的时候开始转弯,使用的工具数据是tool1,工件坐标数据是wobj1。机器人的TCP从p1向p2点以线性运动方式前进,速度是100mm/s,转弯区数据是fine,机器人在p2点稍作停顿
11、,使用的工具数据是tool1,工件坐标数据是wobj1。机器人的TCP从p2向p3点以关节运动方式前进,速度是500mm/s,转弯区数据是fine,机器人在p3点停止,使用的工具数据是tool1,工件坐标数据是wobj1。提示:*关于速度:速度一般最高为50000mm/s,在手动限速状态下,所有的运动速度被限速在250mm/s*关于转弯区:fine指机器人TCP达到目标点,在目标点速度降为零。机器人动作有所停顿然后再向下运动,如果是一段路径的最后一个点,一定要为fine。转弯区数值越大,机器人的动作路径就越圆滑与流畅。3.I/O控制指令I/O控制指令用于控制I/O信号,以达到与机器人周边设备进
12、行通信的目的。(1)Set数字信号置位指令Set数字信号置位指令用于将数字输出(Digital Output)置位为“1”。Set do1;参数含义do1数字输出信号(2)Reset数字信号复位指令Reset数字信号复位指令用于将数字输出(Digital Output)置位为“0”。Reset do1;*提示:如果在Set、Reset指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsJ的转弯区数据,必须使用fine才可以准确地输出I/O信号状态的变化。(3)WaitDI数字输入信号判断指令WaitDI数字输入信号判断指令用于判断数字输入信号的值是否与目标一致。WaitDI di
13、1, 1;参数含义di1数字输入信号1判断的目标值在例子中,程序执行此指令时,等待di1的值为1。如果di1为1,则程序继续往下执行;如果到达最大等待时间300s(此时间可根据实际进行设定)以后,di1的值还不为1,则机器人报警或进入出错处理程序。(4)WaitDO数字输出信号判断指令WaitDO数字输出信号判断指令用于判断数字输出信号的值是否与目标一致。WaitDO do1, 1;参数以及说明同WaitDi指令。(5)WaitUntil信号判断指令WaitUntil信号判断指令可用于布尔量、数字量和I/O信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最
14、大等待时间。WaitUntil di1 = 1;WaitUntil do1 = 0;WaitUntil flag = TRUE;WaitUntil num1 = 4;参数含义flag1布尔量num1数字量4.条件逻辑判断指令条件逻辑判断指令用于对条件进行判断后,执行相应的操作,是RAPID中重要的组成部分。(1)Compact IF紧凑型条件判断指令Compact IF紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。IF flag1 = TRUE Set do1;如果flag1的状态为TRUE,则do1被置位为1。(2)IF条件判断指令IF条件判断指令,就是根据不同的条件去执行不同
15、的指令。指令解析:IF num1=1 THEN flag:=TRUE;ELSEIF num1=2 THEN flag1:=FALSE;ELSE Set do1;ENDIF如果num1为1,则flag1会赋值为TRUE。如果num1为2,则flag1会赋值为FALSE。除了以上两种条件之外,则执行do1置位为1.*条件判定的条件数量可以根据实际情况进行增加与减少。(3)FOR重复执行判断指令FOR重复执行判断指令,是用于一个或多个指令需要重复执行次数的情况FOR i FROM 1 TO 10 DO Routine1;ENDFOR例行程序Routine1,重复执行10次。(4)WHILE条件判断指
16、令WHILE条件判断指令,用于在给定条件满足的情况下,一直重复执行对应的指令。WHILE num1num2 DO num1:=num1-1;ENDWHILE当num1num2的条件满足的情况下,就一直执行num1:=num1-1的操作。5.其他的常用指令(1)ProcCall调用例行程序指令通过使用此指令在指定的位置调用例行程序。1. 选中“”为要调用的例行程序的位置。2. 在添加指令的列表中,选择“ProcCall”指令。3. 选中要调用的例行程序Routine1,然后单击“确定”。4. 调用例行程序指令执行的结果。(2)RETURN返回例行程序指令RETURN返回例行程序指令,当此指令被执
17、行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。当di1=1时,执行RETURN指令,程序指针返回到调用Routine2的位置并继续向下执行Set do1这个指令。(3)WaitTime时间等待指令WaitTime时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行WaitTime 4;Reset do1;等待4s以后,程序向下执行Reset do1指令。6.4.2常用RAPID指令的使用方法1.用户输入两个数字,按钮选择一个运算符,屏幕输出运算结果(使用TPReadNum、TPReadFK、TPWrite和IF指令)2.用户输入一个0-100的分数值,程序输出
18、A(90-100)、B(80-89)、C(60-79)、D(0-60)四个评级。(IF ELSEIF语句的使用)3.使用WHILE或FOR循环,计算1+2+3+99+100的结果。4.RAPID编程中的功能(FUNCTION)的使用介绍使用自定义功能,自己实现Offs功能和Abs功能(需掌握带参数的功能、功能返回值以及复杂数据的赋值方法,随堂联系practise10-1,需要教师指导)。功能Abs:功能Offs:5.掌握中断程序的使用(1)使用di信号触发中断程序,每次触发,均使系统用户变量reg1进行+1的操作,当reg110时,将reg1重置为1。(2)使用ITimer指令进行定时间隔为1
19、s的中断触发,每次触发使系统用户变量reg2进行+1的操作,当reg210时,将reg2重置为1。6.4.3建立一个可运行的基本RAPID程序在之前的章节中,已大概了解RAPID程序编程的相关操作及基本的指令。现在就通过一个实例来体验一下ABB机器人便捷的程序编辑。编制一个程序的基本流程是这样的:1)确定需要多少个程序模块。多少个程序模块是由应用的复杂性所决定的,比如可以将位置计算、程序数据、逻辑控制等分配到不同的程序模块,方便管理。 2)确定各个程序模块中要建立的例行程序,不同的功能就放到不同的程序模块中去,如夹具打开、夹具关闭这样的功能就可以分别建立成例行程序,方便调用与管理。1.建立RA
20、PID程序实例(事前准备建立board10和di1)1. 确定工作要求:机器人空闲时,在位置点pHome等待。如果外部信号di1输入为1时,机器人沿着物体的一条边从p10到p20走一条直线,结束以后回到pHome点。2. ABB菜单中,选择“程序编辑器”。3. 单击“取消”(如果系统中不存在程序的话会出现此对话框)。 4.打开“文件”菜单,选择“新建模块”。此应用比较简单,所以只需建一个程序模块就足够了。5. 单击“是”进行确定。6.定义程序模块的名称后,单击“确定”。程序模块的名称可以根据需要自己定义,以方便管理。7. 选中“Module1”,单击“显示模块”。8. 单击“例行程序”。9.
21、打开“文件”,单击“新建例行程序”。10. 首先建立一个主程序main,然后单击“确定”,根据第9、10步骤建立相关的例行程序。rHome用于机器人回等待位。rInitAll 初始化。rMoveRoutine 存放直线运动路径。11.选择“rHome”,然后单击“显示例行程序”。12. 到“手动操纵”菜单内,确认已选中要使用的工具坐标与工件坐标。13. 回到程序编辑器,单击“添加指令”,打开指令列表。选中“”为插入指令的位置,在指令列表中选择“MoveJ”。14. 双击“*”,进入指令参数修改画面。15. 通过新建或选择对应的参数数据,设定为图中所示的数值。16. 选择合适的动作模式,使用摇杆
22、将机器人运动到图中的位置,作为机器人的空闲等待点。17. 选中“pHome”目标点,单击“修改位置”,将机器人的当前位置数据记录下来。18. 单击“修改”进行确认。19. 单击“例行程序”标签。20. 选中“rInitAll”例行程序。21. 在此例行程序中,加入在程序正式运行前,需要作初始化的内容,如速度限定、夹具复位等。具体根据需要添加。在此例行程序rInitAll中只增加了两条速度控制的指令(在添加指令列表的Setting类别中)和调用了回等待位的例行程序rHome。22. 单击“例行程序”标签。23.选择“rMoveRoutine”例行程序,然后单击“显示例行程序”。24. 添加“Mo
23、veJ”指令,并将参数设定为图中所示。25. 选择合适的动作模式,使用摇杆将机器人运动到图中的位置,作为机器人的p10点。26. 选中“p10”点,单击“修改位置”,将机器人的当前位置记录到p10中去。27. 添加“MoveL”指令,并将参数设置为如图所示。28. 选择合适的动作模式,使用摇杆将机器人运动到图中的位置,作为机器人的p20点。29. 选中“p20”点,单击“修改位置”,将机器人的当前位置记录到p20中去。单击“例行程序”标签。30. 选中“main”主程序,进行程序执行主体架构的设定。31. 在开始位置调用初始化例行程序。32. 添加“WHILE”指令,并将条件设定为“TRUE”
24、。33. 添加“IF”指令到图中所示位置。使用WHILE指令构建一个死循环的目的在于将初始化程序与正常运行的路径程序隔离开。初始化程序只在一开始时执行一次,然后就根据条件循环执行路径运动。34. 选中“”,然后打开“编辑”菜单,选择“ABC”。35. 使用软键盘输入“di=1”,然后单击“确定”。此处不能直接判断数字输出信号的状态,如do1=1,这是错误的,要使用功能DOutput()。36. 在IF指令的循环中,调用两个例行程序rMoveRoutine和rHome。在选中IF指令的下方,添加WaitTime指令,参数是0.3s。主程序解读:1)首先进入初始化程序进行相关初始化的设置。2)进行
25、WHILE的死循环,目的是将初始化程序隔离开。3)如果di1=1,则机器人执行对应的路径程序。4)等待0.3s的这个指令的目的是防止系统CPU过负荷而设定的。37. 打开“调试”菜单。单击“检查程序”,对程序的语法进行检查。38. 单击“确定”完成。如果有错,系统会提示出错的具体位置与建议操作。2.对RAPID程序进行调试pHome在完成了程序的编辑以后,接下来的工作就是对这个程序进行调试,调试的目的有以下两个:1)检查程序的位置点是否正确。2)检查程序的逻辑控制是否有不完善的地方。1.打开“调试”菜单,选择“PP移至例行程序”。2.选中“rHome”例行程序,然后单击“确定”。3. PP是程
26、序指针(黄色小箭头)的简称。程序指针永远指向将要执行的指令。所以图中的指令将会是被执行的指令。4.左手按下使能键,进入“电动机开启”状态。按以下“单步向前”按键,并小心观察机器人的移动。在按下“程序停止”键后,才可以松开使能键。5. 在指令左侧出现一个小机器人,说明机器人已到达pHome这个等待位置。6. 机器人回到了pHome这个等待位置。3.对RAPID程序进行调试rMoveRoutine1. 打开“调试”菜单,选择“PP移至例行程序”,选中“rMoveRoutine”例行程序,然后单击“确定”。2. 单步进行调试运动指令的位置是否合适。3. 机器人TCP点从p10到p20进行线性运动。4
27、. 选中要调试的指令后,使用“PP移至光标”,可以将程序指针移至想要执行的指令,进行执行,方便程序的调试。此功能只能将PP在同一个例行程序中跳转。如要将PP移至其他例行程序,可使用“PP移至例行程序”功能。4.对RAPID程序进行调试main主程序1. 打开“调试”菜单,单击“PP移至Main”。2. PP便会自动指向主程序的第一句指令。3. 左手按下使能键,进入“电动机开启”状态。按一下“程序启动”按键,并小心观察机器人的移动。5.RAPID程序自动运行的操作在手动状态下,完成了调试确认运动与逻辑控制正确之后,就可以将机器人系统投入自动运行状态,以下就RAPID程序自动运行的操作:1. 将状
28、态钥匙左旋至左侧的自动状态。2. 单击“确定”,确认状态的切换。3. 单击“PP移至Mian”,将PP指向主程序的第一句指令。4. 单击“是”。5. 按下白色按钮,开启电动机。按下“程序启动”按钮。6. 这时,可以观察到程序已在自动运行过程中。7.单击“快捷菜单”按钮。单击“速度”按钮(第5个按钮),就可以在此设定程序中机器人运动的速度。6.RAPID程序模块的保存1. 进入“程序编辑器”,单击“模块”标签。选中需要保存的程序模块。2. 打开“文件”菜单,选择“另存模块为”,就可以将程序模块保存到机器人的硬盘或U盘。“删除模块”的意思是将模块从程序运行内存关闭。7.RAPID程序常用程序模板在今后实际的机器人程序开发中,为了能够快速建立起可运行的RAPID程序,我们通常会将一个常用的RAPID程序结构制作成模板,在此模板中包含了一些基本的模块和例行程序的结构,另外还包括了一些动作检测的功能。模板见PDF文档ABB机器人RAPID程序模板.pdf。6.5知识链接