PF_Start / PF_Start関数

指定されたパーツのPart Feedingプロセスを開始します。

書式
PF_Start パーツID1 [, パーツID2 [, パーツID3 [, パーツID4] ] ]
PF_Start (パーツID1 [, パーツID2 [, パーツID3 [, パーツID4] ] ])

パラメーター

  • パーツID
    パーツID (整数値1~32)を指定します。変数を引数にとる場合で、パーツIDを指定しない場合は、値を0にします。

戻り値
なし

解説
PF_Start開始前に、次の処理を実行してください。
実行方法は使用例を参照してください。

  • 使用するロボットを選択
  • ロボットの設定 (Power, Speed, Accelなど)
  • モーターのOn
  • ログを出力する場合はPF_InitLogを実行

PF_Startを実行すると、新しいタスク (タスク番号32)が生成され、Part Feedingプロセスが開始します。
Part Feedingプロセスの終了を待たずに、呼び出し元に制御が返されます。

以下の条件の場合はエラーとなり、Statusコールバック関数が実行されます。Part Feedingプロセスは開始しません。

条件 Statusコールバック関数の引数Statusの値

パーツIDが存在しない

異なるフィーダーのパーツでマルチパーツ動作を開始しようとした

パーツIDを重複して設定した

PF_STATUS_BAD_ID
パーツのパラメーター設定が無効 PF_STATUS_BAD_PARAMETER
フィーダーキャリブレーションが未完了 PF_STATUS_CAL_NOT_COMPLETE
パーツが無効になっている PF_STATUS_PARTNOTENABLED
フィーダーがすでに使われている PF_STATUS_FEEDERINUSE_ERROR
システムエラー発生 PF_STATUS_ERROR
  • マルチフィーダー動作
    異なるフィーダーに属するパーツでPart Feedingプロセスを同時に実行することができます。例えば、パーツ1はフィーダー1に、パーツ2はフィーダー2に属する場合、PF_Start 1を実行後にPF_Start 2を実行することができます。
    PF_Startはフィーダーごとにタスクを作成します。タスク番号は “32”から始まり、PF_Startごとに1つ小さい番号になります。使用されるタスク番号は、フィーダー番号によって決まります。
    フィーダー番号 タスク番号
    1 32
    2 31
    3 30
    4 29

各コールバック関数 (PF_Robot, PF_Control, PF_Status. PF_Vision, PF_MobileCam)は、PF_Startの作成と同じタスクで実行されます。
T/VTシリーズコントローラーでは、同時に制御できるフィーダーは最大2台までになります。3台以上で動作させようとすると、“エラー7731: コントローラタイプの最大同時フィーダ数を超えました”が発生します。

  • マルチパーツ動作
    マルチパーツ動作を行う場合は、引数に複数のパーツIDを指定します。パーツIDは最大4つ指定可能です。このとき、フィーダーはPF_Startの第1引数で指定したパーツID (アクティブパーツ)のキャリブレーションパラメーターで動作します。アクティブパーツを切り替えるにはPF_ActivePartコマンドを使用します。
    マルチパーツ動作で指定できるパーツは、同一のフィーダーに属するパーツのみです。異なるフィーダーのパーツを指定してPF_Startを実行するとエラーとなり、PF_Statusコールバック関数がPF_STATUS_BAD_IDで呼び出されます。
    マルチパーツ動作では、1つのフィーダー―で最大2台までロボットが使用できます。3台以上のロボットを使用する設定でPF_Startを実行するとエラーとなり、PF_Statusコールバック関数がPF_STATUS_**で呼び出されます。

  • その他の注意事項
    Part Feedingプロセスを実行中に、同じのフィーダーに対してPart Feedingプロセスを新たに実行することはできません。例えば、パーツ1はフィーダー1に、パーツ2はフィーダー1に属する場合、PF_Start 1を実行後にPF_Start 2を実行するとエラーとなり、PF_Statusコールバック関数がPF_STATUS_FEEDERINUSE_ERRORで呼び出されます。実行されているPF_Startは処理を継続します。
    PF_Startは通常タスクから実行してください。バックグラウンドタスクから実行した場合エラーとなります。
    仮想コントローラーおよびコマンドウィンドウからは実行できません。

使用例

Robot 1  
Motor On  
Power High  
Speed 100  
Accel 100, 100  
LimZ -80.0  
  
PF_InitLog("C:\log.csv", True)  
PF_Start(1)