RAPID程序数据(Program data)简称数据(data),它是RAPID指令的操作数和RAPID应用程序的基本组成部分,正确使用程序数据是ABB机器人编程的基础。程序数据是在程序模块或系统模块中设定的值和定义的一些环境数据。创建的程序数据由同一个模块或其他模块中的指令进行引用。
图中是一条常用的机器人关节运动的指令MoveJ,调用了四个程序数据。
程序数据 | 数据类型 | 说明 |
p10 | robtarget | 机器人运动目标位置数据 |
v1000 | speeddata | 机器人运动速度数据 |
z50 | zonedata | 机器人运动转弯数据 |
tool0 | tooldata | 机器人工作数据TCP |
根据数据的组成与结构不同,RAPID程序数据总体分为基本型(atomic)、复合型(recode)和等同型(alias)3大类,3类数据的组成和特点如下。
1.基本型数据
基本型(atomic)数据在ABB机器人说明书中有时译为“原子型”数据,基本型数据只能由数字、字符等基本元素构成,数据不能作进一步分解。
RAPID程序常用的基本型数据有数值型(num)、双精度数值型(dnum)、字节型(byte)、逻辑状态型(bool)、字符串型(string、stringdig)几种。
(1)数值型、双精度数值型
数值型(num)、双精度数值型(dnum)数据是用具体数值表示的数据,数据格式按ANSI IEEE 754二进制浮点数标准(IEEE Standard for Floating-Point Arithmetic)定义,该标准与ISO/IEC/IEEE 60559等同。
数值型(num)数据采用32位单精度(Single precision)格式:数据位为23位、指数位为8位、符号位为1位;可准确表示的数值为−223~ (223−1)。
双精度数值型(dnum)数据采用64位双精度(Double precision)格式:数据位为52位、指数位为11位、符号位为1位;可准确表示的数值为−252~ (252−1)。因此,在RAPID程序中,dnum型数据可用来表示超过num型数据范围的数值。
num、dnum数据的值可用整数、小数或指数形式表示,如3、−5、3.14、−5.28、2E 3 (2000)、2.5E−2(0.025)等;如需要,数值型也可用二进制(bin)、8进制(oct)或16进制(hex)形式进行表示。
在数据取值允许的范围内,num与dnum数据的转换可由系统自动完成。只要运算结果在取值范围内,num、dnum数据还可进行各种运算;但由于小数部分的位数受限,系统只能近似值处理,因此,num、dnum数据通常不能进行“等于”或“不等于”比较。此外,如程序中使用了除法运算,即使得到的商为整数,但系统也不认为它是准确的整数;例如,对于以下程序,由于系统不认为a/b是准确的整数2,因而IF指令的条件将永远无法满足。
a := 10 ;
b := 5 ;
IF a/b=2 THEN
(2)字节型、逻辑状态型
字节型数据(byte)是8位二进制正整数,数值范围为0~255,它主要用于多位逻辑运算及开关量输入/输出的成组处理。逻辑状态型数据(bool)用来表示二进制逻辑状态,其值用状态名TRUE(真)、FALSE(假)表示;bool型数据可用TRUE、FALSE赋值,也可进行比较、判断及逻辑运算,或直接作为IF指令的判别条件。
(3)字符串型
字符串型数据(string)亦称文本(text),它是由英文字母、数字及符号构成的特殊数据,在RAPID程序中,string数据最大允许为80个ASCII字符,数据前后需要加双引号(")标记。
如string数据本身包含有双引号"或反斜杠,则需要连续使用2个双引号或2个反斜杠。例如,字符串start "weldingpipe " 2的string数据格式为:""start ""weldingpipe"" 2 "等。
2.复合型数据
复合型(recode)数据在ABB机器人说明书中有时译为“记录型”数据,其数量众多,机器人位置、速度、工具等数据均为复合型数据。
复合型数据由多个数据复合而成,用来复合的数据既可以是基本型数据,也可为其他复合型数据。例如,用来表示机器人TCP位置的程序数据robtarget,由4个复合型数据[trans, rot,robconf,extax] 复合而成,其中,trans是由3个num数据组成的[x,y,z]复合型位置数据;rot是由4个num数据组成的[q1,q2,q3,q4]复合型工具姿态数据;robconf是由4个num数据组成的[cf1,cf4,cf6,cfx]复合型机器人姿态数据;
extax是由6个num数据(e1~e6坐标值)组成的[e1,e2,e3,e4,e5,e6]复合型外部轴位置数据等。
在RAPID程序中,复合型数据既可整体使用,也可只使用其中的某一部分(如trans)或某一部分的某一项数据(如X坐标值);且还可利用RAPID函数命令进行运算与处理。
3.等同型数据
等同型(alias)数据实际上相当于通过ALIAS指令为系统预定义的数据类型,重新定义一个其他名称(别名),以便于数据分类和检索。别名可直接替代数据类型名使用。例如:
VAR num reg1 := 2; // 定义num数据reg1
ALIAS num level ; // 数据类型名称level等同num
……
VAR level high ; // 定义level数据high
VAR level low := 4.0; // 定义level数据low并赋值
high:= low reg1 // 同类数据运算
……
根据不同的数据用途,定义了不同的程序数据,下表是机器人系统中常用的程序数据:
程序数据 | 说明 |
bool | 布尔量 |
byte | 整数数据0~255 |
clock | 计时数据 |
dionum | 数字输入/输出信号 |
extjoint | 外轴位置数据 |
intnum | 中断标志符 |
jointtarget | 关节位置数据 |
loaddata | 负荷数据 |
mecunit | 机械装置数据 |
num | 数值数据 |
orient | 姿态数据 |
pos | 位置数据(只有X、Y和Z) |
pose | 坐标转换 |
robjoint | 机器人轴角度数据 |
robtarget | 机器人与外轴的位置数据 |
speeddata | 机器人与外轴的速度数据 |
string | 字符串 |
tooldata | 工具数据 |
trapdata | 中断数据 |
wobjdata | 工件数据 |
zonedata | TCP转弯半径数据 |
提示:系统中还有针对一些特殊功能的程序数据,在对应的功能说明书中会有相应的详细介绍,请查看随机光盘电子版说明书。也可以根据需要新建程序数据类型。
扫描二维码学习“工业机器人实操与应用技巧”什么是程序数据