PF_ReleaseFeeder
PF_AccessFeederで取得したロック (所有権)を解除します。
PF_AccessFeederおよびPF_ReleaseFeederは、複数ロボット/1台フィーダーのシステムで、ロボット同士の衝突を防ぐために、フィーダーへのアクセスをロックしたり、ロックを解除したりします。これらのコマンドは、2台のロボットが同時に同じフィーダーを共有している場合に必要です。
例:
タスク1でPF_AccessFeeder 1を実行する。タスク1は続行する。
タスク2でPF_AccessFeeder 1を実行すると、タスク2は一時停止する。
タスク1でPF_ReleaseFeeder 1を実行すると、タスク2は再開する。
本コマンドは、動作命令の並列処理 (!...!)に記述可能です。
書式
書式1: PF_ReleaseFeeder フィーダー番号/フィーダー名
書式2: 動作命令 ! [Dn;] PF_ReleaseFeeder フィーダー番号/フィーダー名 !
パラメーター
- フィーダー番号
フィーダー番号を式、または数値 (整数: 1-4)で指定します。 - フィーダー名
フィーダーラベル (文字列)を指定します。 - 動作命令
Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo,BMove, TGo, TMoveのいずれか - Dn
ロボットの移動経路のどこで並列処理を開始するかを%で指定
(「Epson RC+ 8.0 SPEL+ ランゲージリファレンス !...! 並列処理」を参照)
戻り値
なし
解説
ロックの解除は、同じタスク内でのみ可能です。
仮想コントローラーおよびコマンドウィンドウからは実行できません。
使用例
フィーダー上の最後の1パーツを取得し、プレース位置に移動する経路の50%に達したところで、PF_Startに制御を返し、ビジョン撮像とフィーダー動作を開始する例です。
Function main Motor On
Do while True
AccessFeeder 1
PF_Start(1)
Loop
Fend
Function PF_Robot(partID As Integer)
Xqt Task_PF_Robot(partID)
PF_Robot = PF_SUCCESS
Fend
Function Task_PF_Robot(partID As Integer)
AccessFeeder 1
Integer i
For i = 1 to numToPick
pick = PF_GetQue(PartID)
PF_QueRemove(PartID)
Jump pick
On gripperOutput
Wait 0.1
If i < numToPick And PF_QueLen(PartID) > 0 Then
Jump place
Else
' Last part, so release the feeder at 50%
Jump place !D50; PF_ReleaseFeeder 1!
EndIf
Off gripperOutput
Wait 0.1
Next i
Fend