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)
送料器的运作不会受锁定获取/解除的影响。
任务结束之后,通过该任务获取的锁定会被自动解除。
如果在同一任务中对同一送料器连续2次执行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