多傳送帶
Epson RC+支援多邏輯傳送帶與機器人。您可在一條傳送帶上使用多台機器人。
本節對一台機器人搭配兩條或多條傳送帶的傳送帶系統進行說明。
多傳送帶的傳送帶追蹤
本節說明傳送帶系統,其中一台機器人從傳送帶1拾取「工件1」,並將拾取的工件放置在傳送帶2的「工件2」之上,如下圖所示。在此傳送帶系統中,每條傳送帶都需要一個編碼器與攝影機(感測器)。
如何使用多傳送帶
使用方式如下。
請參閱以下內容,並創建傳送帶1和傳送帶2。(將上游端的機器人設為傳送帶1。)
在[編碼器]和[視覺序列]中,針對傳送帶1和2設置不同的編碼器編號及序列。
校準傳送帶1。
請參閱以下任一內容,並檢查傳送帶操作。
校準傳送帶2。
檢查傳送帶2的操作。
以下為範例程式。
機器跟蹤位於跟蹤區域外的工件時,會自動恢復範例程式。
Function main
Motor On
Power High
Speed 30
Accel 30, 30
Xqt ScanConveyorStrobed '註冊佇列的任務
Xqt PickParts '跟蹤工件(佇列)的任務
Fend
Function ScanConveyorStrobed
Integer i, j, numFound, state, trigger1, trigger2
Real x, y, u
Boolean found
trigger1 = 10 '將控制器I/O的pin10分配給傳送帶1
trigger2 = 11 '將控制器I/O的pin11分配給傳送帶2
Off trigger1; Off trigger2
'關閉攝影機觸發器和編碼器閂鎖I/O
Do
VRun FindParts1 '傳送帶上的工件成像
On trigger1 '開啟攝影機觸發器和編碼器閂鎖I/O
Do
VGet FindParts1.AcquireState, state
Loop Until state = 3
VGet FindParts1.Parts.NumberFound, numFound
'將已拍攝的工件註冊為佇列
For i = 1 To numFound
VGet FindParts1.Parts.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
Off trigger1 '關閉攝影機觸發器和編碼器閂鎖I/O
Wait 0.1
'註冊傳送帶2的工件(佇列)
'搜尋傳送帶上的工件
VRun FindParts2
On trigger2 '開啟攝影機觸發器和編碼器閂鎖I/O
Do
VGet FindParts2.AcquireState, state
Loop Until state = 3
VGet FindParts2.Parts.NumberFound, numFound
'將已拍攝的工件註冊為佇列
For j = 1 To numFound
VGet FindParts2.Parts.CameraXYU(j), found, x, y, u
Cnv_QueAdd 2, Cnv_Point(2, x, y)
Next j
Off trigger2 '關閉攝影機觸發器和編碼器閂鎖I/O
Wait 0.1
Loop
Fend
Function PickParts
OnErr GoTo ErrHandler
Integer ErrNum
MemOff 1; MemOff 2 '關閉記憶體I/O
Jump P1
Do
'傳送帶1跟蹤
WaitPickup1:
'於傳送帶1跟蹤階段開始時開啟記憶體I/O
MemOn 1 '開啟記憶體I/O 1
'清除下游範圍下游端的工件(佇列)
Do While Cnv_QueLen(1, CNV_QUELEN_DOWNSTREAM) > 0
Cnv_QueRemove 1, 0
Loop
'拾取區域沒有工件(佇列)時移至待命位置
Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
'開始跟蹤工件
'使用6軸機器人時
Jump3 Cnv_QueGet(1):Z(0):U(90):V(0):W(180)
'使用 SCARA 機器人時
Jump Cnv_QueGet(1)
Wait 0.1 '僅Wait時間,機器人以與傳送帶相同的速度移動。
'清除拾取的工件(佇列)
Cnv_QueRemove 1, All
MemOff 1 '關閉記憶體I/O 1
'傳送帶2跟蹤
WaitPickup2:
MemOn 2 '開啟記憶體I/O 2
'拾取區域沒有工件(佇列)時移至待命位置
Wait Cnv_QueLen(2, CNV_QUELEN_PICKUPAREA) > 0
'開始跟蹤工件
'使用6軸機器人時
Jump3 Cnv_QueGet(2):Z(0):U(90):V(0):W(180)
'使用 SCARA 機器人時
Jump Cnv_QueGet(2) Wait 0.1 '僅Wait時間,機器人以與傳送帶相同的速度移動。
Wait 0.1 '僅Wait時間,機器人以與傳送帶相同的速度移動。
'清除拾取的工件(佇列)
Cnv_QueRemove 2, All
MemOff 2 '關閉記憶體I/O 2
Jump P1
Loop
'清除拾取區域下游端的工件(佇列)
'自動從以下錯誤恢復'「指定佇列資料位於設定區域外」
ErrHandler:
ErrNum = Err
If ErrNum = 4406 Then
If MemSw(1) = On Then
Cnv_QueRemove 1
EResume WaitPickup1
EndIf
If MemSw(2) = On Then
Cnv_QueRemove 2
EResume WaitPickup2
EndIf
'顯示「指定佇列資料位於設定區域外」錯誤之外的錯誤
'錯誤
Else
Print "Error!"
Print "No.", Err, ":", ErrMsg$(Err, 1)
Print "Line :", Erl(0)
'發生使用者錯誤
Error 8000
EndIf
Fend