IRB360機器人搬運編程相關(guān)指令_工業(yè)機器人培訓學校_工業(yè)機器人培訓機構(gòu)
時間:2021-07-26 15:55
來源:
工業(yè)機器人培訓學校。在工業(yè)生產(chǎn)中,使用IRB360機器人對輸送鏈上面產(chǎn)品進行取料放料,或者搬運堆垛。這里智通教育做一個簡單的工作站,機器人在輸送鏈上面進行搬運,完成生產(chǎn)需要。
一、工作站介紹
1.1 工作站介紹
本次任務主要是使用IRB360并聯(lián)機器人在輸送鏈上進行搬運。使用仿真軟件創(chuàng)建工作站,創(chuàng)建smart組件,實現(xiàn)動畫效果。通過對IRB360機器人編程、定點位和仿真設(shè)定,仿真運行錄像等,本此節(jié)課一次操作演示完成。

2.1 WaitDI - 等待直至已設(shè)置數(shù)字信號輸入信號
WaitDI(Wait Digital Input)用于等待,直至已設(shè)置數(shù)字信號輸入。當執(zhí)行本指令時,如果信號值正確,則本程序僅僅繼續(xù)以下指令。
指令參數(shù):WaitDI Signal Value [MaxTime] [TimeFlag] [Visualize] [Header][Message] | [MsgArray] [Wrap] [Icon] [Image][VisualizeTime] [UIActiveSignal]
Signal:數(shù)據(jù)類型signaldi,信號的名稱。
Value:數(shù)據(jù)類型dionum,信號的期望值。
[MaxTime]:數(shù)據(jù)類型num,允許的最長等待時間,以秒計。如果在滿足條件之前耗盡該時間,則將調(diào)用錯誤處理器,如果存在這樣的情況,則采用錯誤代碼ERR_WAIT_MAXTIME。如果不存在錯誤處理器,則將停止執(zhí)行。
[TimeFlag]:數(shù)據(jù)類型bool,如果在滿足條件之前耗盡最長允許時間,則包含該值的輸出參數(shù)為TRUE。
其余參數(shù)略
2.2 IF - 如果滿足條件,那么...;否則...
例1 WaitDI di4, 1;
僅在已設(shè)置di4輸入后,繼續(xù)程序執(zhí)行。
例 2 WaitDI grip_status, 0;
僅在已重置grip_status輸入后,繼續(xù)程序執(zhí)行。
例3
WaitDI di1, 1, Visualize Header:="Waiting for signal"
MsgArray:=["Movement will not start until", "the condition
below is TRUE"] Icon:=iconError;
MoveL p40, v500, z20, L10tip;
..
如果條件不符,則在可選參數(shù)Header和MsgArray 將被寫入FlexPendant示教器
屏幕上,為滿足條件的家族要隨行。保持狀態(tài)

2.2 IF - 如果滿足條件,那么...;否則...
根據(jù)是否滿足條件,執(zhí)行不同的指令時,使用IF。工業(yè)機器人培訓機構(gòu)依次測試條件,直至滿足其中一個條件。通過與該條件相關(guān)的指令,繼續(xù)程序執(zhí)行。如果未滿足任何條件,則通過符合ELSE的指令,繼續(xù)程序執(zhí)行。如果滿足多個條件,則僅執(zhí)行與第一個此類條件相關(guān)的指令。
1、第一種結(jié)構(gòu):Compact IF 緊湊型
(1)結(jié)構(gòu)和程序執(zhí)行說明
結(jié)構(gòu):IF <EXP> <SMT>
執(zhí)行:Compact IF緊湊型條件判斷指令用于當一個條件滿足后,就執(zhí)行一句指令(特點:單組條件,單句指令),如果條件不滿足就不執(zhí)行后面單句語句。
(2)舉例說明
例:IF di08 = 1 Set do02_ClampA;
說明:當程序執(zhí)行到此指令時,即判斷 di08 = 1是否為 1,如果條件成立,則執(zhí)行Set do02_ClampA指令,否則跳過IF...ENDIF指令繼續(xù)執(zhí)行下一行。
工業(yè)機器人培訓學校。2、第二種結(jié)構(gòu):簡單型IF...ENDIF
(1)結(jié)構(gòu)和程序執(zhí)行說明
結(jié)構(gòu):
IF <EXP> THEN
<SMT>
ENDIF
(2)執(zhí)行說明:如果IF后面條件成立則執(zhí)行IF和DNDIF之間語句,如果條件不成立則程序指針不執(zhí)行IF和ENDIF之間語句,而直接跳轉(zhuǎn)至ENDIF后面語句繼續(xù)往下執(zhí)行。
(3)舉例說明
PROC rIF01()
IF flag1 = TRUE THEN
reg1 := reg1 + 1;
WaitTime 1;
ENDIF
WaitTime 1;
ENDPROC
說明:如果布爾量flag1=true,則程序執(zhí)行IF和ENDIF之間語句;如果flag1=false則程序不執(zhí)行IF和ENDIF之間語句而跳到ENDIF后面語句執(zhí)行。
3、第三種結(jié)構(gòu):二選一型結(jié)構(gòu) IF ...ESLE...ENDIF
(1)結(jié)構(gòu)程序執(zhí)行說明
結(jié)構(gòu):
IF <EXP> THEN
<SMT>
ELSE
<SMT>
ENDIF
(2)程序執(zhí)行說明:如果IF后面條件成立則執(zhí)行IF和ELSE之間語句,如果IF后面語句不成立則執(zhí)行ELSE和ENDIF之間語句,ELSE只能在最靠近ENDIF添加且只能添加一個ELSE。
(3)舉例說明
IF di03 = 1 THEN
Set do01;
Set do02;
WaitTime 2;
Reset do01;
Reset do02;
ELSE
reg1 := reg1 + 1;
reg2 := reg1 + 10;
ENDIF 說明:如果di03為1,則置位do01和do02,等待2s以后在復位do01和do02,如果di03為0,則執(zhí)行 reg1 := reg1 + 1和reg2 := reg1 + 10;即根據(jù)di03輸入信號,判斷和選擇執(zhí)行IF、ELSE之間語句或者執(zhí)行ELSE、ENDIF之間語句。
4、第四種結(jié)構(gòu):選擇型結(jié)構(gòu)IF...ELSEIF...ELSEIF...ENDIF
(1)選擇型結(jié)構(gòu):ELSEIF可以有多個
IF <EXP> THEN
<SMT>
ELSEIF <EXP> THEN
<SMT>
ELSEIF <EXP> THEN
<SMT>
ENDIF
(2)執(zhí)行說明:結(jié)構(gòu)上,在IF和ENDIF之間增加一條或多條ESLEIF;執(zhí)行時候,如果沒有一個條件成立,則不選擇任何一個IF或ELSEIF后面對應的語句執(zhí)行;如果有一個條件程序,則選擇對應的IF或ELSEIF后面對應的語句執(zhí)行;如果有兩個或者兩個以上條件成立,則按照順序從上往下,IF、第一個ELSEIF、第二個ELSEIF等等往下,先遇到哪個條件判斷成立就選擇對應的IF或者ELSEIF后面對應語句執(zhí)行;執(zhí)行完以后直接跳到ENDIF后面繼續(xù)往下執(zhí)行。
5、第五種結(jié)構(gòu):綜合型結(jié)構(gòu),即把二選一型和選擇型綜合到一起的結(jié)構(gòu)
(1)結(jié)構(gòu)
IF <EXP> THEN
<SMT>
ELSEIF <EXP> THEN
<SMT>
ELSEIF <EXP> THEN
<SMT>
ELSE
<SMT>
ENDIF
(2)執(zhí)行說明
結(jié)構(gòu)上面在IF和ENDIF之間既有一個或者多個ELSEIF,也有ELSE;執(zhí)行時候,一般先看二選一型執(zhí)行,在分析IF和ELSE之間的選擇型ELSEIF來執(zhí)行。第一種情況,如果沒有一個條件成立則選擇ELSE和ENDIF之間語句執(zhí)行,這里相當于二選一機構(gòu)看待;第二種情況,如果有且只有一個條件條件成立,則選擇對應的IF或者ELSEIF后面對應的語句執(zhí)行;第三種情況,如果有兩個或者兩個以上條件成立,則按照順序從上往下判斷條件,IF、第一個ELSEIF、第二個ELSEIF等等往下,先遇到哪個條件成立就選擇對應的IF或者ELSEIF后面對應的語句執(zhí)行;執(zhí)行完以后直接跳到ENDIF后面往下繼續(xù)執(zhí)行。

2.3 TEST - 根據(jù)表達式的值...
根據(jù)表達式或數(shù)據(jù)的值,當有待執(zhí)行不同的指令時,使用TEST。如果并沒有太多的替代選擇,則亦可使用IF..ELSE指令。將測試數(shù)據(jù)與第一個CASE條件中的測試值進行比較。如果對比真實,則執(zhí)行相關(guān)指令。此后,通過ENDTEST后的指令,繼續(xù)程序執(zhí)行。如果未滿足第一個CASE條件,則對其他CASE條件進行測試等。如果未滿足任何條件,則執(zhí)行與DEFAULT相關(guān)的指令(如果存在)。
指令參數(shù):TEST Test data {CASE Test value {, Test value} : ...} [ DEFAULT:...] ENDTEST
Test data
數(shù)據(jù)類型:所有
用于比較測試值的數(shù)據(jù)或表達式。
Test value
數(shù)據(jù)類型:與test data相同
測試數(shù)據(jù)必須擁有的值,以供執(zhí)行相關(guān)的指令。
舉例:
TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
DEFAULT :
TPWrite "Illegal choice";
Stop;
ENDTEST
根據(jù)reg1的值,執(zhí)行不同的指令。如果該值為1、2或3時,則執(zhí)行routine1。如果該值為4,則執(zhí)行routine2。否則,打印出錯誤消息,并停止執(zhí)行。
2.4 WHILE - 只要...便重復
只要給定條件表達式評估為TRUE值,當重復一些指令時,使用WHILE。
1、WHILE指令結(jié)構(gòu)定義
(1)While指令的結(jié)構(gòu):
WHILE <EXP> DO 這里<EXP>是條件部分
<SMT> 這里<SMT>是指令輸入地方
ENDWHILE
<SMT>是指令輸入地方,一般光標選中<SMT>,然后添加指令。<EXP>是條件,光標選中以后單擊進去輸入表達式;一般條件<EXP>部分可以是表達是,也可以是多個表達是之間的與或異或求余等關(guān)系,條件的結(jié)果只有對錯,如下所示:
對=1=true=ON
錯=0=false=OFF
2、while舉例說明
舉例一:
reg1 := 1;
WHILE reg1 <= 10 DO
reg1 := reg1 + 1;
ENDWHILE
執(zhí)行說明:初始化reg1=1,執(zhí)行while指令時候,先判斷reg1<=10的條件是否成立,如果條件成立則執(zhí)行循環(huán)語句內(nèi)的內(nèi)容,while中每次執(zhí)行一次reg1:=reg1+1,即reg1自加一;執(zhí)行完一輪以后程序指針又跳到while指令去第二次判斷reg1<=10條件是否成立,條件成立則又繼續(xù)執(zhí)行循環(huán)語句內(nèi)的內(nèi)容reg1:=reg1+1,即reg1又自加一一次;這樣重復判斷條件重復執(zhí)行while中指令,直到條件reg1<=10不成立,即reg1=11時候,程序執(zhí)行指針才會跳轉(zhuǎn)到endwhile指令后面,結(jié)束while指令,往下繼續(xù)運行。

舉例二:累加計算
PROC rWHILE2()
a := 0;
i := 1;
WHILE i <= 100 DO
a := a + i;
i := i + 1;
ENDWHILE
WaitTime 3;
ENDPROC
3、WHILE無限循環(huán)
WHILE TRUE DO
<SMT>
ENDWHILE
執(zhí)行說明:while指令的條件是true,即條件一直成立,所以程序指針執(zhí)行到while指令以后,程序就會一直永遠地執(zhí)行while指令,程序指針不會跳出到endwhile指令后面繼續(xù)往下運行,所以這里的while就是一個死循環(huán),即無限循環(huán)。一般可以用在編寫程序正常自動運行部分,讓機器人正常工作時候處于永遠執(zhí)行。
想了解更多東莞工業(yè)機器人培訓資訊?智通教育20年致力于東莞工業(yè)機器人培訓、PLC培訓、電工培訓等培訓項目,詳情聯(lián)系:0769-8707-8535.
想了解更多東莞工業(yè)機器人培訓資訊?智通教育20年致力于東莞工業(yè)機器人培訓、PLC培訓、電工培訓等培訓項目,詳情聯(lián)系:0769-8707-8535.