1、5.1 RAPID程序建立基本操作程序建立基本操作5.1.1 RAPID程序结构程序结构 RAPID程序中包含了一连串控制机器人的指令,执行这些指令可以实现对ABB工业机器人的控制操作。应用程序是使用称为RAPID编程语言的特定词汇和语法编写而成的。RAPID是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。RAPID程序的基本架构RAPID程序的架构说明: 1、RAPID程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。 2、可以根据不同的用途创建多个程
2、序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。 3、每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。 4、在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID程序执行的起点。5.1.25.1.2建立建立RAPIDRAPID程序程序5.25.2基本基本RAPIDRAPID程序指令程序指令 ABB工业机器人提供了多种编程指令可以完成工业机器人在焊接、码垛、搬运等
3、各种应用。下面将从最常用的指令开始学习RAPID编程。5.2.1 5.2.1 赋值指令赋值指令 赋值指令是用于对编程时的程序数据进行赋值,符号 “:=”,赋值对象是常量或数学表达式。 常量赋值:reg1:=17; 数学表达式赋值:reg2:=reg1+8;添加常量赋值指令的操作如下(2)添加带数学表达式的赋值指令的操作5.2.25.2.2工业机器人常用运动指令工业机器人常用运动指令 工业机器人在空间中常用运动指令主要有关节运动(MoveJ)、线性运动(MoveL)、圆弧运动(MoveC)和绝对位置运动MoveAbsJ)四种方式。1绝对位置运动指令 绝对位置运动指令是机器人的运动使用六个轴和外轴
4、的角度值来定义目标位置数据。操作步骤如下:MoveAbsJ jpos10 NoEOffs, v1000, z50,tool1Wobj:=wobj1;MoveAbsJ jpos10 NoEOffs, v1000, z50,tool1Wobj:=wobj1;MoveAbsJMoveAbsJ指令解析指令解析2关节运动指令 关节运动指令是对路径精度要求不高的情况下,工业机器人的工具中心点TCP从一个位置移动到另一个位置,两个位置之间的路径不一定是直线。关节运动关节运动MoveJ p10, v1000, z50, tool1Wobj:=wobj1;MoveJ p10, v1000, z50, tool1
5、Wobj:=wobj1; 关节运动适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。目标点位置数据定义机器人TCP点的运动目标,可以在示教器中单击“修改位置”进行修改。运动速度数据定义速度(mm/s),转弯区数据定义转变区的大小mm,工具坐标数据定义当前指令使用的工具,工件坐标数据定义当前指令使用的工件坐标。3线性运动指令 线性运动是机器人的TCP从起点到终点之间的路径始终保持为直线。一般如焊接、涂胶等应用对路径要求高的场合使用此指令。线性运动4圆弧运动指令 圆弧路径是在机器人可到达的控件范围内定义三个位置点,第一个点是圆弧的起点,第二个点用于圆弧的曲率,第三个点是圆
6、弧的终点MoveLMoveL p10, v1000, fine, p10, v1000, fine, tool1Wobj:=wobj1;tool1Wobj:=wobj1;MoveCMoveC p30, p40, v1000, z1, p30, p40, v1000, z1, tool1Wobj:=wobj1;tool1Wobj:=wobj1;MoveC指令解析5.2.3 5.2.3 运动指令的使用示例运动指令的使用示例 运动速度一般最高为50000mm/s,在手动限速状态下,所有的运动速度被限速在250mm/s。fine指机器人TCP达到目标点,在目标点速度降为零。工业机器人动作有所停顿然后再
7、向下运动,如果是一段路径的最后一个点,一定要为fine。转弯区数值越大,机器人的动作路径就越圆滑与流畅。5.2.4 I/O5.2.4 I/O控制指令控制指令I/O控制指令用于控制I/O信号,以达到与机器人周边设备进行通信的目的。1Set数字信号置位指令Set数字信号置位指令用于将数字输出(Digital Output)置位为“1”, do1数字输出信号。Set do1; Set do1; 2Reset数字信号复位指令Reset数字信号复位指令用于将数字输出(Digital Output)置位为“0”。 如果在Set、Reset指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsJ
8、的转弯区数据,必须使用fine才可以准确地输出I/O信号状态的变化。Reset do1;Reset do1;3WaitDI数字输入信号判断指令WaitDI数字输入信号判断指令用于判断数字输入信号的值是否与目标一致,di1数字输入信号。WaitDIWaitDI di1, 1; di1, 1;程序执行此指令时,等待di1的值为1。如果di1为1,则程序继续往下执行;如果到达最大等待时间300s(此时间可根据实际进行设定)以后,di1的值还不为1,则机器人报警或进入出错处理程序。4WaitDO数字输出信号判断指令WaitDO数字输出信号判断指令用于判断数字输出信号的值是否与目标一致。WaitDOWa
9、itDO do1, 1; do1, 1;参数以及说明同WaitDi指令。5WaitUntil信号判断指令WaitUntil信号判断指令可用于布尔量、数字量和I/O信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最大等待时间。flag1为布尔量型数据,num1数字型数据。WaitUntil di1 = 1;WaitUntil di1 = 1;WaitUntil do1 = 0;WaitUntil do1 = 0;WaitUntil flag = TRUE;WaitUntil flag = TRUE;WaitUntil num1 = 8;WaitUntil n
10、um1 = 8;5.2.5 条件逻辑判断指令条件逻辑判断指令 条件逻辑判断指令用于对条件进行判断后,执行相应的操作,是RAPID中重要的组成部分。 1.Compact IF紧凑型条件判断指令Compact IF紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。IF flag1 = TRUE Set do1;如果flag1的状态为TRUE,则do1被置位为1。2.IF条件判断指令IF条件判断指令,就是根据不同的条件去执行不同的指令。指令解析:IF num1=1 THENIF num1=1 THEN flag:=TRUE; flag:=TRUE;ELSEIF num1=2 THENELS
11、EIF num1=2 THEN flag1:=FALSE; flag1:=FALSE;ELSEELSE Set do1; Set do1;ENDIFENDIF如果num1为1,则flag1会赋值为TRUE。如果num1为2,则flag1会赋值为FALSE。除了以上两种条件之外,则执行do1置位为1。条件判定的条件数量可以根据实际情况进行增加与减少。3.FOR重复执行判断指令FOR重复执行判断指令,是用于一个或多个指令需要重复执行次数的情况FOR i FROM 1 TO 6 DOFOR i FROM 1 TO 6 DO Routine1; Routine1;ENDFORENDFOR例行程序Rou
12、tine1,重复执行6次。4.WHILE条件判断指令WHILE条件判断指令,用于在给定条件满足的情况下,一直重复执行对应的指令。WHILE num1num2 DOWHILE num1num2 DO num1:=num1-1; num1:=num1-1;ENDWHILEENDWHILE当num1num2的条件满足的情况下,就一直执行num1:=num1-1的操作。5.2.65.2.6其他的常用指令其他的常用指令1.ProcCall调用例行程序指令通过使用此指令在指定的位置调用例行程序。2.RETURN返回例行程序指令 RETURN返回例行程序指令,当此指令被执行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。当di1=1时,执行RETURN指令,程序指针返回到调用Routine2的位置并继续向下执行Set do1这个指令。3. WaitTime时间等待指令WaitTime时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行WaitTime 4;WaitTime 4;Reset do1;Reset do1;等待4s以后,程序向下执行Reset do1指令。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。