PF_Control
PF_Controlコールバック関数は、システムがホッパー動作または照明操作を必要とする場合に呼び出されます。このコールバック関数には、お客様の装置に搭載された、以下の機器の操作を記述します。
- ホッパー
- カスタム照明
カスタム照明を使用する場合、Epson RC+ 8.0メニュー - [ツール] - [パーツフィーディング] - [照明]で、[カスタムフロントライト]を選択してください。
書式
Function PF_Control(パーツID As Integer, Control As Integer) As Integer
' (ホッパー操作)
' (外部照明操作)
Fend
パラメーター
- パーツID
パーツID (整数値1~32)が入ります。
マルチパーツ動作時は、アクティブパーツが入ります。 - Control
操作の種類 (整数値)が入ります。
操作 | 値 (PartFeeding.incで定義) |
---|---|
ホッパー操作 (フィーダー上にパーツが、ないとき) | PF_CONTROL_SUPPLY_FIRST |
ホッパー操作 (フィーダー上にパーツがあり、追加できるとき) | PF_CONTROL_SUPPLY |
カスタム照明On | PF_CONTROL_LIGHT_ON |
カスタム照明Off | PF_CONTROL_LIGHT_OFF |
戻り値
正常のときは、定数PF_CALLBACK_SUCCESS (PartFeeding.incで定義)を設定してください。
エラーのときは、ユーザー定義エラー番号(8000 - 8999)を設定してください。この値は、PF_Statusコールバック関数の引数として渡されます。
解説
Select...Send文を使用して、機器ごとの処理を記述します。
ホッパー操作 (フィーダー上にパーツがないとき)
フィーダー上にパーツが1つもない状態です。ホッパーを動作させて、フィーダーにパーツを供給します。
このとき供給するパーツの数は、最適投入パーツ数キャリブレーションで得られた値(PF_Infoコマンドで取得)とすると、ロボットの動作効率が最も向上します。ホッパー操作 (フィーダー上にパーツがあり、追加できるとき)
フィーダー上にパーツが存在しますが、追加が可能な状態です。このタイミングでパーツを追加することで、ビジョンで検出可能なパーツが増え、ロボットの動作効率が向上します。
このとき供給するパーツ数は、例えばロボットが取り去ったパーツ数とします。カスタム照明On
ビジョン撮像のため、カスタム照明を点灯させるタイミングです。カスタム照明を操作して、点灯させます。カスタム照明Off
ビジョン撮像が終了したため、カスタム照明を消灯させるタイミングです。カスタム照明を操作して消灯させます。
次の処理は、お客様のコードに記述してください。PF_Startの実行前に行われるようにしてください。
-ホッパーとの通信開始、設定調整など
-外部照明との通信開始、設定調整(輝度)など
プログラム例
次のプログラムは、ホッパーと外部照明を制御します。
ホッパー (Gen.2)1台をIF-240に接続し、PF_Hopperコマンドで制御します。
この例では、最適なパーツ数は60です。
ホッパーは、動作3秒あたりパーツ60個が供給されるようにホッパーキャリブレーション画面で調整されています。
外部照明は、標準IOに接続されているものとします。
' ** IO Label (Output) **
' O_FrontLight 外部照明
Function PF_Control(partID As Integer, Control As Integer) As Integer
Integer hopperOnTime
Select Control
' ホッパー動作 フィーダー上にパーツがないとき
Case PF_CONTROL_SUPPLY_FIRST
PF_Hopper 1,partID, 3000
Wait 3
' ホッパー動作 フィーダー上にパーツ追加するとき
Case PF_CONTROL_SUPPLY
hopperOnTime = PF_QtyAdjHopperTime(partID, 60, 3000)
PF_Hopper 1, partID, hopperOnTime
Wait hopperOnTime / 1000
' カスタム照明ON
Case PF_CONTROL_LIGHT_ON
On O_FrontLight
' カスタム照明OFF
Case PF_CONTROL_LIGHT_OFF
Off O_FrontLight
Send
PF_Control = PF_CALLBACK_SUCCESS
Fend