ABB机器人常用指令详解-中文(二)
ABB机器人常用指令详解-中文
MoveAbsJ [\Conc] ToJointPos [\ID] [\NoEOffs] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\Wobj]
相关信息:
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 原理—用逻辑指令同步部分
例2 MoveAbsJ p5, v2000, fine \Inpos :=inpos50, grip3; Grip3 沿着一个非线性路径运动到绝对轴位置 p5。当停止点 fine 的 50%的位置条件和 50%的速度条件满足 的时候,机器人认为它已经到达位置。它等待条件满足最多等 2 秒。参看 stoppointdata 类型的预定义数据 inpos50。
下图显示了后台运行 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)> ] ‘;’
ABB机器人常用指令详解-中文
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机器人标准指令详解
运动控制指令-SingArea
应用: 当前指令通过对机器人位置点姿态进行些许 改变,可以绝对避免机器人运行时死机,但 是,机器人运行路径会受影响,姿态得不到 控制,通常使用于通过复杂姿态点,绝对不 能作为工作点使用。 实例:
SingArea\Wrist; … SingArea\Off;
实例:
限制: 机器人加速度百分率值最小为 20,小于 20 以 20 计,机器人加速度坡度值最小为 10, 小于 10 以 10 计。 机器人冷启动,新程序载入与程序重置后, 系统自动设置为默认值。
2019/2/5
运动控制指令-VelSet
VelSet Override, Max;
Override:机器人运行速率 %。 Max: 最大运行速度 mm/s。
2019/2/5
运动控制指令-ConfJ
应用: 对机器人运行姿态进行限制与调整,程序运 行时,使机器人运行姿态得到控制。系统默 认值为 ConfJ\On; 。
实例:
ConfJ\On; … ConfJ\Off;
限制: 机器人冷启动,新程序载入与程序重置后, 系统自动设置为默认值。
2019/2/5
p10,外轴不动。 p20,外轴联动 track_motion。 p30,外轴联动 orbit_a。
限制: 不能在指令 StorePath …RestoPath 内使用。 不能在预置程序 RESTART 内使用。 不能在机器人转轴处于独立状态时使用。
2019/2/5
外轴激活指令-DeactUnit DeactUnit MecUnit;
限制: 机器人被强制停止运行后,软伺服设置将自 动失效。 同一转轴软化伺服不允许被连续设置两次。
ABB机器人标准指令详解
运动控制指令-PathResol
限制: 机器人必须在完全停止后才能更改路径控制
值,否则,机器人将默认一个停止点,并且 显示错误信息 50146。 机器人正在更改路径控制值时,机器人被强 制停止运行,机器人将不能立刻恢复正常运 行 ( Restart )。 以下情况机器人将自动恢复默认值 100%。 机器人冷启动。 系统载入新的程序。 程序重置 ( Start From Beginning )。
外轴激活指令
ActUnit
DeactUnit
2024/2/8
外轴激活指令-ActUnit
ActUnit MecUnit;
MecUnit:
外轴名。
( mecunit )
应用:
将机器人一个外轴激活,例如:当多个外轴 公用一个驱动板时,通过外轴激活指令 ActUnit 选择当前所使用的外轴。
2024/2/8
外轴激活指令-ActUnit
实例:
MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;
SoftDeact [\Ramp];
[\Ramp]: 软化坡度,>=100%。 ( num )
应用: 当前指令用于使软化机器人主机或外轴伺服 系统指令 SoftAct 失效。
实例:
SoftAct 3,20; SoftDeact; SoftAct 1,90; SoftDeact\Ramp:=150;
2024/2/8
限制:
机器人被强制停止运行后,软伺服设置将自 动失效。
abb机器人常用指令详解
abb机器人常用指令详解本文主要是关于abb机器人的相关介绍,并着重对abb机器人常用指令进行了详尽的阐述。
abb机器人常用指令详解MoveExtJ:移动一个或者多个没有TCP的机械单元MoveExtJ jpos10,vrot10,z50;意思是移动旋转外部轴到关节位置jpos10,速度10°/秒,zone数据z50.MoveExtJ\Conc,jpos20,vrot10\T:=5,fine\InPos:=inpos20;意思是5秒钟外部轴移动到关节位置jpos20.程序立即向前执行,但是外部轴停止在位置jpos20,直到inpos20的收敛性标准满足。
如上图所示:MoveLp1,v200,z10,tool1\Wobj:wobj1;机器人的TCP从当前位置向p1点以线性运动方式前进,速度是200mm/s,转弯区数据是10mm,距离p1点还有10mm 的时候开始转弯,使用的工具数据是tool1,工件坐标数据是wobj1.MoveL p2,v100,fine,tool1\Wobj:=wobj1;机器人的TCP从p1点向p2点以线性运动方式前进,前进速度是100mm/s,转弯区数据是fine,机器人在p2点稍作停顿,使用的工具数据是tool1,工件坐标数据是wobj1.MoveJ p3,v500,fine,tool1\Wobj:=wobj1;机器人的TCP从p2向p3点以关节运动方式前进,速度是500mm/s,转弯区数据是fine,机器人在p3点停止,使用的工具数据是tool1,工件坐标数据是wobj1.关于速度:速度一般最高只有v5000;在手动限速状态下,所有的运动速度被限速在250mm/s。
关于转弯区:fine指机器人TCP到达目标点,在目标点速度降为零,机器人动作有所停顿后再向下一目标点运动,如果是一段路径的最后一个点一定要为fine;转弯区数值越大,机器人的动作路径就越圆滑和流畅。
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。
06_ABB机器人常用指令详解-中文(二)
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机械单元的激活。
项目:AccUnit MechUnitMechUnit:机械单元数据类型:mecunit(机械单元)要激活的机械单元的名称。
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机器人编程指令精讲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机器人常用指令详解-中文
例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机器人常用指令详解-中文(二)
关节 目 标( jointt jointtarget -关节 位置数据
速度 的定义
第 1010 页 speeddata— 速度数据
Zone 数据 的定义 运动 综 述
第 1047 页 zonedata— zone 数据 RAPID 参考手册 — RAPID 概述,运动和 I/O 原理部分
总 的来说, TCP按照大约 的编 程 速度 运动( 无论 是 否 并列了 外部轴)。 在 TCP运动的同 时, 工具重新 定 向 , 外部轴也 在运 行 。如果 不 能 达到 工具重新 定 向 或者外部轴的 编 程的 速度 , TCP的 速度 将降低 。
当 运动 路径 转 到下一 段 的时候 , 通常 会产生 转 角路径 。如果 在zone数据中 指定 了停止点 ,只有 当 机 器人 和 外部轴 到达 合适 的 位置 的 时候 ,程序 执行 才会继 续 。
使用 项目 \Conc 的 时候 ,连续 的运动指令的 数量限 制为 5 个。 在包括 StorePath— RestorePath 的程序 段中不 允许 使用带有 \Conc 项目 的运动指令。
如果 不使用该 项目 ,并且 ToPoint 不是停止点 ,在 机 器人到达 程序 zone 之前 一 段时间后续 指令 就开始执行
[\T] : 时间 数据类型 : num 该 项目 用来指定外部轴运动的 总 时间 ,单 位秒 。 它代替 相 应 的速度数据 。
Zone: 数据类型 : zonedata 运动的 zone 数据 。 它描 述 产生 的转 角路径 的 大小 。
[\Z] : Zone 数据类型 : num 该 项目 用来 在 指令 中直接 指定机 器人 TCP 的 位置 精 度。转 角路径 的 长度 单 位是 mm,它代替 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全部编程指令详解
ABB全部编程指令详解ABB编程指令是ABB机器人控制系统的一部分,它是指示机器人执行特定操作的指令集。
ABB编程指令非常丰富,包括运动指令、逻辑指令、传感器指令等等。
下面我们将对ABB编程指令进行详细的介绍。
1. 运动指令ABB运动指令用于控制机器人的运动,包括直线运动、圆弧运动、旋转运动等等。
其中比较常见的运动指令包括:(1) MOVEJ:用于控制机器人进行关节运动,即指定机器人的每个关节移动到特定的位置。
(2) MOVEL:用于控制机器人进行直线运动,即指定机器人从当前位置移动到目标位置,并沿着一条直线路径到达目标位置。
(3) MOVEC:用于控制机器人进行圆弧运动,即指定机器人从当前位置移动到目标位置,并在目标位置旋转到指定的方向上。
(4) MOVER:用于控制机器人进行旋转运动,即指定机器人绕着某个轴旋转到特定的位置。
2. 逻辑指令ABB逻辑指令用于控制机器人的逻辑操作,包括条件判断、循环结构等等。
其中比较常见的逻辑指令包括:(1) IF-ELSE:用于进行条件判断操作,即如果某个条件成立,则执行特定的操作,否则执行另外的操作。
(2) WHILE-DO:用于进行循环结构操作,即指定某个操作重复执行直到满足某个条件。
(3) SWITCH-CASE:用于进行多分支判断操作,即如果某个条件成立,则执行对应的操作,否则执行默认操作。
3. 传感器指令ABB传感器指令用于控制机器人的感知操作,包括传感器读取、数据处理等等。
其中比较常见的传感器指令包括:(1) READ:用于读取传感器数据,即获取传感器传回的信息。
(2) FILTER:用于对传感器数据进行滤波操作,即去除噪声和干扰。
(3) CALC:用于对传感器数据进行计算操作,即对传感器数据进行处理,得出特定的结果。
4. 其他指令除了上述三类指令外,ABB编程指令还包括其他指令,比如:(1) WAIT:用于控制机器人等待一段时间,直到时间到达才继续执行下一个操作。
ABB机器人标准指令详解
应用: 当前指令用于软化机器人主机或外轴伺服系 统,软化值范围 0%-100%,软化坡度范 围>=100%,此指令必须与指令 SoftDeact 同时使用,通常不使用于工作位置。
2019/2/5
运动控制指令-SoftAct
实例:
SoftAct 3,20; SoftAct 1,90\Ramp:=150; SoftAct \MechUnit:=orbit1,1,40\Ramp:=120;
实例:
Incr reg1;
等同于
reg1:=reg1+1;
2019/2/5
计数指令-Decr
Decr Name;
MecUnit: 外轴名。
( mecunit )
应用: 使机器人一个外轴失效,例如:当多个外轴 公用一个驱动板时,通过外轴激活指令 DeactUnit 使当前所使用的外轴失效。
2019/2/5
外轴激活指令-DeactUnit
实例:
MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;
2019/2/5
运动控制指令-PathResol
实例:
MoveJ p1,v1000,fine,tool1; PathResol 150;
机器人在临界运动状态 ( 重载、高速、路 径变化复杂情况下接近最大工作区域 ), 增加路径控制值,可以避免频繁死机。 外轴以很低的速度与机器人联动,增加路 径控制值,可以避免频繁死机。 机器人进行高频率摆动弧焊时,需要很高 的路径采样时间,需要减小路径控制值。 机器人进行小圆周或小范围复杂运动时, 需要很高精度,需要减小路径控制值。
最全的ABB机器人程序指令解读
最全的ABB机器人程序指令解读一、程序储存器(Programmemory)的组成:应用程序(Program)系统模块(Systemmodules)机器人程序储存器中,只允许存在一个主程序;所有例行程序与数据无论存在于哪个模块,全部被系统共享;所有例行程序与数据除特殊定义外,名称必须是唯一的。
1、应用程序(Program)的组成:主模块(Mainmodule)主程序(Mainroutine)程序数据(Programdata)例行程序(Routines)程序模块(Programmodules)程序数据(Programdata)例行程序(Routines)2、系统模块(Systemmodules)的组成:系统数据(Systemdata)例行程序(Routines)所有ABB机器人都自带两个系统模块,USER模块与BASE模块,根据机器人应用不同,有些机器人会配备相应应用的系统模块。
建议不要对任何自动生成的系统模块进行修改。
二、编程窗口:1、菜单键File:1、 Open:打开一个现有文件。
(程序.prg或模块.mod)2、 New:新建一个程序。
3 、Saveprogram :存储更改后的现有程序。
4 、Saveprogramas:存储一个新程序。
5 、Print: 打印程序,现已经不使用。
6、 Preferences:定义用户化指令集。
7、 Checkprogram :检验程序,光标会提示错误。
8 、Close:在程序储存器中关闭程序。
9、 Savemodule :存储更改后的现有模块。
(只在Module窗口中存在)0、Savemoduleas : 存储一个新模块。
(只在Module窗口中存在)2、菜单键Edit:1、 Cut:剪切,可能会丢失指令或数据。
2 、Copy :复制。
3 、Paste :粘贴,将剪切或复制的指令或数据粘贴到相应位置。
4、 GotoTop:将光标移至顶端。
5、 GotoBottom :将光标移至底端。
ABB机器人程序指令汇总
ABB机器人程序指令汇总
一、IRProgram
1. IRProgram:使用此指令编程ABB机器人。
2. Instruction:此指令可以向机器人发送指令,包括按单次命令执行、循环执行、运动等。
3. ProgramLine:此指令设置机器人单次操作步骤的顺序,机器人按
此顺序执行指令。
4. Position:此指令确定机器人的实际位置,用来计算机器人的路
径或者运动距离。
5. Interpln:此指令用来控制机器人运动的过渡,比如采用加速度、减速度等。
6. Zonedheader:此指令定义机器人任务中的一些步骤,比如,给定
回归点、给定回归方向等。
7. Maskword:此指令用于设置机器人的安全模式,以防止机器人偏
离设定的轨迹和安全路径。
8. Stop:此指令用于控制机器人的停止。
9. Echo:此指令用于在编程过程中显示一段文字,方便开发人员从
错误中记录错误信息。
二、IRStep
2. Line:此指令可以定义任务中各个行动的顺序,机器人按此顺序
执行指令。
3. Move:此指令可以让机器人运动到指定位置。
4. Delay:此指令可以让机器人暂停其中一段时间,等待其中一种情况出现。
5. Add:此指令可用于给机器人添加各种参数,以完成不同的任务。
6. Subtract:此指令用于从机器人中减去参数,以完成任务。
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之前一段时间后续指令就开始执行了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RAPID 参考手册-RAPID 概述,运动和 I/O 原理-坐 标系部分 RAPID 参考手册—RAPID 概述,运动和 I/O 原理—用 逻辑指令同步部分
1.92.MoveExtJ-移动一个或者多个没有 TCP 的机械单元
用途: MoveExtJ(移动外部关节)只用来移动线性或者旋转外部轴。该外部轴可以属于一个或者多个没有 TCP 的
MoveeExtJ j1, rot_ax_speed, fine;
MoveeExtJ j2, rot_ax_speed, z20;
MoveeExtJ j3, rot_ax_speed, z20;
MoveeExtJ j4, rot_ax_speed, fine
在该例子中,旋转独立轴移动到轴位置 0, 30, 60 和 90 度,移动速度为 45 度/秒。
工具 tool2 的 TCP 沿着一个非线性路径到位置 p1,速度数据是 vmax,zone 数据是 z30。 例 2 MoveJ *, vmax \T:=5, fine, grip3;
工具 grip3 的 TCP 沿着一个非线性路径运动到存储在指令中的停止点(用*标记)。整个运动需要 5 秒钟。 项目:
MoveJ [\Conc] ToPoint [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos] Tool [\WObj] [ \Conc ]:
并发事件 数据类型:switch 当机器人运动的同时,后续的指令开始执行。该项目通常不使用,但是当使用飞点(flyby points)时,可 以用来避免由 CPU 过载引起的不想要的停止。当使用高速度并且编程点相距较近时这是很有用的。例如,当不 要求与外部设备通讯或外部设备和机器人通讯同步的时候,这个项目也很有用。 使用项目\Conc 的时候,连续的运动指令的数量限制为 5 个。在包括 StorePath—RestorePath 的程序段中不 允许使用带有\Conc 项目的运动指令。 如果不使用该项目,并且 ToPoint 不是停止点,在机器人到达程序 zone 之前一段时间后续指令就开始执行 了。 在多运动系统中的坐标同步运动中不能使用该项目。 ToPoint: 数据类型:robtarget 机器人和外部轴的目标位置。定义为一个命名的位置或者直接存储在指令中(在指令中用*标记)。 [ \ID ]: 同步 ID 数据类型:identno 该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 ID 号在所有协同的程序任务中必须相同。该 ID 号保证在 routine 中运动不会混乱。 如果并列了同步运动,不允许在其他任何情况下使用。
by 张建辉, 韩鹏排版
另一方面,如果使用了静态TCP或者并列了外部轴,该项目必须指定。 程序执行:
机器人TCP用轴角度插补移动到目标点。也就是说每一个轴都使用一个固定的轴速度并且所有轴同时到达 目标点,所走的是一个非线性的路径。
总的来说,TCP按照大约的编程速度运动(无论是否并列了外部轴)。在TCP运动的同时,工具重新定向, 外部轴也在运行。如果不能达到工具重新定向或者外部轴的编程的速度,TCP的速度将降低。
Zone: 数据类型:zonedata 运动的 zone 数据。它描述产生的转角路径的大小。
[\Z]: Zone 数据类型:num 该项目用来在指令中直接指定机器人 TCP 的位置精度。转角路径的长度单位是 mm,它代替 zone 数据中相
应的 zone。 [\Inpos ]:
到位 数据类型:stoppointdata(停止点数据) 该项目用来指定机器人 TCP 在停止点位置的收敛性判别标准。该停止点数据代替在 zone 参数中指定的 zone。 Tool: 数据类型:tooldata 当机器人运动的时候使用的工具。TCP 是移动到指定的目标点的那个点。 [\Wobj]: 工作对象 数据类型:wobjdata 指令中机器人位置相关到的工作对象(坐标系)。该项目可以忽略,如果忽略的话,位置相关到世界坐标系。
语法:
MoveExtJ [‘\’ Conc ‘,’]
[ ToJointPos’ :=’ ]<jointtarget 类型的表达式(IN)> [‘\’ ID ‘:=’ <identno 类型的表达式(IN)>]’,’
[Speed ‘:=’ ]<speeddata 类型的表达式(IN)>
[‘\’T ‘:=’ <num 类型的表达式(IN)>] ‘,’ [Zone ‘:=’ ]<zonedata 类型的表达式(IN)>
外部单元。 该指令只能用来: l 和定义为运动任务的实际程序任务一起使用,并且 l 如果任务控制一个或者多个没有 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]:
工具grip3的TCP沿着一个非线性移动到指令中存储的位置。当机器人移动的时候,后续逻辑指令开始执行。
例4 MoveJ start, v2000, z40, grip3 \WObj:=fixture;
工具grip3的TCP沿着一个非线性的路径到位置start。该位置在fixture的对象坐标系统中指定。 语法:
并发事件 数据类型:switch 当外部轴运动的同时,后续的指令开始执行。该项目通常不使用,但是当使用飞点(flyby points)时,可 以用来避免由 CPU 过载引起的不想要的停止。当使用高速度并且编程点相距较近时这是很有用的。例如,当不 要求与外部设备通讯和外部设备和机器人通讯同步的时候,这个项目也很有用。 使用项目\Conc 的时候,连续的运动指令的数量限制为 5 个。在包括 StorePath—RestorePath 的程序段中不 允许使用带有\Conc 项目的运动指令。 如果不使用该项目,并且 ToPoint 不是停止点,在机器人到达程序 zone 之前一段时间后续指令就开始执行
MoveJ [ ’\’ 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)> ] ‘,’_
Zone 数据的定义
第 1047 页 zonedata—zone 数据
运动综述
RAPID 参考手册—RAPID 概述,运动和 I/O 原理部分
当前程序执行
RAPID 参考手册-RAPID 概述,运动和 I/O 原理部分
1.93.MoveJ-通过关节移动移动机器人
用途: 当运动不必是直线的时候,MoveJ 用来快速将机器人从一个点运动到另一个点。
by 张建辉, 韩鹏排版
机器人和外部轴沿着一个非直线的路径移动到目标点,所有轴同时到达目标点。 该指令只能用在主任务 T_ROB1 中,或者在多运动系统中的运动任务中。 基本范例: 该指令的基本范例说明如下: 也可参看第 228 页更多指令。
例1 MoveJ p1, vmax, z30, tool2;
by 张建辉, 韩鹏排版
了。 在多运动系统中的坐标同步运动中不能使用该项目。
ToJointPos: 到达关节位置 数据类型:jointtarget 外部轴的绝对目标轴位置。定义为一个命名的位置或者直接存储在指令中(在指令中用*标记)。
[ \ID ]: 同步 ID 数据类型:identno 该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 ID 号在所有协同的程序任务中必须相同。该 ID 号保证在 routine 中运动不会混乱。
CONST jointtarget j1 :=[[9E9,9E9.9E9.9E9.9E9.9E9],[0,9E9,9E9,9E9,9E9,9E9]];
by 张建辉, 韩鹏排版
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];
如果并列了同步运动,不允许在其他任何情况下使用。 Speed:
数据类型:speeddata 应用到运动中的速度数据。速度数据定义旋转或者线性外部轴的速度。 [\T]: 时间 数据类型:num 该项目用来指定外部轴运动的总时间,单位秒。它代替相应的速度数据。 Zone: 数据类型:zonedata 运动的 zone 数据。它定义停止点或者飞点。如果是飞点它描述线性或者旋转外部轴的减速度或者加速度。 [\Inpos ]: 到位 数据类型:stoppointdata(停止点数据) 该项目用来指定机器人 TCP 在停止点位置的收敛性判别标准。该停止点数据代替在 zone 参数中指定的 zone。 程序执行: 线性或者旋转外部轴按照编程的速度移动到编程的点。 更多范例: