NI-VISA錯誤1073807246無法訪問資源

更新 May 28, 2021

產品資訊

硬件

  • CompactRIO Controller
  • Serial Interface Device
  • PXI Serial Interface Module
  • C Series Serial Interface Module
  • USB Cable
  • CompactDAQ Controller

軟體

  • LabVIEW

驅動程式

  • NI-VISA

問題敘述

我正在嘗試與第三方儀器進行通訊。 VISA Test Panels 可在NI MAX中運行,但使用VISA範例VI時出現以下錯誤。

-1073807246: The resource is valid, but VISA cannot currently access it.
或是使用 Serial Compatibility VIs時,出現 Error 37: Device Not Found 。我該如何解決錯誤?

為什麼會出現這些錯誤之一,如何消除它?

解決方案

您會在LabVIEW開發環境中以及從生成的可執行檔案中得到此錯誤。這表示LabVIEW無法控制串行端口。

以下是可能的原因以及針對這些錯誤的解決方案:
  • 另一個程式在控制串行端口。一次只能有一個程式使用串行端口。關閉其他可能正在使用串行端口的程式,例如超級終端(HyperTerminal)或任何NI MAX VISA Test Panels。導航至Tools -> Options -> Environment 並勾選“Automatically close VISA sessions”,以在LabVIEW中自動關閉VISA會話。
  • 如果運行的是LabVIEW內置的可執行檔案,並且LabVIEW已打開,則LabVIEW可能已控制了串行端口。使用串行VI後,LabVIEW的默認行為是不釋放串行端口。您仍然可以使用LabVIEW的串行運行另一個VI,但不能運行可執行檔案。為了釋放串行端口,您必須執行以下任一操作:
    • 關閉LabVIEW。關閉所有使用串行的VI不足以釋放端口。通過完全關閉LabVIEW,您將強制關閉LabVIEW已打開的所有會話。
    • 在“ VISA Advanced”選板中使用“ VISA Close VI ”。
  • 如果您失去與COM端口的連接,然後重新建立連接,則在存取之前,必須先關閉VISA資源,才再重新打開它。
  • 嘗試通過Windows裝置管理員修改COM端口號。
    Windows Device Manager -> Ports (COM & LPT) -> 右鍵單擊COM設備 -> Properties -> Port Settings -> Advanced -> COM Port Number:
Windows Device Manager
  • 對於CompactDAQ和CompactRIO控制器用戶,請確保未在MAX System Settings中勾選Enable Console Out。如果啟用此功能,VISA將無法控制串行端口。
  • 如果使用串行 轉換器或已構建自己的自定義串行轉換器,請確保已正確連接串行端口線。
  • 文件serpdrv不可用(僅適用於LabVIEW 6.1和更早版本的Serial Compatibility VI)。
    • 從LabVIEW運行VI時,serpdrv應位於libdir指定的目錄中(通常為National Instruments\LabVIEW\
    • 使用從LabVIEW構建的可執行檔案時,serpdrv必須與可執行檔案位於同一目錄中,或與運行時引擎位於同一目錄中。運行時引擎的公共目錄為:National Instruments\Shared\LabVIEW Run-Time
  • 對於可執行檔案,將LabVIEW.ini文件(位於Program Files\National Instruments\LabVIEW 20[XX]\LabVIEW.ini中)複製到可執行檔案的資料夾中。將其重命名為與可執行檔案(名稱.ini)相同的名稱,然後將[LabVIEW]的第一行編輯為[名稱]
  • 檢查您的作業系統(OS)和NI-VISA驅動程式的兼容性。可以在您的NI-VISA版本的自述文件中找到。如果您的NI-VISA版本與您的作業系統不兼容,則可能是導致錯誤的原因,您需要升級驅動程式。
  • 如果由於驅動程式問題,驅動程式無法正確識別COM端口,也會發生此錯誤。嘗試強制重新安裝NI-VISA。

相關資訊

這些解決方案還有助於解決使用Serial Compatibility VI時發生的錯誤Error 37: Device Not Found。這些VI已被棄用,因此此處僅作為註釋提及錯誤。如果在NI MAX中收到相同的錯誤訊息,或需要其他故障排除步驟,請參考“COM Port in MAX Shows Exclamation Point and I'm Receiving Errors in NI MAX Test Panel

如果使用的是CompactRIO,則是由啟用Console Out引起的。請檢查cRIO的啟動設置或DIP開關。

最後,此問題可能是由於將兩個不同的設備依次插入同一COM端口而引起的。 VISA資源可能正在嘗試引用最後一個設備,並且仍在使用中。