A机器人RAPID程序指令与功能简述
- 格式:docx
- 大小:19.91 KB
- 文档页数:10
ABB机器⼈RAPID常⽤指令详解-中⽂(3)Grip3的TCP沿直线运动到停⽌点p5。
当停⽌点fine的50%的位置条件和50%的速度条件满⾜的时候,机器⼈认为它到达了⽬标点。
它等条件满⾜最多等两秒,参看stoppointdata数据类型的预定义数据inpos50。
例3 MoveL \Conc, *, v2000, z40, grip3;Grip3的TCP直线运动到存储在指令中的位置。
当机器⼈移动的时候,后续的逻辑指令开始执⾏。
例4 MoveL start, v2000, z40, grip3 \WObj:=fixture;Grip3的TCP直线运动到位置start,位置在fixture的对象坐标系统中指定。
语法:MoveL _[ ’\’ Conc ’,’ ]_[ ToPoint ’:=’ ] < robtarget类型的表达式(IN) > ’,’[ ’\’ ID ’:=’ < identno类型的表达式(IN) >]’,’_[ Speed ’:=’ ] < speeddata类型的表达式(IN) >_[ ’\’ V ’:=’ < num类型的表达式(IN) > ] _| [ ’\’ T ’:=’ < num类型的表达式(IN) > ] ’,’_[Zone ’:=’ ] < zonedata类型的表达式(IN) >_[ ’\’ Z ’:=’ < num类型的表达式(IN) > ]_[ ’\’ Inpos ’:=’ < stoppointdata类型的表达式(IN) > ] ‘,’_[ Tool ’:=’ ] < tooldata类型的恒量(PERS) > _[ ’\’ WObj ’:=’ < wobjdata 类型的恒量(PERS)> ] _[ ’\’ Corr ]’;’相关信息:1.97.MoveLDO-直线移动机器⼈并且在转⾓处设置数字输出⽤途:MoveLDO(直线运动数字输出)⽤来直线移动TCP到指定的⽬标点。
在RAPID 程序中,静态的WorldZone 不能被解除并再次激活,或者进行擦除。
在RAPID 程序中,临时的WorldZone 可以被解除(WZDisable),再次激活(WZEnable)或者擦除(WZFree)。
语法:WZDOSet[[‘\’Temp] | [‘\’Stat]’,’][WorldZone’:=’]<wztemporary 类型的变量或者恒量(INOUT)>[‘\’Inside] | [‘\’Before] ‘,’[Shape’:=’]<shapedata 类型的变量(V AR)>’,’[Signal’:=’]<signaldo 类型的变量(V AR)>’,’[SetV alue’:=’]<dionum 类型的表达式(IN)>’;’相关信息:1.231.WZEnable—激活临时WorldZone 监视用途:WZEnable(WorldZone 使能)用来重新激活对临时WorldZone 的监视,该WorldZone 之前定义用来停止运动或者设定输出。
基本范例:该指令的基本范例说明如下:例1 V AR wztemporary wzone;…PROC …WZLimSup \Temp, wzone, volume;MoveL p_pick, v500, z40, tool1;WZDisable wzone;MoveL p_place, v200, z30, tool1;WZEnable wzone;MoveL p_home, v200, z30, tool1;ENDPROC当往p_pick 移动的时候,检测到机器人TCP 的位置,这样它就不能进入特定的空间wzone。
当进入p_place 的时候没有进行这个监视,但是在移动到p_home 的时候重新激活。
项目:WZEnable WorldZoneWorldZone:数据类型:wztemporarywztemporary 类型的变量或者恒量,包含要激活的WorldZone 的标识符。
Grip3的TCP沿直线运动到停止点p5。
当停止点fine的50%的位置条件和50%的速度条件满足的时候,机器人认为它到达了目标点。
它等条件满足最多等两秒,参看stoppointdata数据类型的预定义数据inpos50。
例3 MoveL \Conc, *, v2000, z40, grip3;Grip3的TCP直线运动到存储在指令中的位置。
当机器人移动的时候,后续的逻辑指令开始执行。
例4 MoveL start, v2000, z40, grip3 \WObj:=fixture;Grip3的TCP直线运动到位置start,位置在fixture的对象坐标系统中指定。
语法:MoveL _[ ’\’ Conc ’,’ ]_[ ToPoint ’:=’ ] < robtarget类型的表达式(IN) > ’,’[ ’\’ ID ’:=’ < identno类型的表达式(IN) >]’,’_[ Speed ’:=’ ] < speeddata类型的表达式(IN) >_[ ’\’ V ’:=’ < num类型的表达式(IN) > ] _| [ ’\’ T ’:=’ < num类型的表达式(IN) > ] ’,’_[Zone ’:=’ ] < zonedata类型的表达式(IN) >_[ ’\’ Z ’:=’ < num类型的表达式(IN) > ]_[ ’\’ Inpos ’:=’ < stoppointdata类型的表达式(IN) > ] ‘,’_[ Tool ’:=’ ] < tooldata类型的恒量(PERS) > _[ ’\’ WObj ’:=’ < wobjdata 类型的恒量(PERS)> ] _[ ’\’ Corr ]’;’相关信息:1.97.MoveLDO-直线移动机器人并且在转角处设置数字输出用途:MoveLDO(直线运动数字输出)用来直线移动TCP到指定的目标点。
ABB 机器人RAPID 常用指令详解-中文1.88.MoveAbsJ—把机器人移动到绝对轴位置用途:MoveAbsJ(绝对关节移动)用来把机器人或者外部轴移动到一个绝对位置,该位置在轴定位中定义。
使用实例:终点是一个单一点对于IR6400C 中的不明确的位置,例如携带超过机器人范围的工具运动。
MoveAbsJ 指令中机器人的最终位置,既不受工具或者工作对象的影响,也不受激活程序更换的影响。
但是机器人要用到这些数据来计算负载、TCP 速度和转角点。
相同的工具可以被用在相邻的运动指令中。
机器人和外部轴沿着一个非直线的路径移动到目标位置。
所有轴在同一时间运动到目标位置。
该指令只能被用在主任务T_ROB1 中,或者在多运动系统中的运动任务中。
基本范例:该指令的基本范例说明如下。
也可参看第207 页更多范例。
例1 MoveAbsJ p50, v1000, z50, tool2;机器人将携带工具tool2 沿着一个非线性路径到绝对轴位置p50,以速度数据v1000 和zone 数据z50。
例2 MoveAbsJ *, v1000\T:=5, fine, grip3;机器人将携带工具grip3 沿着一个非线性路径到一个停止点,该停止点在指令中作为一个绝对轴位置存储(用*标示)。
整个运动需要5 秒钟。
项目:MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\Wobj][\Conc]:并发事件数据类型:switch当机器人正在移动的时候执行的后续指令。
该项目通常不使用,但是当和外部设备通讯、不需要同步的时候可以用来缩短循环周期。
当使用项目\Conc 的时候,连续运动指令的数量限制为5。
在包含StorePath-RestoPath 的程序段中不允许包含项目\Conc 的运动指令。
如果该项目忽略并且ToJointPos 不是一个停止点,在机器人到达程序zone 之前一段时间后续指令就开始执行了。
5.3 常用RAPID程序指令说明ABB机器人的RAPID编程提供了丰富的指令来完成各种简单与复杂的应用。
接着下来,我们就从最常用的指令开始学习RAPID编程,领略RAPID丰富的指令集为我们提供的编程便利性。
下面我们先来看看在示教器进行指令编辑的基本操作:打开ABB菜单,选择“程序编辑器”。
选中要插入指令的程序位置,高显为蓝色。
点击“添加指令”打开指令列表。
点击此按钮可切换到其它分类的指令列表。
5.3.1 赋值指令“:= ”赋值指令是用于对程序数据进行赋值,赋值可以是一个常量或数学表达式。
我们就以添加一个常量赋值与数学表达式赋值进行说明此指令的使用:常量赋值:reg1 := 5;数学表达式赋值:reg2 := reg1+4;在指令列表中选择“:=”点击“更改数据类型….”,选择num数字型数据。
在列表中找到“num”并选中,然后点击“确定”。
选中“reg1”。
选中“<EXP>”并蓝色高亮显示。
打开“编辑”菜单,选择“仅限选定内容”。
通过软键盘输入数字“5”,然后点击“确定”。
点击“确定”。
在这里就能看到所增加的指令。
下面我们来看看添加带数学表达式的赋值指令的操作:在指令列表中选择“:=”。
选中“reg2”。
选中“<EXP>”,显示为蓝色高亮。
选中“reg1”。
点击“+”选中“<EXP>”,显示为蓝色高亮。
打开“编辑”菜单,选择“仅限选定内容”。
通过软键盘输入数字“4”,然后点击“确定”。
点击“确定”。
点击“下方”。
添加指令成功。
点击“添加指令”将指令列表收起来。
编程画面操作技巧放大/缩小画面向上/向下翻页向上/向下移动5.3.2 机器人运动指令机器人在空间中进行运动主要是四种方式,关节运动(MOVEJ),线性运动(MOVEL),圆弧运动(MOVEC)和绝对位置运动(MOVEABSJ)。
下面我们就来看看如何使用与设定这些运动指令。
➢绝对位置运动指令选择“手动操纵”。
ABB 机器人RAPID 常用指令详解-中文1.88.MoveAbsJ—把机器人移动到绝对轴位置用途:MoveAbsJ(绝对关节移动)用来把机器人或者外部轴移动到一个绝对位置,该位置在轴定位中定义。
使用实例:终点是一个单一点对于IR6400C 中的不明确的位置,例如携带超过机器人范围的工具运动。
MoveAbsJ 指令中机器人的最终位置,既不受工具或者工作对象的影响,也不受激活程序更换的影响。
但是机器人要用到这些数据来计算负载、TCP 速度和转角点。
相同的工具可以被用在相邻的运动指令中。
机器人和外部轴沿着一个非直线的路径移动到目标位置。
所有轴在同一时间运动到目标位置。
该指令只能被用在主任务T_ROB1 中,或者在多运动系统中的运动任务中。
基本范例:该指令的基本范例说明如下。
也可参看第207 页更多范例。
例1 MoveAbsJ p50, v1000, z50, tool2;机器人将携带工具tool2 沿着一个非线性路径到绝对轴位置p50,以速度数据v1000 和zone 数据z50。
例2 MoveAbsJ *, v1000\T:=5, fine, grip3;机器人将携带工具grip3 沿着一个非线性路径到一个停止点,该停止点在指令中作为一个绝对轴位置存储(用*标示)。
整个运动需要5 秒钟。
项目:MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\Wobj][\Conc]:并发事件数据类型:switch当机器人正在移动的时候执行的后续指令。
该项目通常不使用,但是当和外部设备通讯、不需要同步的时候可以用来缩短循环周期。
当使用项目\Conc 的时候,连续运动指令的数量限制为5。
在包含StorePath-RestoPath 的程序段中不允许包含项目\Conc 的运动指令。
如果该项目忽略并且ToJointPos 不是一个停止点,在机器人到达程序zone 之前一段时间后续指令就开始执行了。
ABB 机器人RAPID 常用指令详解-中文1.88.MoveAbsJ—把机器人移动到绝对轴位置用途:MoveAbsJ(绝对关节移动)用来把机器人或者外部轴移动到一个绝对位置,该位置在轴定位中定义。
使用实例:终点是一个单一点对于IR6400C 中的不明确的位置,例如携带超过机器人范围的工具运动。
MoveAbsJ 指令中机器人的最终位置,既不受工具或者工作对象的影响,也不受激活程序更换的影响。
但是机器人要用到这些数据来计算负载、TCP 速度和转角点。
相同的工具可以被用在相邻的运动指令中。
机器人和外部轴沿着一个非直线的路径移动到目标位置。
所有轴在同一时间运动到目标位置。
该指令只能被用在主任务T_ROB1 中,或者在多运动系统中的运动任务中。
基本范例:该指令的基本范例说明如下。
也可参看第207 页更多范例。
例1 MoveAbsJ p50, v1000, z50, tool2;机器人将携带工具tool2 沿着一个非线性路径到绝对轴位置p50,以速度数据v1000 和zone 数据z50。
例2 MoveAbsJ *, v1000\T:=5, fine, grip3;机器人将携带工具grip3 沿着一个非线性路径到一个停止点,该停止点在指令中作为一个绝对轴位置存储(用*标示)。
整个运动需要5 秒钟。
项目:MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\Wobj][\Conc]:并发事件数据类型:switch当机器人正在移动的时候执行的后续指令。
该项目通常不使用,但是当和外部设备通讯、不需要同步的时候可以用来缩短循环周期。
当使用项目\Conc 的时候,连续运动指令的数量限制为5。
在包含StorePath-RestoPath 的程序段中不允许包含项目\Conc 的运动指令。
如果该项目忽略并且ToJointPos 不是一个停止点,在机器人到达程序zone 之前一段时间后续指令就开始执行了。
1.92.MoveExtJ-移动一个或者多个没有TCP 的机械单元用途:MoveExtJ(移动外部关节)只用来移动线性或者旋转外部轴。
该外部轴可以属于一个或者多个没有TCP 的外部单元。
该指令只能用来:和定义为运动任务的实际程序任务一起使用,并且如果任务控制一个或者多个没有TCP 的机械单元。
基本范例:该指令的基本范例说明如下:也参看第225 页的更多范例。
例1 MoveExtJ jpos10, vrot10, z50;移动旋转外部轴到关节位置jpos10,速度10°/秒,zone 数据z50。
例2 MoveExtJ \Conc, jpos20, vrot10 \T:=5, fine \InPos:=inpos20;5 秒钟把外部轴移动到关节位置jpos20。
程序立即向前执行,但是外部轴停止在位置jpos20,直到inpos20 的收敛性标准满足。
项目:MoveExtJ [\Conc] To JointPos [\ID] Speed [\T] Zone [\Inpos][ \Conc]:并发事件数据类型:switch 当外部轴运动的同时,后续的指令开始执行。
该项目通常不使用,但是当使用飞点(flyby points)时,可以用来避免由CPU 过载引起的不想要的停止。
当使用高速度并且编程点相距较近时这是很有用的。
例如,当不要求与外部设备通讯和外部设备和机器人通讯同步的时候,这个项目也很有用。
使用项目\Conc 的时候,连续的运动指令的数量限制为5 个。
在包括StorePath—RestorePath 的程序段中不允许使用带有\Conc 项目的运动指令。
如果不使用该项目,并且ToPoint 不是停止点,在机器人到达程序zone 之前一段时间后续指令就开始执行了。
在多运动系统中的坐标同步运动中不能使用该项目。
ToJointPos:到达关节位置数据类型:jointtarget外部轴的绝对目标轴位置。
RAPID程序指令与功能RAPID是ABB机器人控制器的编程语言之一,它用于编写ABB机器人的控制程序。
RAPID程序指令是一组用于控制机器人运动、执行逻辑判断、与外部设备通信等功能的指令集合。
以下是RAPID程序指令的一些常见功能:1.运动指令:RAPID中的运动指令可以控制机器人的运动,例如直线运动、圆弧运动和旋转运动等。
运动指令可以设置运动的目标位置、速度和加速度等参数,使机器人能够准确地执行所需的运动任务。
2.逻辑控制指令:RAPID中包含了一系列的逻辑控制指令,用于实现条件判断、循环控制等逻辑控制功能。
例如,IF-THEN-ELSE语句可以根据条件的成立与否执行不同的操作;FOR和WHILE循环可以重复执行一系列指令。
3.数学计算指令:RAPID提供了一些数学计算指令,用于进行数值计算和数据处理。
例如,可以使用加法、减法、乘法和除法等基本运算指令;还可以进行三角函数计算、矩阵计算和向量计算等。
4.数组和结构体指令:RAPID支持数组和结构体数据类型,可以定义和操作数组和结构体变量。
可以使用数组来存储和处理一组相关的数据,例如位置数据数组;结构体可以组织不同类型的数据,使其易于管理和访问。
5.任务和过程指令:RAPID允许将一系列指令封装为任务或过程,以便在程序中多次调用。
任务可以用于定义一组相关的操作,例如机器人的自动操作流程,而过程可以用于将一组指令封装为一个单一的可执行单元。
6.文件操作指令:RAPID提供了一些用于文件操作的指令,包括文件读写、复制、删除和重命名等。
这些指令可以用于与外部设备进行数据交换,例如从文件中读取参数或将结果写入文件。
7. 通信指令:RAPID提供了一些用于与外部设备进行通信的指令,可以实现与其他设备或系统的数据交换。
例如,可以使用TCP/IP通信指令与其他计算机进行通信,或使用Modbus通信指令与PLC进行数据交换。
8.异常处理指令:RAPID提供了一些异常处理指令,用于处理运行时出现的异常情况。
A机器人RAPID程序指令与功能简述RAPID程序指令与功能简述程序执行的控制1. 程序的调用指令说明ProcCall 调用例行程序CallByVar 通过带变量的例行程序名称调用例行程序RETURN 返回原例行程序2. 例行程序内的逻辑控制指令说明Compact IF 如果条件满足,就执行下一条指令IF 当满足不同的条件时,执行对应的程序FOR 根据指定的次数,重复执行对应的程序WHILE 如果条件满足,重复执行对应的程序TEST 对一个变量进行判断,从而执行不同的程序GOTO 跳转到例行程序内标签的位置Lable 跳转标签3. 停止程序执行指令说明Stop 停止程序执行EXIT 停止程序执行并禁止在停止处再开始Break 临时停止程序的执行,用于手动调试SystemStopAction 停止程序执行与机器人运动ExitCycle 中止当前程序的运行并将程序指针PP复位到主程序的第一条指令。
如果选择了程序连续运行模式,程序将从主程序的第一句重新执行。
变量指令1. 赋值指令指令说明:= 对程序数据进行赋值2. 等待指令指令说明WaitTime 等待一个指定的时间,程序再往下执行WaitUntil 等待一个条件满足后,程序继续往下执行WaitDI 等待一个输入信号状态为设定值WaitDO 等待一个输出信号状态为设定值3. 程序注释指令说明Comment 对程序进行注释4. 程序模块加载指令说明Load 从机器人硬盘加载一个程序模块到运行内存UnLoad 从运行内存中卸载一个程序模块Start Load 在程序执行的过程中,加载一个程序模块到运行内存中Wait Load 当Start Load使用后,使用此指令将程序模块连接到任务中使用CancelLoad 取消加载程序模块CheckProgRef 检查程序引用Save 保存程序模块EraseModule 从运行内存删除程序模块5. 变量功能指令说明TryInt 判断数据是否是有效的整数功能说明OpMode 读取当前机器人的操作模式RunMode 读取当前机器人程序的运行模式NonMotionMode 读取程序任务当前是否无运动的执行模式Dim 获取一个数组的维数Present 读取带参数例行程序的可选参数值IsPers 判断一个参数是不是可变量IsVar 判断一个参数是不是变量6. 转换功能指令说明StrToByte 将字符串转换为指定格式的字节数据ByteToStr 将字节数据转换为字符串运动设定1. 速度设定功能说明MaxRobSpeed 获取当前型号机器人可实现的最大TCP速度VelSet 设定最大的速度与倍率SpeedRefresh 更新当前运动的速度倍率AccSet 定义机器人的加速度WorldAccLim 设定大地坐标中工具与载荷的加速度PathAccLim 设定运动路径中TCP的加速度2. 轴配置管理指令说明ConfJ 关节运动的轴配置控制ConfL 线性运动的轴配置控制3. 奇异点的管理指令说明SingArea 设定机器人运动时,在奇异点的插补方式4. 位置偏置功能指令说明PDispOn 激活位置偏置PDispSet 激活指定数值的位置偏置PDispOff 关闭位置偏置EOffsOn 激活外轴偏置EOffsSet 激活指定数值的外轴偏置EOffsOff 关闭外轴位置偏置功能说明DefDFrame 通过三个位置数据计算出位置的偏置DefFrame 通过六个位置数据计算出位置的偏置ORobT 从一个位置数据删除位置偏置DefAccFrame 从原始位置和替换位置定义一个框架5. 软伺服功能指令说明SoftAct 激活一个或多个轴的软伺服功能SoftDeact 关闭软伺服功能6. 机器人参数调整功能指令说明TuneServo 伺服调整TuneReset 伺服调整复位PathResol 几何路径精度调整CirPathMode 在圆弧插补运动时,工具姿态的变换方式7. 空间监控管理指令说明WZBoxDef 定义一个方形的监控空间WZCylDef 定义一个圆柱形的监控空间WZSphDef 定义一个球形的监控空间WZHomeJointDef 定义一个关节轴坐标的监控空间WZLimJointDef 定义一个限定为不可进入的关节轴坐标监控空间WZLimSup 激活一个监控空间并限定为不可进入WZDOSet 激活一个监控空间并与一个输出信号关联WZEnable 激活一个临时的监控空间WZFree 关闭一个临时的监控空间注:这些功能需要选项“World zones”配合。
RAPID程序指令与功能简述程序执行的控制
变量指令
运动设定
运动控制
*:这些功能需要选项“Path recovery”配合。
注:这些功能需要选项“Independent movement”配合。
注:这些功能需要选项“Path offset or RobotWare-Arc sensor”配合。
注:这些功能需要选项“Path recovery”配合。
注:这些功能需要选项“Path recovery”配合。
注:这些功能需要选项“Conveyor tracking”配合。
注:这些功能需要选项“Sensor synchronization”配合。
*:此功能需要选项“Collision detection”配合。
输入/输出信号的处理
通信功能
1. 示教器上人机界面的功能
中断程序
系统相关的指令
数学运算
说明:本文档摘自《工业机器人实操与应用技巧》一书。