基于LabVIEW的外置串口采集控制卡的研制
前面板有如儀器的外形設計,而程序框圖就是儀器的內(nèi)部電路,是設計的核心部分。LabVIEW方便之處就是能很方便的將流程圖轉(zhuǎn)換為圖形編程語言。流程圖中的循環(huán)可以直接調(diào)用LabVIEW中的While循環(huán),順序執(zhí)行可以調(diào)用LabVIEW中Sequence Structure(順序結構),條件執(zhí)行則可以調(diào)用LabVIEW中Case Structure(選擇結構)。程序流程圖設計如圖3所示。LabVIEW所采用的是并行執(zhí)行結構,主流程圖中橫虛線上方的左右兩邊為同時執(zhí)行的兩個獨立的單元。
本次設計的圖形編程可以分為串口通訊、數(shù)據(jù)接收以及文件讀寫三個部分。
在LabVIEW中,實現(xiàn)串口通訊方式有直接調(diào)用NI公司提供的Serial系列子VI; VISA串行系列(位于Functions->All Functions->Instrument I/O->serial中);采用Active X控件來控制訪問串行口(先向LabVIEW中添加一個Active X Container控件,然后向其中添加MSComm控件)三種方式。本次設計采用了第二種方式來訪問和控制串行口,即通過調(diào)用功能模板的VISA中的Serial系列(包含VISA Configure Serial、VISA Write、VISA Read、VISA Close)來實現(xiàn)對串行口的訪問和控制。采用該方式設計的優(yōu)點是:每個函數(shù)開始接收一個端口號,結束后輸出一個其復制的端口號,這樣在設計中就不用擔心對于一個端口有遺忘或是重復的操作,從而使程序設計更加清晰。
LabVIEW中對于串行口的讀寫都是以字符為單位傳輸其ASCII碼來實現(xiàn)的,因而需將需要傳輸?shù)臄?shù)據(jù)字符轉(zhuǎn)換成對應的ASCII碼。本設計通過調(diào)用CIN (代碼接口接點)將C語言程序嵌入到整個設計中,然后采用LabVIEW與C語言混合編程來實現(xiàn)所需的功能(CIN在LabVIEW中的調(diào)用路徑為Functions→All Functions→Advanced→Code Interface Node)。
本設計中首先將采集控制系統(tǒng)的通道號和量程發(fā)送給下位機,然后程序進入到相應的數(shù)據(jù)接收處理程序。在數(shù)據(jù)接收過程中采用了數(shù)據(jù)幀方式:下位機將對應通道號、相應量程的采集結果以一幀數(shù)據(jù)為單位循環(huán)發(fā)送給PC機,PC機通過判斷幀頭來識別數(shù)據(jù),從而提高數(shù)據(jù)傳輸?shù)臏蚀_性。幀數(shù)據(jù)格式如下:
前面兩個字節(jié)數(shù)據(jù)0xAA和0xAB為幀頭標志,DATA1和DATA0為采集結果,但并非為最終的結果,它們?nèi)孕枰鄳奶幚?該處理在服務子程序中進行)。
采集到的數(shù)據(jù)要轉(zhuǎn)換為實際電壓值后,再進行顯示、存儲。本設計可以很方便的把每個實際電壓值存儲到Excel文件中,以便于查看和處理。而且在存儲的過程中可以將通道號、量程、采集數(shù)據(jù)序號信息都寫入文件,這樣,就很容易生成報表輸出。
根據(jù)流程圖設計的采集控制系統(tǒng)程序框圖如圖4所示。
系統(tǒng)測試
將采集控制系統(tǒng)硬件、軟件按要求設計好后,運行控制軟件,先對采集控制系統(tǒng)進行相應的配置,然后可以實時觀看某個通道的電壓值。調(diào)節(jié)輸入電壓,通過實時監(jiān)控界面可以觀看到輸入電壓的變化過程。程序運行結束后,可以在程序的安裝目錄下找到一個由先前配置所命名的Excel文件,打開這個文件就可以看到采集到的所有數(shù)據(jù)(包括通道號、量程、采集數(shù)據(jù)及所采集數(shù)據(jù)序號信息)。通過測試表明,采集控制系統(tǒng)操作簡單、方便,采集數(shù)據(jù)準確、價格低廉,且有熱插拔優(yōu)點。
結語
因為NI公司所提供的數(shù)據(jù)采集卡價格昂貴,對用戶來說,自主研制基于LabVIEW的采集控制卡在實際中有很大的意義,采用LabVIEW平臺來實現(xiàn),很大程度上簡化了設計,希望本文能給眾多設計者帶來新的設計概念。
評論