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)