TEST指令,GOTO、LABEL指令,STOP指令
時間:2021-06-04 16:24
來源:
下面智通教育給您帶來TEST等各種指令
1.TEST-根據(jù)表達(dá)式的值…
TEST指令可以對表達(dá)式或數(shù)據(jù)的多個值進(jìn)行判斷,根據(jù)不同的值執(zhí)行相對應(yīng)的指令。該指令的使用格式如下:
TEST <表達(dá)式>
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的值進(jìn)行判斷,如果為1,則線性移動至p10點,如果為2或3,則線性移動至p20點,否則機器人停止運行。
使用實例2:
TEST go1
CASE 2:
routine1;
CASE 6:
Routine2;
CASE 7:
Routine3;
DEFAULT:
TPWrite”waiting!”
stop;
ENDTEST
說明:對組輸出信號go1的值進(jìn)行判斷,如果為2,則執(zhí)行例行程序routine1,如果為6,則執(zhí)行例行程序routine2,如果為7,則執(zhí)行例行程序routine3,否則寫屏“waiting!”并停止。
1. TEST指令可以添加多個“CASE”,但只能有一個“DEFAULT”。
2. TEST可以對所有數(shù)據(jù)類型進(jìn)行判斷,但是進(jìn)行判斷的數(shù)據(jù)必須擁有值。
3. 如果并沒有太多的替代選擇,則亦可使用IF…ELSE指令。
2. GOTO、LABEL指令
在程序運行中,如果要將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的另一線程,可以用GOTO和LABEL組成的跳轉(zhuǎn)標(biāo)簽指令達(dá)成。GOTO-轉(zhuǎn)到新的指令
GOTO用于將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的另一線程(標(biāo)簽)。
LABEL-線程名稱
Label用于命名程序的指令。
如果程序執(zhí)行到GOTO指令,則程序的執(zhí)行將會直接跳轉(zhuǎn)至相對應(yīng)的LABEL處,并執(zhí)行LABEL后的指令。
使用實例1:
MoveL pPlace, v1000, fine, tool1;
Reset do1;
WaitTime 0.5;
GOTO Pick;
…
Pick:
說明:線性移動至放置點pPlace后,復(fù)位輸出信號do1,然后等待0.5s,程序再移動至名為Pick的標(biāo)簽處繼續(xù)執(zhí)行。
使用實例2:
IF reg1 < 9 THEN
GOTO L1;
ELSE
GOTO ST;
ENDIF
L1:
...
ST:
...
說明:如果reg1的值小于9,則程序跳轉(zhuǎn)至名為L1的標(biāo)簽處繼續(xù)執(zhí)行,否則跳轉(zhuǎn)至名為ST的標(biāo)簽處繼續(xù)執(zhí)行。
使用實例3:
reg1 := 1;
next:
...
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
說明:如果reg1的值小于等于5,則跳轉(zhuǎn)至名為next的標(biāo)簽處繼續(xù)執(zhí)行“…”所代表的程序。這個實例中,“…”所代表的程序總的會被執(zhí)行5次(reg1=1、2、3、4、5)。
工業(yè)機器人培訓(xùn)專家的小貼士:
1. LABEL需要先進(jìn)行創(chuàng)建才能在使用GOTO指令時直接進(jìn)行選擇。
2. GOTO指令限制:僅能將程序執(zhí)行轉(zhuǎn)移到相同程序內(nèi)的一個標(biāo)簽。
3. LABEL的名稱創(chuàng)建具有唯一性:不能與程序內(nèi)其他標(biāo)簽名相同;不能與程序內(nèi)的所有數(shù)據(jù)名稱相同。
3. STOP指令
STOP-停止程序執(zhí)行STOP指令用于停止程序執(zhí)行。在Stop指令就緒之前,將完成當(dāng)前執(zhí)行的所有移動。該指令的使用格式為:
Stop [ NoRegain ] | [ AllMoveTasks ];
如果STOP指令使用變量NoRegain,若機械臂和外軸已遠(yuǎn)離停止位置,則不會再返回;如果不使用變量NoRegain,若機械臂和外軸已逐漸遠(yuǎn)離停止位置,則會進(jìn)行相關(guān)提示,用戶可選擇是否返回停止位置。
如果STOP指令使用變量AllMoveTasks,則所有運行中的普通任務(wù)都將停止;如果不使用變量AllMoveTasks,則僅停止該指令所在任務(wù)中的程序。
使用實例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。關(guān)于下一次程序起動,機械臂并未恢復(fù)至p1,因此,可將位置p1_read儲存在程序中。
Stop、EXIT、Break都有停止程序運行的含義,但它們之間又各有區(qū)別,具體為:
1. Stop指令用于臨時停止程序執(zhí)行,程序指針會保留,并且還可以繼續(xù)運行。
2. EXIT指令用于永久地停止程序執(zhí)行,程序指針會消失,要繼續(xù)程序執(zhí)行需重置程序指針。
3. Break指令是指中斷程序執(zhí)行,無論機械臂是否到達(dá)目標(biāo)點,機械臂立即停止運動。
歡迎掃碼添加老師微信,隨時隨地為您解答課程疑問。