跳至內容

Runtime 5.9.0 已知問題#

本節提供有關 Basler Runtime 5.9.0 版本已知問題的資訊。

所有元件#

摘要 相機未輸出正確的影像
描述 若多鏈結相機不符合 CXP 標準關於影像資料在鏈結間分佈的規範,將無法向電腦傳送正確的影像。此問題見於 JAI SP-12000C-CXP4 相機。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 211645
摘要 相機模擬器的未預期行為
描述 使用此 Applet 的內部相機模擬器時,所顯示的頻寬可能會低於預期。這表示在使用目前的模擬器時,可能會發生特定的溢位狀況。當使用實際相機時,則不會出現此行為。此問題僅與內部相機模擬器有關。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID –
摘要 Frame Grabber 無法與 Windows Fast Startup 一起運作
描述 在啟用了 Fast Startup(也稱為 Hybrid Boot 或 Hybrid Shutdown)的 Windows 8 或更新版本下,變更硬體設定並重新啟動系統後,frame grabber 可能無法再正常運作。
受影響的作業系統 Windows 8 或更高版本
因應措施 重新啟動(明確的重新啟動,而非關機)可解決這些問題。若要完全避免這些問題,請按照 www.windowscentral.com 的說明停用 Fast Startup。
問題單 ID –
摘要 顯示高影格率影像可能會導致對使用者輸入的回應變慢
描述 當使用 Framegrabber API 程式庫 display_lib(僅適用於 Windows)時,顯示高影格率影像(約每秒 10,000 個影格)可能會導致主電腦對使用者輸入(例如鍵盤和滑鼠)的回應變慢。
受影響的作業系統 Windows
因應措施 沒有可用的因應措施。
問題單 ID –
摘要 Linux 驅動程式無法使用受信任的 Basler 憑證進行簽署
描述 在 Linux 中使用安全開機 (UEFI 模式) 需要使用以受信任憑證簽署的驅動程式。由於驅動程式是以原始碼形式提供,因此無法使用受信任的 Basler 憑證進行簽署。
受影響的作業系統 Linux
因應措施 若要使用該驅動程式,可以停用安全開機。或者,您可以按照此 Ubuntu 部落格文章中的說明來簽署驅動程式。
問題單 ID –

擷取卡#

摘要 LED 12EXT 在發生錯誤事件時亮起紅燈
描述 當 imaWorx 未連接至外部電源供應器時,LED 12EXT 應亮起紅燈。然而,只有在連接外部電源連接器時,LED 才會亮起紅燈,並且錯誤地反映 12V_DC_UP 而非 12V_EXT 的狀態。
因應措施 沒有可用的因應措施。
問題單 ID TFS 206709

韌體#

摘要 CXP-12 Interface Card 1C 卡的 PCIe 通訊模組所造成的資料遺失與系統凍結
描述 由於韌體版本 3.0 S1.1 P1 之 CXP-12 Interface Card 1C 卡(以及對應的 Applet)的 PCIe 通訊模組中存在問題,資料傳輸可能會失敗,且系統可能會凍結,這取決於電腦 PCI 硬體的敏感度。當發生以下情況時,可能會發生此情形:
  • 緩衝區的記憶體位址在 PCI 酬載大小邊界之後 4 個位元組開始,或在其之前 4 個位元組結束。
  • 相機產生的畫面,其位元組大小是 4 的倍數,但不是 8 的倍數。
受影響的作業系統 Windows 和 Linux
受影響的硬體 韌體版本 3.0 S1.1 P1 的 CXP-12 Interface Card 1C 卡
因應措施 建立記憶體位址可被 8 整除的緩衝區。如果所需的緩衝區大小無法被 8 整除,請配置額外的位元組以符合此要求,並在處理資料時忽略此填充。a
問題單 ID TFS 184670
摘要 變更於 DeviceUserID 需要重新啟動 GenTL Producer 或其他應用程式
描述 當 DeviceUserID (確切地說:CXP 引導暫存器的值 DeviceUserID)變更時,需要重新啟動 GenTL Producer,變更才會透過 GenTL API 反映出來。當使用 GUI 透過 GenTL 與相機互動(例如 pylon Viewer)時,需要重新啟動該應用程式,變更才會顯示出來。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 207518

CXP-12 Interface Card 1C Applet#

摘要 頻繁變更鏈結速度導致錯誤
描述 當在連接埠上頻繁變更 CXP 鏈結速度時,可能會發生速度變更不再起作用的情況。在這種情況下,將記錄錯誤訊息「Failed to set bitrate of uplink transceivers」與「Failed to set bitrate of downlink transceivers」。
由於相機探索會探測未連接的連接埠,因此會變更其鏈結速度,當應用程式頻繁嘗試在未連接的連接埠上探索新相機時,可能會發生此問題。
受影響的作業系統 Windows 和 Linux
因應措施 重新載入 Applet:
透過載入不同的 Applet,然後再次載入原始的 Applet,即可重新載入 Applet。如果名稱為 SISO_FORCE_RELOAD_APPLET 的環境變數 是定義的值為
問題單 ID TFS 197127

SDK#

摘要 因從相機到擷取卡的影像傳輸緩慢而導致畫面損毀
描述 如果重新將緩衝區排入佇列的速度比將影像從相機傳輸到擷取卡的速度慢,則會傳遞損毀的影像。此行為只能透過檢查影像資料來偵測。
受影響的作業系統 Windows 和 Linux
因應措施 為避免這些損毀的影像,影像處理和緩衝區重新排入佇列的速度必須快於相機的影格率。擷取卡上的內部緩衝區足以平衡排程等造成的微小延遲。
由於此問題而產生的破損畫面小於設定的尺寸,因此未預期地較小的畫面可用作此情況的指標。您可以按如下方式決定畫面資料的大小:
  • 使用 GenTL Producer:
    呼叫 DSGetBufferInfo 與 BUFFER_INFO_SIZE_FILLED 作為命令。
    執行 NOT 使用 BUFFER_INFO_IS_INCOMPLETE 且不要檢查 BUFFER_INFO_SIZE_FILLED < BUFFER_INFO_DATA_SIZE。這些檢查一律會 false。如需詳細資訊,請參閱章節 GenTL Producer.
  • 使用擷取卡 SDK / fglib:
    呼叫 Fg_getParameterEx 與 FG_TRANSFER_LEN 作為參數。
問題單 ID TFS 207873

Cognex Adapter#

摘要 Cognex VisionPro Must Be Started with Admin User Rights
描述 Cognex VisionPro must be started with Admin user rights to access the frame grabber.
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 187245
摘要 Limited Memory Leads to Failed Acquisition for Large Images
描述 When setting up a large ROI (i.e 4096 x 3000), starting the acquisition may fail with the message "The acquisition failed abnormally. (Adapter image pool full.)"
This happens, because VisionPro limits the memory that can be used by the vendor-specific adapters.
受影響的作業系統 Windows
因應措施 To avoid this, increase the limit via the Windows Registry as described in the Cognex VisionPro Adapter Manual
問題單 ID TFS 203605

GenTL Producer#

摘要 Camera Parameters Changed after Image Acquisition Start Are Not Reflected In the Frame Grabber
描述 如果在影像擷取期間變更相機參數,該變更將不會反映在 frame grabber 中。這是因為 GenTL Producer 會在開始擷取之前查詢相關參數(寬度、高度、影像格式等),並將這些參數與 frame grabber 進行同步。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 195482
摘要 BUFFER_INFO_DATA_SIZE Contains Number of Transferred Bytes Instead of Frame Size
描述 buffer 屬性 BUFFER_INFO_DATA_SIZE 未如預期運作: BUFFER_INFO_DATA_SIZE 應包含設定的畫面大小。然而,它包含的是實際傳輸的位元組數,與 BUFFER_INFO_SIZE_FILLED相同。因此,屬性 BUFFER_INFO_IS_INCOMPLETE 將一律為 false.
受影響的作業系統 Windows 和 Linux
因應措施 的預期值 BUFFER_INFO_DATA_SIZE 通常等於影像的 width * height * pixel size.
問題單 ID TFS 211972
摘要 當變更 Applet 時,GenTL 裝置 ID 會隨之改變
描述 根據 GenTL 標準,device ID 在兩個工作階段之間應保持不變。然而,當 applet 變更時,GenTL device ID 會隨之改變。因此,透過某個 applet 查詢到的 device ID,只有在 applet 的名稱與產生 device ID 時的原始 applet 相同的情況下,才能與不同的主機板和其他 applet 一起使用。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID –
摘要 BUFFER_INFO_FRAME_ID 包含針對所有影格的 Counter,而非來自 CXP 影像標頭的來源標籤 (Source Tag)
描述 GenTL BUFFER_INFO_FRAME_ID可透過 DSGetBufferInfo進行查詢)不包含來自 CXP 影像標頭的來源標籤。相反地,它包含傳送至電腦的所有畫格的 Counter。
受影響的作業系統 Windows 和 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 197430

microDisplay X#

摘要 設定 TriggerState 設為 啟用 可能會導致擷取逾時
描述 設定 applet 參數 TriggerState 設為 啟用 在相機上開始擷取之前,可能會導致擷取逾時且無法傳送任何影像。
受影響的作業系統 Windows 和 Linux
因應措施 為避免這種情況,請確保 TriggerState 僅在開始擷取後才啟用。
問題單 ID TFS 191631
摘要 在 Linux 上,關閉 microDisplay X 時可能會發生當機
描述 在 Linux 上,關閉 microDisplay X 時可能會發生當機。這不會造成其他後果,可以忽略。
受影響的作業系統 Linux
因應措施 沒有可用的因應措施。
問題單 ID TFS 211811

  1. 您可以使用以下程式碼範例來建立沒有此資料傳輸問題的緩衝區:

    // create a ROI that could trigger the issue (for demonstration purposes only!)
    
        size_t imageWidthPx = 252;
    
        size_t imageHeightPx = 15;
    
        size_t pixelSizeBytes = 1;
    
    // compute the required buffer size for one image
    
    size_t imageSizeBytes = imageWidthPx * imageHeightPx * pixelSizeBytes;
    
    // set the buffer size to the nearest larger size that is divisible by 8
    
    size_t bufferSizeBytes = ((imageSizeBytes + 7) / 8) * 8;
    
    // add 4 more bytes so we can add an offset of 4 bytes if the address ends up being only 4 byte aligned
    
    bufferSizeBytes += 4;
    
    // allocate the buffer
    
    uint8_t* imageBuffer = (uint8_t*)malloc(bufferSizeBytes);
    
    // sanitize the address
    
    uint8_t* sanitizedImageBuffer = (((uintptr_t)(imageBuffer)) % 8 == 0)
    
        ? imageBuffer
    
        : imageBuffer + 4;
    
     /* [use the sanitized buffer] */
    
    // free the original(!) buffer
    
    free(imageBuffer);
    

     ↩