チュートリアル

GigE Visionシステムの速度・精度を向上させるpylon活用術

Windows/Linux向けにシステムを最適化

このチュートリアルでは、pylonを活用し、単一または複数のカメラから構成されるGigE Visionシステムの性能を最大限に引き出す方法について、カメラ、ケーブル、ネットワークインタフェースコントローラー(NIC)、スイッチの設定を考慮しながら解説します。

安定した撮像を実現する5つのステップ

  1. pylonビューワー上でカメラを起動 → パケットサイズを最大にし、 パケット間遅延を均等に設定した後、ユーザーセットに保存

  2. Windows/Linux向けのシステム設定:ジャンボフレーム(MTU 8192-9014)を有効化

  3. NICの設定:受信バッファと受信ディスクリプターを増加、割り込み加減率を低減

  4. pylonの設定:受信スレッド優先度ソケットバッファサイズを増加

  5. 動作試験:[pylon Statistics]を開き、[Failed Buffer Count]と[Buffer Underrun Count]が0であることを確認

Tip

システム性能を最大化するための条件

  • ケーブル:Cat6 S/FTPまたはCat6 S/STPの産業用ケーブル

  • NIC: Intel i210、i340、i350以降(最新ドライバー)

  • スイッチ:PoE対応のGigEスイッチ(マネージドスイッチ)

  • ソフトウェアpylonビューワー(管理者権限で起動)

  • ネットワーク:カメラ専用NIC(WLANやインターネットと別経路)

以下では、システム性能を最大限に引き出すためのpylonのパラメーター設定方法についてご紹介します。

GigEカメラの設定の最適化

帯域幅マネージャーを使用すれば、GigEカメラのパケットサイズやパケット間遅延を自動的に最適化できます。スイッチなど単一のアダプターを介して複数のカメラを運用する場合は、この方法が特に効果的です。また、pylonビューワー上で[Features All]パネルを開いた後、[Transport Layer]に表示されるパラメーターを手動で調整することも可能です。

  • パケットサイズ(GevSCPSPacketSize):増加 → 撮影効率が上昇

  • パケット間遅延(GevSCPD):パケット間で転送を一時停止 → マルチカメラシステムのデータロスを防止

  • フレーム転送遅延(GevSCFTD):複数のカメラを同時にトリガーする場合に便利

  • デバイス接続のスループット制限:カメラごとに帯域幅を制限 → 競合防止 

デモ:カメラのパラメーター調整

このビデオでは、pylonビューワー上でカメラパラメーターを調整する方法についてご覧いただけます。[Features All]パネルを開き、[Common Task]の中から[Controlling the frame rate]を選択すると、[Transport Layer]に各種パラメーターが表示されます。

Windowsの場合(NIC&システム)

目的:レイテンシーの低減、データロスの防止

NICドライバーの設定

  • ジャンボフレーム(MTU):9014Byte以上

  • 受信バッファ/受信ディスクリプター:増加(2048など)

  • 割り込み加減率(ITR):増加(3600など)、レイテンシーを抑える場合は低減

pylonの設定

  • 取得ループスレッド優先度内部取得エンジンスレッド優先度:増加(25~30など)

動作試験
30~60秒間の連続撮影を実施 → [Failed Buffer Count]が0であることを確認 

デモ:NICのパラメーター調整

このビデオでは、pylonビューワー上でNICのパラメーターを調整する方法についてご覧いただけます。Windowの場合は、NICが上記の全パラメーター(ジャンボフレーム、割り込み加減率、受信ディスクリプター)に対応していることを確認してください。[ネットワーク接続]を開き、GigEアダプターを右クリックして[プロパティ]を選択すると、[詳細]タブに各種パラメーターが表示されます。

Linuxの場合(NIC&システム)

目的:広帯域幅による安定した撮像

コマンド例

# ジャンボフレームの有効化
sudo ifconfig eth0 mtu 8192

# リングサイズの増加
sudo ethtool -G ethX rx 4096 tx 4096

# 割り込み加減率の低減
sudo ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62

# UDP受信バッファの増加
sudo sysctl -w net.core.rmem_max=4096000

pylonの設定

  • 受信スレッド優先度:50以上(最大値=99)

  • ソケットバッファサイズ:2048KB以上 

デモ:GigE Visionシステムのパラメーター調整

このビデオでは、GigE Visionシステムの最適化と安定した運用を目的として、pylonビューワー上でパラメーターを調整する方法についてご覧いただけます。

システム構成は、Linux PC(Ubuntu搭載)、GigEカメラ、NIC、pylonです。

[Features All]パネルを開き、[Common Task]の中から[Checking whether the camera is losing image data]を選択すると、[Stream Parameters]に各種パラメーターが表示されます。

マルチカメラシステム 

単一のスイッチを介して複数のカメラを運用するには、データのシリアル化が必要です。

方法1:帯域幅マネージャー

  • [Optimize]をクリック → パケットサイズ、パケット間遅延、フレーム転送遅延を自動割り当て

方法2:手動調整

  • パケット間遅延:パケット持続時間×(N-1) → パケット衝突を防止

  • フレーム転送遅延:データ転送のタイミングをずらしながら、複数のカメラを同時にトリガー

目的:安定した撮像、バッファエラーの防止 

デモ:マルチカメラシステムのパラメーター調整

このビデオでは、マルチカメラシステム(カメラ×2、アンマネージドスイッチ×1)の全カメラを最大帯域幅で運用することを目的として、pylonビューワーと帯域幅マネージャー上でパラメーターを調整する方法についてご覧いただけます。

[Features All]パネルを開き、[Common Task]の中から[Controlling the frame rate]を選択すると、[Transport Layer]に各種パラメーターが表示されます。

トラブルシューティング&モニタリング

pylon Statisticsを使用すると、エラーの原因を早期に特定できます。

  • Failed Buffer Count:パケットを送信できずにエラーで返ってきたバッファの数

  • Buffer Underrun Count:バッファメモリー不足により送信できなかったフレームの数

主なエラーと解決策

  • バッファの取得が不完全(0xE1000014):パケット間遅延、パケットサイズを調整

  • 制御チャンネルの接続切断(0xE1000016):ケーブル、NIC、スイッチを確認

  • バッファエラー:UDPバッファ、ソケットバッファサイズを増加

pylonビューワーの画面右側の[Features]に表示されているパラメーターを右クリックすると、Basler製品ドキュメントの詳細な説明とソースコードが表示されます。なお、この機能は、インターネットに接続されていなくても利用できます。

Basler製品ドキュメントへ

GigE Visionシステムの最適化

GigE Visionシステムの性能と信頼性を確保するには、以下の点に注意するとよいでしょう。

  • 安定したハードウェアの選定:試験を通過した産業用ハードウェア(高品質なケーブル高性能なNIC、互換性のあるスイッチ)により、安定したデータ転送を確保

  • カメラのパラメーター調整:パケットサイズを大きくしたうえで、必要に応じてパケット間遅延やフレーム転送遅延を調整することで、複数のカメラを運用する場合でも、効率的かつロスのないデータ転送が可能

  • pylonとシステム設定の最適化:バッファサイズの調整、スレッド優先度の上昇に加え、ジャンボフレーム、ソケットバッファサイズなどのネットワーク関連パラメーターを適切に設定し、高速データ転送の信頼性を向上

上記に配慮すれば、WindowsまたはLinuxにかかわらず、レイテンシーを抑えながら、GigE Visionシステムの性能と安定性を最大限に引き出すことができます。

関連製品

‍‍ご紹介したソリューションの導入には、以下‍の製品が最適です。

製品・サービスに関するご不明点やご相談等がございましたら、お気軽にお問い合わせください。