PF_AccessFeeder
PF_AccessFeeder用於多台機器人/1台送料器的系統中,防止機器人之間的碰撞。在有2台機器人同時共享同一個送料器時,必須使用此命令。PF_AccessFeeder取得存取送料器的機器人鎖定。
若已取得鎖定,PF_AccessFeeder會暫停任務,直到鎖定被釋放或達到指定的超時時間(選項)。
機器人完成使用送料器後,使用PF_ReleaseFeeder陳述式解除鎖定,以將送料器釋放給其他機器人。
如需詳細資訊,請參閱以下內容。
PF_ReleaseFeeder
範例:
在任務1中執行PF_AccessFeeder 1。任務1繼續執行。
在任務2中執行PF_AccessFeeder 1時,任務2會暫停。
在任務1中執行PF_ReleaseFeeder 1時,任務2會恢復執行。
本命令用於多台機器人配置的互斥控制。
格式
PF_AccessFeeder 送料器編號/送料器名稱[, 超時]
參數
- 送料器編號
以運算式或數值(1~4的整數值)指定送料器編號。 - 送料器名稱
指定送料器標籤(字串)。 - 超時
以運算式或數值(整數)指定鎖定解除等待的超時時間(秒)。選填。
傳回值
無
描述
若指定了超時,可透過TW函數的回傳值判斷結果。
有關詳細資訊,請參閲以下手冊。
「Epson RC+ 8.0 SPEL+語言參考- TW 函數」
- 鎖定已釋放或已取得鎖定(False)
- 已達到超時(True)
送料器的動作不受取得/釋放鎖定的影響。
任務結束時,該任務中取得的鎖定會自動釋放。
在同一任務中,若對同一送料器連續執行兩次PF_AccessFeeder,將會出現錯誤。
無法從虛擬控制器及命令視窗執行。
使用範例
以下是2台機器人拾取1台送料器上的零件的範例。
機器人1取得送料器上的零件,並移動到點位place1。
當機器人1達到移動路徑的50%時,機器人2開始移動以取得零件。
Function Main
MemOff PartsToPick
Motor On
PF_Start 1
Xqt Robot1PickPlace
Xqt Robot2PickPlace
Fend
Function Robot1PickPlace
Robot 1
Do
If MemSw(PartsToPick) = On Then
If PF_QueLen(1) > 0 Then
PF_AccessFeeder 1
P0 = PF_QueGet(1)
PF_QueRemove 1
Jump P0 /R
On 5
Wait 0.5
Jump Place ! D30; PF_ReleaseFeeder 1 !
Off 5
Wait 0.25
Else
MemOff PartsToPick
EndIf
EndIf
Wait 0.1
Loop
Fend
Function Robot2PickPlace
Robot 2
Do
If MemSw(PartsToPick) = On Then
If PF_QueLen(2) > 0 Then
PF_AccessFeeder 1
P0 = PF_QueGet(2)
PF_QueRemove (2)
Jump P0 /R
On 5
Wait 0.5
Jump Place ! D30; PF_ReleaseFeeder 1 !
Off 5
Wait 0.25
Else
MemOff PartsToPick
EndIf
EndIf
Wait 0.1
Loop
Fend
Function PF_Robot(PartID As Integer) As Integer
Select PartID
Case 1
MemOn PartsToPick
Wait MemSw(PartsToPick) = Off
Case 2
MemOn PartsToPick
Wait MemSw(PartsToPick) = Off
Send
PF_Robot = PF_CALLBACK_SUCCESS
Fend