1、5.1.25.1.2建立建立RAPID程序5.2基本RAPID程序指令ABB工业机器人提供了多种编程指令可以完成工业机器人在焊接、码垛、搬运等各种应用。下面将从最常用的指令开始学习RAPID编程。5.2.1 赋值指令赋值指令是用于对编程时的程序数据进行赋值,符号 “:=”,赋值对象是常量或数学表达式。常量赋值:reg1:=17;数学表达式赋值:reg2:=reg1+8;添加常量赋值指令的操作如下(2)添加带数学表达式的赋值指令的操作5.2.2工业机器人常用运动指令工业机器人在空间中常用运动指令主要有关节运动(MoveJ)、线性运动(MoveL)、圆弧运动(MoveC)和绝对位置运动MoveAb
2、sJ)四种方式。1绝对位置运动指令绝对位置运动指令是机器人的运动使用六个轴和外轴的角度值来定义目标位置数据。操作步骤如下:MoveAbsJ jpos10 NoEOffs, v1000, z50,tool1Wobj:=wobj1;MoveAbsJ指令解析2关节运动指令关节运动指令是对路径精度要求不高的情况下,工业机器人的工具中心点TCP从一个位置移动到另一个位置,两个位置之间的路径不一定是直线。关节运动MoveJ p10, v1000, z50, tool1Wobj:=wobj1;关节运动适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。目标点位置数据定义机器人TCP点
3、的运动目标,可以在示教器中单击“修改位置”进行修改。运动速度数据定义速度(mm/s),转弯区数据定义转变区的大小mm,工具坐标数据定义当前指令使用的工具,工件坐标数据定义当前指令使用的工件坐标。3线性运动指令线性运动是机器人的TCP从起点到终点之间的路径始终保持为直线。一般如焊接、涂胶等应用对路径要求高的场合使用此指令。线性运动4圆弧运动指令圆弧路径是在机器人可到达的控件范围内定义三个位置点,第一个点是圆弧的起点,第二个点用于圆弧的曲率,第三个点是圆弧的终点MoveL p10, v1000, fine, tool1Wobj:=wobj1;MoveC p30, p40, v1000, z1, M
4、oveC p30, p40, v1000, z1, tool1Wobj:=wobj1;MoveC指令解析5.2.3 5.2.3 运动指令的使用示例运动指令的使用示例运动速度一般最高为50000mm/s,在手动限速状态下,所有的运动速度被限速在250mm/s。fine指机器人TCP达到目标点,在目标点速度降为零。工业机器人动作有所停顿然后再向下运动,如果是一段路径的最后一个点,一定要为fine。转弯区数值越大,机器人的动作路径就越圆滑与流畅。5.2.4 I/O控制指令I/O控制指令用于控制I/O信号,以达到与机器人周边设备进行通信的目的。1Set数字信号置位指令Set数字信号置位指令用于将数字输
5、出(Digital Output)置位为“1”, do1数字输出信号。Set do1; Set do1; 2Reset数字信号复位指令Reset数字信号复位指令用于将数字输出(Digital Output)置位为“0”。 如果在Set、Reset指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsJ的转弯区数据,必须使用fine才可以准确地输出I/O信号状态的变化。Reset do1;3WaitDI数字输入信号判断指令WaitDI数字输入信号判断指令用于判断数字输入信号的值是否与目标一致,di1数字输入信号。WaitDI di1, 1;WaitDI di1, 1;程序执行此指令时
6、,等待di1的值为1。如果di1为1,则程序继续往下执行;如果到达最大等待时间300s(此时间可根据实际进行设定)以后,di1的值还不为1,则机器人报警或进入出错处理程序。4WaitDO数字输出信号判断指令WaitDO数字输出信号判断指令用于判断数字输出信号的值是否与目标一致。WaitDO do1, 1;WaitDO do1, 1;参数以及说明同WaitDi指令。5WaitUntil信号判断指令WaitUntil信号判断指令可用于布尔量、数字量和I/O信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最大等待时间。flag1为布尔量型数据,num1数字型数据
7、。WaitUntil di1 = 1;WaitUntil di1 = 1;WaitUntil do1 = 0;WaitUntil do1 = 0;WaitUntil flag = TRUE;WaitUntil flag = TRUE;WaitUntil num1 = 8;WaitUntil num1 = 8;5.2.5 条件逻辑判断指令条件逻辑判断指令条件逻辑判断指令用于对条件进行判断后,执行相应的操作,是RAPID中重要的组成部分。1.Compact IF紧凑型条件判断指令Compact IF紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。IF flag1 = TRUE Set
8、do1;如果flag1的状态为TRUE,则do1被置位为1。2.IF条件判断指令IF条件判断指令,就是根据不同的条件去执行不同的指令。指令解析:IF num1=1 THENIF num1=1 THENflag:=TRUE;ELSEIF num1=2 THENELSEIF num1=2 THENflag1:=FALSE;ELSESet do1;ENDIF如果num1为1,则flag1会赋值为TRUE。如果num1为2,则flag1会赋值为FALSE。除了以上两种条件之外,则执行do1置位为1。条件判定的条件数量可以根据实际情况进行增加与减少。3.FOR重复执行判断指令FOR重复执行判断指令,是用
9、于一个或多个指令需要重复执行次数的情况FOR i FROM 1 TO 6 DORoutine1;Routine1;ENDFORENDFOR例行程序Routine1,重复执行6次。4.WHILE条件判断指令WHILE条件判断指令,用于在给定条件满足的情况下,一直重复执行对应的指令。WHILE num1num2 DOnum1:=num1-1;num1:=num1-1;ENDWHILEENDWHILE当num1num2的条件满足的情况下,就一直执行num1:=num1-1的操作。5.2.6其他的常用指令1.ProcCall调用例行程序指令通过使用此指令在指定的位置调用例行程序。2.RETURN返回例
10、行程序指令RETURN返回例行程序指令,当此指令被执行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。当di1=1时,执行RETURN指令,程序指针返回到调用Routine2的位置并继续向下执行Set do1这个指令。3. WaitTime时间等待指令WaitTime时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行WaitTime 4;WaitTime 4;Reset do1;Reset do1;等待4s以后,程序向下执行Reset do1指令。5.3 建立一个可运行的基本RAPID程序编制基本RAPID程序流程如下:1)确定需要多少个程序模块。多少个程序模块
11、是由应用的复杂性所决定的,比如可以将位置计算、程序数据、逻辑控制等分配到不同的程序模块,方便管理。2)确定各个程序模块中要建立的例行程序,不同的功能就放到不同的程序模块中去,如夹具打开、夹具关闭这样的功能就可以分别建立成例行程序,方便调用与管理。1 1建立建立RAPIDRAPID程序实例(事前准备建立程序实例(事前准备建立board10和和di1)2.对RAPID程序进行调试pHome程序编辑后,接下来要对程序进行调试,调试的目的是检查程序的位置点是否正确和检查逻辑控制是否有不完美的地方。程序调试步骤如下:3.对RAPID程序进行调试rMoveRoutine4.4.对对RAPID程序进行调试程
12、序进行调试main主程序主程序5.RAPID程序自动运行的操作在手动状态下,完成了调试确认运动与逻辑控制正确之后,就可以将机器人系统投入自动运行状态,以下就RAPID程序自动运行的操作:6.RAPID6.RAPID程序模块的保存程序模块的保存5.4 RAPID编程详解5.4.1 自定义功能ABB工业机器人编程中的功能与指令相似,在执行完功能指令后返回一个数值。使用功能可以有效地提高编程以及程序执行效率。下面主要介绍功能指令Abs、Offs的操作方法。Abs操作步骤如下:功能Offs的作用是基于目标点在XYZ方向的偏移。如:“P40:=OFFS(P30,150,230,300)”是指p40相对于
13、p30点在X方向偏移150mm,Y方向偏移230 mm,Z方向偏移300 mm。Offs操作步骤如下:5.4.2 中断程序在工业机器人工作过程中,常会有一些紧急需要处理,这时要求工业机器人会中断当前的执行,程序指针PP马上跳转到专门的程序中对紧急的情况进行相应的处理,处理结束后程序指针PP返回到原来被中断的地方,继续往下执行程序。这种专门用来处理紧急情况的专门程序,称作中断程序(TRAP)。中断程序经常会用于出错处理、外部信号的响应这种实时响应要求高的场合。现以传感器的信号进行实时监控为例编写一个中断程序:1、在正常情况下,di1的信号为0.2、如果di1的信号从0变成1,就对reg1数据进行
14、加1的操作。操作步骤如下:程序举例?程序开始运行时,机器人末端工具以500mm/s的速度移至phome点位置待机;?待机状态下,当信号di1由0变为1时,机器人开始运动,末端工具运动速度为1000mm/s,运动轨迹为画一个以p10点为圆形,半径为200mm的圆,运动完成后,机器人末端工具以500mm/s的速度返回phome点位置待机。?PROC main()?rIniAll ;?WHILE TRUE DO?MoveJ phome , v500 , z50, tool1WObj:=wobj1;?ENDWHILE?ENDPROC?PROC rIniAll()?MoveJ phome, v500,
15、z50, tool1WObj:=wobj1;?IDelete intno1 ;?CONNECT intno1 WITH tMonitorDI1 ;?ISignalDI di1, 1 , intno1;?ENDPROC?TRAP tMonitorDI1?MoveJ Offs(p10,200,0,0), v1000, fine, tool1 WObj:=wobj1;?MoveC Offs(p10,0,200,0), Offs(p10,-200,0,0), v1000 , z10, tool1WObj:=wobj1;?MoveC Offs(p10,0,-200,0), Offs(p10, 200 ,0,0), v1000, fine, tool1WObj:=wobj1;?ENDTRAP?ENDMODULE
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。