PF_Purge / PF_Purge関数

パージ (フィーダー上のパーツを排出する)動作を実行します。
パージ動作が実行されると、成功/失敗に関わらず、パーツIDで指定されたパーツの座標キューはクリアされます。

書式
PF_Purge パーツID, 動作タイプ[, 振動時間[, 残数閾値[, リトライ回数]]]
PF_Purge(パーツID, 動作タイプ[, 振動時間[, 残数閾値[, リトライ回数]]])

パラメーター

  • パーツID
    パーツID (整数値1~32)を指定します。
  • 動作タイプ
    動作の種類を指定します。
値(PartFeeding.incで定義) 内容
PF_PURGETYPE_NOVISION

ビジョンによるフィードバックをしません。

パーツの残数をカウントしません。

PF_PURGETYPE_VISION

ビジョンによりフィードバックします。

ビジョンを使用し、パーツの残数をカウントします。

  • 振動時間
    パージ動作時間を指定します。(ミリ秒単位)
    省略可能です。
    省略された場合は、以下で設定した値が使用されます。
    パージ - テストと調整
    -1を指定した場合は、省略時と同じ動作が行われます。
  • 残数閾値
    パージ動作をリトライするパーツ残数 (この数以上ならリトライ)を指定します。
    省略可能です。
    動作タイプがPF_PURGETYPE_NOVISIONの場合、設定しても動作は変化しません。
    動作タイプがPF_PURGETYPE_VISIONの場合、残数閾値が省略されていると、残数が0になるまでリトライが行われます。
  • リトライ回数
    パージ動作をリトライする回数の上限値を指定します。(初回パージ動作も回数に含みます。)
    省略可能です。
    動作タイプがPF_PURGETYPE_NOVISIONの場合、設定しても動作は変化しません。
    動作タイプがPF_PURGETYPE_VISIONの場合、リトライ回数が省略されていると、「残数閾値」のパーツがプラットフォーム上に残っているか、全てのパーツがプラットフォーム上から取り除かれるまで (「残数閾値」と「リトライ」が省略されている場合)パージが行われます。

戻り値
関数として使用する場合、パーツが正常に排出されたとき、および動作タイプでPF_PURGETYPE_NOVISION (パーツ残数カウントなし)を指定したときはTrueを返します。動作タイプでPF_PURGETYPE_VISION (パーツ残数カウントあり)を指定した場合で、リトライ回数に達してもパーツ残数が閾値を下回らない場合はFalseを返します。

解説
IF-80は、パージ対応プラットフォームおよびパージ容器が選択できます (オプション品)。
IF-240, IF-380, およびIF-530は、パージゲートを選択できます(オプション品)。パージゲートの有無は、[セットアップ] - [システム設定] - [コントローラー] - [パーツフィーダー] - [フィーダー]で設定します。パージゲートの使用/不使用は、パーツ毎に設定することができます。パージゲートを使用する場合、パージゲートの開閉動作、および開閉センサーによる判断はPF_Purgeステートメントによって自動的に処理されます。
お客様が自作したパージゲートを使用する場合、PF_Purgeステートメントは単にパーツをプラットフォームでシフト(移動)します。
動作タイプがPF_PURGETYPE_VISIONの場合、パーツブローブビジョンシーケンスを使用して、プラットフォーム上のおよそのパーツ数を検出します。
パージの有効/無効およびパーツをどの方向にパージするかは、以下を参照してください。
ハンドの干渉防止
IF-80はパージのキャリブレーションを実施する必要があります。
以下を参照してください。
パージ - 自動キャリブレーション(IF-80のみ)
パージが無効のとき本関数を実行するとエラーとなり、PF_Startusコールバック関数がPF_STATUS_PURGENOTENABLEDで呼び出されます。
仮想コントローラーおよびコマンドウィンドウからは実行できません。
EPSON RC+ 7.5.0では、動作タイプ= 1の場合でも、残数閾値およびリトライは省略できませんでした。この場合は、残数閾値およびリトライに値「0」を指定します。

使用例
例 1:
ビジョンフィードバックを使用したパージの例です。各パージの振動時間は1500ミリ秒です。 パーツが3つ以下になるまで試行されます。5回のリトライが試みられます。

Boolean purgeStatus  
purgeStatus = PF_Purge(1, PF_PURGETYPE_VISION, 1500, 3, 5)  
Print purgeStatus  

例 2:
ビジョンフィードバックなしのパージの例です。 2000 msec の間パージします。

PF_Purge 1, PF_PURGETYPE_NOVISION, 2000