工业机器人现场编程(ABB)模块五RAPID程序的建立目录掌握常用的RAPID编程指令任务一任务二建立基本的RAPID程序任务三掌握RAPID程序特殊指令及功能任务一掌握常用的RAPID编程指令任务引入小李来到一个ABB工业机器人作业车间实习,通过查阅操作手册和带班师傅的指导,他很快就能够对工业机器人进行一些简单的手动操作。然而,从未进行过编程操作的他,面对示教器中显示的一连串编程指令(见图5-1)有些茫然。为了让他掌握基本的编程技能,带班师傅要求他必须熟记常用的编程指令。那么,常用的RAPID编程指令有哪些?它们都有什么作用?在进行编程时又该如何添加这些指令呢?图5-1常用的编程指令1.1赋值指令reg1:=17;/*将常量17赋给reg1*/reg2:=reg1+8;/*将表达式reg1+8的值赋给reg2*/counter:=counter+1;/*counter增加1*/赋值指令用于对程序数据进行赋值,其符号为“:=”,赋值对象可以是常量,也可以是数学表达式。赋值指令常见用法示例如下。1.2运动指令1.关节运动指令关节运动指令(MoveJ)是在对路径精度要求不高的情况下,将机器人的TCP快速移动至给定目标点的指令。关节运动指令适合机器人大范围运动的场合,运动过程中不易出现关节轴进入机械死点的问题。关节运动指令只关注TCP的起始点和目标点,其运动轨迹不一定是直线。如图5-2所示为机器人TCP从起始点p10移动至目标点p20,其运动轨迹为一条曲线。关节运动指令的基本格式如下,其说明如表5-1所示。MoveJ[\Conc]ToPoint[\ID]Speed[\V]|[\T]Zone[\Z][\Inpos]Tool[\Wobj]1.2运动指令图5-2关节运动示意图1.2运动指令表5-1MoveJ指令参数及说明1.2运动指令图5-3线性运动示意图2.线性运动指令线性运动指令(MoveL)用来使工业机器人的TCP沿直线运动至给定的目标点,如图5-3所示。在线性运动过程中,机器人的运动状态可控,运动路径具有唯一性,可能出现关节轴进入机械死点的问题。工业生产中,线性运动指令主要应用在激光切割、涂胶、弧焊等对路径精度要求高的场合。1.2运动指令图5-4圆弧运动示意图3.圆弧运动指令圆弧运动指令(MoveC)是将机器人的TCP沿圆弧形式运动至给定目标点,圆弧路径由起始点、中间点和目标点来确定,如图5-4所示。在圆弧运动过程中,机器人的运动状态可控,运动路径具有唯一性,常用于机器人在工作状态下的移动。在使用圆弧运动指令时应注意,不可能通过一个圆弧运动指令来完成一个圆周运动。1.2运动指令4.绝对位置运动指令绝对位置运动指令(MoveAbsJ)用来把机器人或者外部轴移动到一个绝对位置。根据绝对位置运动指令,机器人以单轴运动的方式运动至目标点,绝对不存在机械死点,但运动状态完全不可控,因此在实际生产中应避免使用该指令。该指令常用于机器人六个轴回到机械原点的位置。1.3I/O控制指令(1)Set数字信号置位指令。该指令用于将数字输出信号置于“1”位,从而使对应的执行器开始工作。(2)Reset数字信号复位指令。该指令用于将数字输出信号置于“0”位。(3)WaitDI数字输入信号判断指令。该指令用于判断数字输入信号的值是否与目标值一致。(4)WaitDO数字输出信号判断指令。该指令用于判断数字输出信号的值是否与目标值一致。(5)WaitTime时间等待指令。该指令用于程序在等待一个指定的时间后,再继续向下执行。I/O控制指令用于控制I/O信号,以实现机器人与其周边设备进行通信的目的。基本的I/O控制指令如下。1.4条件逻辑判断指令(1)CompactIF紧凑型条件判断指令。该指令用于当一个条件满足了以后就执行一句指令的情况。(2)IF条件判断指令。该指令是根据不同的条件去执行不同的指令,条件判定的条件数量可以根据实际情况增加或减少。(3)FOR重复执行判断指令。该指令适用于一个或多个指令需要重复执行数次的情况。(4)WHILE条件判断指令。该指令用于在满足给定条件的情况下,一直重复执行对应指令的情况。条件逻辑判断指令用于对条件进行判断,然后执行相应的操作。它是RAPID程序中重要的组成部分。常用的条件逻辑判断指令如下。1.5其他常用指令(1)ProcCall调用例行程序指令。该指令适用于在指定位置调用例行程序。(2)RETURN返回例行程序指令。执行该指令,程序会立即结束指令中例行程序的执行,并返回至调用此例行程序的位置继续向下执行。任务实施通过示教器中的“程序编辑器”来添加RAPID编程指令,在主菜单中单击“程序编辑器”(见图5-5),进入RAPID程序编辑窗口。图5-5主菜单任务实施如系统中未预先保存程序,则会弹出“无程序”提示框(见图5-6)。此时单击“新建”按钮,即进入RAPID程序编辑窗口。图5-5主菜单任务实施(一、添加赋值指令)在RAPID程序编辑窗口添加常量赋值指令和数字表达式赋值指令reg1:=5;reg2:=reg1+8;具体步骤如表5-2所示。任务实施(一、添加赋值指令)表5-2添加赋值指令任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(一、添加赋值指令)表5-2添加赋值指令(续)任务实施(二、添加运动指令)表5-3确认工具坐标和工件坐标在添加或修改机器人的运动指令前,必须确定所使用的工具坐标和工件坐标,确认方法如表5-3所示。任务实施(二、添加运动指令)表5-3确认工具坐标和工件坐标(续)任务实施(二、添加运动指令)表5-4添加运动指令任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(二、添加运动指令)表5-4添加运动指令(续)任务实施(三、添加I/O控制指令和条件逻辑判断指令)通过程序编辑器,在上述程序的基础上添加以下编程指令。Setdo1;Resetdo1;Resetdo1;任务测评表5-5任务测评表任务二建立基本的RAPID程序通过初步学习,小李基本掌握了常用RAPID编程指令的使用方法,但若要建立一个可以实际运行的RAPID程序,仅凭这些还不够。若要RAPID程序能够正常运行,除需确保所建立的程序没有语法错误外,还要保证程序结构的合理性和逻辑的准确性,并能满足实际生产活动的需求。那么,建立RAPID程序的基本流程是什么?具体又该如何建立呢?任务引入2.1RAPID程序的基本架构一个RAPID程序称为一个任务,它由一系列的模块组成,其中包括程序模块和系统模块两类。由于系统模块主要用于系统方面的控制,多由机器人厂商或生产线建立者创建,故通常只通过建立程序模块来构建RAPID程序。RAPID程序的基本架构如表5-6所示。一个RAPID程序可以包含多个程序模块,但只有一个主程序main()。主程序main()是整个RAPID程序的起点,可存在于任意一个程序模块中。程序模块中包含了程序数据、例行程序、中断程序和功能四种对象,但在一个程序模块中不一定都有这四种对象,且这些对象在各程序模块间可以被相互调用。2.1RAPID程序的基本架构表5-6RAPID程序的基本架构2.2建立RAPID程序的基本流程01建立程序模块和例行程序。设置RAPID程序自动运行。保存程序模块。对RAPID程序进行调试。0203042.3建立RAPID程序的注意事项在建立RAPID程序前,应明确项目的具体内容和基本要求,并据此分步列出机器人的运行流程,在此基础上分析每一步该由哪些程序指令来实现,如此才能准确地确定所需程序模块和例行程序的数量。在建立RAPID程序时,可根据需要对模块名称进行自定义,以便于识记和管理。在对RAPID程序进行调试时,应分别对主程序和例行程序进行调试,如系统提示程序错误,应根据提示内容检查程序,更正错误后重新调试。只有在RAPID程序调试无错误的情况下,才能将工业机器人设置成自动运行状态。任务实施(一、建立程序模块和例行程序)根据任务要求,建立1个程序模块Module1即可。此程序模块应包含4个例行程序:主程序main()、返回pHome点程序rHome()、初始化程序rInitAll()和运动控制程序rMoveRoutine()。其中,主程序main()通过IF语句设定运行条件,并通过调用其他例行程序实现各种功能。主程序main()的内容如图5-7所示。图5-7主程序main()任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(一、建立程序模块和例行程序)表5-7建立程序模块和例行程序(续)任务实施(二、调试程序)表5-8调试rHome()程序任务实施(二、调试程序)表5-8调试rHome()程序(续)任务实施(二、调试程序)表5-8调试rHome()程序(续)任务实施(二、调试程序)表5-9调试rMoveRoutine()程序任务实施(二、调试程序)表5-9调试rMoveRoutine()程序(续)任务实施(二、调试程序)表5-9调试rMoveRoutin