鄧紅濤,李江全,田敏
(石河子大學信息科學與技術(shù)學院,石河子832003)
近年來,數(shù)據(jù)采集技術(shù)被人們越來越廣泛的應用于現(xiàn)代工業(yè)生產(chǎn)和科學研究領(lǐng)域,但大多數(shù)據(jù)采集開發(fā)系統(tǒng)只提供C語言等開發(fā)環(huán)境,而在對采集的數(shù)據(jù)進行處理時,MATLAB因其擁有豐富的內(nèi)部函數(shù)和強大的圖形處理能力被廣泛應用于實時信號測量和圖像處理領(lǐng)域中[1]。
為了使數(shù)據(jù)采集和處理開發(fā)環(huán)境統(tǒng)一化,本系統(tǒng)設計利用MATLAB和研華數(shù)據(jù)采集卡實現(xiàn)數(shù)據(jù)采集功能,利用數(shù)據(jù)采集(DAQ)工具箱提供一個測試和測量環(huán)境,使開發(fā)人員可以完全使用 MATLAB環(huán)境來開發(fā)、模擬和獲取分析測量數(shù)據(jù),更容易將實驗測量、數(shù)據(jù)分析和可視化的應用結(jié)合在一起,簡化了系統(tǒng)的同時又提高了系統(tǒng)的穩(wěn)定性。
本系統(tǒng)在MATLAB環(huán)境下利用研華板卡進行數(shù)據(jù)采集,系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖Fig.1 Block diagram of system
系統(tǒng)需配置Matlab測量套件、數(shù)據(jù)采集板卡(即DAQ板卡)、連接電纜和端子板。構(gòu)建數(shù)據(jù)采集系統(tǒng)時使用PCL-10168電纜和PCI-1710HG板卡與ADAM-3968接線端子板連接,使PCL-10168的68個針腳和ADAM-3968的68個接線端子對應;將板卡插入計算機PCI插槽中[2]。
數(shù)據(jù)采集卡是本系統(tǒng)硬件核心部分,考慮到采樣頻率、輸入精度等技術(shù)指標,選用研華PCI-1710板卡數(shù)據(jù)采集卡。PCI-1710是12位多功能數(shù)據(jù)采集卡,具有獨特的電路設計和完善的數(shù)據(jù)采集與控制功能,內(nèi)部結(jié)構(gòu)主要有單端、差分模擬輸入通道、模擬輸出通道和觸發(fā)源連接三部分[3]。
利用研華數(shù)據(jù)采集卡能迅速、方便地構(gòu)成一個數(shù)據(jù)采集系統(tǒng),從而大大節(jié)省系統(tǒng)設計和研制時間,同時可以充分利用PC機的軟硬件資源,使開發(fā)者集中大量精力對數(shù)據(jù)處理理論和方法進行研究設計。
MATLAB在數(shù)據(jù)采集領(lǐng)域推出了DAQ(data acquisition)工具箱,把與數(shù)據(jù)采集硬件設備相關(guān)的驅(qū)動函數(shù)封裝在一起,并提供了基本的接口函數(shù)操作硬件設備,以適應越來越多的標準或非標準的測試裝備使用計算機來構(gòu)建數(shù)據(jù)采集與分析系統(tǒng)[4]。
在MATLAB中提供的數(shù)據(jù)采集工具箱中,具有一整套命令和函數(shù),調(diào)用該工具箱可以控制采集卡,完成數(shù)據(jù)采集功能,使整個數(shù)據(jù)采集程序簡單易懂。
在使用DAQ板卡時,DAQ工具箱提供了專門的適配器,將DAQ工具箱對應到每個驅(qū)動程序。安裝相應板卡的驅(qū)動程序后,在適配器列表中將顯示相應的適配器名[5]。
數(shù)據(jù)采集系統(tǒng)整體軟件流程包括創(chuàng)建接口對象、配置測量通道、配置屬性、開始測量、采集數(shù)據(jù)、停止測量并刪除對象[6]。在每個流程中,DAQ工具箱存在簡單的函數(shù)完成相應的功能。
1)創(chuàng)建接口對象。函數(shù)“analoginput”為DAQ板卡創(chuàng)建一個接口對象,使用命令ai=analoginput(‘a(chǎn)dvantech’,0)完成設置。這樣,變量“ai”就有了一個對應于研華DAQ板卡的新模擬量輸入、輸出對象。
2)配置測量通道。函數(shù)“addchannel”可用來配置有效通道。如果使用通道0,輸入命令ichan=addchannel(ai,0)。函數(shù)“addchannel”的第1個參數(shù)為AI Object,第2個參數(shù)為Channel Number。此時主語將會創(chuàng)建一個對象(稱作通道對象)。
3)配置屬性。完成創(chuàng)建AI Object和Channel Object后,需要配置這些對象以執(zhí)行正確的操作,即要配置對象和編輯與該對象有關(guān)的屬性。利用命令 get(ai)、get(ichan)配置屬性[7]。
4)開始測量。配置完屬性并開始測量后,就可以獲得所需的測量數(shù)據(jù)。使用函數(shù)“start”啟動測量。
5)數(shù)據(jù)發(fā)送與保存。數(shù)據(jù)采集用AI Object作為參數(shù)輸入命令[data,time]=getdata(ai,500),將獲取的測量數(shù)據(jù)發(fā)送到MATLAB的工作區(qū)。它有一個緩沖區(qū),用來臨時保存DAQ板卡采集的數(shù)據(jù)。
6)停止測量并刪除對象。函數(shù)“stop”用于停止測量,使用AI Object作為參數(shù)輸入命令stop(ai);測量完成后,可以通過函數(shù)“delete”刪除AI對象,使用命令delete(ai)。
經(jīng)過仿真測試,利用MATLAB中DAQ工具箱和研華板卡設計的數(shù)據(jù)采集系統(tǒng)[8],實現(xiàn)了對模擬信號和數(shù)字信號的輸入、輸出,并利用MATLAB設計圖像用戶界面。測試結(jié)果表明:該系統(tǒng)操作簡單、穩(wěn)定性高具有一定的實用性和先進性。
下面分別介紹系統(tǒng)采集模擬信號、數(shù)字信號輸入和輸出測試的結(jié)果。
設計模擬信號輸入電路,通過電位器產(chǎn)生一個模擬變化電壓(范圍是0~5V),送入板卡模擬量輸入0通道(管腳68),同時在電位器電壓輸出端接一信號指示燈,用以顯示電壓變化情況[9]。
當測量電壓小于或大于設定下限電壓值(0.5 V)或上限電壓值(3.5V)時,程序畫面中相應指示燈由綠色變?yōu)榧t色。
程序運行結(jié)果如圖2所示。
將板卡模擬量輸出(范圍0~10V)0通道(管腳58)接示波器顯示電壓變化波形,接發(fā)光二極管來顯示電壓大小變化(范圍為0~10V)。單擊“垂直滾動條”的上下箭頭,生成一間斷變化的數(shù)值(0~10),在程序畫面中產(chǎn)生一個隨之變化的曲線,同時,線路中發(fā)光二極管亮度隨之變化,在示波器中顯示程序畫面中相同波形。
程序運行結(jié)果如圖3所示。
圖2 模擬信號輸入Fig.2 The input of analog signal
圖3 模擬信號輸出Fig.3 The output of analog signal
由電氣開關(guān)和光電接近開關(guān)分別控制2個繼電器,繼電器的常開開關(guān)分別接板卡數(shù)字量輸入0通道(管腳56)和1通道(管腳22)。打開/關(guān)閉“電氣開關(guān)”,線路中DI指示燈1亮/滅,程序畫面中信號指示燈亮/滅(顏色改變);用任何反光物體遮擋/離開“光電接近開關(guān)”,線路中DI指示燈2亮/滅,程序畫面中開關(guān)計數(shù)器文本中的數(shù)字從1開始累加。
程序運行結(jié)果如圖4所示。
板卡數(shù)字量輸出1通道(管腳13)接三極管基極,當計算機輸出控制信號置13腳為高電平時,三極管導通,繼電器常開開關(guān)KR閉合,指示燈亮;當置13腳為低電平時,三極管截止,繼電器常開開關(guān)KR打開,指示燈滅。
單擊“打開指示燈”按鈕,程序畫面中指示燈顏色變?yōu)榧t色,打開次數(shù)加1;同時,線路中DO指示燈亮;單擊“關(guān)閉指示燈”按鈕,程序畫面中指示燈顏色變?yōu)榫G色,關(guān)閉次數(shù)加1;同時,線路中DO指示燈滅。
程序運行結(jié)果如圖5所示。
圖4 數(shù)字信號輸入Fig.4 The input of digital signal
圖5 數(shù)字信號輸出Fig.5 The output of digital signal
本文介紹了在MATLAB環(huán)境下利用華板卡設計數(shù)據(jù)采集系統(tǒng),該系統(tǒng)實現(xiàn)了數(shù)據(jù)采集和數(shù)據(jù)處理在相同開發(fā)環(huán)境下的運行,具有安裝方便、開發(fā)快捷、編程簡單[11]等優(yōu)點,在生產(chǎn)、生活及科研教學中都具有一定的實用性和先進性。
[1]王世香.精通MATLAB接口與編程[M].北京:電子工業(yè)出版社,2007:11-12.
[2]朱可.基于研華板卡的高速采集程序[J].中國科技財富,2009(14):96-97.
[3]楊艷華,張曉海,穆興隆.基于PLC棉種脫絨加工酸控系統(tǒng)的設計[J].石河子大學學報:自然科學版,2011,29(2):131-133.
[4]劉衛(wèi)國,陳昭平,張穎.MATLAB程序設計與應用[M].北京:高等教育出版社,2006:77-78.
[5]于鋒,侯永海.基于PCI-1714的高速數(shù)據(jù)采集系統(tǒng)方案設計[J].微計算機信息,2005:60-62.
[6]田敏,李江全.案例解說 MATLAB典型控制應用[M].北京:電子工業(yè)出版社,2010:103-105.
[7]PCI-1710Series 10/16bit Multifunction User's Manual.研華(中國)公司,2005.
[8]黃忠霖,周向明.控制系統(tǒng)MATLAB計算及仿真實訓[M].北京:國防工業(yè)出版社,2007:124-127.
[9]張因,邢彥梅,何巧.基于MATLAB數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[J].電聲技術(shù),2010,34(9):39-41.
[10]劉陽,馬蓉,曹衛(wèi)彬,等.基于ISO11783的拖拉機導航系統(tǒng)CAN節(jié)點設計[J].石河子大學學報:自然科學版,2011,29(5):641-644.
[11]王戰(zhàn)軍,沈明.基于 Matlab GUI的串口通信編程實現(xiàn)[J].現(xiàn)代電子技術(shù),2010,33(9):46-48.