文档库 最新最全的文档下载
当前位置:文档库 › (完整版)ABB机器人的程序编程

(完整版)ABB机器人的程序编程

(完整版)ABB机器人的程序编程
(完整版)ABB机器人的程序编程

ABB[a]-J-6ABB 机器人的程序编程

6.1 任务目标

?掌握常用的PAPID 程序指令。

?掌握基本RAPID程序编写、调试、自动运行和保存模块。

6.2 任务描述

◆建立程序模块test12.24,模块test12.24 下建立例行程序main 和Routine1,在main 程序下进行运动指

令的基本操作练习。

◆掌握常用的RAPID 指令的使用方法。

◆建立一个可运行的基本RAPID程序,内容包括程序编写、调试、自动运行和保存模块。

6.3 知识储备

6.3.1 程序模块与例行程序

RAPID 程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。应用程序是使用称为RAPID 编程语言的特定词汇和语法编写而成的。RAPID 是一种英文编程语言,所包

含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。RAPID 程序的基本架构如图所示:

RAPID 程序的架构说明:

1)RAPID 程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。

2)可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。

3)每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都

有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。

4)在RAPID 程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID 程序执行的起点。

操作步骤:

6.3.2 在示教器上进行指令编程的基本操作

ABB 机器人的RAPID 编程提供了丰富的指令来完成各种简单与复杂的应用。下面就从最常用的指令开始

学习RAPID 编程,领略RAPID 丰富的指令集提供的编程便利性。

6.4 任务实施

6.4.1 基本RAPID 指令练习

建立程序模块test12.24,模块test12.24 下建立例行程序main 和Routine1,在main 程序下进行运动指令的基本操作练习。

1.赋值指令“:=”赋值指令用于对程序数据进行赋值。赋值可以是一个常量或数学

表达式。下面的操作步骤以添加一个常量赋值与数学表达式赋值说明此指令

的使用:常量赋值:reg1:=5;

数学表达式赋值:reg2:=reg1+4; (1)添加常量赋值指令的操作

(2)添加带数学表达式的赋值指令的操作

1. 在指令列表中选择“:=”。

2.机器人运动指令

机器人在空间中运动主要有关节运动(MoveJ)、线性运动(MoveL)、圆弧运动(MoveC)和绝对位置运动(MoveAbsJ)四种方式。

(1)绝对位置运动指令绝对位置运动指令是机器人的运动使用六个轴和外轴的角度值来定义目标位置数据。操作步骤:

1.进入“手动操纵”画面,确认

已选定工具坐标与工件坐标

(*提示:在添加或修改机器

人的运动指令之前,一定要

确认所使用的工具坐标与工

件坐标)。

2.选中指令的位置,打开“添

加指令” 菜单,选择

“M oveAbsJ”指令。

指令解析:

MoveAbsJ *\NoEOffs, v1000, z50, tool1\Wobj:=wobj1;

*提示:MoveAbsJ 常用于机器人六个轴回到机械零点(0°)的位置。

(2)关节运动指令

关节运动指令是对路径精度要求不高的情况下,机器人的工具中心点TCP 从一个位置移动到另一个位

置,两个位置之间的路径不一定是直线。

MoveJ p10, v1000, z50, tool1\Wobj:=wobj1;

关节运动适合机器人大范围运动时使用,不容易在运动过程中出现关节轴进入机械死点的问题。

*注意:目标点位置数据定义机器人TCP 点的运动目标,可以在示教器中单击“修改位置”进行修改。

运动速度数据定义速度(mm/s)

转弯区数据定义转变区的大小mm。工具坐

标数据定义当前指令使用的工具工件坐标

数据定义当前指令使用的工件坐标

(3)线性运动指令

线性运动是机器人的TCP 从起点到终点之间的路径始终保持为直线。一般如焊接、涂胶等应用对路径

要求高的场合使用此指令。

第二个点用于圆

弧的曲率,第三个点是圆弧的终点。

指令解析:

MoveL p10, v1000, fine, tool1\Wobj:=wobj1;

MoveC p30, p40, v1000, z1, tool1\Wobj:=wobj1;

(5)运动指令的使用示例

指令:

MoveL p1, v200, z10, tool1\Wobj:=wobj1;

MoveL p2, v100, fine, tool1\Wobj:=wobj1;

MoveJ p3, v500, fine, tool1\Wobj:=wobj1;

图示:

p3 10mm

p1

200mm/s 10

50 0m

0m

p2

说明:

机器人的TCP 从当前位置向p1 点以线性运动方式前进,速度是200mm/s,转弯区数据是10mm,距离p1 点还有10mm 的时候开始转弯,使用的工具数据是tool1,工件坐标数据是wobj1。

机器人的TCP 从p1 向p2 点以线性运动方式前进,速度是100mm/s,转弯区数据是fine,机器人在p2 点稍作停顿,使用的工具数据是tool1,工件坐标数据是wobj1。

机器人的TCP 从p2 向p3 点以关节运动方式前进,速度是500mm/s,转弯区数据是fine,机器人在p3 点停止,使用的工具数据是tool1,工件坐标数据是wobj1。

提示:

*关于速度:速度一般最高为50000mm/s,在手动限速状态下,所有的运动速度被限速在250mm/s *关于转弯区:fine 指机器人TCP 达到目标点,在目标点速度降为零。机器人动作有所停顿然后再向下运动,如果是一段路径的最后一个点,一定要为fine。转弯区数值越大,机器人的动作路径就越圆滑与流畅。

3.I/O 控制指令

I/O 控制指令用于控制I/O 信号,以达到与机器人周边设备进行通信的目的。

(1)Set 数字信号置位指令

Set 数字信号置位指令用于将数字输出(Digital Output)置位为“1”。

Set do1;

(2)Reset 数字信号复位指令

Reset 数字信号复位指令用于将数字输出(Digital Output)置位为“0”。

Reset do1;

*提示:如果在Set、Reset 指令前有运动指令MoveJ、MoveL、MoveC、MoveAbsJ 的转弯区数据,必须使用fine 才可以准确地输出I/O 信号状态的变化。

(3)WaitDI 数字输入信号判断指令

WaitDI 数字输入信号判断指令用于判断数字输入信号的值是否与目标一致。

WaitDI di1, 1;

在例子中,程序执行此指令时,等待di1 的值为1。如果di1 为1,则程序继续往下执行;如果到达最大等待时间300s(此时间可根据实际进行设定)以后,di1 的值还不为1,则机器人报警或进入出错处理程序。

(4)WaitDO 数字输出信号判断指令

WaitDO 数字输出信号判断指令用于判断数字输出信号的值是否与目标一致。

WaitDO do1, 1;

参数以及说明同WaitDi 指令。

(5)WaitUntil 信号判断指令

WaitUntil 信号判断指令可用于布尔量、数字量和I/O 信号值的判断,如果条件到达指令中的设定值,程序继续往下执行,否则就一直等待,除非设定了最大等待时间。

WaitUntil di1 = 1;

WaitUntil do1 = 0;

WaitUntil flag = TRUE;

WaitUntil num1 = 4;

4.条件逻辑判断指令

条件逻辑判断指令用于对条件进行判断后,执行相应的操作,是RAPID 中重要的组成部分。

(1)Compact IF 紧凑型条件判断指令

Compact IF 紧凑型条件判断指令用于当一个条件满足了以后,就执行一句指令。

IF flag1 = TRUE Set do1;

如果flag1 的状态为TRUE,则do1 被置位为1。

(2)IF 条件判断指令

IF 条件判断指令,就是根据不同的条件去执行不同的指令。

指令解析:

IF num1=1 THEN

flag:=TRUE;

ELSEIF num1=2 THEN

f la g1:=FALSE;

ELSE

Set do1;

ENDIF

如果num1 为1,则flag1 会赋值为TRUE。如果num1 为2,则flag1 会赋值为FALSE。除了以上两种条件之外,则执行do1 置位为1.

*条件判定的条件数量可以根据实际情况进行增加与减少。

(3)FOR 重复执行判断指令

FOR 重复执行判断指令,是用于一个或多个指令需要重复执行次数的情况

FOR i FROM 1 TO 10 DO

Routine1;

ENDFOR

例行程序Routine1,重复执行10 次。

(4)WHILE 条件判断指令

WHILE 条件判断指令,用于在给定条件满足的情况下,一直重复执行对应的指令。

WHILE num1>num2 DO

num1:=num1-1;

ENDWHILE

当num1>num2 的条件满足的情况下,就一直执行num1:=num1-1 的操作。

5.其他的常用指令

(1)ProcCall 调用例行程序指令通过使用此指令

在指定的位置调用例行程序。

(2)RETURN 返回例行程序指令4. 调用例行程序指令执行

的结果。

RETURN 返回例行程序指令,当此指令被执行时,则马上结束本例行程序的执行,返回程序指针到调用此例行程序的位置。

当di1=1 时,执行RETURN 指令,程序指针返回到调用Routine2 的位置并继续向下执行Set do1 这个指令。

(3)WaitTime 时间等待指令

WaitTime 时间等待指令,用于程序在等待一个指定的时间以后,再继续向下执行

WaitTime 4;

Reset do1;

等待4s 以后,程序向下执行Reset do1 指令。

6.4.2 常用RAPID 指令的使用方法

1.用户输入两个数字,按钮选择一个运算符,屏幕输出运算结果(使用TPReadNum、TPReadFK、TPWrite 和IF 指令)

2.用户输入一个0-100 的分数值,程序输出A(90-100)、B(80-89)、C(60-79)、D(0-60)四个评级。(IF ELSEIF 语句的使用)

3.使用WHILE 或FOR 循环,计算1+2+3+……+99+100 的结果。

4.RAPID 编程中的功能(FUNCTION)的使用介绍

使用自定义功能,自己实现Offs 功能和Abs 功能(需掌握带参数的功能、功能返回值以及复杂数据的

,需要教师指导)。

赋值方法,随堂联系practise10-1,

功能Abs:

功能Offs:

5.掌握中断程序的使用

(1)使用di 信号触发中断程序,每次触发,均使系统用户变量reg1 进行+1 的操作,当reg1>10 时,将reg1重置为1。

(2)使用ITimer 指令进行定时间隔为1s 的中断触发,每次触发使系统用户变量reg2 进行+1 的操作,当reg2>10 时,将reg2 重置为1。

6.4.3 建立一个可运行的基本RAPID 程序

在之前的章节中,已大概了解RAPID 程序编程的相关操作及基本的指令。现在就通过一个实例来体验一下ABB 机器人便捷的程序编辑。

编制一个程序的基本流程是这样的:

1)确定需要多少个程序模块。多少个程序模块是由应用的复杂性所决定的,比如可以将位置计算、程 序数据、逻辑控制等分配到不同的程序模块,方便管理。

2)确定各个程序模块中要建立的例行程序,不同的功能就放到不同的程序模块中去,如夹具打开、夹 具关闭这样的功能就可以分别建立成例行程序,方便调用与管理。

1.建立 RAPID 程序实例(事前准备建立 board10 和 di1)

1. 确定工作要求:

机器人空闲时,在 位 置 点 pHome 等 待。如果外部信号 di1 输入为 1 时,机 器人沿着物体的一 条边从 p10 到 p20 走一条直线,结束 以 后 回 到 pHome

点。

简单,所以只需建一个程序模块就足

ABB机器人的程序编程

ABB[a]-J-6ABB 机器人的程序编程 6.1 任务目标 ?掌握常用的 PAPID 程序指令。 ?掌握基本 RAPID 程序编写、调试、自动运行和保存模块。 6.2 任务描述 ?建立程序模块test12.24,模块test12.24 下建立例行程序main 和Routine1,在main 程序下进行运动指令的基本操作练习。 ?掌握常用的RAPID 指令的使用方法。 ?建立一个可运行的基本 RAPID 程序,内容包括程序编写、调试、自动运行和保存模块。 6.3 知识储备 6.3.1 程序模块与例行程序 RAPID 程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。应用程序是使用称为RAPID 编程语言的特定词汇和语法编写而成的。RAPID 是一种英文编程语言,所包 含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作

员交流等功能。RAPID 程序的基本架构如图所示: RAPID 程序的架构说明: 1)RAPID 程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。2)可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。 3)每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象, 但不一定在一个模块中都 有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。

4)在RAPID 程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID 程序执行的起点。操作步骤:1. 单击“程序编辑器”,查看 RAPID 程序。文 6.3.2 在示教器上进行指令编程的基本操作 ABB 机器人的RAPID 编程提供了丰富的指令来完成各种简单与复 杂的应用。下面就从最常用的指令开始

ABB机器人SmarTac程序实例.doc

一、SmarTac 程序实例 在实际的应用中,smartac有两种方法对焊缝进行纠偏,第一种是用search1D指令检测单个焊缝的偏移,比如寻找起弧点和收弧点,寻找的方向可以使1维的也可以是2维和3维的。这种方法适用于每一条焊缝的变化都是相对对立的并且焊缝相对于检测方向不能有太大的角度变化,比如开关柜。这种方法是直接找到偏移量然后用P-disp frame(P-DispSet指令)直接在工件坐标系里面偏移相应的坐标值。例如: 找点程序 PDispOff; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D Cs2401, *, scp2_4_x, v100, tSensor\WObj:=Wobj_StnA\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D Cs2401,*,scp2_4_z,v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=Cs2401\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1DCs2401,*,scp2_4_y,v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=Cs2401\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D s2400,*, sp2400_x, v100, tSensor\WObj:=Wobj_StnA\SchSpeed:=3; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D s2400, *, sp2400_y, v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=s2400\SchSpeed:=3; PDispSet Cs2401 MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; ArcLStart p2401, v1000, seam1,wd01_16\Weave:=Weave1,fine, tWeldGun\Wobj:=Wobj_StnA; PDispoff; PDispSet Cs2400; ArcLEnd p2400, v1000, seam1, wd01_16\Weave:=weave1, fine, tWeldGun\WObj:=Wobj_StnA; PDispOff;

ABB机器人程序实例

MODULE MainModule CONST robtarget pHome:=[[1525.42,272.18,1873.69],[4.42963E-05,0.699969,-0.7141 73,-2.80277E-05],[0,-1,- 1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9 E+09]]; CONST robtarget pPrePickMould:=[[1653.99,272.19,1779.41],[5.83312E-05,0.69997, -0.714172,-3.47922E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; CONST robtarget pPrePickClapboard:=[[2036.17,- 741.24,1235.05],[0.678651,0.73435 ,-0.0119011,0.00467586],[-1,-2,2,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; CONST robtarget pPickMould:=[[1943.13,173.08,630.89],[4.66987E-05,0.699977,-0.7 14166,-3.24109E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+0 9,9E+09]]; CONST robtarget pPickClapboard:=[[1943.19,173.08,620.72],[1.61422E-05,0.699977, -0.714165,-7.62858E-06],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; robtarget pPrePlace:=[[785.90,- CONST 957.40,1722.38],[0.00231652,0.0492402,-0.99 8779,-0.00310842],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09, 9E+09]]; CONST robtarget pPrePlace10:=[[-277.40,-

ABB机器人程序实例ROBOT studio 6.01(附带与工业相机网络通讯实例)

ABB机器人(ROBOT studio 6.01)程序实例MODULE MainModule PERS tooldata tGripper:=[TRUE,[[0.533078,1.51617,583.739],[1,0,0,0]],[30,[0,0,50],[1,0,0,0],0,0,0] ]; TASK PERS wobjdata VisionWobj:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[-934.534,1807.34,-76.7707],[0.4 00996,0.0128267,-0.0292473,-0.915523]]]; TASK PERS wobjdata WobjCompressor1:=[FALSE,TRUE,"",[[518.656,-1088.9,164.25],[0,0,0,1]],[[686.65 1,296.298,-588.529],[0.917114,1.69419E-06,-7.35001E-05,-0.398626]]]; TASK PERS wobjdata WobjCompressor2:=[FALSE,TRUE,"",[[518.656,-1088.9,164.25],[0,0,0,1]],[[-944.87 1,-657.402,-323.406],[0.918098,-1.98999E-05,-6.49686E-06,0.396353]]]; PERS wobjdata WobjCompressor; VAR robtarget pActualPos; VAR socketdev server_socket; VAR socketdev client_socket; VAR string client_ip; VAR string stReceived; VAR num NumCharacters:=9; VAR bool bOK; PERS num nXOffs; PERS num nYOffs; PERS num nAngleOffs; VAR string XData:=""; VAR string YData:=""; VAR string AngleData:=""; VAR num nPresenceOrAbsence; PERS num nPickH:=-400; PERS num nCountX; PERS num nCountY; PERS num nCountZ; PERS num nCount; VAR num nPlaceNo; PERS bool bSMPreOrAbs; PERS bool bInpos; VAR robtarget PVision; VAR robtarget Vision; VAR robtarget ppPick; VAR robtarget pPick;

ABBaJABB机器人高级编程

ABB[a]-J-8ABB机器人高级编程 8.1任务目标 ?掌握ABB机器人RAPID高级编程方法。 ?掌握常用的RAPID程序指令。 8.2任务实施 8.2.1事件程序EventRoutine Event Routine是使用RAPID指令编写的例行程序去响应系统事件的功能。 比如在系统启动时,检查IO输入信号的状态,就可通过Event Routine来完成。 要注意的是,在Event Routine中不能有移动指令,也不能有太复杂的逻辑判断,防止程序死循环,影响系统的正常运行。 下面我们就以响应系统事件POWER_ON为例子,进行此功能的说明。 任务描述:编写rEvent例行程序,打印“Start OK”字样,如果在开启后屏幕上显示,则说明这个例行程序与POWER_ON系统事件关联。 MultiTasking就是在有一个在前台运行用于控制机器人逻辑运算和运动的RAPID程序的同时,后台还有与前台并行运行的RAPID程序,也就是我们所说的多任务程序了。 *系统需要623-1 MultiTasking选项。 多任务程序最多可以有20个不带机器人运动指令的后台并行的RAPID程序。多任务程序可用于机器人与PC之间不间断的通讯处理,或作为一个简单的PLC进行逻辑运算。后台的多任务程序在系统启动的同时就开始连续的运行,不受机器人控制状态的影响。 多任务程序——任务间数据通讯的方法: ◆任务间是可以通过程序数据进行数据的交换。 ◆在需要数据交换的任务中建立存储类型为可变量而且名字相同的程序数据。 ◆在一个任务中修改了这个数据的数值,在另一个任务中名字相同的数据也会随之更新。

ABB机器人-高级编程

6.8高级编程 6.8.1.映射程序、模块或例行程序 映射 映射可在特定的映射面上创建程序、模块或例行程序的副本。映射功能可以应用于任何程序、模块或例行程序。映射可以通过两种不同的方法完成: ?基础框架坐标系上的默认值。映射过程将在基础框架坐标系的xz平面上进行。特定程序、模块或者例行程序的指令使用过的所有位置和工件框架都将 被映射。定位定向轴x和y将被映射。 ?趋近于一个特定的映射框架。将在一个特定的工件框架的xy平面内进行映射操作,影射框架。映射特定程序、模块和例行程序中的所有位置。如果指令中的工件变元并非映射对话中的特定变元,影射操作中将会使用指令中的工件。也可能会确定定位定向系中那两条轴(x和z或者y和z)将被映射。

6.8.2.修改和调节位置 概述 位置是robtarget或jointtarget数据类型实例。只要您在软键盘上输入偏移值就可以通过HotEdit调节位置。偏移值与位置初始值一起使用。您也可以利程序编辑器或运行时窗口中的修改位置功能进行位置修改,将机器人步进或微调至新位置。位置的修改值将覆盖初始值。 注意 更改预设位置可能会显著改变机器人移动模式。请始终确保任何更改考虑到设备和人员的安全。数组中的位置当位置被列为数组时,根据数组在移动指令中的索引方式,修改或调节的步骤可能稍有不同。 注意:jointtargets只能使用程序编辑器以及运行时窗口中的修改位置方法进行修改,而不能使用HotEdit修改。 附注 您的系统可能在位置修改方式上受限。您可以使用系统参数(主题Controller,类 型ModPos Settings)对距离进行限制,并限制哪些位置可使用UAS修改。 6.8.3.在程序编辑器或运行时窗口 概述

abb机器人程序实例

如对您有帮助,请购买打赏,谢谢您!MODULE MainModule CONST robtarget pHome:=[[1525.42,272.18,1873.69],[4.42963E-05,0.699969,-0.7141 73,-2.80277E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9 E+09]]; CONST robtarget pPrePickMould:=[[1653.99,272.19,1779.41],[5.83312E-05,0.69997, -0.714172,-3.47922E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; CONST robtarget pPrePickClapboard:=[[2036.17,-741.24,1235.05],[0.678651,0.73435 ,-0.0119011,0.00467586],[-1,-2,2,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; CONST robtarget pPickMould:=[[1943.13,173.08,630.89],[4.66987E-05,0.699977,-0.7 14166,-3.24109E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+0 9,9E+09]]; CONST robtarget pPickClapboard:=[[1943.19,173.08,620.72],[1.61422E-05,0.699977, -0.714165,-7.62858E-06],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]]; CONST robtarget

ABB机器人的程序编程

ABB[a]-J-6ABB机器人的程序编程 6.1任务目标 ?掌握常用的PAPID程序指令。 ?掌握基本RAPID程序编写、调试、自动运行和保存模块。 6.2任务描述 ◆建立程序模块test12.24,模块test12.24下建立例行程序main和Routine1,在main程序下进行运 动指令的基本操作练习。 ◆掌握常用的RAPID指令的使用方法。 ◆建立一个可运行的基本RAPID程序,内容包括程序编写、调试、自动运行和保存模块。 6.3知识储备 6.3.1程序模块与例行程序 RAPID程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。 应用程序是使用称为RAPID编程语言的特定词汇和语法编写而成的。RAPID是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。RAPID程序的基本架构如图所示:

RAPID程序的架构说明: 1)RAPID程序是由程序模块与系统模块组成。一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。 2)可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。 3)每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。 4)在RAPID程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID 程序执行的起点。 操作步骤:

ABB机器人编程技巧

1.ABB机器人Pdisp轨迹偏移使用 1)如果有下图两个产品,已经完成了右边产品轨迹,左边产品估计一样,如何快速生成左边轨迹(左边产品可能有平移和旋转) 2)完成右边轨迹示教Path_30,如上图。起点为Target_20。 3)完成左边起点的示教,为Target_ref_start,如下图。 注:如果左边产品轨迹有旋转,示教的Target_ref_start相对于左边产品的姿态要和Target_20相对于右边产品的姿态一致(此处左边产品旋转了30°,示教的角度z方向也旋转了30°) 4)插入指令如下 MoveJ pHome,v1000,z100,tWeldGun\WObj:=wobj0;//移动到Home位置 Path_30;//运行右边产品轨迹 MoveJpHome,v1000,z100,tWeldGun\WObj:=wobj0;//回到Home MoveJTarget_ref_start,v1000,fine,tWeldGun\WObj:=wobj0;//走到左边产品起点

ConfJ\Off;//因为使用偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报 错ConfL\Off;//因为使用偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报错PDispOn\Rot,Target_20,tWeldGun;//设定当前位置和Target_20的偏差关系(包括平移和旋转),因为此时机器人停在Target_ref_start起点,即设定左边轨迹和右边轨迹的整体偏移关系。使用\rot表示平移和旋转均计算。如果不使用\rot,则只使用平移,旋转不计算 Path_30;//运行原有轨迹,此时轨迹参考坐标移动关系,机器人实际走左边产品轨迹 PDispOff;//轨迹完成,关闭平移关系 MoveJ pHome,v1000,z100,tWeldGun\WObj:=wobj0; 2.单工位多次预约程序 1)机器人有程序如下。 2) 3)工艺过程如下: 机器人在home等待。有人按过di信号,机器人开始执行。人工可以一次性多次预约,即如果人工一次性按过3次,机器人执行三次 4)我们通过中断来实现。 5)中断的意义为,机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动 6)新建一个例行程序,取名tr_1,注意:类型选中断(trap)

(完整版)ABB机器人SmarTac程序实例

SmarTac 程序实例在实际的应用中,smartac有两种方法对焊缝 进行纠偏,第一种是用searchlD指令检测单个焊缝的偏移,比如寻找起弧点和收弧点,寻找的方向可以使 1 维的也可以是2维和3维的。这种方法适用于每一条焊缝的变化都是相对对立的并且 焊缝相对于检测方向不能有太大的角度变化,比如开关柜。这种 方法是直 接找到偏移量然后用P-disp frame(P-DispSet指令)直接在工 件坐标系里面偏移相应的坐标值。例如: 找点程序 PDispOff; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D Cs2401, *, scp2_4_x, v100, tSensor\WObj:=Wobj_StnA\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D Cs2401,*,scp2_4_z,v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=Cs2401\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1DCs2401,*,scp2_4_y,v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=Cs2401\SchSpeed:=3; MoveL *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D s2400,*, sp2400_x, v100, tSensor\WObj:=Wobj_StnA\SchSpeed:=3; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; Search_1D s2400, *, sp2400_y, v100, tSensor\WObj:=Wobj_StnA\PrePDisp:=s2400\SchSpeed:=3; PDispSet Cs2401 MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; MoveJ *, v1000, z5, tSensor\WObj:=Wobj_StnA; ArcLStart p2401, v1000, seam1,wd01_16\Weave:=Weave1,fine, tWeldGun\Wobj:=Wobj_StnA; PDispoff; PDispSet Cs2400; ArcLEnd p2400, v1000, seam1, wd01_16\Weave:=weave1, fine, tWeldGun\WObj:=Wobj_StnA; PDispOff; 方法2:通过计算工件坐标(oframe)的变化来进行焊缝纠正,原理是当工件坐标系发生变化后,通过寻找在新的工件坐标系中相同坐标点的位置来纠正位置的变化。这个变化指的是焊缝在新坐标系里面的位置和原来的坐标系并没有发生变化而是随着坐标系整体进行了偏移。例如工件整体发生了平移(比如由夹具的定位引起的平移)如果焊缝相对于坐标系的位置发生了变化就不适用了。注:这个程序是通过计算相对坐标系的变化来对焊缝就行纠正的,并不适合所有的焊缝偏移形势。 %%% VERSION:1

ABB机器人程序指令汇总

一指令格式 二指令及其参数 Data := Value AccSet Acc Ramp ActUnit MecUnit Add Name A ddValue Break CallBy Var Name Number Clear Name ClkReset Clock ClkStart Clock ClkStop Clock Close IODevice ! Comment ConfJ [\On] | [\Off] ConfL [\On] | [\Off] CONNECT Interrupt WITH Trap routine

CorrCon Descr CorrDiscon Descr CorrWrite Descr Data CorrClear DeactUnit MecUnit Decr Name EOffsSet EaxOffs ErrWrite [ \W ] Header Reason [ \RL2] [ \RL3] [ \RL4] Exit ExitCycle FOR Loop counter FROM S tart value TO End value [STEP Step value] DO ... ENDFOR GOTO L abel GripLoad Load IDelete Interrupt IF Condition ... IF Condition THEN ... {ELSEIF Condition THEN ...} [ELSE ...] ENDIF Incr Name IndAMove MecUnit Axis [ \ToAbsPos ] | [ \ToAbsNum ] Speed[ \Ramp ]

ABB机器人的程序数据

ABB[a]-J-5ABB机器人的程序数据 5.1任务目标 ?掌握程序数据的建立方法。 ?掌握三个关键程序数据的设定。 ?了解机器人工具自动识别功能。 5.2任务描述 ◆以bool为例,建立程序数据,练习建立num、robtarget程序数据。 ◆设定机器人的工具数据tooldata、工件坐标wobjdata、负荷数据loaddata。 ◆使用LoadIdentify工具自动识别安装在六轴法兰盘上的工具(tooldata)和载荷(loaddata)的重量,以 及重心。 5.3知识储备 5.3.1程序数据 程序数据是在程序模块或系统模块中设定的值和定义的一些环境数据。创建的程序数据由同一个模块或其他模块中的指令进行引用。图中是一条常用的机器人关节运动的指令MoveJ,调用了四个程序数据。 图中所使用的程序数据的说明见表: 程序数据数据类型说明 p10 robtarget 机器人运动目标位置数据 v1000 speeddata 机器人运动速度数据 z50 zonedata 机器人运动转弯数据 tool0 tooldata 机器人工作数据TCP 5.3.2程序数据的类型与分类 1.程序数据的类型分类 ABB机器人的程序数据共有76个,并且可以根据实际情况进行程序数据的创建,为ABB机器人的程序设计带来了无限可能性。 在示教器的“程序数据”窗口可查看和创建所需要的程序数据。

2.程序数据的存储类型 (1)变量VAR 变量型数据在程序执行的过程中和停止时,会保持当前的值。但如果程序指针被移到主程序后,数值会丢失。 举例说明: VAR num length:=0;名称为length的数字数据 VAR string name:=”John”;名称为name的字符数据 VAR bool finish:=FALSE;名称为finish的布尔量数据 在程序编辑窗口中的显示如图: 在机器人执行的RAPID程序中也可以对变量存储类型程序数据进行赋值的操作,如图:

ABB机器人学习_主要看这个讲解

ABB 机器人培训资料 1、安全 自动模式中,任何人不得进入机器人工作区域 长时间待机时,夹具上不宜放置任何工件。 机器人动作中发生紧急情况或工作不正常时,均可使用E-stop键,停止运行(但这将直接使程序终止不可继续) 进行编程、测试及维修等工作时,必须将机器人置于手动模式。 调试机器人过程中,不需要移动机器人时,必须释放使能器。 调试人员进入工作区域时,必须随携带使能器,以防他人操作。 突然停电时,必须立即关闭机器人主电源开头,并取下夹具上的工件。 严禁非授权人员操作机器人。 2、简介 1974 ABB第一台机器人诞生,IRC5为目前最新推出的控制系统。所属机器人大部分用于焊接、喷涂及搬运用。 当前使用的机器人型号为IRB1410,其承重能力为5KG,上臂可承受18KG的附加载荷,这在同类机器人中绝无仅有。最大工作半径1444mm,常用于焊接与范围搬运,具可再扩展一个外部轴的能力。 3、机器人系统简介 机械手为六轴组成的空间六杆开链机构,理论上可达到运动范围内任何一点。每个转轴均带一个齿轮箱,机械手运动精度(综合)达正负0.05mm至正负 0.2mm。六轴均带AC伺服电机驱动,每个电机后均有编码器与刹车。机械手带有串口测量板(SMB),测量板上带有六节可充电的镍铬电池,起到保存数据的作用。机械手带有手动松闸按钮,维修时使用,非正常使用会造成设备或人员被伤害。机械手带有平衡气缸或弹簧。 4、伺服驱动系统

5、IRC5 系统介绍 主电源、计算机供电单元、计算机控制模块(计算机主体)、输入/输出板、Customer connections(用户连接端口)、FlexPendant接口(示教盒接线端)、轴计算机板、驱动单元(机器人本体、外部轴)。

ABB机器人培训内容

一.手动操纵工业机器人 1.单轴运动控制 (1)左手持机器人示教器,右手点击示教器界面左上角的“”来打开ABB 菜单栏;点击“手动操纵”,进入手动操纵界面;如图1-1所示。 图1-1 进入手动操纵界面 (2)点击“动作模式”,进入模式选择界面。选择“轴1-3”,点击“确定”,动作模式设置成了轴1-3,如图1-2所示。 图1-2 模式选择界面 (3)移动示教器上的操纵杆,发现左右摇杆控制1轴运动,前后摇杆控制2轴运动,逆时针或顺时针旋转摇杆控制3轴运动。 (4)点击“动作模式”,进入模式选择界面。选择“轴4-6”,点击“确定”,动作模式设置成了轴4-6,如图1-3所示。 图1-3 “动作模式”的选择 (5)移动示教器上的操纵杆,发现左右摇杆控制4轴运动,前后摇杆控制5轴运动,逆时针或顺时针旋转摇杆控制6轴运动。 【提示】轴切换技巧:示教器上的按键能够完成“轴1-3”和“轴4-6”轴组的切换。 2.线性运动与重定位运动控制 (1)点击“动作模式”,进入模式选择界面。选择“线性”,点击“确定”,动作模式设置成了线性运动,如图1-4所示。 (2)移动示教器上的操纵杆,发现左右摇杆控制机器人TCP点左右运动,前后摇杆控制机器人TCP点前后运动,逆时针或顺时针旋转摇杆控制机器人TCP 点上下运动。 图1-4 线性运动模式操纵界面

(3)点击“动作模式”,进入模式选择界面。选择“重定位”,点击“确定”,动作模式设置成了重定位运动,如图1-5所示。 图1-5 “重定位”动作模式的选择 (4)移动示教器上的操纵杆,发现机器人围绕着TCP运动。 3.工具坐标系建立 工业机器人是通过末端安装不同的工具完成各种作业任务。要想让机器人正常作业,就要让机器人末端工具能够精确地达到某一确定位姿,并能够始终保持这一状态。从机器人运动学角度理解,就是在工具中心点(TCP)固定一个坐标系,控制其相对于基座坐标系或世界坐标系的姿态,此坐标系称为末端执行器坐标系(Tool/Terminal Control Frame,TCF),也就是工具坐标系。默认工具坐标系的原点位于机器人安装法兰的中心,当接装不同的工具(如焊枪)时,工具需获得一个用户定义的工具坐标系,其原点在用户定义的参考点(TCP)上,如图2-1-4所示,这一过程的实现就是工具坐标系的标定。它是机器人控制器所必需具备的一项功能。 a) b) 图1-6 机器人工具坐标系的标定 大多数工业机器人都具备工具坐标系多点标定功能。这类标定包含工具中心点(TCP)位置多点标定和工具坐标系(TCF)姿态多点标定。TCP位置标定是使几个标定点TCP位置重合,从而计算出TCP,即工具坐标系原点相对于末端关节坐标系的位置,如四点法;而TCF姿态标定是使几个标定点之间具有特殊的方位关系,从而计算出工具坐标系相对于末端关节坐标系的姿态,如五点法(在四点法的基础上,除能确定工具坐标系的位置外还能确定工具坐标系的Z轴方向)、六点法(在四点、五点的基础上,能确定工具坐标系的位置和工具坐标系X、Y、Z三轴的姿态)。 为获得准确的TCP,下面分别以四点法和六点法为例进行操作。

ABB机器人~编程基本指令之运动指令

一运动指令MoveJ MoveJ[\Conc,]ToPoint,Speed[\V]│[\T],Zone[\Z][\Inpos], Tool[\WObj]; 1 [\Conc,]:协作运动开关。(switch) 2 ToPoint:目标点,默认为*。(robotarget) 3 Speed:运行速度数据。(speeddata) 4 [\V]:特殊运行速度mm/s。(num) 5 [\T]:运行时间控制s。(num) 6 Zone:运行转角数据。(zonedata) 7 [\Z]:特殊运行转角mm。(num) 8 [\Inpos]:运行停止点数据。(stoppointdata) 9 Tool:工具中心点(TCP)。(tooldata) 10 [\WObj]:工件坐标系。(wobjdata) 11 应用 机器人以最快捷的方式运动至目标点,机器人运动状态不完全可控,但运动路径保持唯一,常用于机器人在空间大范围移动。 12 实例 MoveJ p1,v2000,fine,grip1; MoveJ \Conc,p1,v2000,fine,grip1; MoveJ p1,v2000\V:=2200,z40\Z:=45,grip1; MoveJ p1,v2000,z40,grip1\WObj:=wobjTable; MoveJ p1,v2000,fine\Inpos:=inpos50,grip1;

二运动指令MoveL MoveL[\Conc,]ToPoint,Speed[\V]│[\T],Zone[\Z][\Inpos], Tool[\WObj][\Corr]; 1 [\Conc,]:协作运动开关。(switch) 2 ToPoint:目标点,默认为*。(robotarget) 3 Speed:运行速度数据。(speeddata) 4 [\V]:特殊运行速度mm/s。(num) 5 [\T]:运行时间控制s。(num) 6 Zone:运行转角数据。(zonedata) 7 [\Z]:特殊运行转角mm。(num) 8 [\Inpos]:运行停止点数据。(stoppointdata) 9 Tool:工具中心点(TCP)。(tooldata) 10 [\WObj]:工件坐标系。(wobjdata) 11[\Corr]:修正目标点开关。(switch) 12 应用

相关文档
相关文档 最新文档