LabVIEW儀器控制:智能直流電源(科睿源KA3003)
846
2025-04-01
目錄
1、串口寫入數據
2、串口讀取數據
3、清除緩存區
4、設置緩存區
5、數據超時
6、數據終止符
串口通信(Serial Communications)的概念非常簡單,串口按位(bit)發送和接收字節的通信方式。在LabVIEW中串口通信使用范圍非常廣泛,例如,通過串口使用ModBus協議驅動儀器、串口驅動PLC設備等。
在LabVIEW中有專業的VI(VISA)可以驅動串口進行數據讀、寫操作,在函數面板 → 儀器I/O → 串口子面板中,如下圖所示:
相應的說明可參見幫助文檔,如下圖所示:
通過幾個簡單的Demo示例了解VISA串口函數的使用方法。
代碼下載:LabVIEW串口通信-嵌入式文檔類資源-CSDN下載
1、串口寫入數據
打開串口COM3,通信速率115200/bps,寫入數據:A1$,示例代碼如下所示:
2、串口讀取數據
打開串口COM8,通信速率115200/bps,讀取20個字節長度數據,示例代碼如下所示:
3、清除緩存區
以上兩種方法介紹了LabVIEW串口最基本的讀、寫操作,實際上直接這樣使用的存在問題的。
因為在大多數情況下串口設備不管在LabVIEW執行或著關閉的狀態都一直在上傳數據。端口在收到第一個字符的時候可能沒有被配置好,所以它讀到的是無效的緩沖區信息,這樣直接開啟后進行讀、寫數據極其容易導致錯誤。
為了解決這樣的問題,在串口配置后需要放一個延時(大約XXXms),就可以讓Serial port有足夠的時間完成設定。再來使用VISA清空I/O緩沖區函數,就可以將接收緩沖區中不正確的資料清除。對串口讀取功能進行優化,示例代碼如下所示:
以下示例中讀取數據長度的方式進行優化,通過屬性節點(Bytes at Port)獲取字節長度,無需再手動定義長度,避免定義長度太短導致接收不全或者定義數據過長導致浪費情況。
4、設置緩存區
目前VISA串口緩沖區大小最大可達到 2的32次方(4,294,967,296 字節),可以在該范圍內定義緩存區大小,例如以下示例,定義緩沖區大小為80000字節。
5、數據超時
在初始化VISA串口時,可以設置超時時間,當讀、寫數據超出時間,會提示錯誤信息。
以下示例定義串口通信超時時間是10秒。
6、數據終止符
在初始化VISA串口時,可以設置終止符,通過調用終止讀取操作,從串行設備讀取終止字符后讀取操作會自動終止。例如以下示例,讀取到“$”字符(十六進制:0X36)時,會停止讀取操作。
代碼下載:LabVIEW串口通信-嵌入式文檔類資源-CSDN下載
拓展學習
1、VISA錯誤代碼 - LabVIEW 2016幫助 - National Instruments
2、用NI-VISA為串口分配大緩沖區時出現的問題 - National Instruments
嵌入式
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。