PF_Robotコールバック関数を作成する

PF_Robotコールバック関数には、ロボットがパーツをピックし、プレースする動作を記述します。この関数は以下のように動作します。(1~7を繰り返す。)

  1. プラットフォーム上のパーツ座標を、パーツ座標キューから取得します。
    PF_QueGetを使用します。
  2. ロボットを、パーツの位置に移動させます。
    Jumpなどを使用します。(スカラ型ロボットの場合)
  3. 吸着をOnするなどして、パーツを把持します。
  4. ロボットを、パーツを置く位置に移動させます。
    Jumpなどを使用します。(スカラ型ロボットの場合)
  5. 吸着をOffするなどして、パーツを解放します。
  6. パーツ座標キューのデータを1つ削除します。
    PF_QueRemoveを使用します。
  7. 停止指令が発生していないかを確認します。発生していたらループを抜けます。
    PF_IsStopRequestedを使用します。
  8. PF_Robot = PF_CALLBACK_SUCCESSを戻り値として返します。

以下はPF_Robotコールバック関数の例です。
なお、ループ処理および、1, 6, 7の処理は、自動生成されたPartFeeding.prgの中に記述されていますので、残りの処理について記述します。

プログラム中で使用しているラベルなどは以下のとおりです。
IOラベル: Chuck (パーツ吸着), UnVacumm (パーツリリース)
ポイントラベル: PlacePos (プレース座標)

Function PF_Robot(partID As Integer) As Integer

    Do While PF_QueLen(partID) > 0

        ' Pick
        P0 = PF_QueGet(partID)
        Jump P0 ! Wait 0.1; Off UnVacumm !
        On Chuck
        Wait 0.1

        ' Place
        Jump PlacePos
        Off Chuck
        On UnVacumm
        Wait 0.1

        ' Deque
        PF_QueRemove partID

        ' Check Cycle stop
        If PF_IsStopRequested = True Then
            Exit Do
        EndIf

    Loop
    Off UnVacumm
    PF_Robot = PF_CALLBACK_SUCCESS

Fend