PF_Robotコールバック関数を作成する
PF_Robotコールバック関数には、ロボットがパーツをピックし、プレースする動作を記述します。この関数は以下のように動作します。(1~7を繰り返す。)
- プラットフォーム上のパーツ座標を、パーツ座標キューから取得します。
PF_QueGetを使用します。 - ロボットを、パーツの位置に移動させます。
Jumpなどを使用します。(スカラ型ロボットの場合) - 吸着をOnするなどして、パーツを把持します。
- ロボットを、パーツを置く位置に移動させます。
Jumpなどを使用します。(スカラ型ロボットの場合) - 吸着をOffするなどして、パーツを解放します。
- パーツ座標キューのデータを1つ削除します。
PF_QueRemoveを使用します。 - 停止指令が発生していないかを確認します。発生していたらループを抜けます。
PF_IsStopRequestedを使用します。 - 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