您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 工业机器人5.1RAPID程序建立的基本操作
5.1RAPID程序建立基本操作5.1.1RAPID程序结构RAPID程序中包含了一连串控制机器人的指令,执行这些指令可以实现对ABB工业机器人的控制操作。应用程序是使用称为RAPID编程语言的特定词汇和语法编写而成的。RAPID是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。RAPID程序的基本架构RAPID程序的架构说明:1、RAPID程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。2、可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。3、每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。4、在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID程序执行的起点。5.1.2建立RAPID程序5.2基本RAPID程序指令ABB工业机器人提供了多种编程指令可以完成工业机器人在焊接、码垛、搬运等各种应用。下面将从最常用的指令开始学习RAPID编程。5.2.1赋值指令赋值指令是用于对编程时的程序数据进行赋值,符号“:=”,赋值对象是常量或数学表达式。常量赋值:reg1:=17;数学表达式赋值:reg2:=reg1+8;添加常量赋值指令的操作如下(2)添加带数学表达式的赋值指令的操作5.2.2工业机器人常用运动指令工业机器人在空间中常用运动指令主要有关节运动(MoveJ)、线性运动(MoveL)、圆弧运动(MoveC)和绝对位置运动MoveAbsJ)四种方式。1.绝对位置运动指令绝对位置运动指令是机器人的运动使用六个轴和外轴的角度值来定义目标位置数据。操作步骤如下:MoveAbsJjpos10\NoEOffs,v1000,z50,tool1\Wobj:=wobj1;MoveAbsJ指令解析2.关节运动指令关节运动指令是对路径精度要求不高的情况下,工业机器人的工具中心点TCP从一个位置移动到另一个位置,两个位置之间的路径不一定是直线。关节运动MoveJp10,v1000,z50,tool1\Wobj:=wobj1;关节运动适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。目标点位置数据定义机器人TCP点的运动目标,可以在示教器中单击“修改位置”进行修改。运动速度数据定义速度(mm/s),转弯区数据定义转变区的大小mm,工具坐标数据定义当前指令使用的工具,工件坐标数据定义当前指令使用的工件坐标。3.线性运动指令线性运动是机器人的TCP从起点到终点之间的路径始终保持为直线。一般如焊接、涂胶等应用对路径要求高的场合使用此指令。线性运动P10P20P30P40P50P60P90P70P80P100Routine1()MoveAbsJpos10\NoEOffs,v500,z50,tool1\wobj:=wobj1;MoveLp10,v500,z50,tool1\wobj:=wobj1;MoveLp20,v500,z50,tool1\wobj:=wobj1;MoveLp30,v500,z50,tool1\wobj:=wobj1;**MoveLp100,v500,z50,tool1\wobj:=wobj1;MoveLp10,v500,z50,tool1\wobj:=wobj1;4.圆弧运动指令圆弧路径是在机器人可到达的控件范围内定义三个位置点,第一个点是圆弧的起点,第二个点用于圆弧的曲率,第三个点是圆弧的终点MoveLp10,v1000,fine,tool1\Wobj:=wobj1;MoveCp30,p40,v1000,z1,tool1\Wobj:=wobj1;MoveC指令解析Fine点运动速度一般最高为50000mm/s,在手动限速状态下,所有的运动速度被限速在250mm/s。fine指机器人TCP达到目标点,在目标点速度降为零。工业机器人动作有所停顿然后再向下运动,如果是一段路径的最后一个点,一般要为fine。转弯区数值越大,机器人的动作路径就越圆滑与流畅。P30P10P205.2.3运动指令的使用示例P10P20P40P30P50P60P70Routine2()MoveAbsJpos10\NoEOffs,v500,z50,tool1\wobj:=wobj1;MoveLp10,v500,z50,tool1\wobj:=wobj1;MoveLp20,v500,z50,tool1\wobj:=wobj1;MoveLp30,v500,fine,tool1\wobj:=wobj1;MoveLp40,v500,fine,tool1\wobj:=wobj1;MoveLp50,v500,fine,tool1\wobj:=wobj1;MoveCp60,p70,v500,z1,tool1\wobj:=wobj1;MoveLp10,v500,fine,tool1\wobj:=wobj1;课后作业:写出下列参数指令的含义MoveAbsJ,p10,p60,p70,fine,z50谢谢聆听5.2.4I/O控制指令I/O控制指令用于控制I/O信号,以达到与机器人周边设备进行通信的目的。1.Set数字信号置位指令Set数字信号置位指令用于将数字输出(DigitalOutput)置位为“1”,do1数字输出信号。Setdo1;2.Reset数字信号复位指令Reset数字信号复位指令用于将数字输出(DigitalOutput)置位为“0”。如果在Set、Reset指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsJ的转弯区数据,必须使用fine才可以准确地输出I/O信号状态的变化。Resetdo1;3.WaitDI数字输入信号判断指令WaitDI数字输入信号判断指令用于判断数字输入信号的值是否与目标一致,di1数字输入信号。WaitDIdi1,1;程序执行此指令时,等待di1的值为1。如果di1为1,则程序继续往下执行;如果到达最大等待时间300s(此时间可根据实际进行设定)以后,di1的值还不为1,则机器人报警或进入出错处理程序。4.WaitDO数字输出信号判断指令WaitDO数字输出信号判断指令用于判断数字输出信号的值是否与目标一致。WaitDOdo1,1;参数以及说明同WaitDi指令。5.WaitUntil信号判断指令WaitUntil信号判断指令可用于布尔量、数字量和I/O信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最大等待时间。flag1为布尔量型数据,num1数字型数据。WaitUntildi1=1;WaitUntildo1=0;WaitUntilflag=TRUE;WaitUntilnum1=8;5.2.5条件逻辑判断指令条件逻辑判断指令用于对条件进行判断后,执行相应的操作,是RAPID中重要的组成部分。1.CompactIF紧凑型条件判断指令CompactIF紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。IFflag1=TRUESetdo1;如果flag1的状态为TRUE,则do1被置位为1。2.IF条件判断指令IF条件判断指令,就是根据不同的条件去执行不同的指令。指令解析:IFnum1=1THENflag:=TRUE;ELSEIFnum1=2THENflag1:=FALSE;ELSESetdo1;ENDIF如果num1为1,则flag1会赋值为TRUE。如果num1为2,则flag1会赋值为FALSE。除了以上两种条件之外,则执行do1置位为1。条件判定的条件数量可以根据实际情况进行增加与减少。3.FOR重复执行判断指令FOR重复执行判断指令,是用于一个或多个指令需要重复执行次数的情况FORiFROM1TO6DORoutine1;ENDFOR例行程序Routine1,重复执行6次。4.WHILE条件判断指令WHILE条件判断指令,用于在给定条件满足的情况下,一直重复执行对应的指令。WHILEnum1num2DOnum1:=num1-1;ENDWHILE当num1num2的条件满足的情况下,就一直执行num1:=num1-1的操作。5.2.6其他的常用指令1.ProcCall调用例行程序指令通过使用此指令在指定的位置调用例行程序。2.RETURN返回例行程序指令RETURN返回例行程序指令,当此指令被执行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。当di1=1时,执行RETURN指令,程序指针返回到调用Routine2的位置并继续向下执行Setdo1这个指令。3.WaitTime时间等待指令WaitTime时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行WaitTime4;Resetdo1;等待4s以后,程序向下执行Resetdo1指令。
本文标题:工业机器人5.1RAPID程序建立的基本操作
链接地址:https://www.777doc.com/doc-4554745 .html