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