首页 理论教育 常用程序数据类型及定义方法

常用程序数据类型及定义方法

时间:2023-06-23 理论教育 版权反馈
【摘要】:在前文的6.1.1中提到过RAPID语言中共有上百种程序数据,数据中存放的是编程需要用到的各种类型的常量和变量。在这里我们将介绍一些常用的数据类型及定义方法。常用的程序数据类型及定义方法图6-24“程序数据”界面程序数据的存储类型可以分为三大类:变量VAR、可变量PERS和常量CONTS。程序数据是根据不同的数据用途进行定义的,常用的程序数据类型有:bool,byte,clock,jointtarget,loaddata,num,pos,robjoint,speeddata,string,tooldata和wobjdata等。

常用程序数据类型及定义方法

前面学习任务6.2,让我们学会了如何操作机器人执行简单的运动轨迹,要想实现复杂的逻辑判断和流程设计还需进行下面知识内容的 学习。

在前文的6.1.1中提到过RAPID语言中共有上百种程序数据,数据中存放的是编程需要用到的各种类型的常量和变量。在这里我们将介绍一些常用的数据类型及定义方法。图6-24所示为“程序数据”界面。

常用的程序数据类型及定义方法

图6-24 “程序数据”界面

程序数据的存储类型可以分为三大类:变量VAR、可变量PERS和常量CONTS。它们三个数据存储类型的特点如下:

(1)变量VAR:在执行或停止时,会保留当前的值,当程序指针被移到主程序后,数值会丢失。定义变量时可以赋初始值,也可以不赋予初始值。

(2)可变量PERS:不管程序的指针如何,都会保持最后被赋予的值,定义时,所有可变量必须被赋予一个相应的初始值。

(3)常量CONTS:在定义式时就被赋予了特定的数值,并不能在程序中进行改动,只能手动进行修改。在定义时,所有常量必须被赋予一个相应的初始值。

在新建程序数据时,可在其声明界面(图6-25)对程序数据类型的名称、范围、存储类型、任务、模块、例行程序和维数进行设定。数据参数说明如表6-7所示。

图6-25 “新数据声明”界面

表6-7 数据参数说明

图6-25 “新数据声明”界面

表6-7 数据参数说明

下面对常用的数据进行详细介绍,为后续编写程序打好基础。程序数据是根据不同的数据用途进行定义的,常用的程序数据类型有:bool,byte,clock,jointtarget,loaddata,num,pos,robjoint,speeddata,string,tooldata和wobjdata等。不同类型的常用程序数据的用法如下:

(1)bool:布尔量,用于逻辑值,bool型数据可以为ture或false。

例如:VAR boolflag1;

flag1:=ture;

(2)byte:用于符合字节范围(0~255)的整数数值,代表一个整数字节值。

例如:VAR bytedata:=130;

(3)clock:用于时间测量,功能类似秒表,用于定时;存储时间测量值,以s为单位,分辨率为0.001 s且必须为VAR变量。

例如:VAR clockmyclock;

CIKResetmyclock;

重置时钟clock。

(4)jointtarget:用于通过指令MoveAbsJ确定机械臂和外轴移动到的位置,规定机械臂和外轴的各单独轴位置。其中robax axes表示机械臂轴位置,以度为单位。Extemalaxes表示轴外的位置,对于线性外轴,其位置定义与校准的距离(mm);对于旋转外轴,其位置定义为从校准位置起旋转的度数。

例如:CONTS jointtargetcalib_pos:=[ [0,0,0,0,0,0],[0.9E9,9E9,9E9,9E9,9E9]];

定义机器人在calib_pos的正常校准位置,以及外部轴a的正常校准值0(度或毫米),未定义外轴b~f。

(5)loaddata:用于描述附于机械臂机械界面(机械臂安装法兰)的负载,负载数据常常定义机械臂的有效负载或支配负载(通过定位器的指令GripLoad或MechUnitLoad来设置),即机械臂夹具所施加的负载。同时将loaddata作为tooldata的组成部分,以描述工具负载。

loaddata参数表如表6-8所示。

表6-8 loaddata参数表

下面对常用的数据进行详细介绍,为后续编写程序打好基础。程序数据是根据不同的数据用途进行定义的,常用的程序数据类型有:bool,byte,clock,jointtarget,loaddata,num,pos,robjoint,speeddata,string,tooldata和wobjdata等。不同类型的常用程序数据的用法如下:

(1)bool:布尔量,用于逻辑值,bool型数据可以为ture或false。

例如:VAR boolflag1;

flag1:=ture;

(2)byte:用于符合字节范围(0~255)的整数数值,代表一个整数字节值。

例如:VAR bytedata:=130;

(3)clock:用于时间测量,功能类似秒表,用于定时;存储时间测量值,以s为单位,分辨率为0.001 s且必须为VAR变量。

例如:VAR clockmyclock;

CIKResetmyclock;

重置时钟clock。

(4)jointtarget:用于通过指令MoveAbsJ确定机械臂和外轴移动到的位置,规定机械臂和外轴的各单独轴位置。其中robax axes表示机械臂轴位置,以度为单位。Extemalaxes表示轴外的位置,对于线性外轴,其位置定义与校准的距离(mm);对于旋转外轴,其位置定义为从校准位置起旋转的度数。

例如:CONTS jointtargetcalib_pos:=[ [0,0,0,0,0,0],[0.9E9,9E9,9E9,9E9,9E9]];

定义机器人在calib_pos的正常校准位置,以及外部轴a的正常校准值0(度或毫米),未定义外轴b~f。

(5)loaddata:用于描述附于机械臂机械界面(机械臂安装法兰)的负载,负载数据常常定义机械臂的有效负载或支配负载(通过定位器的指令GripLoad或MechUnitLoad来设置),即机械臂夹具所施加的负载。同时将loaddata作为tooldata的组成部分,以描述工具负载。

loaddata参数表如表6-8所示。

表6-8 loaddata参数表

例如:PERS loaddatapiece1:[5,[50,0,50],[1,0,0,0],[0,0,0]];

质量5 kg,重心坐标x=50 mm,y=0 mm和z=50 mm,有效负载为一个点质量。

(6)num:此数据类型的值可以为整数(例如4-5)和小数(例如4.45),也可以呈指数形式写入(例如2E3=2×10的三次方),该数据类型始终将-8 388 607与+8 388 608之间的整数作为准确的整数储存。小数仅为近似数字,因此,不得用于等于或不等于对比。若为使用小数的除法运算,则结果也将为小数,即并非一个准确的整数。

例如:VAR numreg1

reg1

将reg1指定值为3。

(7)pos:用于各位置(仅X、Y、Z),描述X、Y和Z的位置的坐标。其中X、Y和Z参数的值均为num数据类型。

例如:VAR pospos1;

…(www.xing528.com)

Pos1:=[500,0,940];

pos1的位置为X=500 mm,Y=0 mm,Z=940 mm。

(8)robjoint:robjoint用于定义机械臂轴的位置,单位度。robjoint类数据用于储存机械臂轴1~6的轴位置,将轴位置定义为各轴(臂)从轴校准位置沿正方向或负方向旋转的度数。

例如:rax_1;robotaxis 1;

机械臂轴1位置距离校准位置的度数,数据类型num。

(9)speeddata用于规定机械臂和外轴均开始移动时的速率。速度数据定义以下速率:中心点移动时的速率;工具的重新定位速度;线性或旋转外轴移动时的速率。当结合多种不同类型的移动时,其中一个速率常常限制所有运动。这时将减小其他运动的速率,以便所有运动同时停止执行。与此同时通过机械臂性能来限制速率,将会根据机械臂类型和运动路径面而有所不同。

例如:VARspeeddata vmedium:=[1000,30,200,15];

定义速度数据vmedium,对TCP,速率为1 000 mm/s;对于工具的重新定位,速率为30°/s;:对于线性外轴,速率为200 mm/s;对于旋转外轴,速率为15°/s。

(10)string:用于字符串。字符串由一系列附上引号(“”)的字符(最多80个)组成,例如,“这是一个字符串”如果字符串中包括引号,则必须保留两个引号,例如,“本字符串包含一个”“字符”。如果字符串中包括反斜线,则必须保留两个反斜线符号,例如,“本字符串中包含一个\\字符。”

例如:VAR stringtext;

text:=“startweldingpipe 1”;

TPWrite text;

在Flexpendant示教器上写入文本start welding pipe1。

(11)tooldata:用于描述工具(例如焊枪或夹具)的特征。此类特征包括工具中心点(TCP)的位置和方位以及工具负载的物理特征。如果工具得以固定在空间中(固定工具),则工具数据首先定义空间中该工具的位置和方位以及TCP。随后,描述机械臂所移动夹具的负载。

例如:PRES tooldatagripper=[TRUE,[[97.4,223.1],[0.920,0.383,0]],[5,[23,0,75],[1,0,0,0],0,0,0]];

机械臂正夹持着工具,TCP所在点与安装法兰的直线距离为223.1 mm,且沿腕坐标系X轴97.4 mm;工具的X方向和Z方向相对于腕坐标系方向旋转45°;工具质量为5 kg;重心所在点与安装法兰的距离为75 m,且沿腕坐标系X轴23 mm;可将负载视为一个点质量,即不带任何惯性矩

(12)wobjdata:用于描述机械臂处理其内部移动的工件,例如焊接。如果在定位指令中定义工件,则位置将基于工件坐标。如果使用固定工具或协调外轴,则必须定义工件,因为路径和速率随后将与工件面而非TCP相关。工件数据亦可用于点动:可使机械臂朝工件方向点动,根据工件坐标系,显示机械臂当前位置。

例如:PERS wobjdatawobj2:[FAISE.TRUE,"",[[300,600,200],[1,0,0,0]], [[0,200,30],[1,0,0,0]]];

“FALSE”代表机械臂未夹持着工件,“TRUE”代表使用固定的用户坐标系。用户坐标系不旋转,且其在大地坐标系中的原点坐标为x=300 mm、y=600 mm和z=200 mm;目标坐标系不旋转,且其中用户坐标系中的原点坐标为x=0 mm、y=200 mm和z=30 mm。

例如:wobj.oframe.trans.z:=38.3;

将工件wobj2的位置调整至沿z方向38.3 mm处。

例如:PERS loaddatapiece1:[5,[50,0,50],[1,0,0,0],[0,0,0]];

质量5 kg,重心坐标x=50 mm,y=0 mm和z=50 mm,有效负载为一个点质量。

(6)num:此数据类型的值可以为整数(例如4-5)和小数(例如4.45),也可以呈指数形式写入(例如2E3=2×10的三次方),该数据类型始终将-8 388 607与+8 388 608之间的整数作为准确的整数储存。小数仅为近似数字,因此,不得用于等于或不等于对比。若为使用小数的除法运算,则结果也将为小数,即并非一个准确的整数。

例如:VAR numreg1

reg1

将reg1指定值为3。

(7)pos:用于各位置(仅X、Y、Z),描述X、Y和Z的位置的坐标。其中X、Y和Z参数的值均为num数据类型。

例如:VAR pospos1;

Pos1:=[500,0,940];

pos1的位置为X=500 mm,Y=0 mm,Z=940 mm。

(8)robjoint:robjoint用于定义机械臂轴的位置,单位度。robjoint类数据用于储存机械臂轴1~6的轴位置,将轴位置定义为各轴(臂)从轴校准位置沿正方向或负方向旋转的度数。

例如:rax_1;robotaxis 1;

机械臂轴1位置距离校准位置的度数,数据类型num。

(9)speeddata用于规定机械臂和外轴均开始移动时的速率。速度数据定义以下速率:中心点移动时的速率;工具的重新定位速度;线性或旋转外轴移动时的速率。当结合多种不同类型的移动时,其中一个速率常常限制所有运动。这时将减小其他运动的速率,以便所有运动同时停止执行。与此同时通过机械臂性能来限制速率,将会根据机械臂类型和运动路径面而有所不同。

例如:VARspeeddata vmedium:=[1000,30,200,15];

定义速度数据vmedium,对TCP,速率为1 000 mm/s;对于工具的重新定位,速率为30°/s;:对于线性外轴,速率为200 mm/s;对于旋转外轴,速率为15°/s。

(10)string:用于字符串。字符串由一系列附上引号(“”)的字符(最多80个)组成,例如,“这是一个字符串”如果字符串中包括引号,则必须保留两个引号,例如,“本字符串包含一个”“字符”。如果字符串中包括反斜线,则必须保留两个反斜线符号,例如,“本字符串中包含一个\\字符。”

例如:VAR stringtext;

text:=“startweldingpipe 1”;

TPWrite text;

在Flexpendant示教器上写入文本start welding pipe1。

(11)tooldata:用于描述工具(例如焊枪或夹具)的特征。此类特征包括工具中心点(TCP)的位置和方位以及工具负载的物理特征。如果工具得以固定在空间中(固定工具),则工具数据首先定义空间中该工具的位置和方位以及TCP。随后,描述机械臂所移动夹具的负载。

例如:PRES tooldatagripper=[TRUE,[[97.4,223.1],[0.920,0.383,0]],[5,[23,0,75],[1,0,0,0],0,0,0]];

机械臂正夹持着工具,TCP所在点与安装法兰的直线距离为223.1 mm,且沿腕坐标系X轴97.4 mm;工具的X方向和Z方向相对于腕坐标系方向旋转45°;工具质量为5 kg;重心所在点与安装法兰的距离为75 m,且沿腕坐标系X轴23 mm;可将负载视为一个点质量,即不带任何惯性矩。

(12)wobjdata:用于描述机械臂处理其内部移动的工件,例如焊接。如果在定位指令中定义工件,则位置将基于工件坐标。如果使用固定工具或协调外轴,则必须定义工件,因为路径和速率随后将与工件面而非TCP相关。工件数据亦可用于点动:可使机械臂朝工件方向点动,根据工件坐标系,显示机械臂当前位置。

例如:PERS wobjdatawobj2:[FAISE.TRUE,"",[[300,600,200],[1,0,0,0]], [[0,200,30],[1,0,0,0]]];

“FALSE”代表机械臂未夹持着工件,“TRUE”代表使用固定的用户坐标系。用户坐标系不旋转,且其在大地坐标系中的原点坐标为x=300 mm、y=600 mm和z=200 mm;目标坐标系不旋转,且其中用户坐标系中的原点坐标为x=0 mm、y=200 mm和z=30 mm。

例如:wobj.oframe.trans.z:=38.3;

将工件wobj2的位置调整至沿z方向38.3 mm处。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈