文档库 最新最全的文档下载
当前位置:文档库 › ABB搬运工作站

ABB搬运工作站

ABB搬运工作站
ABB搬运工作站

ABB[a]-ZH-9ABB 搬运工作站

9.1 任务目标

了解工业机器人搬运工作站布局。

学会搬运常用I/O 配置。

学会程序数据创建。

学会目标点示教。

学会程序调试。

学会搬运程序编写。

9.2 任务描述

本工作站以太阳能薄板搬运为例,利用IRB120①机器人在流水线上拾取太阳能薄板工件,将其搬运至暂存盒中,以便周转至下一工位进行处理。本工作站中已经预设搬运动作效果,大家需要在此工作站中依次完成I/O 配置、程序数据创建、目标点示教、程序编写及调试,最终完成整个搬运工作站的搬运过程。通过本章的学习,使大家学会工业机器人的搬运应用,学会工业机器人搬运程序的编写技巧。

ABB 机器人在搬运方面有众多成熟的解决方案,在3C、食品、医药、化工、金属加工、太阳能等领域均有广泛的应用,涉及物流输送、周转、仓储等。采用机器人搬运可大幅提高生产效率、节省劳动力成本、提高定位精度并降低搬运过程中的产品损坏率。

1. ABB 推出的一款迄今为止最小的多用途工业机器人——紧凑、敏捷、轻量的六轴IRB120,仅重25kg,

荷重3kg(垂直腕为4kg),工作范围达580mm。

9.3 知识储备

9.3.1RobotStudio 知识准备

1.工作站共享

在RobotStudio 中,一个完整的机器人工作站既包含前台所操作的工作站文件,还包含一个后台运行的机器人系统文件。当需要共享RobotStudio 软件所创建的工作站时,可以利用“文件”菜单中的“共享”功能,使用其中“打包”功能,可以将所创建的机器人工作站打包成工作包(.rspag 格式);利用“解包”功能,可以将该工作包在另外的计算机上解包使用。

1. 打包:创建一个包含虚

拟控制器、库和附加选

项媒体库的工作站包。

2. 解包:解包所打包的文

件,启动并恢复虚拟控

制器,打开工作站。

2.加载RAPID 程序模块在机器人应用过程中,如果已有一个程序模板,则可以直接将该模板加载至机器人

系统中。例如,已

有1#机器人程序,2#机器人的应用与1#机器人相同,那么可以将1#机器人的程序模块直接导入2#机器人中。加载方法有以下两种。

(1)软件加载

在RobotStudio 中的“RAPID”菜单中可以加载程序模块。在RobotStudio 5.15 之前的版本中,此功能在“离线”菜单的中,“在线”菜单中也有该功能,前者针对的是PC 端仿真的机器人系统,后者针对的是利用网线连接的真实的机器人系统。

(2)示教器加载

在示教器中依次单击:ABB 菜单—程序编辑器—模块—文件—加载模块,之后浏览至所需加载的模块进行加载。

3.加载系统参数在机器人应用过程中,如果已有系统参数文件,则可以直接将该参数文件加载至机器人系

统中。例如,

已有1#机器人I/O 配置文件,2#机器人的应用与1#机器人相同,那么可以将1#机器人的I/O 配置文件直接导入2#机器人中。系统参数文件存放在备份文件夹中的SYSPAR 文件目录下,其中最常用的是其中的EIO 文件,即机器人I/O 系统配置文件。系统参数加载方法有以下两种:

*一般地,两台硬件配置一致的机器人会共享I/O 设置文件EIO.cfg,其他的文件可能会造成系统故障。

若错误加载参数后,可做一个“I 启动”使机器人回到出厂初始状态。

(1)软件加载

在RobotStudio 中,“控制器”菜单的“加载参数”功能可以用于加载系统参数。

(2)示教器加载

在示教器中依次单击:ABB 菜单—控制面板—配置—文件—加载参数,加载方式一般也选取第三项,即“加载后覆盖重复项”,之后浏览至所需加载的系统参数文件进行加载。

4.浏览至所需加载的系统参数文

件,选中“E IO.cfg”,单击“确定”

按钮,重新启动即可。

4.仿真I/O 信号

在仿真过程中,有时需要手动去仿真一些I/O 信号,以使当前工作站满足机器人运行条件。在RobotStudio

软件的“仿真”菜单中利用“I/O 仿真器”可对I/O 信号进行仿真。

9.3.2 标准I/O 板配置

ABB 标准I/O 板挂在DeviceNet 总线上,常用型号有DSQC651,DSQC652。在系统中配置标准I/O 板,

至少需要设置以下四项参数:

I/O 配置详细参考I/O 通信一章。

9.3.3 数字I/O 配置

在I/O 单元上创建一个数字I/O 信号,至少需要设置以下四项参数:

9.3.4 系统I/O 配置

系统输入:将数字输入信号与机器人系统的控制信号关联起来,就可以通过输入信号对系统进行控制(例如,电动机上电、程序启动等)。系统输出:机器人系统的状态信号也可以与数字输出信号关联起来,将系统的状态输出给外围设备作

控制之用(例如,系统运行模式、程序执行错误等)。

9.3.5 常用运动指令

MoveL:线性运动指令

将机器人TCP 沿直线运动至给定目标点,适用于对路径精度要求高的场合,如切割、涂胶等。

例如:

MoveLp20, v1000, z50, tool1 \WObj:=wobj1;

如图所示,机器人TCP 从当前位置p10 处运动至p20 处,运动轨迹为直线。

MoveJ:关节运动指令

将机器人TCP 快速移动至给定目标点,运行轨迹不一定是直线。

例如:

MoveJ p20, v1000, z50, tool1 \WObj:=wobj1;

如图所示,机器人TCP 从当前位置p10 处运动至p20 处,运动轨迹不一定为直线。

MoveC:圆弧运动指令

将机器人TCP 沿圆弧运动至给定目标点。圆弧运动指令MoveC 在做圆弧运动时一般不超过240°,所以一个完整的圆通常使用两条圆弧指令来完成。

MoveAbsj:绝对运动指令将机器人

各关节轴运动至给定位置。例如:

PERSjointarget

jpos10:=[[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+0

9.3.6 常用I/O 控制指令Set:将

数字输出信号置为1 例如:Set Do1;

将数字输出信号Do1 置为1。注:

Set do1; 等同于:SetDO do1, 1;

Reset do1; 等同于:

9.3.7 常用逻辑控制指令

DEFAULT:

Stop;

ENDTEST

判断reg1 数值,若为1 则执行Routine1;若为2 则

执行Routine2,否则执行stop。

9.3.8 注释行“!”

在语句前面加上“!”,则整行语句作为注释行,不被程序执行。

例如:

!Goto the Pick Position;

MoveLpPick, v1000, fine, tool1, \WObj:=wobj1;

9.3.9Offs 偏移功能

以选定的目标点为基准,沿着选定工件坐标系的X、Y、Z 轴方向偏移一定的距离。

例如:

MoveLOffs(p10, 0, 0, 10), v1000, z50, tool0 \WObj:=wobj1;

将机器人TCP 移动至以p10 为基准点,沿着wobj1 的Z 轴正方向偏移10mm 的位置。

9.3.10CRobT 功能读取当前机器人目

标位置数据。例如:

PERSrobtarget p10;

P10 := CRobT(\Tool := tool1 \WObj := wobj1);

读取当前机器人目标点位置数据,指定工具数据位tool1,工件坐标系数据为wobj1(若不指定,则默认工具数据为tool0,默认工件坐标系数据为wobj0),之后将读取的目标点数据赋值给p10。

9.3.11 常用写屏指令

例如:

TPRease;

TPWrite “The Robot is running!”;

TPWrite “The Last CycleTime is:”\num:=nCycleTime; 假设上

一次循环时间nCycleTime 为10s,则示教器上面显示内容为The

Robot is running!

The Last CycleTime is: 10

9.3.12 检测HOME 点模板

在实训任务中,每个程序都有检测Home 点的例行程序rCheckHomePos,以及比较机器人当前位置和给定位置是否相同的功能CurrentPos,其程序内容如下,在后续的代码中不再重复。程序:rCheckHomePos、CurrentPos

说明:检查原点程序,如机器人不在原点位置则返回原点

PROC rCheckHomePos()

!检测是否在Home点程序

VAR robtarget pActualPos;

!定义一个目标点数据pActualPos

IFNOT CurrentPos(pHome,tGripper) THEN

!调用功能程序CurrentPos。此为一个布尔量型的功能程序,括号里面的参数分别指的是所要比较的目标点以及使用的工具数据。

!这里写入的是pHome,是将当前机器人位置与pHome点进行比较,若在Home点,则此布尔量为True;若不在Home点,则为False。

!在此功能程序的前面加上一个NOT,则表示当机器人不在Home点时才会执行IF判断中机器人返回Home点的动作指令

pActualpos:=CRobT(\Tool:=tGripper\WObj:=wobj0);

!利用CRobT功能读取当前机器人目标位置并赋值给目标点数据pActualpos

pActualpos.trans.z:=pHome.trans.z;

!将pHome点的Z值赋给pActualpos点的Z值

MoveL pActualpos,v100,z10,tGripper;

!移至已被赋值的后的pActualpos点

MoveL pHome,v100,fine,tGripper;

!移至pHome,上述指令的目的是需要先将机器人提升至与pHome点一样的高度,之后再平移至pHome点,这样可以简单地规划一条安全回Home点的轨迹

ENDIF

ENDPROC

FUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP)

!检测目标点功能程序,带有两个参数,比较目标点和所使用的工具数据

VAR num Counter:=0;

!定义数字型数据Counter

VAR robtarget ActualPos;

!定义目标点数据ActualPos

ActualPos:=CRobT(\Tool:=tGripper\WObj:=wobj0);

!利用CRobT功能读取当前机器人目标位置并赋值给ActualPos

IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.xComparePos.trans.y-25 AND ActualPos.trans.yComparePos.trans.z-25 AND ActualPos.trans.zComparePos.rot.q1-0.1 AND ActualPos.rot.q1ComparePos.rot.q2-0.1 AND ActualPos.rot.q2ComparePos.rot.q3-0.1 AND ActualPos.rot.q3ComparePos.rot.q4-0.1 AND ActualPos.rot.q4

RETURN Counter=7;

!返回判断式结果,若Counter为7,则返回TRUE,若不为7,则返回FALSE

ENDFUNC

9.4 任务实施9.4.1 工作站解包

9.4.2 创建备份并执行I 启动

现有工作站已包含创建好的参数以及RAPID 程序。从零开始练习建立工作站的配置工作,需要先将此系统做一备份,之后执行I 启动,将机器人系统恢复到出厂初始状态。

待执行热启

动后,则完

成了工作站

的初始化操

作。

重启类型介绍如下:

◆热启动:修改系统参数及配置后使其生效。

◆关机:关闭当前系统,同时关闭主机。

◆ B 启动:尝试从最近一次无错状态下启动系统。

◆P 启动:重新启动并删除已加载的RAPID 程序。

◆I 启动:重新启动,恢复至出厂设置。

◆ C 启动:重新启动并删除当前系统。

◆X 启动:重新启动,装载系统或选择其他系统,修改IP 地址。

9.4.3 配置I/O 单元

在虚拟示教器中,根据以下的参数配置I/O 单元。

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 应用

相关文档