報名人數(shù)298782
資訊中心 > 課程相關資訊 > 機器人培訓 > 機器人培訓 >?TEST指令,GOTO、LABEL指令,STOP指令

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

時間:2021-06-04 16:24 來源:

下面智通教育給您帶來TEST等各種指令 

1.TEST-根據(jù)表達式的值
TEST指令可以對表達式或數(shù)據(jù)的多個值進行判斷,根據(jù)不同的值執(zhí)行相對應的指令。該指令的使用格式如下:
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,則執(zhí)行例行程序routine1,如果為6,則執(zhí)行例行程序routine2,如果為7,則執(zhí)行例行程序routine3,否則寫屏“waiting!”并停止。


工業(yè)機器人培訓專家的小貼士:
    1. TEST指令可以添加多個“CASE”,但只能有一個“DEFAULT”。
2. TEST可以對所有數(shù)據(jù)類型進行判斷,但是進行判斷的數(shù)據(jù)必須擁有值。
3. 如果并沒有太多的替代選擇,則亦可使用IF…ELSE指令。

2. GOTO、LABEL指令

在程序運行中,如果要將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的另一線程,可以用GOTO和LABEL組成的跳轉(zhuǎn)標簽指令達成。
GOTO-轉(zhuǎn)到新的指令
GOTO用于將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的另一線程(標簽)。
LABEL-線程名稱
Label用于命名程序的指令。
如果程序執(zhí)行到GOTO指令,則程序的執(zhí)行將會直接跳轉(zhuǎn)至相對應的LABEL處,并執(zhí)行LABEL后的指令。
 
使用實例1:
MoveL pPlace, v1000, fine, tool1;
Reset do1;
WaitTime 0.5;
GOTO Pick;

Pick:
說明:線性移動至放置點pPlace后,復位輸出信號do1,然后等待0.5s,程序再移動至名為Pick的標簽處繼續(xù)執(zhí)行。
 
使用實例2:
IF reg1 < 9 THEN
    GOTO L1;
ELSE
    GOTO ST;
ENDIF
L1:
...
ST:
...

說明:如果reg1的值小于9,則程序跳轉(zhuǎn)至名為L1的標簽處繼續(xù)執(zhí)行,否則跳轉(zhuǎn)至名為ST的標簽處繼續(xù)執(zhí)行。
 
使用實例3:
reg1 := 1;
next:
...
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
說明:如果reg1的值小于等于5,則跳轉(zhuǎn)至名為next的標簽處繼續(xù)執(zhí)行“…”所代表的程序。這個實例中,“…”所代表的程序總的會被執(zhí)行5次(reg1=1、2、3、4、5)。
工業(yè)機器人培訓專家的小貼士:
    1. LABEL需要先進行創(chuàng)建才能在使用GOTO指令時直接進行選擇。
2. GOTO指令限制:僅能將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的一個標簽。

3. LABEL的名稱創(chuàng)建具有唯一性:不能與程序內(nèi)其他標簽名相同;不能與程序內(nèi)的所有數(shù)據(jù)名稱相同。

3. STOP指令

STOP-停止程序執(zhí)行
STOP指令用于停止程序執(zhí)行。在Stop指令就緒之前,將完成當前執(zhí)行的所有移動。該指令的使用格式為:
Stop [ NoRegain ] | [ AllMoveTasks ];
如果STOP指令使用變量NoRegain,若機械臂和外軸已遠離停止位置,則不會再返回;如果不使用變量NoRegain,若機械臂和外軸已逐漸遠離停止位置,則會進行相關提示,用戶可選擇是否返回停止位置。
如果STOP指令使用變量AllMoveTasks,則所有運行中的普通任務都將停止;如果不使用變量AllMoveTasks,則僅停止該指令所在任務中的程序。

使用實例1:
TPErase;
TPWrite “Restart Error!”;
Stop;
說明:示教器顯示屏輸出“Restart Error!”消息后,停止程序執(zhí)行。
 
使用實例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的機械臂,停止程序執(zhí)行。運算符點動,機械臂移動至p1_read。關于下一次程序起動,機械臂并未恢復至p1,因此,可將位置p1_read儲存在程序中。


工業(yè)機器人培訓專家的小貼士:
Stop、EXIT、Break都有停止程序運行的含義,但它們之間又各有區(qū)別,具體為:
1. Stop指令用于臨時停止程序執(zhí)行,程序指針會保留,并且還可以繼續(xù)運行。
2. EXIT指令用于永久地停止程序執(zhí)行,程序指針會消失,要繼續(xù)程序執(zhí)行需重置程序指針。
3. Break指令是指中斷程序執(zhí)行,無論機械臂是否到達目標點,機械臂立即停止運動。
歡迎掃碼添加老師微信,隨時隨地為您解答課程疑問。