您好!欢迎光临工博士智能制造网!平台热线:021-80392549
工博士机器人网
ABB机械手专营店
产品:66  浏览:280544
6
您当前的位置:首页 » ABB资料资讯 » ABB机器人计时器数据类型及相关指令程序拟写——ABB机器人专营店
产品分类
ABB资料资讯
ABB机器人计时器数据类型及相关指令程序拟写——ABB机器人专营店
发布时间:2019-05-27        浏览次数:13126        返回列表

一、计时器程序数据类型

1、clock程序数据类型(来源于ABB功能函数指令资料)

(1)clock 时钟 - 时间测量

Clock用于时间测量。一个功能类似秒表的时钟,用于定时。clock型数据储存时间测量值,以秒计,且分辨率为0.001秒。

可储存在时钟变量中的*长时间大约为49天(4,294,967秒)。指令ClkStart、ClkStop和ClkRead报告极不可能出现事件中的时钟溢出。必须将时钟声明为一个VAR变量类型,而非一个pers可变量类型。clock为非值数据类型,且无法用于以值为导向的运算。

(2)举例

VAR clock myclock;

ClkReset myclock;

声明和重置时钟myclock,。在使用ClkReset、ClkStart、ClkStop和ClkRead

之前,必须在程序中声明一个数据类型clock的变量。

2、num数据类型(来源于ABB功能函数指令资料)

(1)Num 用于数值;例如,计数器。num数据类型的值可以为

• 整数;例如,-5

• 小数;例如,3.45

• 其亦可呈指数地写入;例如,2E3(=2*10^3=2000),2.5E-2(=0.025)。

始终将-8388607与+8388608之间的整数作为准确的整数储存。小数仅为近似数字,因此,不得用于等于或不等于对比。若为使用小数的除法和运算,则结果亦将为小数;即并非一个准确的整数。

(2)系统中存在一些预定义数据。例如,已定义常量pi(π)。

常量pi:=3.1415926。

(3)举例:

a := 10 DIV 3;

b := 10 MOD 3;

整数除法,向 a分配一个整数(=3),并向b分配余数(=1)。

ABB机器人

二、计时器用到的相关计时指令(来源于ABB功能函数指令资料)

1、计时器指令

(1)ClkReset - 重置用于定时的时钟

ClkReset用于重置作为定时用秒表的时钟。使用时钟之前,可以使用此指令,以确保设置为0。例如:ClkReset clock1; !重置时钟clock1。

重置时钟时,将其设置为0。如果时钟正在运行中,则应将使其先停止,然后进行重置。

(2)ClkStart用于启动作为定时用秒表的时钟。

程序执行过程:启动时钟时,其将运行并持续读秒,直至停止。当启动程序停止时,时钟继续运行。但是,针对时间的事件可能不再有效。例如,如果程序正在测量输入的等待时间,则程序停止时,可能已经收到了输入。在这种情况下,程序将无法“发现”程序停止时出现的事件。只要电池为保留包含时钟变量的程序供电,则当机械臂掉电时,时钟会继续运行。如果时钟正在运行中,则可以进行读数、停止或重置。

举例:

VAR clock clock2;

VAR num time;

ClkReset clock2;

ClkStart clock2;

WaitUntil di1 = 1;

ClkStop clock2;

time:=ClkRead(clock2);

测量di1成为1所等待的时间。

(3)ClkStop - 停止用于定时的时钟

例如:ClkStop clock1;  !停止时钟clock1。

程序执行:当时钟停止时,其将停止运行。如果时钟停止,则可以进行读数、重启或重置。

错误处理:对于错误程序使用,如果时钟运行4,294,967秒(49天17小时2分钟47秒),则其会溢出,且系统变量ERRNO得以设置为ERR_OVERFLOW。可以用错误处理器来处理错误。

2、clkread指令

(1)作用:读取用于定时的时钟,数据NUM数据类型的功能指令;ClkRead用于读取作为定时用秒表的时钟。

(2)返回数据类型:功能指令clkread返回数据类型为num,可以将时间(以秒计)储存在时钟中。由于数据类型数字的精度,只要读取值小于1秒,则仅可获得微秒的分辨率,分辨率通常为0.001秒。如果使用HighRes开关,则可能获得0.000001秒的分辨率。规定应当以更高的分辨率来读取时间,如果使用该开关,则以分辨率0.000001来读取时间是可能的。

(3)举例

举例1:

reg1:=ClkRead(clock1);

读取时钟clock1,并将时间(以秒计)储存在变量reg1中。

举例2:

reg1:=ClkRead(clock1 \HighRes);

读取时钟clock1,并以高分辨率,可以获得0.000001秒为精度,将时间(以秒计)储存在变量reg1中。

(4)错误处理:如果时钟运行4,294,967秒(49天17小时2分钟47秒),则其会溢出,且系统变量ERRNO得以设置为ERR_OVERFLOW,可以用错误处理器来处理错误。如果使用HighRes开关,则不会出现错误ERR_OVERFLOW,但是,在大约49700天后,时钟将回绕。

3、TPwrite指令

(1)作用

写入FlexPendant示教器,用于在FlexPendant示教器上写入文本,可将特定数

据的值同文本一样写入。

(2)例如:TPWrite "Hello World!";

在FlexPendant示教器上写入文本Hello World!。

例如:TPWrite "No of produced parts="\Num:=reg1;

如果reg1保存值5,则在FlexPendant示教器上写入文本No of produced parts=5。

(3)指令结构

TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient] | [\Dnum]

String:数据类型为string,有待写入的文本字符串(每行40个字符,*多80个字符)。

[\Num]Numeric,数据类型:num,将在文本字符串后写入其数值的数据。

[\Bool]Boolean,数据类型:bool,将在文本字符串后写入其逻辑值的数据。

[\Pos]Position,数据类型:pos。

三、计时器案例及其仿真视频

1、计时器程序

(1)定时器程序

PROC rClock1()

ClkReset clockQF1;

ClkStart clockQF1;

rSJX1;

ClkStop clockQF1;

QFtime := ClkRead(clockQF1);

TPErase;

TPWrite "The working time is QFtime = "\Num:=QFtime;

WaitTime 3;

ENDPROC

(2)绘制三角形程序

PROC rSJX1()

pSJXbase := CRobT(\Tool:=tWeldGun\WObj:=wobj0);

TPErase;

TPReadNum numSJXcs1, "Please input drawing times for numSJXcs1 = ";

FOR i FROM 1 TO numSJXcs1 DO

MoveL Offs(pSJXbase,0,0,0), v1000, fine, tWeldGun\WObj:=wobj0;

MoveL Offs(pSJXbase,300,0,0), v1000, fine, tWeldGun\WObj:=wobj0;

MoveL Offs(pSJXbase,0,400,0), v1000, fine, tWeldGun\WObj:=wobj0;

MoveL Offs(pSJXbase,0,0,0), v1000, fine, tWeldGun\WObj:=wobj0;

ENDFOR

ENDPROC

了解更多ABB机器人信息:http://www.abbjxs.gbsrobot.com

 

联系热线:18616260662(微信同号) 联系人:王青慧 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 ABB机械手专营店