ABB机器人常用指令详解-中文

合集下载

ABB机器人程序指令汇总

ABB机器人程序指令汇总

ABB机器人程序指令汇总(1)控制指令:
MOVE:使机器人进行移动操作;
SETPOS:设置机器人的位置;
SETSPEED:设置机器人的移动速度;
STOP:停止机器人操作;
WAIT:让机器人等待指定时间;
RESET:重置机器人;
(2)比较指令:
EQ:比较两个数值是否相等;
GT:比较两个数值是否大于;
LT:比较两个数值是否小于;
GE:比较两个数值是否大于等于;
LE:比较两个数值是否小于等于;
(3)转换指令:
JMP:跳转指令;
CALL:调用其他程序指令;
RETURN:返回到调用程序的位置;
(4)数学指令:
ADD:加法;
SUB:减法;
MUL:乘法;
DIV:除法;
ABS:绝对值;
DFIX:四舍五入保留小数;
(5)条件指令:
IF:判断语句;
ELSE:条件不符合时执行的操作;
ENDIF:结束IF语句;
(6)循环指令:
WHILE:循环语句;
ENDWHILE:结束WHILE语句;
DO:DO循环语句;
ENDDO:结束DO循环语句;
(7)输入输出指令:
INPUT:输入信号;
OUTPUT:输出信号;
(8)其他指令:
JOG:机器人的连续运动;。

ABB机器人常用指令详解-中文

ABB机器人常用指令详解-中文

ABB常用指令详解-中文ABB常用指令详解-中文一、简介及背景ABB是一种先进的自动化设备,具有广泛的应用领域。

本文档将详细介绍ABB常用指令,帮助用户快速了解和掌握的操作技巧和功能。

二、基础指令1.MOVE指令:用于控制的移动,包括直线和旋转方向的移动。

2.SPEED指令:设置的运动速度。

3.HOME指令:将恢复到初始位置。

4.STOP指令:停止的运动。

5.PAUSE指令:暂停的运动,可以手动恢复。

6.WT指令:等待指定条件满足后再继续执行下一步指令。

三、高级指令1.ROBOT指令:控制的工作模式,包括自动模式和示教模式。

2.PROGRAM指令:创建、编辑和运行的程序。

3.CALL指令:调用其他程序或子程序。

4.IF指令:根据条件执行不同的操作。

5.FOR指令:循环执行一系列指令。

6.WHILE指令:在条件满足的情况下重复执行一系列指令。

四、IO指令1.SET指令:设置的输入输出状态。

2.READ指令:读取的输入输出状态。

3.WTIO指令:等待的输入输出状态满足指定条件后再继续执行。

五、系统指令1.DATE指令:获取或设置的日期。

2.TIME指令:获取或设置的时间。

3.ERROR指令:获取或清除的错误信息。

4.POSITION指令:获取当前的位置信息。

5.TOOL指令:设置或校准的工具。

6.SPEEDLIMIT指令:设置的速度限制。

六、附件本文档涉及附件如下:1.附件1:ABB常用指令示例程序2.附件2:ABB常用指令使用手册七、法律名词及注释1.:指能够自动执行任务的可编程设备。

2.指令:语句或命令,用于控制的操作。

3.输入输出(IO):用于与外部设备之间的数据传输和通信。

4.程序:包含一系列指令的有序集合。

5.条件:一种逻辑判断,用于根据不同的情况执行不同的操作。

6.工具:所用的工作设备。

ABB机器人常用指令详解-中文

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机器人实际应用总结归纳中的指令说明

ABB机器人实际应用总结归纳中的指令说明

ABB机器人实际应用总结归纳中的指令说明(一)ABB机器人指令
1、JOINT指令:Joint指令是ABB机器人操作中最基本的指令,它用
来控制ABB机器人的运动。

Joint指令不仅要求用户指定机器人的力矩,
还要求用户指定机器人的关节转动角度以及机器人到达目标位置的时间。

2、POS指令:Pos指令用来控制ABB机器人在空间位置上的运动,以
及机器人的末端位置。

Pos指令要求用户指定机器人到达目标位置的速度,机器人的最大运动速度,机器人的到达目标位置的最短时间。

3、LINE指令:Line指令用来控制ABB机器人沿一条直线路径的运动。

Line指令要求用户指定机器人运动的起点和终点,以及机器人的最大运
动速度和到达目标位置的最短时间。

4、CYCLE指令:Cycle指令用来控制ABB机器人同一条轨迹多次运动
的指令,可以设置循环次数,指定循环运动的参数,如运动速度,运动的
起始点和终点,以及机器人的到达目标位置的最短时间。

5、WAIT指令:Wait指令用来控制ABB机器人暂停一段时间,在
Wait指令中,用户可以指定暂停时间的长短,也可以指定机器人在暂停
时间内运动的参数,如运动速度等。

6、IF指令:If指令用来控制ABB机器人在满足特定条件时执行特定
操作。

ABB机器人常用指令详解-中文(一)

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机器人常用指令详解-中文(一)

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机器人常用指令详解

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机器人常用指令详解-中文
by 张建辉, 韩鹏排版
例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机器人标准指令详解

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机器人常用指令详解

ABB机器人常用指令详解

ABB机器人常用指令详解关键信息项:1、指令名称:____________________2、指令功能:____________________3、适用场景:____________________4、参数设置:____________________5、示例代码:____________________11 移动指令111 MoveL 指令MoveL 指令用于线性移动机器人的工具中心点(TCP)到指定的目标位置。

它以直线方式移动,确保路径是一条直线。

指令格式:MoveL ToPoint, Speed, Zone参数说明:ToPoint:目标位置的坐标。

Speed:移动速度。

Zone:逼近和离开目标位置的过渡区域大小。

112 MoveJ 指令MoveJ 指令用于关节运动,机器人以最快的速度将工具中心点移动到目标位置。

指令格式:MoveJ ToPoint, Speed, Zone参数说明:ToPoint:目标位置的关节角度。

Speed:移动速度。

Zone:逼近和离开目标位置的过渡区域大小。

12 输入输出指令121 SetDO 指令SetDO 指令用于设置数字输出信号的值。

指令格式:SetDO Signal, Value参数说明:Signal:要设置的数字输出信号的名称。

Value:设置的值,通常为 0 或 1。

122 WaitDI 指令WaitDI 指令用于等待数字输入信号达到指定的值。

指令格式:WaitDI Signal, Value, Timeout参数说明:Signal:要等待的数字输入信号的名称。

Value:期望的信号值。

Timeout:等待的超时时间,如果在超时时间内未达到指定值,则程序继续执行。

13 逻辑指令131 IF 指令IF 指令用于根据条件执行不同的操作。

指令格式:IF Condition THEN Statements ELSE Statements ENDIF 参数说明:Condition:判断条件。

ABB机器人常用指令详解-中文

ABB机器人常用指令详解-中文

ABB机器人常用指令详解-中文ABB机器人RAPID常用指令详解-中文1.88.MoveAbsJ—把机器人移动到绝对轴位置用途:MoveAbsJ(绝对关节移动)用来把机器人或者外部轴移动到一个绝对位置,该位置在轴定位中定义。

使用实例:l 终点是一个单一点l 对于IR6400C中的不明确的位置,例如携带超过机器人范围的工具运动。

MoveAbsJ指令中机器人的最终位置,既不受工具或者工作对象的影响,也不受激活程序更换的影响。

但是机器人要用到这些数据来计算负载、TCP速度和转角点。

相同的工具可以被用在相邻的运动指令中。

机器人和外部轴沿着一个非直线的路径移动到目标位置。

所有轴在同一时间运动到目标位置。

该指令只能被用在主任务T_ROB1中,或者在多运动系统中的运动任务中。

基本范例:例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之前一段时间后续指令就开始执by 张建辉,韩鹏排版行了。

ABB机器人常用指令详解-中文一资料

ABB机器人常用指令详解-中文一资料

ABB机器人常用指令详解-中文一资料ABB机器人是一种广泛应用于工业自动化生产线的机器人,具有高效、精准、稳定的特点。

在ABB机器人的编程中,有许多常用的指令,这些指令的灵活运用可以有效提高机器人的工作效率,增强其生产力。

本篇文章将对ABB机器人最常用的指令进行详细解析,帮助读者更深入地了解ABB机器人的工作原理和应用。

1. 机器人移动指令:MoveJ和MoveLMoveJ和MoveL是ABB机器人最基本的两个指令,也是最常用的指令之一。

它们用于控制机器人轨迹的移动和路径规划。

MoveJ指令是用于控制机器人进行关节移动的指令,它可以精确地控制机器人各个关节的角度,实现精细调整,适用于要求高精度的任务。

例如,如果你需要让机器人从起点移动到终点,可以使用MoveL指令控制其直线移动;如果你需要对物体进行拾取、放置操作,可以使用MoveJ指令精准地控制机器人的关节角度。

2. 机器人姿态指令:Orient和KeepOrientOrient指令用于控制机器人达到特定的姿态,例如翻转、旋转等,确保机器人可以准确抓取、放置物体。

而KeepOrient则是用于维持机器人当前的姿态,保持其在执行任务时的稳定性。

例如,在机器人需要对工件进行研磨时,可以使用Orient指令将机器人的姿态调整为水平翻转状态,以便更好地接触工件表面;而在机器人需要对液体进行搅拌时,可以使用KeepOrient指令,保持机器人的当前姿态不变,确保搅拌的效果稳定。

MoveC用于控制机器人进行圆弧运动,使其沿着一条弧形路径移动。

该指令可以控制机器人沿着任意弧线轨迹运动,实现比较灵活的移动模式。

MoveAbs指令是指使机器人按照指定的绝对坐标移动。

该指令可以快速准确地限制机器人的移动范围,并控制其达到指定位置。

同时,该指令也可以结合其他指令,实现不同的运动模式。

例如,在机器人需要对零件进行平移时,可以使用MoveAbs指令指定零件的位置坐标和运动方向,快速准确地将其移动到指定的位置;而在机器人需要对零件进行旋转时,可以使用MoveC指令指定圆弧路径和旋转角度,实现旋转运动。

ABB机器人常用指令详解

ABB机器人常用指令详解

ABB常用指令详解1、ABB常用指令详解在ABB编程中,常用指令是必须掌握的内容。

本文将详细介绍ABB常用指令,并提供示例代码和相关说明,以帮助读者更好地理解和应用这些指令。

1.1 移动指令1.1.1 PTP(Point-to-Point)指令PTP指令用于使从当前位置直接移动到指定的目标位置。

该指令可在关节坐标系和工具坐标系下使用。

以下是一个示例代码:PTP P1, v100, z50, TCP1解释:- PTP:移动指令的类型。

- P1:目标位置的类型,可以是关节坐标或工具坐标。

- v100:移动速度,100表示100%的速度。

- z50:运动轴向的位置,50表示50mm。

- TCP1:工具坐标系,默认值为TCP1.1.1.2 LIN(Linear)指令LIN指令用于使沿直线轨迹从当前位置移动到指定的目标位置。

以下是一个示例代码:LIN P2, v200, z100, TCP2解释:- LIN:移动指令的类型。

- P2:目标位置的类型,可以是关节坐标或工具坐标。

- v200:移动速度,200表示200%的速度。

- z100:运动轴向的位置,100表示100mm。

- TCP2:工具坐标系。

1.2 程序控制指令1.2.1 IF-ELSE指令IF-ELSE指令用于根据条件执行不同的操作。

以下是一个示例代码:IF cond1 THENPTP P3, v150, z200, TCP3ELSEPTP P4, v100, z150, TCP4ENDIF解释:- IF cond1 THEN:如果条件cond1满足,则执行下一行的操作。

- PTP P3, v150, z200, TCP3:目标位置的移动指令。

- ELSE:如果条件cond1不满足,则执行下一行的操作。

- PTP P4, v100, z150, TCP4:另一个目标位置的移动指令。

- ENDIF:指示IF-ELSE语句块的结束。

1.2.2 WHILE指令WHILE指令用于循环执行一段代码,直到指定条件不满足为止。

ABB机器人常用指令详解-中文(1234四部分全)

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机器人常用指令1、机器人运动控制MoveJ(关节运动指令)MoveL(TCP直线运动指令)MoveC(TCP圆弧运动指令)MoveAbsJ(轴绝对角度位置运动指令)2、例行程序内的逻辑控制Compact IF (如果条件满足,就执行一条指令)IF(当条件不同的条件时,执行对应的程序)For(根据指定的次数,重复执行对应的程序)While(如果条件满足,重复对应的程序)Test(对一个变量进行判断,从而执行不同的程序)GOTO(跳转到例行程序内标签的位置)Label(跳转标签)3、停止程序执行Stop(停止程序执行)Exit(停止程序执行并禁止在停止处开始)Break(临时停止程序的执行,用于手动调试)ExitCycle(中止当前程序的运行并将程序指针 PP 复位到主程序的第一条指令,如果选择了程序连续运行模式,程序将从主程序的第一句)4、赋值指令:= (对程序数据进行赋值)5、等待指令WaitTime(等待一个指定的时间,程序再往下执行)WaitDI(等待一个数字输入信号的指定状态)WaitDO(等待一个数字输出信号指定状态)WaitGI(等待一个组输入信号指定状态)WaitGO(等待一个组输出信号指定状态)WaitAI(等待一个模拟输入信号指定状态)WaitAO(等待一个模拟出信号指定状态)WaitUntil(等待直至满足条件)6、关于位置的功能offs(对机器人位置进行偏移)RelTool(对工具的位置和姿态进行偏移)7、对输入输出信号的值进行设定Reset(将数字输出信号值为0)Set(将数字输出信号值为1)SetDO(设定数字输出信号的值)SetGO(设定组输出信号的值)SetAO(设定模拟输出信号的值)8、程序的调用ProcCall(调用例行程序)CallByVar(通过带变量的例行程序名称调用例行程序) 9、程序注释commet(对程序进行注释)10、示教器上人机界面的功能TPErase(清屏)TPWrite(在示教器操作界面写信息)TPReadFK(互动的功能键操作)TPReadNum(互动的数字键盘操作)11、Sockets 通信SocketClose(关闭socket)SocketCreate(创建新的socket)SocketConnect(连接远程计算机)SocketBind(将套接字与我的IP地址和端口绑定)SocketListen(监听输入连接)SocketAccept(接受输入连接)Socketsend(发送数据到远程计算机)SocketReceive(从远程计算机接收数据)12、文件的读取和写入Open(用于打开文件或串行通道,以进行读取或写入)ReadStr(从一个文件或串行通道读取一个字符串)Write(写入到基于字符的文件或串行通道)13、String字符串操作ReadStr(从一个文件或串行通道读取一个字符串)StrPart(寻找一部分字符串)StrFind(搜索一个字符串中的一个字符)StrLen(获取字符串长度)StrToVal(将一段字符串转换为一个值)。

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机器人常用指令总结

ABB机器人常用指令总结

ABB机器人常用指令总结
一、概述
ABB机器人的指令是基于操作系统的,也就是说,要掌握ABB机器人
的指令,就要先理解ABB机器人的操作系统。

ABB机器人的操作系统是一
个基于RobotWare的操作系统,用于控制ABB机器人的指令是基于RobotWare指令的。

ABB机器人的操作系统提供了许多指令可供用户操作,下面介绍ABB机器人常用的几个指令。

二、RobotWare指令
1、安全指令:RobotWare的安全指令包括“安全状态”和“安全设置”两大类。

其中,“安全状态”用于控制机器人的安全状态,如开启或
关闭机器人,检测机器人的状态等;“安全设置”用于设置机器人的安全
参数,如设置机器人的安全半径、设置机器人的碰撞告警阈值等。

2、机器人控制指令:RobotWare的机器人控制指令主要涉及机器人
的运动控制、机器人的位置控制、机器人的夹持控制等。

3、文件操作指令:RobotWare的文件操作指令包括文件打开、文件
查询和文件关闭等。

4、调试指令:RobotWare的调试指令主要涉及机器人调试、仿真调
试等。

三、常用指令
1、启动机器人:开启机器人的命令是“RobStart”,用于启动机器人。

2、停止机器人:停止机器人的命令是“RobStop”,用于停止机器人的运行。

3、控制机器人运动:机器人的运动控制指令有“RobMove”、“RobSpeed”等。

ABB机器人常用指令详解-中文(三)

ABB机器人常用指令详解-中文(三)

by 张建辉, 韩鹏排版
并发的程序执行
RAPID 参考手册—RAPID 概述,运动和 I/O 原理—用逻辑指令同步部分
1.97.MoveLDO-直线移动机器人并且在转角处设置数字输出
用途: MoveLDO(直线运动数字输出)用来直线移动TCP到指定的目标点。在转角路径的中间位置,指定的数字输
出信号被置位/复位。 当TCP仍旧固定的时候,该指令也可以用来给工具重新定向。 该指令只能用在主任务 T_ROB1 中,或者在多运动系统中的运动任务中。
MoveLSync ToPoint [\ID] Speed [\T] Zone Tool [\WObj] ProcName
ToPoint: 数据类型:robtarget 机器人和外部轴的目标点。定义为一个命名的位置或者直接存储在指令中(在指令中用*标记)。
[ \ID ]: 同步 ID 数据类型:identno 该项目必须使用在多运动系统中,如果并列了同步运动,则不允许在其他任何情况下使用。 指定的 ID 号在所有协同的程序任务中必须相同。该 ID 号保证在 routine 中运动不会混乱。
对于停止点,我们推荐使用“正常”的编程顺序,即 MoveL+其他 RAPID 指令。
下表描述了在不同执行模式下指定的 RAPID 程序的执行:
执行模式
RAPID 程序的执行
继续或者循环
按照该描述
逐步向前
在停止点
逐步向后
一点也不执行
限制:
当程序停止后,从连续执行或循环执行切换到逐步向前或者向后将导致错误。该错误告诉用户模式切换将
如果并列了同步运动,不允许在其他任何情况下使用。 Speed:
数据类型:speeddata 应用到运动中的速度数据。速度数据定义 TCP、工具重新定向或者外部轴的速度。 [\T]: 时间 数据类型:num 该项目用来指定外部轴运动的总时间,单位秒。它代替相应的速度数据。 Zone: 数据类型:zonedata 运动的 zone 数据。它描述产生的转角路径的大小。 Tool: 数据类型:tooldata 机器人运动时所使用的工具。TCP 就是移动到目标点的那个点。 [\Wobj]: 工作对象
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 ‘:=’<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指令画一个完整的圆。

项目: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机器人的圆轴上的中间点。

这是圆轴上处于起点和终点之间的点。

相关文档
最新文档