LabVIEW VISA與串口通訊的編程實現(xiàn)
VISA是應用于儀器編程的標準I/0應用程序接口,是工業(yè)界通用的儀器驅動器標準API(應用程序接口),采用面向對象編程,具有很好的兼容性、擴展性和獨立性。用戶可用一個API控制包括VXI、GPIB及串口儀器在內的不同種類的儀器。它還支持多平臺工作、多接口控制,是一個多類型的函數(shù)庫。
在LabVIEW中編寫的VISA接口程序,當外部設備變更時,只需要更換幾個程序模塊即可使用,簡單方便而且開發(fā)效率高。
在LabVIEW 中利用VISA節(jié)點進行串行通信編程。為了方便用戶使用,LabVIEW將這些VISA節(jié)點單獨組成一個子模塊,共包含8個節(jié)點,分別實現(xiàn)初始化串口、串口寫、串口讀、中斷以及關閉串口等功能。
一、基本步驟
在LabVIEW 中,進行串口通信的基本步驟分為3步:
第一:串口初始化,利用ⅥSA Configure Serial Port.vi節(jié)點設定串口的端口號、波特率、停止位、校驗位、數(shù)據(jù)位。
第二:讀寫串口,利用VISA Read節(jié)點和VISA Write節(jié)點對串口進行讀寫。
第三:關閉串口,停止所有讀寫操作。
二、主要節(jié)點介紹
下面介紹一下VISA串口的主要節(jié)點及其功能:
1、串口配置
該節(jié)點主要用于串口的初始化,如圖1所示。
圖1 串口配置節(jié)點
VISA資源名稱:指PC的串口名,例:COMl,COM2等。
波特率:串口速率,默認為9600bps。
數(shù)據(jù)比特:一幀信息中的位數(shù),LabVIEW 中允許5~8位數(shù)據(jù),默認為8。
奇偶:奇偶校驗位,可選為無校驗、奇校驗或偶校驗,默認為無校驗。
停止位:一幀信息中的停止位的位數(shù),可選為1位、1.5位或2位。
流控制:設置傳輸機制使用的控制類型,可選為None、XON/XOFF軟件流控或RTS/CTS硬件流控,默認為None。
終止符:設置一幀數(shù)據(jù)的結束符,即當接收串口數(shù)據(jù)時,當收到終止符時,軟件自動結束一幀數(shù)據(jù)接收。
2、串口寫入
該節(jié)點主要用于寫入串口數(shù)據(jù),如圖2所示。
圖2 串口寫入節(jié)點
寫入緩沖區(qū):串口發(fā)送的內容。
3、串口讀取
該節(jié)點主要用于讀取串口中的數(shù)據(jù),如圖3所示。
圖3 串口讀取節(jié)點
字節(jié)總數(shù):要讀取的字節(jié)數(shù)量。
讀取緩沖區(qū):PC串口收到的數(shù)據(jù)。
返回數(shù):實際讀取的字節(jié)數(shù),字節(jié)總數(shù)應大于或等于返回數(shù),否則會丟數(shù)。
4、串口關閉
該節(jié)點主要用于關閉已打開的串口,釋放串口資源,以便串口被其他程序所調用,如圖4所示。
圖4 串口關閉節(jié)點
三、典型串口程序框圖
按照串口編程的3個基本步驟,圖5和圖6給出了兩個典型的串口讀寫程序框圖。圖5為讀取的字節(jié)數(shù)為固定值,圖中為4個字節(jié),如果串口中數(shù)據(jù)字節(jié)數(shù)目不等于4個字節(jié)則會出錯。圖6則是先判斷出串口中數(shù)據(jù)的字節(jié)數(shù)目,然后將其全部讀取出來。相對而言,圖6的通用性更好,但是出錯的概率也會增大,因為不知道串口發(fā)來的數(shù)據(jù)是否與我們所需要的數(shù)據(jù)的字節(jié)數(shù)相等。
圖5 典型串口讀寫程序框圖1
圖6 典型串口讀寫程序框圖2
評論