專題介紹 - 使用 LabVIEW 與 RS232 介面裝置通訊

課堂上有同學詢問,當我們插上一個裝置或儀器時,在裝置管理員內可以看到增加了一個com port,同時也確認該裝置可以藉由通訊來取得資訊或是進行控制,那麼我們如何可以做到這件事情呢?





圖片程式版本:LabVIEW 2013
範例程式版本:LabVIEW 8.6


首先需要用到的元件都在 block diagram >> Instrument I/O >> Serial 這個系列裏頭,主要會使用到的元件基本包含了:


  • Visa Configure Serial Port  - 設定連接埠參數
  • Visa Write - 寫入資料
  • Visa Bytes at Serial Port - 回傳連接埠內資料數量
  • Visa Read - 讀取資料
  • Visa Close - 關閉連接埠




基本上首先要先設定連接埠的一些參數,如連接埠、BaudRate等




接著建立一個連續的迴圈,方便重複地進行連接埠的監控與讀取。



接下來我們使用 Visa Bytes at Serial Port 以及 Visa Read 兩個元件,監控目前通訊埠內有多少資料,同時將該資料讀出。



此時特別注意,如果沒有使用 Visa Bytes at Serial Port  讀取通訊埠內有多少資料,再把該數量接到 Visa Read 中,而是直接使用 Visa Read 元件時,該 byte count 接腳是告訴元件需要讀取多少資料回來,必須接上。如果沒有給值則無法執行,給的值如果大於回傳的資料長度,那麼系統將跳出 "逾時而無法取回設定的長度資料" 這樣的錯誤訊息。故普通的使用情況之下,都是直接使用 Visa Bytes at Serial Port 以及 Visa Read 兩個元件,監控目前通訊埠內有多少資料,同時將該資料讀出,避免上述錯誤訊息的出現

接著為了能夠連續監控累積下來的所有資料,我們在程式內部再加入暫存器來達成需求。



此外要注意的是,針對 read buffer 這個 indicator 而言,如果儀器通訊本身是明碼,則在物件屬性上須使用 Normal 模式,如果想要查看其中的空白或是斷行符號,則需要使用 / code 模式,如果傳輸的是16進制的資料,則請使用 Hex 模式



如果除了監控通訊埠之外,也需要與其進行通訊,那麼我們就必須再加上按鈕控制 case,並且在 case 內部加上 Visa Write 的功能。同樣的 Write Buffer 的顯示模式設定記得也要同步依照需求來修正。



此時記得,該 boolean 按鈕的 Mechanical Action 記得變更為 Latch when Released,如果是在Switch when Pressed 的狀況下,那麼按鈕按下去之後就會狂送資料,可能造成通訊異常!

最後養成好習慣,當程式結束之後,再使用 Visa Close 將通訊埠關閉,避免長期被 LabVIEW 佔用。



至此,一個簡單的可讀可寫的VISA通訊程式就完成了!應該不會太難吧!

簡單的範例程式在這裡下載。