报名人数298782
资讯中心 > 课程相关资讯 > 机器人培训 > 机器人培训 > TEST指令,GOTO、LABEL指令,STOP指令

TEST指令,GOTO、LABEL指令,STOP指令

时间:2021-06-04 16:24 来源:

下面智通教育给您带来TEST等各种指令 

1.TEST-根据表达式的值
TEST指令可以对表达式或数据的多个值进行判断,根据不同的值执行相对应的指令。该指令的使用格式如下:
TEST <表达式>
CASE<值>:
  …
CASE<值>:
  …
DEFAULT:
  …
ENDTEST

使用实例1:
TEST reg1
CASE 1:
  MOVL p10,v1000,fine,tool1;
CASE 2,3:
  MOVL p20,v1000,fine,tool1;;
DEFAULT:
  stop;
ENDTEST
说明:对reg1的值进行判断,如果为1,则线性移动至p10点,如果为2或3,则线性移动至p20点,否则机器人停止运行。
 
使用实例2:
TEST go1
CASE 2:
  routine1;
CASE 6:
  Routine2;
CASE 7:
  Routine3;
DEFAULT:
  TPWrite”waiting!”
stop;
ENDTEST
说明:对组输出信号go1的值进行判断,如果为2,则执行例行程序routine1,如果为6,则执行例行程序routine2,如果为7,则执行例行程序routine3,否则写屏“waiting!”并停止。


工业机器人培训专家的小贴士:
    1. TEST指令可以添加多个“CASE”,但只能有一个“DEFAULT”。
2. TEST可以对所有数据类型进行判断,但是进行判断的数据必须拥有值。
3. 如果并没有太多的替代选择,则亦可使用IF…ELSE指令。

2. GOTO、LABEL指令

在程序运行中,如果要将程序执行转移到相同程序内的另一线程,可以用GOTO和LABEL组成的跳转标签指令达成。
GOTO-转到新的指令
GOTO用于将程序执行转移到相同程序内的另一线程(标签)。
LABEL-线程名称
Label用于命名程序的指令。
如果程序执行到GOTO指令,则程序的执行将会直接跳转至相对应的LABEL处,并执行LABEL后的指令。
 
使用实例1:
MoveL pPlace, v1000, fine, tool1;
Reset do1;
WaitTime 0.5;
GOTO Pick;

Pick:
说明:线性移动至放置点pPlace后,复位输出信号do1,然后等待0.5s,程序再移动至名为Pick的标签处继续执行。
 
使用实例2:
IF reg1 < 9 THEN
    GOTO L1;
ELSE
    GOTO ST;
ENDIF
L1:
...
ST:
...

说明:如果reg1的值小于9,则程序跳转至名为L1的标签处继续执行,否则跳转至名为ST的标签处继续执行。
 
使用实例3:
reg1 := 1;
next:
...
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
说明:如果reg1的值小于等于5,则跳转至名为next的标签处继续执行“…”所代表的程序。这个实例中,“…”所代表的程序总的会被执行5次(reg1=1、2、3、4、5)。
工业机器人培训专家的小贴士:
    1. LABEL需要先进行创建才能在使用GOTO指令时直接进行选择。
2. GOTO指令限制:仅能将程序执行转移到相同程序内的一个标签。

3. LABEL的名称创建具有唯一性:不能与程序内其他标签名相同;不能与程序内的所有数据名称相同。

3. STOP指令

STOP-停止程序执行
STOP指令用于停止程序执行。在Stop指令就绪之前,将完成当前执行的所有移动。该指令的使用格式为:
Stop [ NoRegain ] | [ AllMoveTasks ];
如果STOP指令使用变量NoRegain,若机械臂和外轴已远离停止位置,则不会再返回;如果不使用变量NoRegain,若机械臂和外轴已逐渐远离停止位置,则会进行相关提示,用户可选择是否返回停止位置。
如果STOP指令使用变量AllMoveTasks,则所有运行中的普通任务都将停止;如果不使用变量AllMoveTasks,则仅停止该指令所在任务中的程序。

使用实例1:
TPErase;
TPWrite “Restart Error!”;
Stop;
说明:示教器显示屏输出“Restart Error!”消息后,停止程序执行。
 
使用实例2:
MoveL p1, v500, fine, tool1;
TPWrite "Jog the robot to the position for pallet corner 1";
Stop NoRegain;
p1_read := CRobT(Tool:=tool1 WObj:=wobj0);
MoveL p2, v500, z50, tool1;

说明:通过位于p1的机械臂,停止程序执行。运算符点动,机械臂移动至p1_read。关于下一次程序起动,机械臂并未恢复至p1,因此,可将位置p1_read储存在程序中。


工业机器人培训专家的小贴士:
Stop、EXIT、Break都有停止程序运行的含义,但它们之间又各有区别,具体为:
1. Stop指令用于临时停止程序执行,程序指针会保留,并且还可以继续运行。
2. EXIT指令用于永久地停止程序执行,程序指针会消失,要继续程序执行需重置程序指针。
3. Break指令是指中断程序执行,无论机械臂是否到达目标点,机械臂立即停止运动。
欢迎扫码添加老师微信,随时随地为您解答课程疑问。