緩衝區擷取不完整:錯誤 3774873620 GX 狀態 0xe1000014#
這個錯誤相當常見,但通常可以快速修正。若要修正此錯誤,請依照下列步驟操作:
- 將 Packet Size 調整為 1500。
- 增加數值,直到出現上述錯誤。
- 將數值調降至穩定值。
這不會影響影格率,但能提升資料傳輸的穩定性與效率。
相機上的 "Packet Size" 等同於網路卡上的 "Frames" 或 "MTU"。Jumbo Frames 是指大於 1500 bytes 的封包。在過去,
- 10BaseT 乙太網路支援每個封包最高 576 bytes,
- 100BaseT 支援每個封包 1500 bytes,而
- Gigabit 乙太網路理論上支援每個封包最高 16000 bytes。
其好處在於,封包較大時,CPU 需要解包的封包數量較少,因此 CPU 負載較低。
但常見的問題是,不同的網路介面卡 (NIC) 與交換器支援不同的封包大小,且品質往往不盡相同。因此,尋找完美的封包大小取決於系統本身。
- 如果封包大小太小,交換器或 NIC 內建的緩衝區可能會不堪負荷,導致封包遺失。
- 如果封包大小太大,交換器或 NIC 可能不支援並會丟棄封包。
無論哪種情況,當封包遺失時,Basler 的驅動程式會偵測到並要求相機重新傳送封包。但如果問題嚴重,甚至連這樣也無法成功,封包就會永久遺失。這會導致 "Buffer incompletely grabbed - 3774873620 GX status 0xe1000014" 錯誤。
通常,當處理自然包含大量資料的大型影像時,約 500 的封包大小會太小。而且我們發現,除了我們的相機之外,沒有多少裝置支援 16000 bytes 的封包。因此,從 1500 開始通常是不錯的做法。如果您發現 CPU 負載高於您的預期,您可以將其調高。
其他提示:
- 在 pylon API 中,我們提供了一些函式來檢查統計資料,例如遺失的封包數、重新傳送的封包數等。監控這些資料非常方便。
- 您也可以啟用相機中的
AutoPacketSize參數,它會嘗試自行協調出一個可正常運作的封包大小。