ABB机器人RAPID常用指令详解-中文
1.88.MoveAbsJ—把机器人移动到绝对轴位置
用途:
MoveAbsJ(绝对关节移动)用来把机器人或者外部轴移动到一个绝对位置,该位置在轴定位中定义。
使用实例:
l终点是一个单一点
l对于IR6400C中的不明确的位置,例如携带超过机器人范围的工具运动
MoveAbsJ指令中机器人的最终位置,既不受工具或者工作对象的影响,也不受激活程序更换的影响。但是机器人要用到这些数据来计算负载、TCP速度和转角点。相同的工具可以被用在相邻的运动指令中。
机器人和外部轴沿着一个非直线的路径移动到目标位置。所有轴在同一时间运动到目标位置。
该指令只能被用在主任务T_ROB1中,或者在多运动系统中的运动任务中。
基本范例:
该指令的基本范例说明如下。
也可参看第207页更多范例。
例1MoveAbsJ p50, v1000, z50, tool2;
机器人将携带工具tool2沿着一个非线性路径到绝对轴位置p50,以速度数据v1000和zone数据z50。
例2MoveAbsJ *, 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数据中指定,只有在机器人和外部轴到达合适的轴位置的时候程序才能继续执行。
更多范例:
关于如何使用该指令,更多范例说明如下:
例1MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3;
Grip3沿着一个非线性路径运动到一个存储在指令中的一个绝对轴位置。执行的运动数据为v2000和z40。
TCP的速度大小是2200mm/s,zone的大小是45mm。
例2MoveAbsJ p5, v2000, fine \Inpos :=inpos50, grip3;
Grip3沿着一个非线性路径运动到绝对轴位置p5。当停止点fine的50%的位置条件和50%的速度条件满足的时候,机器人认为它已经到达位置。它等待条件满足最多等2秒。参看stoppointdata类型的预定义数据inpos50。
例3MoveAbsJ \Conc, *, v2000, z40, grip3;
Grip3沿着一个非线性路径运动到一个存储在指令中的一个绝对轴位置。当机器人运动的时候,也执行了并发的逻辑指令。
例4MoveAbsJ \Conc, * \NoEOffs, v2000, z40, grip3;
和以上的指令相同的运动,但是它不受外部轴的激活的偏移量的影响。
例5GripLoad obj_mass;
MoveAbsJ start, v2000, z40, grip3 \Wobj:=obj;
机器人把和固定工具grip3相关的工作对象obj沿着一个非线性路径移动到绝对轴位置start。
限制:
为了能够后台运行中包括指令MoveAbsJ,并且避免单一点和模糊区的问题,并发指令满足以下的要求是很必要的(参看下图)
下图显示了后台运行MoveAbsJ指令的一些限制。
语法:
MoveAbsJ [‘\’ Conc ‘,’ ] [ ToJointPos’ :=’ ] <;关节目标表达式(IN)>
[ ‘\’ ID ‘:=’ <identno类型的表达式(IN)> ] [ ‘\’ NoEOffs ] ‘,’
[ Speed ‘:=’ ] <speeddata类型的表达式(IN)>
[ ‘\’ V ‘:=’ <num类型的表达式(IN)> ]
| [ ‘\’ T’ :=’ <num类型的表达式(IN)> ] ‘,’
[‘\’ Z ‘:=” ] <num类型的表达式(IN)>
[ ‘\’ Inpos’ :=’ <stoppointdata类型的表达式(IN)>] ‘,’
[Tool ‘:=’ ]<tooldata类型的恒量(PERS)>
[‘\’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指令画一个完整的圆。