バッファの取得不完全: エラー 3774873620 GXステータス 0xe1000014#
このエラーは非常によくあるものですが、通常はすぐに解消できます。エラーを解消するには、以下の手順に従います。
- パケットサイズを 1500 に調整します。
- 前述のエラーが発生するまで値を大きくします。
- 安定する値まで値を小さくします。
これによりフレームレートが低下することなく、データ転送の安定性と効率が向上します。
カメラの「Packet Size」は、ネットワークカードの「Frames」または「MTU」と同義です。ジャンボフレームとは、1500バイトを超えるパケットを指します。歴史的に見ると、
- 10BaseT Ethernetはパケットあたり最大576バイトをサポートし、
- 100BaseTはパケットあたり1500バイトをサポートしていましたが、
- Gigabit Ethernetは理論上、パケットあたり最大16000バイトをサポートします。
メリットとして、パケットが大きくなるとCPUがアンパックするパケットの数が減り、CPU負荷が軽減されます。
しかし、よくある問題として、ネットワークインターフェースカード(NIC)やスイッチによってサポートするパケットサイズが異なり、品質もさまざまであることが挙げられます。そのため、最適なパケットサイズを見つけることはシステムに依存します。
- パケットサイズが小さすぎると、スイッチやNICに内蔵されているバッファがオーバーフローを起こし、パケットがドロップされる可能性があります。
- パケットサイズが大きすぎると、スイッチやNICがサポートしていない可能性があり、パケットがドロップされます。
いずれの場合も、パケットがドロップされると、Baslerのドライバーがこれを検出し、カメラにパケットの再送信を要求します。しかし、問題が深刻な場合は、これもうまくいかず、パケットは完全に失われます。その結果、「Buffer incompletely grabbed - 3774873620 GX status 0xe1000014」エラーが発生します。
通常、大量のデータで構成される大きな画像を扱う場合、約 500 のパケットサイズは小さすぎます。また、当社のカメラ以外で 16000 バイトのパケットをサポートしているデバイスは多くありません。そのため、まずは 1500 から始めるのが一般的にお勧めです。CPU負荷が想定よりも高い場合は、値を大きくすることができます。
その他のヒント:
- pylon APIには、ドロップされたパケット数や再送信されたパケット数などの統計情報を確認するための関数が用意されています。このデータを監視することは非常に便利です。
- また、カメラで
AutoPacketSizeパラメータを有効にすると、動作するパケットサイズを自動的にネゴシエーションしようとします。