LabVIEW中的VISA串行讀取錯誤-1073807253

更新 May 30, 2021

產品資訊

軟體

  • Measurement and Automation Explorer (MAX)
  • LabVIEW

驅動程式

  • NI-VISA
  • NI-Serial

問題敘述

我正在以固定的時間間隔從第三方設備輸出一系列字元,並使用VISA Read VI進行讀取。但是,在閱讀時出現此錯誤:

Error -1073807253 occurred at an unidentified location
Possible reason(s):
VISA: A framing error occurred during transfer.

解決方案

錯誤-1073807253是framing錯誤。串行數據一次傳輸一個位元組。每個位元組都有特定的格式,包括開始位元,數據位元,奇偶校驗和停止位元。接收到一個位元組的數據但未採用預期的格式時,將發生framing錯誤。由於多種原因,可能會發生這種錯誤:

A.從該端口接收到第一個字元時,該端口可能尚未完全完成其配置。通過在“VISA Configure Serial Port VI” 後放置一個延遲(大約10-100毫秒),可以為串行端口留足夠的時間進行自我配置。然後,通過使用VISA Flush I/O Buffer VI,可以清除緩衝區中的所有無效數據。讀完此序列後將可以正常工作。您的block diagram如下所示:


B.您可能在讀取/寫入任務完成之前關閉了VISA資源。

C.您的串行端口和設備可能配置為使用不同的設置。要解決此問題,請打開NI Measurement&Automation Explorer(NI MAX),然後在“Devices and Interfaces”下選擇您的串行端口。在“port settings”選項下,確認VISA資源的NameBaud rateData bitsParityStop bits都與設備的設置匹配檢查配置的最簡單方法是使用示波器跟踪接收到的訊號。

請注意:您可以在運行時以編程方式更改這些設置,如上例所示,或在NI-MAX中如以下例子所示。


D.您的電纜可能鬆動。檢查並確保已牢固插入電纜。


E.您的串行電纜可能損壞或串行電纜的類型錯誤。嘗試使用另一條串行電纜,並檢查設備手冊,以確定是否需要使用零調製解調器或直通電纜。請參閱文章:我該使用對繞線還是直連線?


F.您可能在串行線上遇到噪音。將串行電纜從電源線,顯示器或其他潛在的噪聲源移開。


G.驅動程式安裝可能已損壞。這不太可能,但是要使用串行設備,您需要在電腦上安裝LabVIEW,NI-Serial和NI-VISA。如果錯誤仍然存在並且您已經嘗試了所有上述步驟,則可能需要修復這些安裝。請參考強制重新安裝無法運行或損壞的NI軟體

相關資訊

有關使用VISA Configure Serial Port VI.的例子,請參考範例“Simple Serial”。該範例可在“Example Finder”的“Hardware Input and Output->Serial”中找到 (尋找 LabVIEW 範例)。