ABB机器人 程序编写实战_第1页
ABB机器人 程序编写实战_第2页
ABB机器人 程序编写实战_第3页
ABB机器人 程序编写实战_第4页
ABB机器人 程序编写实战_第5页
已阅读5页,还剩209页未读 继续免费阅读

下载本文档

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

文档简介

July11,2024

ABB机器人程序编写实战

任务6-1:认识任务、程序模块和例行程序任务6-2:掌握常用的Rapid编程指令任务6-3:中断程序TRAP任务6-4:建立一个可以运行的基本RAPID程序任务6-5:学习测评

July11,20241.了解ABB机器人编程语言Rapid2.了解任务、程序模块、例行程序3.掌握常用的Rapid指令4.掌握中断程序Trap5.学会建立一个可以运行的基本RAPID程序任务目标July11,2024RAPID程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。

应用程序是使用称为RAPID编程语言的特定词汇和语法编写而成。所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其它指令、构造程序、与系统操作员交流等功能。

任务描述通过本项目的学习,大家可以了解ABB机器人编程语言Rapid的基本概念及其中任务、模块、例行程序之间的关系,掌握常用Rapid指令和中断程序的用法。

RAPID是一种基于计算机的高级编程语言,易学易用,灵活性强。支持二次开发,支持中断、错误处理、多任务处理等高级功能。July11,2024任务6-1:认识任务、程序模块和例行程序RAPID程序的基本架构如表关于RAPID程序的架构说明July11,20241.一个RAPID程序称为一个任务,一个任务是由一系列的模块组成,由程序模块与系统模块组成。一般地,我们只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制之用。2.可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样的目的在于方便归类管理不同用途的例行程序与数据。July11,20244.在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID程序执行的起点。3.每一个程序模块包含了程序数据,例行程序,中断程序和功能四种对象,但不一定在一个模块都有这四种对象的存在,程序模块之间的数据,例行程序,中断程序和功能是可以互相调用的。July11,2024July11,2024

认识程序模块和例行程序例如1.单击左上角主菜单按钮2.选择“程序编辑器”。July11,20243.点击“任务与程序”。July11,20244.则可以看到一个名为T_ROB1任务。5.点击“显示模块”July11,20246.可以看到该任务程序中有一个名为BASE和user的系统模块,一个名为MainMoudle的程序模块。7.选中MainModule,点击“显示模块”则可以查看到该模块里的所有例行程序。July11,20248.选中某一个例行程序,点击“显示例行程序”,则可以查看其中的代码。ABCA.主程序

----mainB.例行程序

----rPick1C.中断程序----tPallet1July11,2024

项目6ABB机器人程序编写实战任务6-2掌握常用的Rapid编程指令ABB机器人的RAPID编程提供了丰富的指令来完成各种简单与复杂的应用。接着下来,我们就从最常用的指令开始学习RAPID编程,领略RAPID丰富的指令集为我们提供的编程便利性。July11,2024下面我们先来看看在示教器进行添加模块的基本操作:1.单击左上角主菜单按钮2.选择“程序编辑器”。July11,20243.点击“取消”。July11,20244.点击左下角文件菜单里的“新建模块”。July11,20245.设定模块名称(这里就使用默认名称Module1),点击“确定”。July11,20246.选中Module,点击“显示模块”。July11,20247.点击“例行程序”。July11,20248.点击左下角文件菜单里的“新建例行程序”。July11,20249.设定例行程序名称(这里就使用默认名称Routine1),点击“确定”。July11,202410.选中Routine1,点击“显示例行程序”。July11,202411.选中要插入指令的程序位置,高显为蓝色。12.点击“添加指令”打开指令列表。13.点击此按钮可切换到其它分类的指令列表。July11,2024

6.2.1.赋值指令:=“:=”赋值指令是用于对程序数据进行赋值,赋值可以是一个常量或数学表达式。我们就以添加一个常量赋值与数学表达式赋值进行说明此指令的使用:常量赋值:reg1:=5;数学表达式赋值:reg2:=reg1+4;July11,2024a.添加常量赋值指令的操作1.在指令列表中选择“:=”。July11,20242.点击“更改数据类型….”,选择num数字型数据。July11,20243.在列表中找到“num”并选中,然后点击“确定”。July11,20244.选中“reg1”。July11,20245.选中“<EXP>”并蓝色高亮显示。6.打开“编辑”菜单,选择“仅限选定内容”。July11,20247.通过软键盘输入数字“5”,然后点击“确定”。July11,20248.点击“确定”。July11,20249.在这里就能看到所增加的指令。July11,2024b.添加带数学表达式的赋值指令的操作1.在指令列表中选择“:=”。July11,20242.选中“reg2”。July11,20243.选中“<EXP>”并蓝色高亮显示。July11,20244.选中“reg1”。July11,20245.点击“+”按钮。July11,20246.选中“<EXP>”并蓝色高亮显示。7.打开“编辑”菜单,选择“仅限选定内容”。July11,20248.通过软键盘输入数字“4”,然后点击“确定”。July11,20249.点击“确定”。July11,202410.点击“下方”。July11,202411.添加指令成功。12.点击“添加指令”将指令列表收起来。July11,2024Key:编程画面操作技巧July11,2024项目6ABB机器人程序编写实战任务6-2掌握常用的Rapid编程指令一、线性运动指令MoveL

机器人在空间中进行运动主要是四种方式,关节运动(MOVEJ),线性运动(MOVEL),圆弧运动(MOVEC)和绝对位置运动(MOVEABSJ)。Key:

在添加或修改机器人的运动指令之前一定要确认所使用的工具坐标与工件坐标。July11,20241.单击左上角主菜单按钮2.选择“手动操纵”。July11,20243.确认已选定工具坐标与工件坐标。July11,2024

首先我们来看看线性运动指令MoveL,线性运动是机器人的TCP从起点到终点之间的路径始终保持为直线,一般如焊接,涂胶等应用对路径要求高的场合进行使用此指令。线性运动示意图如图所示。July11,2024添加线性运动指令MoveL的操作1.选中“<SMT>”为添加指令的位置。2.在指令列表中选择“MoveL”July11,20243.选中*号并蓝色高亮显示,再单击*号。说明:将*号用变量名字代替。July11,20244.点击“新建”。July11,20245.对目标点数据属性进行设定后,点击“确定”。July11,20246.*号已经被P10目标点变量代替。7.点击“确定”。July11,20248.点击“添加指令”将指令列表收起来。July11,20249.点击“减号”,则可以看到整条运动指令。10.选中“p10”,点击“修改位置”,则p10将存储工具tool1在工件坐标系wobj1中的位置信息。July11,2024指令解析,如表6-2所示。July11,2024二、

关节运动指令MoveJ

关节运动指令是在对路径精度要求不高的情况,机器人的工具中心点TCP从一个位置移动到另一个位置,两个位置之间的路径不一定是直线。如图所示

关节运动指令适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。关节运动路径P10P20July11,2024关于转弯区

fine指机器人TCP达到目标点,在目标点速度降为零。机器人动作有所停顿然后再向下一运动,如果是一段路径的最后一个点一定要为fine。

转弯区数值越大,机器人的动作路径就越圆滑与流畅。July11,2024指令:MoveLp1,v200,z10,tool1\Wobj:=wobj1;

机器人的TCP从当前位置向p1点(图6-3)以线性运动方式前进,速度是200mm/s,转弯区数据是10mm,距离p1点还有10mm的时候开始转弯,使用的工具数据是tool1,工件坐标数据是wobj1。指令:MoveLp2,v100,fine,tool1\Wobj:=wobj1;

机器人的TCP从p1向p2点(图6-3)以线性运动方式前进,速度是100mm/s,转弯区数据是fine,机器人在p2点稍作停顿,使用的工具数据是tool1,工件坐标数据是wobj1。指令:MoveJp3,v500,fine,tool1\Wobj:=wobj1;

机器人的TCP从p2向p3点(图6-3)以关节运动方式前进,速度是100mm/s,转弯区数据是fine,机器人在p3点停止,使用的工具数据是tool1,工件坐标数据是wobj1。运动指令实例关于速度

速度一般最高只有5000mm/s

在手动限速状态下,所有的运动速度被限速在250mm/s接着下来,我们来看看MoveL和MoveJ指令的实际使用例子关于转弯区fine指机器人TCP达到目标点,在目标点速度降为零。机器人动作有所停顿然后再向下一运动,如果是一段路径的最后一个点一定要为fine。

转弯区数值越大,机器人的动作路径就越圆滑与流畅。July11,2024三、圆弧运动指令MoveC

圆弧路径是在机器人可到达的空间范围内定义三个位置点,第一个点是圆弧的起点,第二个点用于圆弧的曲率,第三个点是圆弧的终点。如图所示。圆弧运动路径P10P40P30July11,2024圆弧运动指令MoveC指令解析,如表所示四、

绝对位置运动指令MoveAbsJ绝对位置运动指令是机器人的运动使用6个轴和外轴的角度值来定义目标位置数据。Key:MoveAbsJ常用于机器人六个轴回到机械零点(0度)的位置。

项目6ABB机器人程序编写实战

任务6-2掌握常用的Rapid编程指令

I/O控制指令

IO控制指令用于控制IO信号,以达到与机器人周边设备进行通讯的目的。July11,2024a.Set数字信号置位指令Set数字信号置位指令用于将数字输出(DigitalOutput)置位为“1”。指令解析July11,2024b.Reset数字信号复位指令Reset数字信号复位指令用于将数字输出(DigitalOutput)置位为“0”。Key:如果在Set,Reset指令前有运动指令MoveJ,MoveL,MoveC,MoveAbsj的转变区数据必须使用fine才可以准确到达目标点后输出IO信号状态的变化。July11,2024c.WaitDI数字输入信号判断指令WaitDI数字输入信号判断指令用于判断数字输入信号的值是否与目标的一致。

在例子中,程序执行此指令时,等待di1的值为1。为1的话,则程序继续往下执行,如果到达最大等待时间300秒(此时间可根据实际进行设定)以后,di1的值还不为1的话,则机器人报警或进入出错处理程序。指令解析July11,2024d.WaitDO数字输出信号判断指令WaitDO数字输出信号判断指令用于判断数字输出信号的值是否与目标的一致。

在例子中,程序执行此指令时,等待do1的值为1。如果值为1的话,则程序继续往下执行,如果到达最大等待时间300秒(此时间可根据实际进行设定)以后,di1的值还不为1的话,则机器人报警或进入出错处理程序。July11,2024e.WaitUntil信号判断指令WaitUntil信号判断指令,可用于布尔量,数字量和IO信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最大等待时间。指令解析WaitUntil数据名关系运算符(=,>,<)数据值July11,2024任务6-2掌握常用的Rapid编程指令逻辑判断指令

条件逻辑判断指令是用于对条件进行判断后,执行相应的操作,是RAPID中重要的组成。程序的3种结构:顺序结构、选择结构和循环结构表达式的真假:表达式的逻辑值为0,则称该表达式为假,非0(通常用1)则为真。July11,20241.CompactIF紧凑型条件判断指令如果flag1的状态为TRUE,则do1被置位为1。CompactIF紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。不能添加ELSE程序示意图通用格式:IF

表达式

THEN语句ENDIFthenendif可以省略IF:基于是否满足条件,执行指令序列;IF语句用于根据求解一个或多个条件表达式的值,根据是否满足条件,执行不同的指令时,可添加ELSEIF及ELSE变元,依次测试条件,直至满足其中一个条件,若均不满足,则执行ELSE。满足多个时,执行第一个;示例:IFreg1>10Setdo1,Setdo2,ENDIF;如果reg1>10,则设置do1,do2信号为1;2.IF条件判断指令IF:基于是否满足条件,执行指令序列;GOTOP0GOTOP1YNIFreg1=reg1+1reg1=reg1-reg1YNIF数据大小判断真假判断无条件调转CALLA1CALLA2YNIF数据大小判断通用格式:1、只有一条语句时(和compact一样使用)

IF<条件表达式>THEN<执行语句>!条件表达式为真时执行

ENDIF(此时THEN和ENDIF可以省略)2、有两条语句时IF...ELSE....

IF<条件表达式>THEN<执行语句1>!条件表达式为真时执行

ELSE

<执行语句2>

ENDIF

3、

多条语句时

IF<条件表达式>THEN<执行语句>!条件表达式为真时执行

ELSEIF<条件表达式>THEN<执行语句>!条件表达式为真时执行

............

ELSE<执行语句>!条件表达式为真时执行

ENDIF流程示意图July11,2024如果num1为1,则flag1会赋值为TRUE.如果num1为2,则flag1会赋值为FALSE

除了以上两种条件之外,则执行do1置位为1IF条件判断指令,就是根据不同的条件去执行不同的指令。Key:条件判定的条件数量可以根据实际情况进行增加与减少。WHILE:重复指令序列,直到满足给定条件;特点:先判断循环条件,后执行循环体评估条件表达式。如果表达式评估为TRUE值,则执行WHILE块中的指令。执行完成后重复评估判断,直至表达式评估结果成为FALSE。示例:WHILEreg1<reg2DOreg1=reg1+1;若reg1小于reg2,重复reg1自加1操作;3.WHILE条件判断指令WHILE:重复指令序列,直到满足给定条件;程序流程图:当型循环程序案例通用格式只要条件表达式值为真,WHILE循环语句将重复执行语句,通用格式如下:WHILE<条件表达式>DO<语句块>!执行语句ENDWHLIE每执行一次循环,都要对条件表达式进行求值和核实。只要条件表达式求值为假,那么循环将终止,继续执行后续的语句。例如:

WHLIEa<bDO.......a:a+1ENDWHLIE注意事项:循环体应有使循环趋向结束的语句,否则循环将永远反复执行,成为死循环。如reg1:=reg1+1July11,2024当num1>num2的条件满足的情况下,就一直执行num1:=num1-1的操作。WHILE条件判断指令,用于在给定的条件满足的情况下,一直重复执行对应的指令。

应用实例REG1:=0;MOVELP10;WHILEREG1<5

DOMOVELP20;MOVELP10;REG1:=REG1+1;ENDWHILE4.FOR重复执行判断指令FOR:重复一段程序多次;当一个或多个指令重复多次时,使用FOR指令,循环计数器在各循环的增量(或减量)值如果未指定,则自动将步进值设置为1(或者如果起始值大于结束值,则设置为-1)。示例:FORiFROM1TO10DOreg1=reg1+1;重复reg1自加1十次;程序流程图:计数循环程序案例FOR循环语句根据循环变量在指定范围内递增(或递减)而重复执行语句块。格式:FOR

<循环变量>

FROM<初始值>TO

<终止值>[STEP<步长>]

DO

<语句块>

ENDFOR循环开始时,循环变量以FROM初始值开始,如果未指定step步长值,则默认step值为1,如果是递减的情况下,则为-1。在每次循环前,将更新循环变量,并对照循环范围核实值。只要循环变量的值不在循环范围内,循环结束,继续执行后续语句。from表达式、to表达式和step表达式均必须为num(数字)型。例如:FORiFROM10TO1STEP-1DOa{i}:=b{i};ENDFORJuly11,2024例行程序Routine1,重复执行10次。FOR重复执行判断指令,是用于一个或多个指令需要重复执行数次的情况。5、TEST语句TEST(分支)

:基于表达式的数值执行不同指令;TEST指令将测试数据对所有的CASE条件中的测试值进行比较,如果相等,则执行对应程序。此后,指针跳转到ENDTEST后的指令,继续程序执行。示例:TESTreg1,CASE1,2,3,r1,CASE4,r2,ENDTEST;reg1为1、2或3时,则执行r1。reg1为4,则执行r2;程序流程图:test-case分支TEST:基于表达式的数值执行不同指令程序案例

TEST语的用法TEST语句根据表达式的值是否和CASE语句后面的某个常量的值相等而决定是否执行该部分语句,如果都不符合,就执行DEFAULT后面的语句,DEFAULT为可选子句。如果表达式的值与多个常量值相等时都执行相同的语句,可以把多个常量写在一个CASE子句中,用“,”分隔。表达式和常量的数据类型为数值型num。TEST<表达式>CASE<常量1>:<语句块1>CASE<常量2>:<语句块2>…CASE<常量n>:<语句块n>DEFAULT:<语句块>ENDTEST例如TESTchoiceCASE1,2,3:picknumber:=choice;CASE4:stand_by;DEFAULT:writeconsole,"Illegalchoice";ENDTEST6、GOTO与标签语句

标签是用于指示程序位置的语句,以便GOTO语句跳转到这里继续执行。GOTO语句是程序内的无条件跳转语句,程序执行到GOTO时,直接跳转到GOTO后面的标签语句指示的地方继续执行。GOTO语句不能跳转到循环语句中。例如:next:i:=i+1;...GOTOnext;July11,20247、等待指令等待4秒钟以后,程序向下执行Resetdo1指令。WaitTime时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行。July11,2024a.ProcCall调用例行程序指令1.选中“<SMT>”为要调用例行程序的位置。2.在指令列表中选择“ProcCall”指令。通过使用此指令在指定的位置调用例行程序。三、其他常用指令July11,20243.选中要调用的例行程序Routine1,然后单击“确定”。July11,20244.调用例行程序指令执行的结果。July11,2024b.RETURN返回例行程序指令当di1=1时,执行RETURN指令,程序指针返回到调用Routine2的位置并继续向下执行Setdo1这个指令。

RETURN返回例行程序指令,当此指令被执行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。July11,2024项目6ABB机器人程序编写实战任务6-3掌握中断程序TRAPRAPID程序的执行过程中,如果发生需要紧急处理的情况,这就要机器人中断当前的执行,程序指针PP马上跳转到专门的程序中对紧急的情况进行相应的处理,结束了以后程序指针PP返回到原来被中断的地方,继续往下执行程序。那么,专门用来处理紧急情况的专门程序,我们就叫做中断程序(TRAP)。

中断程序经常会用于出错处理,外部信号的响应这种实时响应要求高的场合。触发中断指令一般在初始化程序中添加,因为只需要执行一次。编写中断程序的两大步骤:

1、编写中断程序;

2、在主程序中设置什么时候调用中断程序。

编写方法1、先编写一个中断程序,类型为“陷阱”;以下在初始化程序中:1、用IDelete指令取消中断;2、用CONNET指令将中断标符与中断程序关联;3、使用ISignalDI设置中断出发。July11,2024现以对一个传感器的信号进行实时监控为例编写一个中断程序:(1)在正常的情况下,di1的信号为0.(2)如果di1的信号从0变为1的话,我们就对reg1数据进行加1的操作。1.单击左上角主菜单按钮2.选择“程序编辑器”。July11,20243.单击“例行程序”。July11,20244.点击左下角文件菜单里的“新建例行程序”。July11,20245.设定一个名称,在“类型”中选择“中断”,然后点击“确定”。(程序、功能、陷阱)July11,20246.选中刚新建的中断程序“tMonitorDI1”,然后单击“显示例行程序”。July11,20247.在中断程序中,添加如图所示的指令。8.单击“例行程序”。July11,20249.选中用于初始化处理的例行程序“rInitAll()”,然后单击“显示例行程序”。July11,202410.选中“<SMT>”为添加指令的位置。11.在指令列表表头点击“Common”。July11,202412.点击“Interrupts”。July11,202413.在指令列表中选择“IDelete”。July11,202414.选择“intno1”(如果没有的话,就新建一个),然后点击“确定”。July11,202415.在指令列表中选择“CONNECT”。July11,202416.双击“<VAR>”进行设定。July11,202417.选中“intno1”,然后点击“确定”。July11,202418.双击“<ID>”进行设定。July11,202419.选择要关联的中断程序“tMonitorDI1”,然后单击“确定”。July11,202420.在指令列表中选择“ISignalDI”。July11,202421.选择“di1”,然后单击“确定”。July11,202422.双击该条指令。Key:ISignalDI中的Single参数启用,则此中断只会响应di1一次,若要重复响应,则将其去掉。July11,202423.单击“可选变量”。July11,202424.单击“\Single”进入设定画面。July11,202425.选中“\Single”,然后单击“不使用”。July11,202426.单击“关闭”July11,202427.单击“关闭”。July11,202428.单击“确定”。July11,202429.设定完成,此中断程序只需在初始化例行程序rInitAll中执行一遍,就在程序执行的整个过程中都生效。接着下来就可以在运行此程序的情况下,变更di1的状态来看看程序数据reg1的变化了。July11,2024

除了通过数字输入信号变化触发中断以外,还有多个其他类型的触发条件,如表

中断出问题如果中断设置有错误会出现相应的报错提示:ERR-UNKINO:无法找到当前的中断标识符;ERR-ALRDYCNT:中断标识符已经被链接到中断程序;ERR-CNTNOTVAR:中断标识符不是变量;ERR-INOMAX:没有更多的中断标识符可以使用。(1)IsignalDI:触发中断指令格式:IsignalDI信号名

信号值

中断标识符Single:中断可选变量,启用时,中断程序被触发一次后失效;不启用时,中断功能持续有效,只有在程序重置或运行IDelete后才失效,

常用的中断指令实例:MainConnecti1withzhongduan;!联接中断IsignalDIdi1,1,i1;!触发中断……IDeletei1;!清除中断(2)IDelete:取消中断连接指令

功能:将中断标识符与中断程序的链接解除,如果需要再次使用该中断标识符需要重新用connect连接,因此,要把connect写在前面。注意:在以下情况下,中断链接将自动清除重新载入新的程序;程序被重置,即程序指针回到main程序的第一行;程序指针被移到任意一个例行程序的第一行。(3)ITimer:定时中断指令格式:Itimer[\single]定时时间

中断标识符功能:定时触发中断,常用于采用。Single是可选变量用法和前述相同。实例:Connecti1withzhongduan;ITimer3i1;//3秒钟之后触发i1!时间触发(4)ISleep:中断睡眠指令格式:ISleep中断标识符功能:使中断标识符暂时失效,直到IWatch指令恢复。(5)IWatch:激活中断指令格式:IWatch中断标识符功能:将已经失效的中断标识符激活,与ISleep搭配使用。实例:Connecti1withzhongduan;IsignalDIdi1,1,i1;……

(中断有效)ISleepi1;……

(中断失效)IWatchi1;……

(中断有效)(6)IDisabel:关闭中断指令格式:IDisabel功能:使中断功能暂时关闭,直到执行IEnable才进入中断处理程序,该指令用于机器人正在指令不希望被打断的操作期间。(7)IEnable:打开中断格式:IEnable功能:将被IDisabel关闭的中断打开实例:IDisabel(暂时关闭所有中断)……

(所有中断失效)IEnable(将所有中断打开)……

(所有中断恢复有效)

高级运动指令MoveAbsJ:直接指定6个轴的角度控制运动,6个轴各自独立运动,运动状态万科不可控。一般只有检验6轴原点时才使用。运动指令后+DO功能:到达目标点触发DO信号注:如果有转弯数据z,则在转弯中间点触发;如果z为fine,则到达目标点触发DO

ConfJ与ConfL:运动姿态调整指令功能:对MoveJ与MoveL的轨迹进行微调,当指令为on时,机器人严格按设定的目标点进行运动,当指令为off时,如果遇到死点位置,机器人会自动选择一个与编程轨迹最接近的轨迹走。因此,我们一定要确定机器人运动轨迹符合实际需要才能将该指令设置为off,这两条指令默认值为on,Singarea:位置调整指令。可选变量Wrist允许改变工具的姿态;Off不允许改变工具姿态。注:只对MoveL和MoveC有效。实例:SingareaWristMoveL……MoveC……SingareaOffSoftAct:关节轴软化指令格式:SoftActaxis(轴号)softness(软化值)功能:关节轴软化,软化后可用外力推动关节轴。软化值越高,需要的外力越小。常用于压铸行业。注:软化值在0—100%范围内,且必须与SoftDeact搭配使用;机器人被强制停止后,软化自动失效。实例:SoftAct2,30;

表示第2轴放松30%

SoftDeact:关闭关节轴软化格式:SoftDeact功能:取消关节轴软化。SoftAct与SoftDeact成对使用实例:SoftAct2,30;……SoftDeact;July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序编制一个程序的基本流程在之前的任务中,已了解RAPID程序编程的相关操作及基本的指令。现在就通过一个实例,来体验一下ABB机器人便捷的程序编辑1.确定需要多少个程序模块。多少个程序模块是由应用的复杂性所决定的,比如可以将位置计算、程序数据、逻辑控制等等分配到不同的程序模块,方便管理。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序2.确定各个程序模块中要建立的例行程序,不同的功能就放到不同的程序模块中去,如夹具打开,夹具关闭这样的功能就可以分别建立成例行程序,方便调用与管理。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序确定工作要求:1.机器人空闲时,在位置点pHome等待。2.如果外部信号di1输入为1时,机器人沿着物体的一条边从p10到p20走一条直线,结束以后回到pHome点。pHomeP20P10July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.1.建立RAPID程序实例1.单击左上角主菜单按钮2.选择“程序编辑器”July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序3.单击“取消”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序4.点击左下角文件菜单里的“新建模块”。Key:此应用比较简单,所以只需建一个程序模块就足够了。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序5.单击“是”进行确定。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.定义程序模块的名称后,单击“确定”。Key:程序模块的名称可以根据需要自己定义,以方便管理。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序7.选中“Module1”。8.单击“显示模块”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序9.单击“例行程序”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序10.点击左下角文件菜单里的“新建例行程序”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序11.首先建立一个主程序main。12.单击“确定”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序13.选择“rHome”,然后单击“显示例行程序”。说明:根据第10、11、12步骤建立相关的例行程序。rHome()用于机器人回等待位。rInitAll()初始化。rMoveRoutine()存放直线运动路径。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序14.在“手动操纵”菜单内,确认已选中要使用的工具坐标与工件坐标。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序15.回到程序编辑器,单击“添加指令”,打开指令列表。16.选中“<SMT>”为插入指令的位置。17.在指令列表中选择MoveJ。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序18.双击“*”,进入指令参数修改画面。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序19.通过新建或选择对应的参数数据,设定为图中虚线框所示的数值。单击“确定”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序20.选择合适的动作模式,使用摇杆将机器人运动到图中的位置,作为机器人的空闲等待点。pHomeJuly11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序21.选中“pHome”目标点,单击“修改位置”,将机器人的当前位置数据记录到pHome里。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序22.单击“修改”进行确认。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序23.单击“例行程序”标签。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序24.选中“rinitAll”例行程序,然后单击“显示例行程序”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序25.在此例行程序中,加入在程序正式运行前,需要作初始化的内容,如速度限定,夹具复位,等等。具体根据需要添加。在此例行程序rInitAll中只增加了两条速度控制的指令(在添加指令列表的Settings类别中)和调用了回等待位的例行程序rHome。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序26.单击“例行程序”标签。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序27.选中“rMoveRountine”例行程序,然后单击“显示例行程序”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序28.添加“MoveJ”指令,并将参数设定为图中所示。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序29.选择合适的动作模式,使用摇杆将机器人运动到图中的位置,作为机器人的p10点。P10July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序30.选中“p10”目标点,单击“修改位置”,将机器人的当前位置数据记录到p10里。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序31.添加“MoveL”指令,并将参数设定为图中所示。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序32.选择合适的动作模式,使用摇杆将机器人运动到图中的位置,作为机器人的p20点。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序33.选中“p20”目标点,单击“修改位置”,将机器人的当前位置数据记录到p20里。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序34.单击“例行程序”标签。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序35.选中“main”主程序,然后单击“显示例行程序”,进行程序主体架构的设定。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序36.在开始位置调用初始化例行程序。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序37.添加“WHILE”指令,并将条件设定为“TRUE”。Key:使用WHILE指令构建一个死循环的目的在于将初始化程序与正常运行的路径程序隔离开。初始化程序只在一开始时执行一次,然后就根据条件循环执行路径运动。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序38.添加“IF”指令到图中所示位置。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序39.选择“<EXP>”,然后打开“编辑”菜单,选择“ABC…”。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序40.使用软键盘输入“di1=1”,然后单击“确定”。Key:此处不能直接判断数字输出信号的状态,如do1=1(这是错误的)。要使用功能DOutput()。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序41.在IF指令的循环中,调用两个例行程序rMoveRoutine和rHome。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序42.在选中IF指令的下方,添加WaitTime指令,参数是0.3秒。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序43.主程序解读:1.首先进入初始化程序进行相关初始化的设置。2.进行WHILE的死循环,目的是将初始化程序隔离开。3.如果di1=1的话,则机器人执行对应的路径程序。4.等待0.3秒的这个指令的目的是防止系统CPU过负荷而设定的。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序44.打开“调试”菜单。45.单击“检查程序”,对程序的语法进行检查。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序46.单击“确定”完成。如果有错,系统会提示出错的具体位置与建议操作。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序在完成了程序的编辑以后,接着下来的工作就是对这个程序进行调试,调试的目的有以下两个:1.检查程序的位置点是否正确。2.检查程序的逻辑控制是否有不完善的地方。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序1.打开“调试”菜单,选择“PP移至例行程序”。a.调试pHome例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序2.选中“rHome”例行程序,然后单击“确定”。a.调试pHome例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序3.PP是程序指针(左侧小箭头)的简称,程序指针永远指向将要执行的指令。所以图中的指令将会是被执行的指令。a.调试pHome例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试4.左手按下使能键,进入“电机开启”状态。a.调试pHome例行程序左手按下使能键单步向前程序启动单步后退程序停止5.按一下“单步向前”按键,并小心观察机器人的移动。Key:在按下“程序停止”键后,才可松开使能键。July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试6.在指令左侧出现一个小机器人,说明机器人已到达pHome这个等待位置。a.调试pHome例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试7.机器人回到了pHome这个等待位置。a.调试pHome例行程序pHome机器人回到pHome点July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试1.打开“调试”菜单,选择“PP移至例行程序”。b.调试rMoveRoutine例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试2.选中“rMoveRoutine”例行程序,然后单击“确定”。b.调试rMoveRoutine例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试3.单步进行调试运动指令的位置是否合适。b.调试rMoveRoutine例行程序July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试4.机器人TCP点从p10到p20进行线性运动。b.调试rMoveRoutine例行程序P10P20July11,2024项目6ABB机器人程序编写实战任务6-4建立一个可以运行的基本RAPID程序6.4.2.对RAPID程序进行调试5.选中要调试的指令后,使用“PP移至光标”,可以将程序指针移至想要执行的指令,进行执行,方便程序的调试。

此功能只能将PP在同一个例行程序中跳转。

如要将P

温馨提示

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

评论

0/150

提交评论