ABB 机器人程序数据
编程实例1:路径如下,编写程序
程序如下,程序名为move0,放在名为TEST0的程序模块中。MODULE TEST0
PROC move0 ()
MoveL p10, v200, fine, tPen; MoveL p20, v200, fine, tPen; MoveL p30, v200, fine, tPen; MoveL p40, v200, fine, tPen; MoveL p10, v200, fine, tPen; ENDPROC
ENDMODULE
编程实例2:路径如下,编写程序
程序如下,程序名为move1,放在名为TEST1的程序模块中。MODULE TEST1
PROC move1( )
MoveL p10, v200, fine, tPen; MoveL p20, v200, Z50, tPen;
1
ABB工业机器人教案
MoveL p30, v200, fine, tPen; MoveL p40, v200, Z50, tPen; MoveL p10, v200, fine, tPen; ENDPROC
ENDMODULE
编程实例3:编写程序
MoveL p1, v500, fine, tool1; MoveC p2, p3, v500, z20, tool1; MoveC p4, p1, v500, fine, tool1; 如下图所示,
不一定是一个圆,如右图所示,与
P1、P2、P3三点确定一个圆弧P3、P4、P1三点确定一个圆弧P4点的位置有关。
一条MoveC指令最多只能转过240°,因此不可能通过一条指令完成一个圆。
编程实例4:
利用MoveAbsJ让机器人返回机械原点位置
提示:机械原点处轴1-6角度分别为0-0-0-0-30-0度。(轴5的角度也可以设置为90°或其他角度,设为0°会出现奇异点)
2
ABB工业机器人教案
编程实例5:函数Offs()
Offs(p1,x,y,z)代表一个离p1点X轴偏差量为x,Y轴偏差量为y,Z轴偏差量为z的点(坐标值的增量)。
例:
MoveL Offs(p1,10,100,130),V200,Z50 ……说明:
1) Offs(p1,10,100,130) 表示一个目标点,该目标点的X、Y、Z轴坐标值与p1点的X、Y、Z轴坐标值相差10,100,130。
2)点Offs()是TCP的一个目标点,其坐标方向与机器人当前工件坐标系一致。比较图中A点与p1点的坐标值,A点就是Offs(p1,10,100,130)
练习1:画圆
使用函数Offs(),编写指令让机器人画一个圆,半径为100mm。MoveL p1, v500, fine, tool1;
MoveC Offs(p1,100,100,0), Offs(p1,200,0,0), v500, fine , tool1; MoveC Offs(p1,100,-100,0) , p1, v500, fine, tool1; 如下图所示:
3
ABB工业机器人教案
练习2:画矩形
RAPID的程序数据
程序数据是在程序模块或系统模块中设定的值和定义的一些环境数据。创建的程序数据由同一个模块或其他模块中的指令进行引用。例解:
图中是关节运动指令 MoveJ,调用了四个程序数据。
4
ABB工业机器人教案
程序数据p10 v1000 z50 tool0 数据类型 robtarget speeddata zonedata tooldata 数据类型说明
机器人运动目标位置数据机器人运动速度数据机器人运动转弯数据机器人工作数据 TCP
一、在示教器中查看程序数据
在示教器的“程序数据”窗口可查看和创建所需要的程序数据。
5
ABB工业机器人教案
例:
指令MoveL p10, v1000, z50, MyTtool;
其中p10, v1000, z50, MyTtool就是4个程序数据
以P10为例,查看它的定义:
6
ABB工业机器人教案
解读:
CONST robtarget P10:=
[[ 451.92,155.17,829.35],[.530853235561695,.499288307299979,-.55336406343795,.403353742740343],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
数据的存储类型CONST
数据类型robtarget
数据名称P10
含义运动目标点
先要明白:
1)机器人的工具坐标系是由工具中心点TCP与坐标方位组成的,TCP点就是工具坐标系原点。
2)工具坐标系的方向随腕部的移动而发生变化。
7
ABB工业机器人教案
3)更换夹具后必需重新定义工具坐标系;可以不更改程序,直接运行。
上述4组数据用来定义机器人和外部轴的目标点数据:第1、2两个数据描述工具坐标系。
1、第1部分的三个数定义的是工具中心点TCP(也就是P10点,因为此时TCP移到了目标点P10处)在当前工件坐标系内的三坐标值(X,Y,Z),单位mm;如果没有定义工件坐标,那么就以大地坐标为基准。
2、第2部分的四个数据用于描述工具坐标系的方位,它可以标示工具的姿势。3、第3部分的四个数表示的是机器人轴配置数据,是第1、4、6轴在目标点处转的角度分区,第四个数据不用,默认为0。
例如,0表示在0°-90°之间、1表示在90°到180°之间,-1表示在-90°到-180°之间,-2表示在-180°到-270°之间等(度数均以原点位置定位)。
另解:
机器人轴配置数据(cf1,cf4,cf6,cfx)由四个值组成。cf1,cf4,cf6分别对应的是1、4、6轴所转角度在直角坐标系中的象限值。
例如:1轴45度、4轴负10度,6轴120度,则对应的象限值为0,-1,1。cfx则为在满足前三项值时机器人最多有8种配置,对应的值为0-7:
4、第4部分是定义外部轴的位置,以mm为单位,如果没有设置外部轴,就以9E+09表示。
二、数据类型
——这种数据是做什么用的(用来定义什么内容)
ABB机器人共76种数据类型,还可以自己创建新的数据类型。
8
ABB工业机器人教案
三、数据的存储类型
——这种数据是怎么存储的(程序运行中数值会如何变化)
三种存储类型:
变量VAR 可变量PERS 常量CONST 我们亲自查看一下:
9
ABB工业机器人教案
1)变量VAR——这类数据在程序执行过程中会保持当前值(随程序的运行而发生变化),一旦程序指针移到主程序,数值会丢失。
举例说明:
VAR num length :=0; 名称为 length 的数字数据VAR string name :=”John”; 名称为 name 的字符数据 VAR bool finish :=FALSE; 名称为 finish 的布尔量数据
在程序中执行变量型数据的赋值,在指针复位后将恢复为初始值。
2)可变量PERS——这类数据在程序执行过程中会保持当前值(随程序的运行而发生变化),但是无论程序指针如何,该数据会保持最后一次的值。
可变量最大的特点是,无论程序的指针如何,都会保持最后赋予的值。举例说明:
PERS num nbr :=1; 名称为 nbr 的数字数据PERS string test :=”Hello”; 名称为 test 的字符数据在机器人执行的 RAPID 程序中也可以对可变量存储类型程序数据进行赋值的操作。在程序执行以后,赋值的结果会一直保持,直到对其进行重新赋值。3)常量CONST——在定义时赋初始值,在程序运行过程中不会发生变化。常量 CONST 常量的特点是在定义时已赋予了数值,在程序运行中不会发生变化,除非手动修改(用指令重新赋值)。举例说明:
CONST num gravity :=9.81;
CONST string greating :=”Hello”;
名称为 gravity 的数字数据名称为 greating 的字符数据
10
ABB工业机器人教案
注意:存储类型为常量的程序数据,不允许在程序中进行等同赋值的操作(通过某种运算进行间接赋值),除非进行手动修改(重新赋值)。
四、常用的程序数据类型
根据不同的数据用途,定义了不同的程序数据类型,下表是机器人系统中常用的程序数据类型:
数据类型bool byte clock dionum extjoint intnum jointtarget loaddata mecunit num orient pos pose robjoint robtarget speeddata string tooldata trapdata wobjdata zonedata
说明布尔量
整数数据 0~255 计时数据
数字输入/输出信号外轴位置数据中断标志符关节位置数据负荷数据机械装置数据数值数据姿态数据
位置数据(只有 X、Y 和 Z)坐标转换
机器人轴角度数据
机器人与外轴的位置数据机器人与外轴的速度数据字符串工具数据中断数据工件数据
TCP 转弯半径数据
五、疑难解答
1. MoveAbsJ、MoveJ和MoveL有什么区别?解释:
MoveAbsJ的目标点是用六个轴伺服电机的偏转角度值来指定的。
MoveJ(及MoveL)的目标点是用坐标系X Y Z的值来指定的。机器人以最快捷的方式运动至目标点,机器人运动状态不完全可控,但运动路径保持唯一,常用于机器人在空间大范围移动。
MoveL机器人以线性方式运动至目标点,当前点与目标点两点决定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现死点,常用于机器人在工作状态
11
ABB工业机器人教案
移动。
2.在指令的开头加“!”是什么意思?如“!MoveJ ……”解释:
加!行为注释行,程序运行过程不会运行该行语句,如果你想跳过一条语句,又不想在程序里删除,可以在前面加!。
3.能用robotstudio控制真实的机器人吗?如果能的话,在软件哪个窗口可以进行操作?是可以进行编程的offline tab吗?解释:
RS不能操纵真实的机器人。但是利用RS在线功能,可拥有对真实机器人的读写权限、文件传输、备份、示教器查看等功能;
4.在robotstudio中能否保存成可以用u盘拷贝到abb控制柜中的程序?解释:
首先确认控制柜或者示教器上是否拥有USB端口,若有USB端口,连接USB设备后,机器人数据备份或另存为时,路径选择相应的USB设备即可。
六、一些要注意的细节
下图所示内容会直接影响编程是否正确。
1.在工具安装前后、系统建立前后、建立工件坐标前后,下图框中的名称是不一样的。
2.启用示教器之前,如果不执行“同步到标系)和工具。
VC”,示教器中将只有默认的工件(坐
12
ABB工业机器人教案
执行了“同步到VC”,才会出现用户自己的工件和工具。
3.利用示教器编程之前,若不设定好工具坐标、工件坐标(使用默认)
13
ABB工业机器人教案
实际执行指令时会以tool0的TCP(法兰盘中心)为操作对象,操作结果与预想的将不一致。甚至无法编程。
编程之前若设定了用户自己的工具坐标、工件坐标,则编程时会自动使用用户的工件、工具。
4、示教器中的“线性移动”就是“手动线性”,是TCP沿坐标轴XYZ三个方向平移,过程中TCP姿态不变,不同于MoveL的直线运动。
14
ABB工业机器人教案
15
因篇幅问题不能全部显示,请点此查看更多更全内容