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

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

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

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

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

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

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

ProcCall指令

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

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

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

RETURN指令

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

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

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

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

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

例題1:rYuan是一個(gè)畫圓的例行程序名稱,rFang是一個(gè)畫方形的例行程序名稱,nCount是一個(gè)num型的數(shù)據(jù)名稱。編寫程序完成以下要求:nCount等于1,3,5,7,9時(shí)畫方形,nCount等于2,4,6,8,10時(shí)畫圓,如果nCount大于10則停止運(yùn)行。如圖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è)機(jī)器人培訓(xùn)專家就給您介紹到這辣,若有其他疑問(wèn)歡迎掃碼咨詢課程老師哦!