従来の産業用アナログカメラでは、その構成要素の大部分はハードウエアコンポーネントでした。しかし、GigEカメラを代表とするディジタルカメラでは、FPGAプログラムやドライバといったソフトウエアがコア技術を握るようになりました。いかにこれらのソフトウエアを上手く実装するかで、産業用カメラの品質と性能、コストを左右する時代となりました。BASLERはこれからもソフト技術の新しい基準を打ち立て続けます。
本シリーズ企画 BASLER ace 『ソフトの革命。』の第二回では、画像取得の安定動作を実現するBASLER社のソフト技術についてご紹介します。
■ pylonパフォーマンスドライバ: 2つの再送メカニズム
GigE Vision規格では、伝送データを何らかの影響によりロスしてしまった場合に、自動的に再送要求を行うメカニズムがすでに実装されており、マシンビジョン用途を意識した安定取込を実現する規格であることが分かります。
BASLER社ではさらなる取込安定性を提供すべく、環境に合わせた効率的な再送メカニズムを設計・制御できるように、パフォーマンスドライバに2つの再送メカニズムを追加実装しています。
※パフォーマンスドライバとは、特定のチップセットを搭載したネットワークカードに最適化されたBASLER社オリジナルのドライバです。
"Threshold" メカニズム
何らかの原因によりパケットロスが連続して発生してしまった場合、通常は再送要求が1つずつ、複数回出されることになるため、CPUの負荷が上がってしまいます。このような場合を想定し、連続したパケットロスを一括して再送要求するメカニズムを実装することにより、再送機能の効率化が可能です。
@ パケット伝送状況を監視するためのウインドウサイズを設定します(パラメーター: Receive Window Size)。パケットには番号が順に割り当てられており、伝送が完了したパケットがウインドウに入ります。ウインドウに入った段階で1つ前のパケットとの連続性が確認されます。
A 一括再送要求のために要求が統合されます(パラメーター: Resend Request Batching)。Receive Windowの入口で、パケットロスが発覚したパケットの番号が記録されます。
B
一括再送要求を送るタイミングを設定します(パラメーター: Resend Request Threshold)。パケットロスが発生した箇所がこのしきいを通過する際に、Aでまとめられた連続するパケットロスに対して一括再送要求が行われます。
"Timeout" メカニズム
パケットロス発生から再送要求を出すまでのタイムアウト時間や、再送要求したにもかかわらず再度ロスした場合の追加再送要求タイミング、再送要求を最大何回まで実施するか、といった細かな時間設定を行うことで、アプリケーションに合わせてGigE
Vision規格の再送メカニズムをコントロールすることができます。
@ Receive window内でパケット伝送状態の監視が行われます。
A Receive windowの入口でパケットロスが検知されます。
B
パケットロスが発生してから再送要求を出すまでの最大許容時間を設定します(パラメーター: Resend Timeout)。ロスが発生し続けると、Thresholdメカニズムにより再送要求が実行されない状況が発生しますが、ここで設定された時間を超えると、それまでロスしたパケットについて必ず再送要求を実施します。
C
再送要求を出したにもかかわらず、伝送が成功せず再度ロスしてしまう場合も考えられます。この設定により、2回目以降の再送要求を実施するまでの待ち時間を設定できます(パラメーター:
Resend Request Response Timeout)。
D
パケットロスが繰り返されるような状態において、再送要求を最大何回繰り返すかを設定できます(パラメーター: Maximum Number Resend Requests)。
■ pylon Statistic: データ伝送状態監視
カメラからの伝送状況を把握することは、システムを設計する上で、使用環境・機器の安定性を評価する非常に有用な情報となります。BASLER
pylonソフトウエアでは、カメラからの連続取り込み中に、画像やパケットの伝送状況を監視する Statistic機能
を提供しています。専用取込アプリケーションPylonViewer画面上や、pylonAPIを用いてアプリケーション上で伝送状況を監視することが可能です。
- Buffer Count
画像取込の成功数と失敗数、取込バッファ不足で失敗した数をカウントします。
- Packet Count
伝送に成功したパケット数とロスしたパケット数をカウントします。
- Resend Count
パケットロスにより発行した再送要求の数と、実際に実施された再送要求の数をカウントします。(再送要求は一括で行われる場合があるため、この値が同値にならないことがあります。)
|
PylonViewer画面 『Statistic』 |
■ 複数台同時取り込み: パケット伝送コントロール
データ伝送の安定性を確保するために、多くのメーカは標準的に Inter-Packet delay機能
を提供しています。これはパケット伝送間の待ち時間であり、パケットを送ってから次のパケットを送るまでに「待ち」を入れることで、データ伝送に余裕を持たせ安定化を図ることができる機能です。
しかし、スイッチングハブを用いて複数台カメラを接続し、外部トリガー信号により同時に露光させる場合、この機能だけでは十分に安定した取込を実現することができません。すべてのカメラがデータ送信を同時に開始するため、大量のデータがスイッチングハブに同時に到達し、
スイッチングハブの性能によっては送信がうまく行われず、パケットをロスしてしまう可能性があります。
BASLERカメラでは、このようなシステム構成であっても安定した取り込みを実現するために、 Frame
Transmission delay機能 を提供しています。この機能を設定することで、カメラからパケットを送信開始するまでの時間を設定することができ、Inter-Packet
delay機能と合わせて使用することでカメラ間の送信タイミングをずらすことが可能です。
つまり瞬間的な大量データ伝送を避け、安定動作する一定のデータ伝送量を保つことができます。
これら2つのパラメーターを的確に設定することで、下図に示すように、複数台同時取り込みを行う場合にもデータロスすることなく安定した取り込みが可能となります。
スイッチングハブを用いた複数台カメラシステムをお考えの際は、是非BASLERカメラの特長機能をご活用ください。
BASLER社の高いソフトウエア技術により、
データ伝送の効率化・監視・コントロールを的確に行うことができ、画像取得の安定動作を高い品質で実現することができます。
次号では、画像取込に対する多様な要求を実現するBASLERカメラの特殊取込機能に焦点を絞りご紹介します。
|