張儒
【摘 要】為降低測井儀器的研發和測試成本,實現儀器的控制和數據采集,該設計是基于LabWindows/CVI的數據采集系統。通過LabWindows/CVI的交互式C語言開發平臺,設計了上位機的測試界面,實現上位機與儀器間的通訊控制和數據采集。實驗結果表明,該界面完成采集儀器數據的功能,很好地滿足了儀器調試的需要,可廣泛應用于測井領域。
【關鍵詞】LabWindows/CVI;儀器采集;界面
【Abstract】The system based on LabWindows/CVI is designed to reduce the cost of R & D and test,to realize the instrument control and data acquisition.Based on the interactive C language development platform of LabWindows/CVI,the test interface of upper computer is designed,which can realize the communication control and data acquisition between PC and instrument.The experimental results show that the interface can achieve the function of data acquisition, and it can meet the need of instrument debugging.
【Key words】LabWindows/CVI;Instrument Acquisition;Interface
1 Labwindows CVI的應用
LabWindows/CVI是NI公司推出的交互式C語言開發平臺,用于構建可靠的測試和測量方案。LabWindows/CVI將C語言平臺與數據采集分析進行有機結合,提高了生產制造效率,用于制造測試、通訊、設計驗證等領域。交互式開發平臺,具有強大的函數庫,創建數據采集和儀器控制的應用程序;利用軟件工具進行數據采集、分析和顯示;為其他程序開發C目標模塊、動態鏈接庫、C語言庫等。LabWindows/CVI是完全集成的開發環境,針對GPIB、PXI、VXI和數據采集板卡為基礎的測量系統。編程方面,主要采用事件驅動方式與回調函數方式。CVI的每個函數提供一個函數面板,進行交互式編程,減少代碼編輯和程序語法錯誤,提高了可靠性、兼容性和編程效率。
為降本增效,在測井儀器的研發測試和生產試驗階段,使用CVI軟件做上位機的測試界面。實現儀器的命令下發、數據采集、波形顯示和文件保存等功能。
2 系統界面組成
該設計用于密度儀器的測試,給儀器發送實時指令,接收儀器的數據,并對接收的數據進行計算處理、圖形顯示、數據保存等。該測試系統界面分為四個部分組成,數據接口模塊、數據處理模塊、圖形顯示模塊、文件處理模塊。如圖1所示,是該設計的整體測試框圖。
數據接口模塊,完成上位機與儀器的通訊,發送命令,接收數據。儀器與上位機之間采用RS232通訊方式。該設計中測試的儀器,數據量和數據速率均較低,RS232可滿足測試需求。USB接口是計算機外設接口的發展趨勢,在儀器與上位機之間使用RS232轉USB轉換盒,便于測試界面的使用和升級維護。
數據處理模塊,根據儀器測量原理,對接收的儀器數據進行計算處理。圖形顯示模塊,對部分測量數據進行圖形顯示,使得測試結果更加直觀。文件處理模塊,對重要的測量數據進行保存。
3 數據接口模塊
本設計采用RS232通訊方式,CVI提供的RS232函數庫包括以下函數:串口打開/關閉,串口輸入/輸出,串口控制,串口狀態查詢,串口事件處理函數。首先打開一個串口,并針對設置的參數進行配置,然后利用該串口發送和接收數據,最后在程序結束之前關閉該串口。
1)按照需要編寫軟面板,面板見圖1。通過面板上的控件輸入配置參數,包括串口號、波特率、校驗方式、數據位數、停止位數。
2)自動生成程序框架,并添加源代碼。
3)利用串口收發數據
本系統中,串口收發數據通過點擊各控件完成。發送命令時,調用發送回調函數SendCmd(short *cmd, int len);接收數據時,調用接收回調函數RcvData_Commu(int Len)
4)關閉串口
程序退出前,必須關閉串口。
4 圖表處理模塊
為使測量結果更加直觀,重要的測量信號(如采集的譜數據),用圖形控件表示。CVI中的圖形控件有三類,曲線圖控件,帶狀圖控件和數字圖控件。本設計中選用曲線圖控件,用于顯示譜數據的信號波形和計算結果。
顯示波形時,需要做數據累加處理,譜圖在累積5次后清零。本系統中的譜圖數據,采用一維數組,數據定義為totalSpecPlot_NS[256]和totalSpecPlot_FS[256]。首先把采集數據進行累加,顯示譜圖數據前,先清除原有的波形圖,即:DeleteGraphPlot(caliHandle, CALIPANEL_SPECTRUM,-1,VAL_IMMEDIATE_DRAW);然后判斷累加次數,達到累加次數后,累積的波形數據清零。最后顯示當前的累積譜圖數據,使用畫圖函數PlotY()。
本系統中需要配置和讀取儀器的參數,參數的項數比較多,適合選用Table控件。參數配置界面中,一組參數的控制和讀取用到兩個Table控件。一個Table控件用來讀取并顯示儀器的當前配置參數,是只讀模式,無法修改。讀取儀器的配置參數使用GetTableCellVal ()函數;另一個Table控件,用來設置儀器的配置參數,是可寫模式, 可以修改。設置儀器的配置參數使用SetTableCellVal()函數。
5 文件處理模塊
儀器采集到的刻度數據,需要進行計算并保存。待存儲的數據包括日期、時間、儀器信息、采集的原始譜數據、計算得到的均值和方差等信息。以下是本設計中的文件處理流程,包括存儲文件的打開,數據的寫入,文件的關閉。
1)選擇存儲文件的路徑、文件名、格式等信息,調用FileSelectPopup()函數;
2)打開要存儲的文件指針,調用OpenFile()函數;
3)獲取當前的日期,時間信息和刻度數據,寫入文件,調用WriteLine()函數;
4)待存儲數據寫入完畢后,關閉文件,調用CloseFile()函數。
6 結論
圖2所示為儀器的采集控制界面,圖2左側上半部分串口的配置界面,包括串口配置參數,儀器的配置和調試信息。圖2左側下半部分為儀器狀態信息。圖2右側下半部分是儀器的采集和測試界面,分6個Tab頁進行采集控制,為存儲信息、采集信息、通訊信息、參數配置、譜圖顯示、刻度界面。通過LabWindows/CVI測試界面,可以方便地應用CVI交互平臺與上位機組成一個完整方便的測試應用,廣泛的應用于測井儀器的研發和測試中。
【參考文獻】
[1]王建新,隋美麗.LabWindows/CVI虛擬儀器測試技術及應用[M].化學工業出版社,2011.
[2]李江全.LabWindows/CVI數據采集與串口通信典型應用實例[M].電子工業出版社,2014.
[3]孫曉云.基于LabWindows/CVI的虛擬儀器設計與應用[M].2版.電子工業出版社,2010.
[責任編輯:田吉捷]