報名人數(shù)298782
資訊中心 > 課程相關(guān)資訊 > 機器人培訓(xùn) > 機器人培訓(xùn) >?智通工業(yè)機器人培訓(xùn)專家為您講解流程控制類指令及其編程應(yīng)用

智通工業(yè)機器人培訓(xùn)專家為您講解流程控制類指令及其編程應(yīng)用

時間:2021-06-06 16:30 來源:
使用過濾器快速找到需要使用的指令:
在上面跟著智通工業(yè)機器人培訓(xùn)專家學(xué)會的幾個指令中,我們會發(fā)現(xiàn)像STOP、GOTO、LABEL指令無法在示教器的常用指令欄“Common”中找到,除非自己很熟悉,不然一個個查找會顯得很繁瑣。其實,如果是6.06以上的Robtware版本,可以直接用過濾器功能進行搜索。下面介紹如何用過濾器對stop指令進行搜索。

步驟為:1單擊【添加指令】—2單擊右上角過濾器圖標—3在輸入欄輸入“stop
”4單擊【過濾器】—即可顯示搜索結(jié)果,如圖9-3所示—5單擊【清除】,6單擊【過濾器】即可對過濾器進行隱藏。詳細操作圖示,見圖9-1~圖9-4所示。

??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖9-1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖9-2

? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖9-3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???圖9-4
?

工業(yè)機器人培訓(xùn)專家友情提醒您:
????使用過濾器后,其它指令會被過濾器遮蓋,如果要添加其它指令,需要先參照上面第5、第6步驟對過濾器進行隱藏。

ProcCall指令

ProcCall-調(diào)用新程序
ProcCall指令用于將程序執(zhí)行轉(zhuǎn)移至另一個無返回值程序(也稱為子程序),當(dāng)子程序執(zhí)行完畢之后,再回到原來的程序繼續(xù)執(zhí)行。
在程序的編輯中,通過用ProcCall指令來調(diào)用子程序可以極大的精簡主程序的結(jié)構(gòu),讓整體程序結(jié)構(gòu)清晰明了。下面通過實例向大家進行說明:
?
使用實例1:
PROC main() ?!主程序
????rInitAll; ??!調(diào)用初始化程序
????rHome; ??!調(diào)用回原點程序
????WHILE TRUE DO ??!進入無限循環(huán)
????????IF DI_01=1 THEN ??!如果收到啟動信號
????????????rPick; ??!調(diào)用取件程序
????????????rSanding; ??!調(diào)用打磨程序
????????????rWorking; ??!調(diào)用加工程序
????????????rPut; ??????!調(diào)用放件程序
????????ENDIF ???!IF語句結(jié)束標識
????????WaitTime 0.1; ??!等待0.1秒
????ENDWHILE ??!循環(huán)語句結(jié)束標識
ENDPROC ???!程序結(jié)束標識
說明:以上程序是一個打磨加工程序的主程序,其把整個流程細分至對應(yīng)的子程序,再通過ProcCall指令進行調(diào)用,使整個程序主體結(jié)構(gòu)清晰明了,同時也便于后續(xù)的編輯調(diào)試。
?
使用實例2:
PROC rPick() ??!取件程序
????……
????MoveL pPick,v1000,fine,tool1; ??!線性移動至取料點

????IF DI_2daowei=1 THEN ??!如果到位信號為1
??????SET DO_1; ?!啟用夾爪
????ELSE ????????!如果到位信號不為1
??????Error; ???!調(diào)用出錯處理程序
????ENDIF
說明:這個實例是使用實例1中的rPick取件程序的部分展開內(nèi)容。綜合可以看出主程序mian調(diào)用了取件程序rPick,?取件程序rPick中又調(diào)用了出錯處理程序Error,這說明程序可以逐級調(diào)用。

工業(yè)機器人培訓(xùn)專家友情提醒您:
????程序可相互調(diào)用,并反過來調(diào)用另一個程序。程序亦可自我調(diào)用,即遞歸調(diào)用。允許的程序等級取決于參數(shù)數(shù)量。通常允許10級以上。

RETURN指令

RETURN-返回例行程序指令
RETURN返回例行程序指令用于當(dāng)此指令被執(zhí)行時,則馬上結(jié)束本例行程序的執(zhí)行,程序指針返回調(diào)用操作的例行程序的調(diào)用指令位置的下一行。
?
使用實例1:
PROC main()
reg1 := 1;
Routine1;
reg1 := 6;
ENDPROC

PROC Routine1()
reg1 := reg1 + 1;
RETURN;
reg1 := 3;
ENDPROC

說明:當(dāng)程序指針從主程序自動執(zhí)行到”RETURN;”指令時,則程序指針立即返回到” reg1 := 6;”這一行并繼續(xù)往下執(zhí)行。而”RETURN;”指令后的” reg1 := 3;”則被跳過不執(zhí)行。
如果不使用RETURN指令,則當(dāng)調(diào)用的子程序Routine1()執(zhí)行完畢后,自動返回main()程序。
?
如果RETURN所在程序是一個函數(shù),則同時返回函數(shù)值。比如下面使用實例2:
?
使用實例2:
FUNC robtarget OFFSS(robtarget pPlace,num nX,num nY,num nZ)
pTest.trans.x := pPlace.trans.x + nX;
pTest.trans.y := pPlace.trans.y + nY;
pTest.trans.z := pPlace.trans.z + nZ;
RETURN pTest;
ENDFUNC
說明:這是一個自己做的偏移功能函數(shù),等同于OFFS,RETURN返回的是pTest所代表的位置值。詳細的功能函數(shù)介紹也可以參考之前更新的內(nèi)容。

工業(yè)機器人培訓(xùn)專家友情提醒您:
????根據(jù)在以下方面使用的程序的類型,RETURN指令的結(jié)果可能有所不同:
??主程序:如果程序擁有執(zhí)行模式單循環(huán),則停止程序。否則,通過主程序的第
一個指令,繼續(xù)程序執(zhí)行。
??無返回值程序:通過過程調(diào)用后的指令,繼續(xù)程序執(zhí)行。
??函數(shù):返回函數(shù)的值。
??軟中斷程序:從出現(xiàn)中斷的位置,繼續(xù)程序執(zhí)行。
??無返回值程序中的錯誤處理器:通過調(diào)用程序以及錯誤處理器的程序(通過過
程調(diào)用后的指令),繼續(xù)程序執(zhí)行。
??函數(shù)中的錯誤處理器:返回函數(shù)值。

流程控制類指令應(yīng)用示例

例題1:rYuan是一個畫圓的例行程序名稱,rFang是一個畫方形的例行程序名稱,nCount是一個num型的數(shù)據(jù)名稱。編寫程序完成以下要求:nCount等于1,3,5,7,9時畫方形,nCount等于2,4,6,8,10時畫圓,如果nCount大于10則停止運行。如圖9-5所示。

圖9-5

解:PROC main()
MoveJ pHome, v1000, z50, tool1;
nCount := 0;
WHILE TRUE DO
nCount := nCount + 1;
TEST nCount
CASE 2,4,6,8,10:
rYuan;
CASE 1,3,5,7,9:
rFang;
DEFAULT:
GOTO L2;
ENDTEST
ENDWHILE
L2:
MoveJ pHome, v1000, z50, tool1;
Stop;
ENDPROC

關(guān)于各種指令智通工業(yè)機器人培訓(xùn)專家就給您介紹到這辣,若有其他疑問歡迎掃碼咨詢課程老師哦!