ABB机器人常用指令详解-中文(一)
ABB机器人常用指令详解-中文(一)
关于如 何 使用该指令,更 多 范例 说明如 下 :
by 张建辉, 韩鹏排版
例1
MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3;
Grip3 沿着 一个 非线性路径 运动到一个 存储 在指令中的一个绝对轴位置。 执行 的运动数据 为 v2000 和 z40。
[\Conc]:
并发事件 数据 类型 行 的 后续 指令。该 项目通常 不使用,但是 当 和外部 设备通讯 、不 需 要同 步 的 时 候 可 以 用来 缩短循环周期 。
当 使用 项目 \Conc 的 时候 , 连续 运动指令的数 量限制为 5。在 包含 StorePath-RestoPath的程序 段 中不 允许包 含项目 \Conc 的运动指令。
和 以 上的指令相同的运动,但是 它不受外部轴的激活的 偏 移 量的影响。
例5
GripLoad obj_mass;
MoveAbsJ start, v2000, z40, grip3 \Wobj:=obj;
机器人把和 固 定工具 grip3 相关的工作对象 obj 沿着 一个 非线性路径 移动到绝对轴位置 start。 限制:
相关信息:
by 张建辉, 韩鹏排版
相关信息 其 它 定位指令 关节 目标 的定义 速度的定义 Zone 数据的定义 停止 点数据的定义 工具的定义 工作对象的定义 运动 综 述 并发 的程序 执行
参看 RAPID 参 考手 册 — RAPID 概 述 ,RAPID 摘 要 — 运动部 分 第 959 页 Jointtarget— 关节位置数据 第 1010 页 speeddata—速度数据 第 1047 页 zonedata— zone 数据 第 1014 页 stoppointdata— 停止 点数据 第 1031 页 tooldata— 工具数据 第 1039 页 wobjdata— 工作对象数据 RAPID 参 考手 册 — RAPID 概 述 ,运动和 I/O 原理 部 分 RAPID 参 考手 册 — RAPID 概 述 ,运动和 I/O 原理 — 用逻辑 指令同 步 部 分
ABB机器人RAPID指令中文翻译
RAPID参考手册指令张建辉韩鹏1.指令1.1.AccSet—降低加速度用途:当处理较大负载时使用AccSet指令。
它允许减慢加速度和减速度,使机器人有一个更平滑的运动。
该指令只能在主任务T_ROB1中使用,或者如果处于多运动系统,在Motion任务中。
基本范例:AccSet的基本范例说明如下。
例1AccSet 50,100;加速度备限制到正常值的50%。
例2AccSet 100,50;加速度斜线限制到正常值的50%。
项目:AccSet Acc RampAcc:数据类型:num(数值)加速度和减速度作为正常值的百分比。
100%对应最大加速度。
最大值:100%。
输入值<20%则给出最大加速度的20%。
Ramp数据类型:num(数值)加速度和减速度的增加作为正常值的百分比的比例(如图)。
通过减小这个数值可以限制震动。
100%对应最大比例。
最大值:100%,输入值<10%则给出最大比例的10%。
下图说明减小加速度可以平滑运动。
加速度加速度加速度时间时间时间AccSet 100,100 正常加速度AccSet 30,100 AccSet 100,30程序执行:该加速度值应用到机器人和外部轴,直到一个新的AccSet指令执行。
缺省值(100%)在以下情况是自动设置:●冷启动●加载了新的程序●从头开始执行程序时语法:AccSet [AccSet “:=”]<数值表达式(IN)>“,”[Ramp “:=”]<数值表达式(IN)>“;”相关信息:1.2.ActUnit—激活一个机械单元用途:ActUnit用来激活一个机械单元。
例如当使用普通驱动单元的时候,它可以用来决定哪一个单元被激活。
该指令只能在主任务T_ROB1中使用,或者如果处于多运动系统,在Motion任务中。
基本范例:ActUnit的基本范例说明如下:例1 ActUnit orbit_a;orbit_a机械单元的激活。
ABB机器人标准指令详解-文档资料
2021/4/21
13
运动控制指令-SingArea
应用: 当前指令通过对机器人位置点姿态进行些许 改变,可以绝对避免机器人运行时死机,但 是,机器人运行路径会受影响,姿态得不到 控制,通常使用于通过复杂姿态点,绝对不 能作为工作点使用。
都起作用,例如:TCP、方位及外轴。但对 焊接参数 welddata 与 seamdata 内机器人运 动速度不起作用。 Max 只对速度数据 (speeddata) 内 TCP 这项 起作用。
2021/4/21
8
运动控制指令-ConfJ
ConfJ [\On]|[\Off];
[\On]: 启用轴配置数据。
[\Off]: 默认轴配置数据。
( switch )
直线运动时,机器人移动至 ModPos 点,
轴配置数据默认为当前最接近值。
2021/4/21
11
运动控制指令-ConfL
应用: 对机器人运行姿态进行限制与调整,程序运 行时,使机器人运行姿态得到控制。系统默 认值为 ConfL\On; 。
实例:
ConfL\On; … ConfL\Off;
( switch )
关节运动时,机器人移动至绝对 ModPos
点,如果无法到达,程序将停止运行。
[\Off]: 默认轴配置数据。
( switch )
关节运动时,机器人移动至 ModPos 点,
轴配置数据默认为当前最接近值。
2021/4/21
9
运动控制指令-ConfJ
应用: 对机器人运行姿态进行限制与调整,程序运 行时,使机器人运行姿态得到控制。系统默 认值为 ConfJ\On; 。
ABB机器人部分常用简单指令【免费下载】
一、ABB机器人指令:1、基本运动指令:MoveL:线性运动(Linear)MoveJ:关节轴运动 (Joint)MoveC :圆周运动(Circular)p1:目标位置。
(robtarget)v100:运行速度mm/s。
(speeddata)z10:转弯区尺寸mm。
(zonedata)tool1:工具中心点TCP。
(tooldata)(1)速度选择:mm/s·将光标移至速度数据处,按回车键,进入选择窗口,选择所需速度。
·机器人运行速度属于数据类型speeddata。
·常用运行速度在base模块中已经定义。
·特殊速度可自行定义。
·max速度为v5000,base模块中定义*大速度为v7000,*大速度机器人未必能达到。
(2)转弯区尺寸选择:mm·将光标移至转弯区尺寸数据处,按回车键,进入选择窗口,选择所需转弯区尺寸。
·机器人转弯区尺寸属于数据类型zonedata。
·常用转弯区尺寸在base模块中已经定义。
·特殊转弯区尺寸可自行定义。
·fine指机器人TCP达到目标点,并在目标点速度降为零,连续运行时,机器人动作有停顿。
·zone指机器人TCP不达到目标点,连续运行时,机器人动作圆滑、流畅。
·base模块中已经定义的转弯区尺寸*小为z1,*大为z200。
·尽量使用较大的转弯区尺寸。
(3)参变量:光标指在当前指令时,按功能键OptArg,可选择参变量。
·[Conc](switch)协作运动。
机器人未移动至目标点,已经开始执行下一个指令。
·[ToPoint](robtarget)在采用新指令时,目标点自动生成*。
·[V](num)定义速度mm/s。
·[T](num)定义时间s。
通过时间决定速度。
·[Z](num)定义转弯区尺寸mm。
ABB机器人常用指令详解-中文(一)
ABB常用指令详解-中文(一)ABB常用指令详解-中文(一)本文档旨在介绍ABB常用指令的详细信息,以帮助用户更好地了解和使用ABB系统。
下面将对各个章节进行详细阐述。
1.运动控制指令1.1.MOVEJ指令MOVEJ指令用于将关节直线移动到目标位置。
可以通过设置目标位置、运动速度和加速度来实现精确的运动控制。
该指令的语法如下:MOVEJ {目标位置},v{速度},a{加速度}其中,目标位置可以用关节角度或者工具坐标系位置进行表示。
1.2.MOVEL指令MOVEL指令用于将工具坐标系下的TCP(工具中心点)位置沿直线移动到目标位置。
通过设置目标位置、运动速度和加速度参数,可以实现精确的运动控制。
该指令的语法如下:MOVEL {目标位置},v{速度},a{加速度}其中,目标位置可以用工具坐标系下的坐标进行表示。
1.3.MOVEC指令MOVEC指令用于沿一条圆弧轨迹将点A移动到点B。
可通过设置起始点和终点的TCP位置,沿圆弧轨迹实现精确的运动控制。
该指令的语法如下:MOVEC {起始点TCP位置},{终点TCP位置},v{速度},a{加速度}2.系统控制指令2.1.SPEED指令SPEED指令用于设置运动的速度和加速度参数。
可以通过设置关节速度、坐标系速度和时间倍率三个参数来控制的运动速度。
该指令语法如下:SPEED v{速度},a{加速度},t{时间倍率}2.2.SETDO指令SETDO指令用于设置数字输出口的状态。
可以通过该指令将数字输出口的状态设置为高(1)或低(0)。
该指令的语法如下:SETDO x{数字输出口号},{状态}2.3.SETTOOL指令SETTOOL指令用于设置工具坐标系。
可以通过该指令将工具坐标系的原点和方向设置为指定的TCP位置。
该指令的语法如下:SETTOOL p{x},{y},{z},{q0},{q1},{q2},{q3}3.数据处理指令3.1.WT指令WT指令用于暂停程序的执行,直到满足指定的条件。
ABB机器人标准指令详解
ABB机器人标准指令详解一、 RAPID程序控制指令1、1程序开始/结束控制指令1) PROGRAM START/END1、指令格式: PROGRAM <程序名> <属性> ;2、描述:此指令标识一个机器人程序的开始或结束。
在这里,<程序名>是你给程序取的名字,<属性>是可选的,表示程序的属性(如:INTERLOCK, NO_INTERLOCK, NOPROGRAM等)。
2) JOB START/END1、指令格式: JOB <作业名> <属性> ;2、描述:此指令标识一个作业的开始或结束。
在这里,<作业名>是你给作业取的名字,<属性>是可选的,表示作业的属性(如:INTERLOCK, NO_INTERLOCK, NOPROGRAM等)。
1、2程序转移指令1) GOTO1、指令格式: GOTO <行号>;2、描述:此指令将程序执行转移到指定的行号。
2) GOSUB1、指令格式: GOSUB <行号>;2、描述:此指令将程序执行转移到指定的行号,并在返回时继续执行当前行。
3) RETURN1、指令格式: RETURN;2、描述:此指令将程序执行从 GOSUB转移到父程序,并从 GOTO转移到原程序行。
1、3条件判断指令1) IF/THEN/ELSE/ENDIF;1、指令格式: IF <条件> THEN <表达式> ELSE <表达式> ENDIF;2、描述:如果满足条件<条件>,则执行 THEN后面的表达式;否则执行 ELSE后面的表达式。
2) CASE/ESAC/ENDCASE;1、指令格式: CASE <变量> IN <表达式1> / <表达式2> /... / ENDCASE;2、描述:此指令根据变量<变量>的值选择要执行的表达式。
ABB机器人常用指令详解-中文(一)
ABB常用指令详解-中文(一)ABB常用指令详解-中文(一)1、介绍本文档详细介绍了ABB常用指令的使用方法和注意事项。
通过学习本文档,您将能够熟练使用ABB进行各种操作和编程。
2、指令列表2.1 运动指令2.1.1 MOVJ指令:用于指定关节间的跳跃式运动。
2.1.2 MOVL指令:用于指定关节间的连续式运动。
2.1.3 MOVC指令:用于指定末端执行器的圆弧路径运动。
2.1.4 MOVPT指令:用于指定末端执行器的直线和圆弧路径运动。
2.1.5 BACKUP指令:用于将退回到指定位置。
2.1.6 UPDATE指令:用于更新当前位置。
2.2 条件指令2.2.1 IF指令:用于根据某一条件执行不同的指令。
2.2.2 WHILE指令:用于在某一条件满足时重复执行一段指令。
2.2.3 WT指令:用于等待条件满足后再继续执行下一条指令。
2.3 数学指令2.3.1 ADD指令:用于将两个数相加。
2.3.2 SUB指令:用于将两个数相减。
2.3.3 MUL指令:用于将两个数相乘。
2.3.4 DIV指令:用于将两个数相除。
3、指令使用示例3.1 MOVJ指令使用示例3.1.1 指令格式:MOVJjoint_1_pos,joint_2_pos,joint_3_pos,joint_4_pos,joint_5_pos ,joint_6_pos3.1.2 示例:MOVJ 0,0,90,0,0,03.2 MOVL指令使用示例3.2.1 指令格式:MOVL x_pos,y_pos,z_pos,rz,ry,rz3.2.2 示例:MOVL 100,200,300,0,0,04、注意事项4.1 安全操作注意事项4.1.1 在操作时,请确保周围没有其他人员,以免发生意外伤害。
4.1.2 在进行编程前,请确保电源已关闭,并进行必要的安全检查。
4.2 指令使用注意事项4.2.1 在使用任何运动指令前,请确保当前位置与设定位置相符,避免发生运动错误。
ABB编程指令
ABB机器人编程指令精讲1、WZDOSet和WZLimUpWZDOSet 当机器人的TCP进入你所设定的WORLDZONE后,你所指定的一个DO信号就会自动被设定为你在指令中所定义状态。
WZLimUp当机器人的TCP 或关节将进入你所设定的WORLDZONE之前,机器人会停下来,并报警。
WORLDZONE的使用必须使用POWER_UP ROUTINE进行启动。
2、ACCSET运动控制指令-AccSetAccSet Acc,Ramp;Acc: 机器人加速度百分比(num)Ramp: 机器人加速度坡度(num)应用:当机器人运行速度改变时,对所产生的相应加速度进行限制,使机器人高速运行时更平缓,但会延长循环时间,系统默认值为AccSet100,100;限制:机器人加速度百分率值最小为20,小于20以20计,机器人加速度坡度值最小为10,小于10以10计机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。
这样,你们就可以根据实际需要进行设定了3、LoadIDLoad Identify这是ABB机器人工具和载重的重量和重心数据的识别功能。
你只需要执行一下这个程序,你就可以轻松设定TOOLDATA和LOADDATA了。
为机器人设定正确的TOOLDATA和LOADDATA是非常重要的,这是因为有了正确的数据设定以后,机器人在进行运动运算时,能更好地进行各轴扭矩的控制。
有防地防止了输出功率的过大或过小,而造成机器人电机和机构的异常损坏。
4、PDispSet在激光焊接与打标的应用中,通常在一个加工平面内,有几十个加工点。
如果因为夹具或滑台的原因造成所有加工点向一个方向整体偏移,这时对这几十个点重新教一次的话,这样工作量是相当大的。
有没有简单的方法应对这种情况呢?答案是有的,这就是PDispSet。
VAR pose xp100 := [ [X, Y, Z], [1, 0, 0, 0] ];...PDispSet xp100;例中,只需对xp100的X和Y对偏移的方向进行整体补偿,这样一来,几十个点就校正过来了。
ABB机器人常用指令详解
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之前一段时间后续指令就开始执行了。
ABB机器人部分RAPID指令中文翻译
ABB机器⼈部分RAPID指令中⽂翻译RAPID参考⼿册指令1.指令1.1.AccSet—降低加速度⽤途:当处理较⼤负载时使⽤AccSet指令。
它允许减慢加速度和减速度,使机器⼈有⼀个更平滑的运动。
该指令只能在主任务T_ROB1中使⽤,或者如果处于多运动系统,在Motion任务中。
基本范例:AccSet的基本范例说明如下。
例1AccSet 50,100;加速度备限制到正常值的50%。
例2AccSet 100,50;加速度斜线限制到正常值的50%。
项⽬:AccSet Acc RampAcc:数据类型:num(数值)加速度和减速度作为正常值的百分⽐。
100%对应最⼤加速度。
最⼤值:100%。
输⼊值<20%则给出最⼤加速度的20%。
Ramp数据类型:num(数值)加速度和减速度的增加作为正常值的百分⽐的⽐例(如图)。
通过减⼩这个数值可以限制震动。
100%对应最⼤⽐例。
最⼤值:100%,输⼊值<10%则给出最⼤⽐例的10%。
下图说明减⼩加速度可以平滑运动。
加速度加速度加速度时间时间时间AccSet 100,100 正常加速度AccSet 30,100 AccSet 100,30程序执⾏:该加速度值应⽤到机器⼈和外部轴,直到⼀个新的AccSet指令执⾏。
缺省值(100%)在以下情况是⾃动设置:●冷启动●加载了新的程序●从头开始执⾏程序时AccSet [AccSet “:=”]<数值表达式(IN)>“,”[Ramp “:=”]<数值表达式(IN)>“;”相关信息:1.2.ActUnit—激活⼀个机械单元⽤途:ActUnit⽤来激活⼀个机械单元。
例如当使⽤普通驱动单元的时候,它可以⽤来决定哪⼀个单元被激活。
该指令只能在主任务T_ROB1中使⽤,或者如果处于多运动系统,在Motion任务中。
基本范例:ActUnit的基本范例说明如下:例1 ActUnit orbit_a;orbit_a机械单元的激活。
ABB机器人常用指令详解-中文
例1 MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3; Grip3 沿着一个非线性路径运动到一个存储在指令中的一个绝对轴位置。执行的运动数据为 v2000 和 z40。 TCP 的速度大小是 2200mm/s,zone 的大小是 45mm。
by 张建辉, 韩鹏排版
该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 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 ]:
如果该项目忽略并且 ToJointPos 不是一个停止点,在机器人到达程序 zone 之前一段时间后续指令就开始执
ABB机器人标准指令详解
500 mm/s 800 mm/s 10 s
800 mm/s 1000 mm/s 1000 mm/s 6.25 s
2023/10/21
运动控制指令-VelSet
限制: 机器人冷启动,新程序载入与程序重置后,
系统自动设置为默认值。 机器人运动使用参变量 [\T] 时,最大运行速
度将不起作用。 Override 对速度数据 (speeddata) 内所有项
在一个数字数据值上增加 1,可以用赋值指 令替代,一般用于产量计数。
实例:
Incr reg1;
等同于
reg1:=reg1+1;
2023/10/21
计数指令-Decr
Decr Name;
Name: 数据名称。
实例:
ConfJ\On; … ConfJ\Off;
限制: 机器人冷启动,新程序载入与程序重置后,
系统自动设置为默认值。
2023/10/21
运动控制指令-ConfL
ConfL [\On]|[\Off];
[\On]: 启用轴配置数据。
( switch )
直线运动时,机器人移动至绝对 ModPos
点,如果无法到达,程序将停止运行。
2023/10/21
运动控制指令-SingArea
限制: 以下情况机器人将自动恢复默认值
SingArea\Off。 机器人冷启动。 系统载入新的程序。 程序重置 ( Start From Beginning )。
2023/10/21
运动控制指令-PathResol
PathResol PathSampleTime;
p10,外轴不动。
p20,外轴联动 track_motion。
p30,外轴联动 orbit_a。
ABB机器人程序指令全集1
ABB机器人程序指令全集一指令格式二指令及其参数Data := ValueAccSet Acc RampActUnit MecUnitAdd Name AddValueBreakCallBy Var Name NumberClear NameClkReset ClockClkStart ClockClkStop ClockClose IODevice! CommentConfJ [\On] | [\Off]ConfL [\On] | [\Off]CONNECT Interrupt WITH Trap routine CorrCon DescrCorrDiscon DescrCorrWrite Descr DataCorrClearDeactUnit MecUnitDecr NameEOffsSet EaxOffs ErrWrite [ \W ] Header Reason[ \RL2] [ \RL3] [ \RL4]ExitExitCycleFOR Loop counter FROM Start value TO End value[STEP Step value] DO ... ENDFORGOTO LabelGripLoad LoadIDelete InterruptIF Condition ...IF Condition THEN ...{ELSEIF Condition THEN ...}[ELSE ...]ENDIFIncr NameIndAMove MecUnit Axis [ \ToAbsPos ] | [ \ToAbsNum ] Speed[ \Ramp ]IndCMove MecUnit Axis Speed [ \Ramp ] IndDMove MecUnit Axis Delta Speed [ \Ramp ]IndReset MecUnit Axis [ \RefPos ] | [ \RefNum ] | [ \Short ] |[ \Fwd ] |[ \Bwd ] | [ \Old ]IndRMove MecUnit Axis [ \ToRelPos ] | [ \ToRelNum ] |[ \Short ] |[ \Fwd ] | [ \Bwd ] Speed [ \Ramp ]InvertDO SignalIODisable U nitName MaxTimeIOEnable UnitName MaxTimeISignalDI [ \Single ] Signal TriggValue Interrupt ISignalDO [ \Single ] Signal TriggValue Interrupt ISleep Interrupt ITimer [ \Single ] Time Interrupt IVarValue V arNo Value, InterruptIWatch InterruptLabe l:MoveAbsJ [ \Conc ] ToJointPos Speed [ \V ] | [ \T ] Zone [ \Z]Tool[\WObj ]MoveC [ \Conc ] CirPoint ToPoint Speed [ \V ] | [ \T ] Zone [ \Z]Tool [\WObj ]MoveJ [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool[ \WObj ] MoveL [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool[ \WObj ] Open Object [\File] IODevice [\Read] | [\Write] | [\Append] | [\Bin] PathResol ValuePDispOn [ \Rot ] [ \ExeP ] ProgPoint Tool [ \WObj ]PDispSet DispFramePulseDO [ \PLength ] SignalRAISE [ Error no ]Reset SignalRETURN [ Return value ]Rewind IODeviceSearchC [ \Stop ] | [ \PStop ] | [ \Sup ] Signal SearchPoint CirPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ]SearchL [ \Stop ] | [ \PStop ] | [ \Sup ] Signal SearchPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ]Set SignalSetAO Signal Value SetDO [ \SDelay ] Signal ValueSetGO Signal ValueSingArea [ \Wrist] | [ \Arm] | [ \Off]SoftAct Axis Softness [\Ramp ]Stop [ \NoRegain ]TEST Test data {CASE Test value {, Test valu e} : ...}[ DEFAULT: ...] ENDTESTTPReadFK Answer String FK1 FK2 FK3 FK4 FK5 [\MaxTime] [\DIBreak] [\BreakFlag]TPReadNum Answer String [\MaxTime] [\DIBreak] [\BreakFlag] TPShow WindowTPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]TriggC CirPoint ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ][ \T4] Zone Tool [ \WObj ]TriggInt TriggData Distance [ \Start ] | [ \Time ] InterruptTriggIO TriggData Distance [ \Start ] | [ \Time ] [ \DOp ] | [ \GOp ]|[\AOp ] SetValue [ \DODelay ] | [ \AORamp ]TriggJ ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3] [ \T4]Zone Tool [ \WObj] TriggL ToPoint Speed [ \T ] Trigg_1 [ \T2] [ \T3] [ \T4]Zone Tool[ \WObj ] TuneServo MecUnit Axis TuneValueTuneServo MecUnit Axis TuneValue [\Type]UnLoad FilePath [\File]VelSet Override MaxWaitDI Signal Value [\MaxTime] [\TimeFlag]WaitDO Signal Value [\MaxTime] [\TimeFlag]WaitTime [\InPos] Time WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag] WHILE Condition DO ... ENDWHILEWrite IODevice String [\Num] | [\Bool] | [\Pos] | [\Orient][\NoNewLine] WriteBin IODevice Buffer NCharWriteStrBin IODevice StrWZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint WZCylDef [\Inside] | [\Outside] Shape CentrePoint Radius WZDisable WorldZoneWZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before]Signal SetValueWZEnable WorldZoneWZFree WorldZoneWZLimSup [\Temp] | [\Stat] WorldZone ShapeWZSphDef [\Inside] | [\Outside] Shape CentrePoint Radius 三函数及其参数Abs (Input)ACos (Value)AOutput (Signal)ArgName (Parameter)ASin (Value)ATan (Value)ATan2 (Y X)ByteToStr (ByteData [\Hex] | [\Okt] | [\Bin] | [\Char]) ClkRead (Clock) CorrReadCos (Angle)CPos ([Tool] [\WObj])CRobT ([Tool] [\WObj])DefDFrame (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3) DefFrame (NewP1 NewP2 NewP3 [\Origin])Dim (ArrPar DimNo)DOutput (Signal)EulerZYX ([\X] | [\Y] | [\Z] Rotation)Exp (Exponent)GOutput (Signal)GetTime ( [\WDay] | [\Hour] | [\Min] | [\Sec] ) IndInpos MecUnit AxisIndSpeed MecUnit Axis [\InSpeed] | [\ZeroSpeed] IsPers (DatObj)IsVar (DatObj)MirPos (Point MirPlane [\WObj] [\MirY]) NumToStr (Val Dec [\Exp])Offs (Point XOffset YOffset ZOffset)OrientZYX (ZAngle YAngle XAngle)ORobT (OrgPoint [\InPDisp] | [\InEOffs]) PoseInv (Pose)PoseMult (Pose1 Pose2)PoseVect (Pose Pos)Pow (Base Exponent) Present (OptPar) ReadBin (IODevice [\Time])ReadMotor [\MecUnit ]AxisReadNum (IODevice [\Time])ReadStr (IODevice [\Time])RelTool (Point Dx Dy Dz [\Rx] [\Ry] [\Rz])Round ( Val [\Dec])Sin (An gl e )Sqrt (Value)StrFind (Str ChPos Set [\NotInSet])StrLen (Str)StrMap ( Str FromMap ToMap)StrMatch (Str ChPos Pattern)StrMemb (Str ChPos Set)StrOrder ( Str1 Str2 Order)StrPart (Str ChPos Len)StrToByte (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char]) StrToVal ( Str Val )Tan (Angle)TestDI (Signal)Trunc ( Val [\Dec] )ValToStr ( Val )。
ABB机器人常用指令详解
ABB机器⼈常⽤指令详解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之前⼀段时间后续指令就开始执⾏了。
ABB机器人常用指令详解-中文(1234四部分全)
ABB RAPID-1.88.MoveAbsJMoveAbsJll IR6400CMoveAbsJTCPT_ROB12071MoveAbsJ p50, v1000, z50, tool2;tool2p50v1000zone z50 2MoveAbsJ *, v1000\T:=5, fine, grip3;grip3*5MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\Wobj][\Conc]:switch\Conc5StorePath-RestoPath \ConcToJointPos zoneToJointPosjointtarget*[\ID]IDidentnoID ID routine[\NoEOffs]switch\NoEOffs1MoveAbsJSpeedspeeddataTCP[\V]numTCP mm/s[\T]numZonezonedatazone Zone[\z ]ZonenumTCP zone [\Inpos ]stoppointdataTCP zone zoneTooltooldataTCP TCP[\Wobj ]wobjdataMoveAbsJ\NoEOffs\NoEOffsTCP TCPTCPZone1MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3;Grip3v2000z40 TCP2200mm/s zone45mm2MoveAbsJ p5, v2000, fine \Inpos :=inpos50, grip3;Grip3p5fine50%50%2stoppointdata inpos503MoveAbsJ \Conc, *, v2000, z40, grip3;Grip34MoveAbsJ \Conc, * \NoEOffs, v2000, z40, grip3;5GripLoad obj_mass;MoveAbsJ start, v2000, z40, grip3 \Wobj:=obj;grip3obj startMoveAbsJMoveAbsJMoveAbsJ [ 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 RAPID959Jointtarget1010speeddataZone1047zonedata zone1014stoppointdata1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/O189MoveCTCPT_ROB12121Move p1, p2, v500, z30, tool2;Tool2TCP p2v500, zone z30.p1p2 2MoveC *, *, v500 \T:=5, fine, grip3;Grip3TCP fine** 53MoveL p1, v500, fine, tool1;MoveC p2, p3, v500, z20, tool1;MoveC p4, p1, v500, fine, tool1;MoveCMoveC [\Conc] CirPoint ToPoint [\ID] Speed [\V] | [\T] Zone [\z] [\Inpos] Tool [\Wobj] [\Corr][ \Conc]switchflyby pointsCPU\Conc 5StorePath RestorePath\ConcToPointzoneCirPointrobtarget*ToPointrobtarget*[ \ID ]IDidentnoP1P2P3P4ID ID routineSpeedspeeddataTCP[ \V]numTCP mm/s[\T]numZonezonedatazone[ \Z]ZonenumTCP zone zone[\Inpos ]stoppointdataTCP zonezoneTooltooldataTCP[\Wobj ]wobjdataTCP [ \Corr ]switchCorrWritel TCPllCirPathModeTCPzone1MoveC *, *, v500 \V:=550, z40 \Z:=45, grip3;Grip3TCP v500z40TCP 550mm/s zone45mm2MoveC p5, p6, v2000, fine \Inpos := inpos50, grip3;Grip3TCP p6fine50%50%stoppointdata inpos50 3MoveC \Conc, *, *, v500, z40, grip3;Grip3TCP4MoveC cir1, p15, v500, z40, grip3 \Wobj :=fixture;Grip3TCP cir1p15fixturecirPoint Topointl ToPoint0.1l CirPoint0.1l CirPoint ToPoint1ToPointCircle PointTCP MoveCMoveC [ Conc , ] [CirPoint := ] <robtarget(IN)>,[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 ] ;RAPID RAPID RAPID1010speeddataZone1047zonedata zone1014stoppointdata1031tooldata1039wobjdata67CorrWrite32CirPathModeRAPID RAPID I/ORAPID RAPID I/ORAPID RAPID I/O1.90MoveCDOMoveCDO TCP/T_ROB11MoveCDO p1, p2, v500, z30, tool2, do1, 1;Tool2TCP p2,v500zone z30p1p2 p2do1MoveCDO CirPoint ToPoint [\ID] Speed [\T] Zone Tool [\Wobj] Signal V alueCirPointrobtarget*ToPointrobtarget* [\ID]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazone ZoneTooltooldata[\Wobj]wobjdataTCPSignalsignaldoValuedionum01MoveC/MoveC/MoveC SetDO MoveCDO/I/O/MoveCMoveCDO [ CirPoint := ] <robtarget IN>,[ToPoint :=] <robtarget IN>,[ ID :=<identno IN>],[Speed:= ]<speeddata IN>[ T := < num IN>],[Zone:= ]<zonedata IN>,[Tool:= ]<tooldata PERS>[ Wobj := <wobjdata PERS>],[Signal:= ] <signaldo VAR>],[V alue:= ] <dionum IN>];RAPID RAPID RAPID209MoveC1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/OI/O RAPID RAPID I/O1.91MoveCSync RAPIDMoveCSync TCPRAPIDT_ROB12MoveCSync p1, p2, v500, z30, tool2, proc1;Tool2TCP p2,v500zone z30p1p2 p2proc1MoveCSync CirPoint ToPoint [\ID] Speed [\T] Zone Tool [\Wobj] ProcNameCirPointrobtarget*ToPointrobtarget*[\ID]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazone ZoneTooltooldata[\Wobj]wobjdataTCP ProcNamestringRAPIDMoveCTCP MoveCSync RAPIDRAPIDMoveC RAPIDRAPIDRAPIDMoveCRAPIDMoveCSync TRAP RAPIDMoveCSync [ CirPoint := ] <robtarget IN>,[ToPoint :=] <robtarget IN>,[ ID :=<identno IN>],[Speed:= ]<speeddata IN>[ T := < num IN>],[Zone:= ]<zonedata IN>,[Tool:= ]<tooldata PERS>[ Wobj := <wobjdata PERS>],[ProcName:= ] <sting IN>];RAPID RAPID RAPID209MoveC1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ObyRAPID RAPID I/O I/O RAPID RAPID I/O1.92MoveExtJ TCPMoveExtJ TCPll TCP2251MoveExtJ jpos10, vrot10, z50;jpos1010/zone z502MoveExtJ \Conc, jpos20, vrot10 \T:=5, fine \InPos:=inpos20;5jpos20jpos20inpos20MoveExtJ [\Conc] To JointPos [\ID] Speed [\T] Zone [\Inpos][ \Conc]switchflyby points CPU\Conc5StorePath RestorePath\ConcToPoint zoneToJointPosjointtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddata[\T]numZonezonedatazone[\Inpos ]stoppointdataTCP zone zoneCONST jointtarget j1 :=[[9E9,9E9.9E9.9E9.9E9.9E9],[0,9E9,9E9,9E9,9E9,9E9]];CONST jointtarget j2 :=[[9E9,9E9.9E9.9E9.9E9.9E9],[30,9E9,9E9,9E9,9E9,9E9]];CONST jointtarget j3 :=[[9E9,9E9.9E9.9E9.9E9.9E9],[60,9E9,9E9,9E9,9E9,9E9]];CONST jointtarget j4 :=[[9E9,9E9.9E9.9E9.9E9.9E9],[90,9E9,9E9,9E9,9E9,9E9]];CONST speeddata rot_ax_speed:=[0,0,0,45];MoveeExtJ j1, rot_ax_speed, fine;MoveeExtJ j2, rot_ax_speed, z20;MoveeExtJ j3, rot_ax_speed, z20;MoveeExtJ j4, rot_ax_speed, fine0, 30, 609045/MoveExtJ [ Conc ,][ ToJointPos := ]<jointtarget IN>[ ID := <identno IN>],[Speed:= ]<speeddata IN>[T:= <num IN>],[Zone:= ]<zonedata IN>[ Inpos := <stoppointdata IN>];RAPID RAPID RAPIDjointtarget959jointtarget1010speeddataZone1047zonedata zoneRAPID RAPID I/ORAPID RAPID I/O 1.93MoveJMoveJT_ROB12281MoveJ p1, vmax, z30, tool2;tool2TCP p1vmax zone z30 2MoveJ *, vmax \T:=5, fine, grip3;grip3TCP*5MoveJ [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\WObj][ \Conc ]switchflyby points CPU\Conc5StorePath RestorePath\ConcToPoint zoneToPointrobtarget*[ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\V]numTCP mm/s[\T]numZonezonedatazone[\Z]ZonenumTCP mm zone zone[\Inpos ]stoppointdataTCP zone zoneTooltooldataTCP[\Wobj]wobjdataTCPTCPTCP TCPTCPzone1MoveJ *, v2000\V:=2200, z40 \Z:=45, grip3;grip3TCP v2000z40TCP zone2200mm/s45mm2MoveJ p5, v2000, fine \Inpos := inpos50, grip3;grip3TCP p5fine50%50%2stoppointdata inpos503MoveJ \Conc, *, v2000, z40, grip3;grip3TCP4MoveJ start, v2000, z40, grip3 \WObj:=fixture;grip3TCP start fixtureMoveJ[ 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)> ] ;RAPID RAPID RAPID1010speeddataZone1047zonedata zone1014stoppointdata1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/ORAPID RAPID I/O1.94MoveJDOMoveJDO/T_ROB11MoveJDO p1, vmax, z30, tool2, do1, 1;tool2TCP p1vmax zone z30p1 do1MoveJDO ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal ValueToPointrobtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]wobjdataTCPSignalsignaldoValuedionum01MoveJ/MoveJ/MoveJ SetDO MoveJDO/I/O/MoveJDO_[ ToPoint := ] < robtarget(IN) > ,_[ ID := < identno(IN) >],_[ Speed := ] < speeddata(IN) >_[ T := < num(IN) > ] ,_[ Zone := ] < zonedata(IN)>,_[ Tool := ] < tooldata(PERS) >_[ WObj := < wobjdata(PERS) > ] ,_[ Signal := ] < signaldo(VAR)>],_[ Value:= ] < dionum(IN) > ] ;RAPID RAPID RAPID226MoveJ1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/OI/O RAPID RAPID I/O1.95.MoveJSync RAPIDMoveJSyncRAPIDT_ROB11MoveJSync p1, vmax, z30, tool2, proc1;tool2TCP p1vmax zone z30p1 proc1MoveJSync ToPoint [\ID] Speed [\T] Zone Tool [\WObj] ProcNameToPointrobtarget*[ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]wobjdataTCPProcNamestringRAPIDMoveJTCP MoveJSync RAPIDMoveJ RAPIDRAPIDRAPIDRAPIDMoveJSync TRAP RAPIDMoveJSync[ ToPoint := ] < robtarget(IN) > ,[ ID := < identno(IN)>],[ Speed := ] < speeddata(IN) >[ T := < num(IN) > ] ,[ Zone := ] < zonedata(IN) >[ Z := < num(IN) > ] ,[ Tool := ] < tooldata(PERS) >[ WObj := < wobjdata(PERS)> ] ,[ ProcName:= ] <string(IN) > ] ;RAPID RAPID RAPID226MoveJ1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/O1.96.MoveLMoveL TCP TCPT_ROB12381MoveL p1, v1000, z30, tool2;Tool2TCP p1v1000zone z302MoveL *, v1000\T:=5, fine, grip3;Grip3TCP*5MoveL [\Conc] ToPoint [\ID] Speed [\V] | [ \T] Zone [\Z] [\Inpos] Tool [\WObj] [\Corr][ \Conc ]switchflyby points CPU\Conc5StorePath RestorePath\ConcToPoint zoneToPointrobtarget*[ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\V]numTCP mm/s[\T]numZonezonedatazone[\Z]ZonenumTCP mm zone zone[\Inpos ]stoppointdataTCP zonezoneTooltooldataTCP[\Wobj]wobjdataTCP[ \Corr ]switchCorrWritel TCPllTCPzone1MoveL *, v2000 \V:=2200, z40 \Z:=45, grip3;Grip3TCP v2000z40TCP zone 2200mm/s45mm2MoveL p5, v2000, fine \Inpos := inpos50, grip3;Grip3TCP p5fine50%50%stoppointdata inpos50 3MoveL \Conc, *, v2000, z40, grip3;Grip3TCP4MoveL start, v2000, z40, grip3 \WObj:=fixture;Grip3TCP start fixtureMoveL _[ 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 ];RAPID RAPID RAPID1010speeddataZone1047zonedata zone1014stoppointdata1031tooldata1039wobjdata67CorrWriteRAPID RAPID I/ORAPID RAPID I/ORAPID RAPID I/O1.97.MoveLDOMoveLDO TCP/TCPT_ROB11MoveLDO p1, v1000, z30, tool2, do1,1;tool2TCP p1v1000zone z30p1 do1MoveLDO ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal Value ToPointrobtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]wobjdataTCPSignalsignaldoValuedionum01MoveL/MoveLDO/MoveJ SetDO MoveLDO/I/O/MoveLDO _[ ToPoint := ] < robtarget(IN)>,_[ ID := < identno(IN)>],_[ Speed := ] < speeddata(IN)>_[ T := < num(IN)> ] ,_[ Zone := ] < zonedata(IN)>,_[ Tool := ] < tooldata(PERS)> _[ WObj := < wobjdata(PERS)> ] ,_[ Signal := ] < signaldo(VAR) >] ,_[ Value := ] < dionum(IN)> ] ;RAPID RAPID RAPID236MoveL1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/O I/O RAPID RAPID I/O1.98.MoveLSync RAPIDMoveLSync TCPRAPIDTCPT_ROB11MoveLSync p1, v1000, z30, tool2, proc1;tool2TCP p1v1000zone z30p1 proc1MoveLSync ToPoint [\ID] Speed [\T] Zone Tool [\WObj] ProcName ToPointrobtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]wobjdataTCPProcNamestringRAPIDMoveJTCP MoveJSync RAPIDMoveL RAPIDRAPIDRAPIDRAPIDMoveLSync TRAP RAPIDMoveLSync[ ToPoint := ] < robtarget(IN) > ,[ ID := < identno(IN)>],[ Speed := ] < speeddata(IN) >[ T := < num(IN) > ] ,[ Zone := ] < zonedata(IN) >[ Tool := ] < tooldata(PERS) >[ WObj := < wobjdata(PERS)> ] ,[ ProcName:= ] <string(IN) > ] ;RAPID RAPID RAPID236MoveL1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/OWorld Zone10l TCPll1.227WZBoxDef World ZoneWZBoxDef World Zone World Zone World1VAR shapedata volume;CONST pos corner1:=[200, 100, 100];CONST pos corner2 :=[600, 400, 400];WZBoxDef \Inside, volume, corner1, corner2;World corner1corner2WZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint[\Inside]:switch[\OutSide]:switch\Inside\OutsideShapeshapedataprivateLowPointposx, y, zHighPoint:posx, y, zshapedata Shape WZLimSup WZDOSetLowPoint HighPoint x y zLowPoint HighPoint wobj0robtarget trans p1.transWZBoxDef[[Inside] | [Outside],[LowPoint:=]<pos IN>,[Shape:=]<shapedata VAR>,[HighPoint:=]<pos IN>;World Zones RAPID RAPID I/O World ZoneWorld Zone1004shapedata World ZoneWorld Zone 636WZSphDef World ZoneWorld Zone 613WZCylDef World Zonehome World Zone 625WZHomeJointDef home World ZoneWorld Zone 629WZLimJointDef World Zone World Zone633WZLimSup World ZoneWorld Zone617WZDOSet World Zone1.228WZCylDef World ZoneWZCylDef World Zone World Zone World z1VAR shapedata volume;CONST pos C2:= [300, 200, 200];CONST num R2:= 100;CONST num H2:=200;WZCylDef \Inside, volume, C2, R2, H2;C2R2H2WZCylDef [\Inside] | [\Outside] Shape CenterPoint Radius Height[\Inside]:switch[\Outside]:switch\Inside\OutsideShape:shapedataprivateCentrePoint:posx y zRadiusnumHeightnum+z CentrePointHeight-z CentrePointshapedata Shape WZLimSup WZDOSetCentrePoint wobj0robtarget trans p1.transWZCylDef[Inside] | [Outside],[Shape:=]<shapedata VAR>,[CentrePoint:=]<pos IN>,[Radius:=]<num IN>,[Height:=]<num IN>;World Zones RAPID RAPID I/O World Zone World Zone1004shapedata World ZoneWorld Zone 636WZSphDef World ZoneWorld Zone 611WZBoxDef World Zonehome World Zone 625WZHomeJointDef home World ZoneWorld Zone 629WZLimJointDef World Zone World Zone633WZLimSup World ZoneWorld Zone617WZDOSet World Zone1.229WZDisable World ZoneWZDisable World Zone World Zone1VAR wztemporary wzone;PROCWZLimSup \Temp, wzone, volume;MoveL p_pick, v500, z40, tool1;WZDisable wzone;MoveL p_place, v200, z30, tool1;ENDPROCp_pick TCP wzonebyp_placeWZDisable WorldZoneWorldZonewztemporaryWztemporary WorldZoneWorldZone TCPWZEnableWorldZone WorldZoneWZDisable[WorldZone:=]<wztemporaty INOUT>;World Zones RAPID RAPID I/O World Zone World Zone 613WZCylDef World Zone World Zone1045wztemporary WorldZoneWorldZone633WZLimSup WorldZoneWorld Zone617WZDOSet World ZoneWorldZone621WZEnableWorldZone623WZFree WorldZone1.230WZDOSet WorldZoneWZDOSet WorldZone WorldZoneTCP/WorldZone WorldZone1VAR wztemporary service;PROC zone_output( )VAR shapedata volume;CONST pos p_service:= [500, 500, 700];WZSphDef \Inside, volume, p_service, 50;WZDOSet \Temp, service \Inside, volume, do_service, 1;ENDPROCWorldZone service TCPdo_serviceWZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape Signal SetV alue[\Temp]switchWorldZone WorldZone[\Stat]switchWorldZone WorldZone[\Temp][\Stat]WorldZonewztemporary wzstationaryWorldZone\Temp wztemporary\Stat wzstationary [\Inside]switchTCP[\Before]switchTCP[\Inside][\Before]ShapeshapedataWorldZoneSignalsignaldoWorldZone RAPID FPSetValue:dionumTCP10TCPWorldZone TCP/TCP/\Inside\Before WZDOSet WZHomeJointDef WZLimJointDef1VAR wztemporary home;VAR wztemporary service;PERS wztemporary equip1:=[0];PROC main( )!WorldZoneZone_output;! equip1WZEnable equip1;! equip1WZDisable equip1;!equip1WZFree equip1;ENDPROCPROC zone_output( )VAR shapedata volume;CONST pos p_home:=[800, 0, 800];CONST pos p_service:=[800, 800, 800];CONST pos p_equip1:=[-800,-800, 0];WZSphDef \Inside, volume, p_home, 50;WZDOSet \Temp, home \Inside, volume, do_home, 1;WZSphDef |Inside, volume, p_service, 50;WZDOSet \Temp, service \Inside, volume, do_service, 1;WZCylDef \Inside, volume, p_equip1, 300, 1000;WZLimSup \Temp, equip1, volume;! equip1WZDisable equip1;ENDPROCWorldZone home servicehome service WorldZone do_home do_serviceWorldZone quip1equip1equip1equip1 equip1equip1WorldZone WorldZoneGrip3TCP p5fine50%50%stoppointdata inpos50 3MoveL \Conc, *, v2000, z40, grip3;Grip3TCP4MoveL start, v2000, z40, grip3 \WObj:=fixture;Grip3TCP start fixtureMoveL _[ 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 ];RAPID RAPID RAPID1010speeddataZone1047zonedata zone1014stoppointdata1031tooldata1039wobjdata67CorrWriteRAPID RAPID I/ORAPID RAPID I/ORAPID RAPID I/O1.97.MoveLDOMoveLDO TCP/TCPT_ROB11MoveLDO p1, v1000, z30, tool2, do1,1;tool2TCP p1v1000zone z30p1 do1MoveLDO ToPoint [\ID] Speed [\T] Zone Tool [\WObj] Signal Value ToPointrobtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]wobjdataTCPSignalsignaldoValuedionum01MoveL/MoveLDO/MoveJ SetDO MoveLDO/I/O/MoveLDO _[ ToPoint := ] < robtarget(IN)>,_[ ID := < identno(IN)>],_[ Speed := ] < speeddata(IN)>_[ T := < num(IN)> ] ,_[ Zone := ] < zonedata(IN)>,_[ Tool := ] < tooldata(PERS)> _[ WObj := < wobjdata(PERS)> ] ,_[ Signal := ] < signaldo(VAR) >] ,_[ Value := ] < dionum(IN)> ] ;RAPID RAPID RAPID236MoveL1010speeddataZone1047zonedata zone1031tooldata1039wobjdataRAPID RAPID I/ORAPID RAPID I/O I/O RAPID RAPID I/O1.98.MoveLSync RAPIDMoveLSync TCPRAPIDTCPT_ROB11MoveLSync p1, v1000, z30, tool2, proc1;tool2TCP p1v1000zone z30p1 proc1MoveLSync ToPoint [\ID] Speed [\T] Zone Tool [\WObj] ProcName ToPointrobtarget* [ \ID ]IDidentnoID ID routineSpeedspeeddataTCP[\T]numZonezonedatazoneTooltooldataTCP[\Wobj]。
ABB ROBOT 常用RAPID指令一
ABB ROBOT 常用RAPID指令一在工业自动化领域,ABB 机器人凭借其出色的性能和灵活性得到了广泛的应用。
而对于操作和编程 ABB 机器人来说,熟悉常用的 RAPID 指令是至关重要的。
接下来,就让我们一起深入了解一些 ABB 机器人常用的 RAPID 指令。
首先要介绍的是“MoveAbsJ”指令。
这个指令用于将机器人以绝对关节位置的方式移动到指定的目标点。
它的优点在于可以快速地将机器人移动到一个完全确定的位置,而无需考虑机器人当前的姿态。
使用“MoveAbsJ”指令时,需要指定每个关节的角度值。
例如,如果我们想要将机器人的关节 1 移动到 30 度,关节 2 移动到 60 度,关节 3 移动到 90 度,关节 4 移动到 120 度,关节 5 移动到150 度,关节 6 移动到 180 度,可以这样编写指令:MoveAbsJ 30, 60, 90, 120, 150, 180, v1000, z50, tool0;其中,“v1000”表示速度,“z50”表示转弯半径,“tool0”表示工具坐标系。
接下来是“MoveJ”指令。
与“MoveAbsJ”指令不同,“MoveJ”指令是以关节运动的方式将机器人移动到目标点,但目标点是以相对于当前位置的增量方式来指定的。
这使得在一些需要连续关节运动的操作中更加方便。
比如,我们想要让机器人的关节 1 相对于当前位置增加 10 度,关节 2 增加 20 度,关节 3 增加 30 度,关节 4 增加 40 度,关节 5 增加 50 度,关节 6 增加 60 度,可以这样写:MoveJ 10, 20, 30, 40, 50, 60, v800, z30, tool1;“MoveL”指令也是常用的指令之一。
它用于直线运动,机器人会沿着一条直线从当前位置移动到指定的目标位置。
在实际应用中,当需要机器人精确地沿着直线轨迹进行操作时,“MoveL”指令就派上了用场。
ABB机器人常用指令详解 中文
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之前一段时间后续指令就开始执行了。
ABB机器人常用指令总结
ABB机器人常用指令总结1. ProgramName:用户可以将编程的名称指定为ProgramName,该指令将定义当前编程的名称,例如,ProgramName=正在编程的程序名称示例。
2. Create: Create指令有三个补充部分,第一个部分是模式,要么用“INC”表示自动增量模式,要么用“TEACH”表示立体机械手模式,第二部分是程序号,第三部分是将要执行的程序号命令,例如,Create INC ProgramName 。
3. Add:当用户使用立体机械手模式编程时,使用Add相应指令添加新的点位,Add指令如下:Add [PointName] x y z a b c。
4. Move:用来控制机械手移动位置到目的位置,用户可以用下列指令定义移动方式:MoveJoint [Joint],MoveLin [Point],MoveCir [Point]和MoveComb。
5. End:当编程完成后,在程序的末尾应该编入End指令,一般结束一个程序的时候会回到原点,End指令有两个参数,第一个参数可以设置工具的坐标,设为“Work”;第二个参数可以设置用于到达home点的机械臂移动方式,设为“Joint”或“Lin”。
6. Speed:Speed指令可以用来控制机械臂运行的速度,在Speed指令中可以指定多个速度参数,例如,SpeedLin [velocity(m/s)], SpeedJoint [velocity(deg/s)]和SpeedTool [velocity (m/s)]。
7. Stop:当机械臂出现故障或在工作过程中又被迫暂停时,只要输入Stop指令就可以暂时停止机械臂的运行。
8. Wait:等待指令可以在机械臂完成某些指令之后,等待一定的时间后再继续执行下一个指令,单位是秒,例如,Wait 10 。
9. Comment: Comment指令用于在程序中添加任意的文本[1] 。
10. Manual: Manual指令用于退出自动模式,转入手动模式,在手动模式下,机械臂的运动受键盘,操作执行。