コンテンツにスキップ
ステージングサーバー
開発サーバー

GigEラインスキャンのユースケースの説明と図#

このトピックでは、Basler GigE および 5GigE ラインスキャンカメラの一般的なユースケースと、特定のユースケースに合わせてこれらのカメラを構成する方法について説明します。

このトピックのユースケースは、トリガーとパラメータがどのように連携するかについての初期の理解を深めることを目的としています。

概要#

情報

  • カメラには、Trigger Selectorパラメータで設定できるLine StartトリガーやFrame Activeトリガーなどの複数のトリガー機能が用意されています。以下のユースケース例で示されていないトリガー設定に関連するすべてのパラメータは、工場出荷時のデフォルト値のままになると想定されます。
  • トリガーの詳細については、Triggered Image AcquisitionおよびAquisition Timing Informationのトピックを参照してください。
  • Featuresセクションには、Line TimeoutやSpatial Correctionなどのすべてのカメラ機能がリストされており、それらの使用方法と設定方法に関する詳細情報が提供されています。

情報

簡単のため、以下のユースケース例では、フレームの高さがわずか数ライン(例:3ライン)に設定されています。ただし、実際のアプリケーションでは、Baslerはフレームの高さを1フレームあたり少なくとも100~1000ラインにすることを推奨しています。

情報

  • GigE Visionラインスキャンカメラは、複数のラインを結合してより大きなフレームを作成します。これにより、受信側(ホストコンピュータ、トランスポートレイヤーなど)の処理負荷を大幅に削減できます。
  • 現在のフレームのすべてのラインがまだ取得されていないときにAcquisition Stopコマンドが発行された場合、パーシャルフレームが転送されます。

ユースケース 1:オブジェクトまたは素材のエンドレスストリーム#

これは、GigEラインスキャンカメラを使用する最も基本的な方法です。カメラは画像フレームの連続ストリームを転送します。ホストコンピュータは、複数のフレームを結合してより大きな画像を作成するか、各フレームを個別に処理することができます。

オブジェクトまたはエンドレス素材がカメラの視野内を移動します。カメラが最初のラインを取得します。その後、オブジェクトまたは素材が 1 ライン分移動し、カメラが次のラインを取得するというプロセスが繰り返されます。

次のセクションでは、ユースケース 1 の 2 つのバリエーションについて説明します。

ケース 1 a:一定速度で移動するオブジェクト#

米、綿、リサイクル素材の選別時など、オブジェクトが自由落下している場合、これらのオブジェクトは予測可能な速度で移動するため、カメラを固定ラインレートに設定できます。幾何学的に正しい画像を取得するためにトリガーは必要ありません。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. Acquisition Line Rateコントロールを有効にします。

    オブジェクトが移動する速度とカメラを同期させるには、Acquisition Line Rateを制御する必要があります。
  1. パラメーターを AcquisitionLineRateEnable パラメータを true.
  1. 回線速度を希望の速度まで下げてください。

    取得ラインレートは、対象物の移動速度と同期させる必要があります。
  1. パラメーターを AcquisitionLineRate パラメータを10kHzに設定します。
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン使用例1aのタイミング

ケース 1 b:可変速度のローラーによって移動するエンドレス素材#

連続搬送される材料は、多くの場合、ローラーによって搬送されます。負荷の変化や振動によって搬送速度が変動します。このような速度変動は、材料が一定距離前進するたびにライントリガーを生成するシャフトエンコーダを使用することで補正できます。

次の例では、シャフトエンコーダ信号が入力ライン2に接続されています。シャフトエンコーダは、ラインごとに1つのエンコーダパルスを生成するように設定されています。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. 回線開始トリガーを設定します。

    トリガーを有効にし、ラインスタートトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを LineStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line2.
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン使用例1bのタイミング

ユースケース 2:コンベアベルト上の個々のオブジェクト#

移動するコンベアベルト上の物体を検査する場合、物体ごとに1枚の画像を取得することが望ましい場合が多い。これにより画像処理が容易になり、処理リソースの無駄を回避できる。このようなシステム構成では、通常、次の物体の到着を示す物体トリガーが提供される。物体トリガーは、例えば光電センサーやPLC(プログラマブルロジックコントローラ)ユニットによって生成できる。

コンベアベルトの速度は変動する可能性があります。そのため、シャフトエンコーダを使用してライントリガーをベルトの機械的な動きに同期させるのが一般的です。以下の例では、ライントリガーを使用することを前提としています。

以下のセクションでは、ユースケース2の4つのバリエーションについて説明します。

ケース 2 a:オブジェクトごとに 1 つのフレーム#

オブジェクトが十分に小さく、それぞれが1つのフレームに収まる場合は、オブジェクトトリガーを直接フレームトリガーとして使用できます。

1フレームあたりのライン数に関する詳細については、 Image ROIトピックのラインスキャンカメラに関する情報を参照してください。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. フレーム開始トリガーを設定します。

    トリガーを有効にし、フレーム開始トリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを FrameStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line1.
  1. 回線開始トリガーを設定します。

    トリガーを有効にし、ラインスタートトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを LineStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line2.
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン使用例2aのタイミング

ケース 2 b:オブジェクトごとに複数のフレーム#

対象物が大きすぎて1つのフレームに収まらない場合は、フレームバーストトリガーを使用して、個々の対象物ごとに複数のフレームをトリガーできます。画像処理アプリケーションは、フレームバーストで生成されたすべてのフレームを1つの画像に結合することができます。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. 各フレームバーストで取得するフレーム数を設定します。
  1. パラメーターを AcquisitionBurstFrameCount パラメータを 2.
  1. フレームバースト開始トリガーを設定します。

    トリガーを有効にし、フレームバースト開始トリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを FrameBurstStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line1.
  1. 回線開始トリガーを設定します。

    トリガーを有効にし、ラインスタートトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを LineStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line2.
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン使用例2bのタイミング

ケース 2 c:オブジェクトごとに異なる数のフレーム#

同じコンベアベルト上で様々なサイズの物体を検査する場合、フレーム開始トリガーを使用することで、各物体に必要なフレーム数を正確に取得できます。フレームトリガー信号は、物体がカメラの視野内にある間は常に信号がアクティブになるように、例えば光電式検出器などの存在検出器によって生成される必要があります。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. フレーム開始トリガーを設定します。

    トリガーを有効にし、フレーム開始トリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。

    存在検出器の出力信号がハイレベルになったときにトリガーが作動するように設定します。これにより、トリガー信号が有効な間、フレームトリガーが連続して発行されます。
  1. パラメーターを TriggerSelector パラメータを FrameStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを LevelHigh.
  4. パラメーターを TriggerSource パラメータを Line1.
  1. 回線開始トリガーを設定します。

    トリガーを有効にし、ラインスタートトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを LineStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line2.
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン使用例2cタイミング

ケース 2 d:オブジェクトごとのフレームの可変サイズ#

コンベアベルト上の物体間の間隔がフレームよりも小さい場合、フレームアクティブトリガーを使用して、物体のすぐ後ろでフレームを終了することができます。これにより、カメラは次のトリガーにできるだけ早く対応でき、不要なデータの送信を回避できます。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. フレームの高さを指定します。

    これはオブジェクトのサイズによって異なります。オブジェクトをキャプチャするために必要なフレームあたりのライン数を計算します。
  1. パラメーターを Height パラメータを 3.
  1. フレームのアクティブトリガーを設定します。

    トリガーを有効にし、フレームアクティブトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。

    存在検出器の出力信号のハイレベルでトリガーが作動するように設定します。これにより、トリガー信号が有効な間、1つまたは複数のフレームトリガーが連続して発行されますが、フレームはトリガー信号の立ち下がりエッジで直ちに終了します。
  1. パラメーターを TriggerSelector パラメータを FrameActive.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを LevelHigh.
  4. パラメーターを TriggerSource パラメータを Line1.
  1. 回線開始トリガーを設定します。

    トリガーを有効にし、ラインスタートトリガーをトリガーするために使用する信号と信号遷移を定義する必要があります。
  1. パラメーターを TriggerSelector パラメータを LineStart.
  2. パラメーターを TriggerMode パラメータを On.
  3. パラメーターを TriggerActivation パラメータを RisingEdge.
  4. パラメーターを TriggerSource パラメータを Line2.
  1. 連続取得モードを有効にしてください。

    連続撮影モードでは、カメラは画像を連続的に撮影して転送します。

    注:この機能はpylon Viewer 機能ツリー。代わりに、ツールバーの連続撮影ボタンを使用します。 pylon Viewer 。
  1. パラメーターを AcquisitionMode パラメータを Continuous.

この図は構成を示しています。

ラインスキャン ユースケース 2d のタイミング

ユースケース 3:フレーム識別のためのチャンクモードの使用#

ユースケース 2b または 2d で説明されているように、カメラがオブジェクトごとに可変数のフレームを取得するように設定されている場合、アプリケーション側ではオブジェクトの開始位置と終了位置を判別できません。Data Chunks機能とCounter機能を組み合わせて使用することで、フレームが同じオブジェクトトリガーに属しているというタグを付けることができ、フレームのグループ化に処理能力を割く必要がなくなります。

次のユースケースは、ユースケース 2c 向けにCounterとData Chunksを設定する方法の例です。Counterは、個別にも組み合わせて使用することもできます。

このユースケースに合わせてカメラを設定するには、次の手順が必要です。

アクション パラメータ例
  1. 着信する各フレームスタートトリガーの後にインクリメントするように最初のCounterを設定します。

    Counterイベント(つまりインクリメント)の信号源として、ライン 2 のフレームトリガー信号を選択する必要があります。また、Counterをインクリメントするには、アクティブなフレームトリガー信号の終了を選択する必要があります。
  1. パラメーターを CounterSelector パラメータを Counter1.
  2. パラメーターを CounterEventSource パラメータを Line2.
  3. パラメーターを CounterEventActivation パラメータを FallingEdge.
  1. フレームトリガーが継続的にアクティブな間に取得されるフレーム数をカウントするように2番目のCounterを設定します。

    Counterは、ライン 2 がアクティブな間のみカウントする必要があります。
    Counterは、各フレームの終了時にインクリメントする必要があります。
    Counterは、ライン 2 が非アクティブになったときにリセットする必要があります。
  1. パラメーターを CounterSelector パラメータを Counter2.
  2. パラメーターを CounterTriggerSource パラメータを Line2.
  3. パラメーターを CounterTriggerActivation パラメータを LevelHigh.
  4. パラメーターを CounterEventSource パラメータを FrameActive.
  5. パラメーターを CounterEventActivation パラメータを FallingEdge.
  6. パラメーターを CounterResetSource パラメータを Line2.
  7. パラメーターを CounterResetActivation パラメータを Falling Edge.
  1. Counter値の送信を有効にします。
  1. パラメーターを ChunkModeActive パラメータを true.
  2. パラメーターを ChunkSelector パラメータを CounterValue.
  3. パラメーターを ChunkEnable パラメータを true.

この図は構成を示しています。

ラインスキャン ユースケース 3 のタイミング