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之前一段时间后续指令就开始执 行了。
该项目不能用在多运动系统的坐标同步运动中。 ToJointPos:
到达的关节位置。 数据类型:jointtarget
机器人和外部轴的绝对目标轴位置。它被定义为一个命名的位置或者直接存储在指令中(在指令中用*标 示)。 [\\ID]: 同步ID
数据类型:identno
该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 ID 号在所有协同的程序任务中必须相同。该ID 号保证在routine中运动不会混乱。
[\\NoEOffs]: 没有外部偏移量 数据类型:switch
如果项目\\NoEOffs设为1,MoveAbsJ 运动将不受外部轴的激活偏移量的影响。 Speed:
数据类型:speeddata
运动所用的速度数据。速度数据定义了TCP、工具再定位和外部轴的速度。 [\\V]: 速度
数据类型:num
该项目用来在指令中直接指定TCP的速度,单位mm/s,它替代在速度数据中指定的相应的速度。 [\\T]: 时间
数据类型:num
该项目用来指定机器人运动的总时间,单位秒。它替代相应的速度数据。 Zone:
数据类型:zonedata
运动的 zone数据。Zone数据描述了产生的转角路径的大小。 [\\z ]: Zone
数据类型:num
该项目用来在指令中直接指定机器人TCP 的位置精度。转角路径的长度用毫米给出,替代zone 数据中指
定的相应数据。 [\\Inpos ]: 到位
数据类型:stoppointdata(停止点数据)
改项目用来指定机器人TCP 在停止点位置的收敛性判别标准。该停止点数据代替在zone 参数中指定的 zone。 Tool:
数据类型:tooldata
运动过程中所携带的工具。
TCP的位置和工具的负载在工具数据中定义。TCP位置用来计算运动的速度和转角路径。 [\\Wobj ]: 工作对象
数据类型:wobjdata
在运动过程中使用的工作对象。
如果机器人抓着工具的时候,该项目可以忽略。但是,如果机器人抓着工作对象, 也就是说工具是静止的,
或者带有外部轴,那么该项目必须指定。
在有并列工具或者有并列外部轴的情况下,系统使用该数据计算运动的速度和转角路径,该数据在工作对 象中定义。 程序执行:
MoveAbsJ 运动不会受激活的程序转移的影响,并且如果使用了可选项目\\NoEOffs,将没有外部轴的偏移。
如果不使用\\NoEOffs,外部轴的目标位置将会受到激活的外部轴偏移的影响。工具按照轴角度插补移动到绝对
轴目标位置。这就是说每一个轴都按照固定的速度运动,并且所有轴都在同一时间到达目标位置,这样就形成 一个非线性的路径。
总的来说,TCP大约按照编程的速度运动。在TCP运动的同时,工具重新定向,并且外部轴也在运动。如
果重新定向的或者外部轴的程序要求的速度不能达到,TCP的速度将被减小。
当转换到路径的下一段的时候通常会产生转角路径。如果停止点在Zone数据中指定,只有在机器人和外部
轴到达合适的轴位置的时候程序才能继续执行。 更多范例:
关于如何使用该指令,更多范例说明如下:
例1 MoveAbsJ *, v2000\\V:=2200, z40 \\Z:=45, grip3;
Grip3 沿着一个非线性路径运动到一个存储在指令中的一个绝对轴位置。执行的运动数据为v2000和z40。
TCP的速度大小是2200mm/s,zone的大小是45mm。 例2 MoveAbsJ p5, v2000, fine \\Inpos :=inpos50, grip3;
Grip3 沿着一个非线性路径运动到绝对轴位置p5。当停止点fine 的50%的位置条件和50%的速度条件满足
的时候,机器人认为它已经到达位置。它等待条件满足最多等2 秒。参看stoppointdata 类型的预定义数据 inpos50。
例3 MoveAbsJ \\Conc, *, v2000, z40, grip3;
Grip3 沿着一个非线性路径运动到一个存储在指令中的一个绝对轴位置。当机器人运动的时候,也执行了并
发的逻辑指令。
例4 MoveAbsJ \\Conc, * \\NoEOffs, v2000, z40, grip3;
和以上的指令相同的运动,但是它不受外部轴的激活的偏移量的影响。 例5 GripLoad obj_mass;
MoveAbsJ start, v2000, z40, grip3 \\Wobj:=obj;
机器人把和固定工具grip3 相关的工作对象obj沿着一个非线性路径移动到绝对轴位置start。 限制:
为了能够后台运行中包括指令MoveAbsJ,并且避免单一点和模糊区的问题,并发指令满足以下的要求是很
必要的(参看下图)
下图显示了后台运行MoveAbsJ 指令的一些限制。 语法:
MoveAbsJ [‘\\’ Conc ‘,’ ] [ ToJointPos’ :=’ ] <关节目标表达式(IN)> [ ‘\\’ ID ‘:=’
| [ ‘\\’ T’ :=’
[ ‘\\’ Inpos’ :=’
[‘\\’Wobj’ :=’ wobjdata 类型的恒量(PRS)> ] ‘;’ 相关信息:
相关信息 参看
其它定位指令RAPID 参考手册—RAPID 概述,RAPID 摘要—运动部分 关节目标的定义第 959 页Jointtarget—关节位置数据
速度的定义 第 1010 页speeddata—速度数据 Zone数据的定义第 1047 页zonedata—zone数据
停止点数据的定义第 1014 页stoppointdata—停止点数据 工具的定义 第 1031 页tooldata—工具数据
工作对象的定义第 1039 页wobjdata—工作对象数据
运动综述RAPID 参考手册—RAPID 概述,运动和I/O 原理部分
并发的程序执行RAPID 参考手册—RAPID 概述,运动和I/O 原理—用逻辑指令同步部分
1.89.MoveC—让机器人做圆周运动
用途:
该指令用来让机器人TCP沿圆周运动到一个给定的目标点。在运动过程中,相对圆的方向通常保持不变。
该指令只能在主任务T_ROB1 中使用,在多运动系统中的运动任务中使用。 基本范例:
该指令的基本范例说明如下: 也可参看第212 页更多范例。
例 1 Move p1, p2, v500, z30, tool2;
Tool2 的TCP圆周运动到p2,速度数据位v500, zone 数据为z30.圆由开始点、中间点p1 和目标点p2确定。
例 2 MoveC *, *, v500 \\T:=5, fine, grip3;
Grip3 的TCP沿圆周运动到存储在指令中的fine 点(第二个*标记)。中间点也存储在指令中(第一个*标记)。
整个运动需要5 秒钟。
例 3 MoveL p1, v500, fine, tool1; MoveC p2, p3, v500, z20, tool1; MoveC p4, p1, v500, fine, tool1;
下图说明了怎么用两个MoveC指令画一个完整的圆。
项目:
MoveC [\\Conc] CirPoint ToPoint [\\ID] Speed [\\V] | [\\T] Zone [\\z] [\\Inpos] Tool [\\Wobj] [\\Corr] [ \\Conc]: 并发事件
数据类型:switch
当机器人运动的同时,后续的指令开始执行。该项目通常不使用,但是当使用飞点(flyby points)时,可
以用来避免由CPU过载引起的不想要的停止。当使用高速度并且编程点相距较近时这是很有用的。例如,当和
外部设备通讯并且外部设备和机器人通讯不要求同步的时候,这个项目也很有用。
使用项目\\Conc 的时候,连续的运动指令的数量限制为5 个。在包括StorePath—RestorePath 的程序段中不
允许使用带有\\Conc项目的运动指令。
如果不使用该项目,并且ToPoint 不是停止点,在机器人到达程序zone 之前一段时间后续指令就开始执行
了。在多运动系统中的坐标同步运动中不能使用该项目。 CirPoint:
数据类型:robtarget
机器人的圆轴上的中间点。这是圆轴上处于起点和终点之间的点。为了获得最好的精度,最好选择起点和
终点的中间位置附近的点。如果太接近起点或者终点,机器人将会报警。中间点定义为一个命名的位置或者直
接存储在指令中(在指令中用*标记)。不使用外部轴的位置。 ToPoint:
数据类型:robtarget
机器人和外部轴的目标点。定义为一个命名的位置或者直接存储在指令中(在指令中用*标记)。 [ \\ID ]: 同步ID
数据类型:identno P1 P2 P3 P4
该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 ID 号在所有协同的程序任务中必须相同。该ID 号保证在routine中运动不会混乱。 如果并列了同步运动,不允许在其他任何情况下使用。 Speed:
数据类型:speeddata
应用到运动中的速度数据。速度数据定义TCP、工具再定位和外部轴的速度。 [ \\V]: 速度
数据类型:num
该项目用来在指令中直接指定TCP的速度,单位mm/s。它代替速度数据中指定的相应的速度。 [\\T]: 时间
数据类型:num
该项目用来指定机器人和外部轴运动的总时间,单位秒。它代替相应的速度数据。 Zone:
数据类型:zonedata
运动的 zone数据。它描述产生的转角路径的大小。 [ \\Z]: Zone
数据类型:num
该项目用来在指令中直接指定机器人TCP 的位置精度。转角路径的长度以毫米为单位给出,它代替zone
数据中指定的zone。 [\\Inpos ]: 到位
数据类型:stoppointdata(停止点数据)
改项目用来指定机器人TCP 在停止点位置的收敛性判别标准。该停止点数据代替在zone 参数中指定的 zone。 Tool:
数据类型:tooldata
运动过程中所使用的工具。TCP是运动到指定目标的点。 [\\Wobj ]:
工作对象
数据类型:wobjdata
机器人在指令中定位的相关到的工作对象。
该项目可以忽略,如果忽略了,定位相关到世界坐标系。在另一方面,如果使用了静态TCP或者并列外部