siemens x
工業(yè)數(shù)據(jù)中心

MATLAB數(shù)據(jù)采集工具箱

2025China.cn   2012年11月12日

前言
       MATLAB 被廣泛的使用在工程學(xué)和科學(xué)的領(lǐng)域, 從數(shù)據(jù)采集和分析到應(yīng)用程序開發(fā)。MATLAB 環(huán)境集合了數(shù)學(xué)計(jì)算, 圖形化輸出, 和強(qiáng)有力的計(jì)算機(jī)程序語(yǔ)言。內(nèi)建的接口讓使用者可以從儀器、檔案、和外部數(shù)據(jù)庫(kù)和程序中讀取數(shù)據(jù)。另外, MATLAB 應(yīng)用程序還可以整合使用其它著名的計(jì)算機(jī)語(yǔ)言所開發(fā)出來(lái)的函式庫(kù)如C 、C++ 、FORTRAN, 和Java。

 
        本文主要將會(huì)介紹MATLAB數(shù)據(jù)采集工具箱的內(nèi)部結(jié)構(gòu), 和外部的使用接口, 熟悉數(shù)據(jù)采集工具箱的使用方法將會(huì)了解如何使用同一組指令去操作各種不同硬件的數(shù)據(jù)采集卡以進(jìn)行模擬輸入(AI), 模擬輸出(AO), 數(shù)字輸出入(DIO)的各種操作. 對(duì)于MATLAB的使用者而言將是一項(xiàng)有力的工具。

何謂MATLAB數(shù)據(jù)采集工具箱(Data Acquisition Toolbox)
        數(shù)據(jù)采集工具箱是一組M-File 函式集和MEX-File 等動(dòng)態(tài)鏈接鏈接庫(kù)所組成的, 專門使用在數(shù)據(jù)采集方面的一組函式庫(kù). 它提供了以下主要的功能
       1. 以相同的指令操作 模擬輸入(AI), 模擬輸出(AO), 數(shù)字輸出入(DIO)和同步模擬輸出入轉(zhuǎn)換各式功能, 不會(huì)因不同硬件而產(chǎn)生不同的指令.
        2. 一個(gè)及時(shí)數(shù)據(jù)采集環(huán)境, 被測(cè)量的數(shù)據(jù)不需經(jīng)由轉(zhuǎn)換可直接進(jìn)入MATLAB 直接進(jìn)行分析.
        3. 支持主要的數(shù)據(jù)采集卡的廠商, 如:凌華, Agilent, ComputerBoards 和 National Instruments.
        4. 支持事件驅(qū)動(dòng)(Event-driven)的數(shù)據(jù)采集.

MATLAB數(shù)據(jù)采集工具箱的內(nèi)部結(jié)構(gòu)
        數(shù)據(jù)采集工具箱包括三個(gè)模塊分別為: M-File 函式集, 數(shù)據(jù)采集引擎(Data Acquisition Engine), 和硬件轉(zhuǎn)接驅(qū)動(dòng)程序(Hardware Driver Adaptors)。如下圖所示, 這些模塊允許使用者在MATLAB 內(nèi)和使用者的數(shù)據(jù)采集硬件之間交換數(shù)據(jù)。

圖一: 數(shù)據(jù)采集工具箱的三大模塊和數(shù)據(jù)流動(dòng)的關(guān)系

        屬性和事件是內(nèi)部溝通的方式, 數(shù)據(jù)是主要傳送的標(biāo)的, 分述如下:

屬性(Property values)
        使用者能經(jīng)由屬性的改變而改變使用者的數(shù)據(jù)采集行為, 經(jīng)由數(shù)據(jù)采集工具箱屬性的改變將會(huì)影響到硬件驅(qū)動(dòng)程序的行為, 使硬件的工作符合使用者的實(shí)際需要。

資料(Data)
        使用者能從感應(yīng)器獲取數(shù)據(jù)并存放它在MATLAB內(nèi), 或從MATLAB 輸出數(shù)據(jù)到作動(dòng)器。 此外使用者能在數(shù)字(1和0)和數(shù)字的輸出入(DIO)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換。

事件(Events)
        事件發(fā)生在當(dāng)某個(gè)特定的情況符合之后, 通常在使用者設(shè)定屬性后使用者可以指定一個(gè)或更多的回呼函數(shù)(Callback function)去處理不同的事件。使用者能使用事件的一些方式包括預(yù)先決定相當(dāng)數(shù)量的數(shù)據(jù)被采集之后立刻進(jìn)行分析, 或當(dāng)硬件驅(qū)動(dòng)程序有錯(cuò)誤發(fā)生時(shí)顯示一個(gè)錯(cuò)誤訊息到MATLAB的工作區(qū)。

開始進(jìn)行數(shù)據(jù)采集
        或許最有效學(xué)習(xí)數(shù)據(jù)采集工具箱的方式為, 連接使用者的硬設(shè)備然后開始使用數(shù)據(jù)采集工具箱實(shí)際的進(jìn)行數(shù)據(jù)采集的工作. 實(shí)際進(jìn)行如何輸入或輸出數(shù)據(jù)。這個(gè)部分提供使用者一個(gè)簡(jiǎn)單的例子說(shuō)明怎么從實(shí)際的硬件上采集數(shù)據(jù)(AI), 又如何從MATLAB中產(chǎn)生數(shù)據(jù)并輸出到實(shí)際的硬件(AO), 另一種常見的數(shù)據(jù)采集是使用數(shù)字I/O(DIO)。

         以上均為典型的數(shù)據(jù)采集范例并且會(huì)對(duì)個(gè)范例作說(shuō)明。使用者應(yīng)該記住這些步驟并修改成為自己的數(shù)據(jù)采集應(yīng)用。

         注意模擬輸入和模擬輸出范例使用一張凌華 DAQ2010的數(shù)據(jù)采集卡, 如果使用者使用一種另外支持的硬件裝置, 使用者應(yīng)該修改硬件轉(zhuǎn)接驅(qū)動(dòng)程序的名稱(Hardware Driver Adaptor Name.)和設(shè)備識(shí)別碼(Hardware Device Identifier)。

        如果使用者想要所有函數(shù)的相關(guān)說(shuō)明, 可以參考MATLAB的函數(shù)說(shuō)明。

        如果使用者想要其它的屬性相關(guān)說(shuō)明, 可以參考MATLAB的基本屬性說(shuō)明。

        如果使用者已經(jīng)安裝好凌華 DAQ2010的數(shù)據(jù)采集卡, 安裝好硬件驅(qū)動(dòng)程序. 就可在光盤中或是到凌華科技網(wǎng)站.凌華 中 尋找D2K-MTLB的DAQ2000系列的硬件轉(zhuǎn)接驅(qū)動(dòng)程序, 安裝D2K-MTLB后就算完成了準(zhǔn)備動(dòng)作.

模擬輸入(AI)范例
       這個(gè)范例將會(huì)使用數(shù)據(jù)采集工具箱對(duì)真實(shí)的數(shù)據(jù)采集卡進(jìn)行設(shè)定, 操作, 采集數(shù)據(jù), 并以圖表顯示出來(lái).,只要稍為修改設(shè)定屬性值, 即可使用在真實(shí)的應(yīng)用中.

1.宣告一個(gè)裝置對(duì)象 – 宣告一個(gè)可以代表DAQ2010的模擬輸入對(duì)象(ai)
ai = analoginput('凌華',1);

2.增加輸入信道(Add channels) – 增加一個(gè)硬件信道到ai
chan = addchannel(ai, 0);

3.設(shè)定屬性值 – 設(shè)定取樣頻率和觸發(fā)來(lái)源和條件
set(ai,'SampleRate',2000)
set(ai,'TriggerType', 'Immediate')
set(ai,'TriggerChannel', chan) %不一定要執(zhí)行此指令因?yàn)闀?huì)需要Trigger訊號(hào)
set(ai,'TriggerConditionValue', 2.0) %不一定要執(zhí)行此指令因?yàn)闀?huì)需要Trigger訊號(hào)

4.開始采集數(shù)據(jù) – 當(dāng)數(shù)據(jù)采集結(jié)束時(shí), ai會(huì)自動(dòng)停止數(shù)據(jù)采集并傳回?cái)?shù)據(jù).此時(shí)亦可使用圖表將數(shù)據(jù)顯示.
. start(ai)
data = getdata(ai);
plot(data)

 

[DividePage:NextPage]

5.清除宣告的對(duì)象變量 – 當(dāng)使用者不再需要使用ai 裝置對(duì)象變量時(shí), 使用者必需清除并釋放ai 所占用的內(nèi)存.
delete(chan)
clear chan
delete(ai)
clear ai

圖二: 數(shù)據(jù)采集模擬輸入(AI)范例的執(zhí)行結(jié)果

模擬輸出(AO)范例
        這個(gè)范例將會(huì)使用數(shù)據(jù)采集工具箱對(duì)真實(shí)的數(shù)據(jù)采集卡進(jìn)行設(shè)定, 操作, 輸出數(shù)據(jù), 并以圖表顯示準(zhǔn)備要輸出的波形.,只要稍為修改設(shè)定屬性值, 即可使用在真實(shí)的應(yīng)用中.

1.宣告一個(gè)裝置對(duì)象 – 宣告一個(gè)可以代表DAQ2010的模擬輸出對(duì)象(ao)
ao = analogoutput ('凌華',1);

2.增加輸出通道(Add channels) – 增加一個(gè)或二個(gè)硬件信道到ao
chan = addchannel(ao, 0); %或 addchannel(ao,0:1);

3.設(shè)定屬性值 – 設(shè)定更新頻率
set(ao,'SampleRate',2000)

4.開始輸出資料 – 首先先在MATLAB內(nèi)產(chǎn)生所要輸出的波形, 然后可以把波形數(shù)據(jù)寫入ao, 一次可以寫入一個(gè)通道或是寫入二個(gè)通道.
data = 10*sin(linspace(0,2*pi*10,8000)');
plot(data)
putdata(ao, data) %或 putdata(ao,[data data])

5.清除宣告的對(duì)象變量 – 當(dāng)使用者不再需要使用ao 裝置對(duì)象變量時(shí), 使用者必需清除并釋放ao 所占用的內(nèi)存.
stop(ao)
delete(chan)
clear chan
delete(ao)
clear ao

圖三: 數(shù)據(jù)模擬輸出(AO)范例的輸出波形

數(shù)字輸出入(DIO)范例
        這個(gè)范例將會(huì)使用數(shù)據(jù)采集工具箱對(duì)真實(shí)的數(shù)據(jù)采集卡進(jìn)行數(shù)字的輸出, 同時(shí)讀回那些值.

1.宣告一個(gè)裝置對(duì)象 – 宣告一個(gè)可以代表DAQ2010的數(shù)字輸出入對(duì)象(dio)
dio = digitalio ('凌華',1);

2.增加數(shù)字訊號(hào)線(Add lines) – 增加八個(gè)數(shù)字訊號(hào)線到dio, 同時(shí)將數(shù)字訊號(hào)線設(shè)定為”輸出”
addline(dio,0:7,'out');

3.讀和寫數(shù)值 – 產(chǎn)生一個(gè)數(shù)值的數(shù)組, 并將它送到dio裝置對(duì)象, 注意讀和寫數(shù)字訊號(hào)線通常不必再對(duì)其輸出入的方向重新設(shè)定.
pval = [1 1 1 1 0 1 0 1];
putvalue(dio,pval)
gval = getvalue(dio);
plot(gval)

5.清除宣告的對(duì)象變量 – 當(dāng)使用者不再需要使用dio 裝置對(duì)象變量時(shí), 使用者必需清除并釋放dio 所占用的內(nèi)存.
delete(dio)
clear dio

結(jié)論
        在此簡(jiǎn)單的介紹MATLAB數(shù)據(jù)采集工具箱的內(nèi)部結(jié)構(gòu)和使用方法,使用此種方式在MATLAB內(nèi)控制數(shù)據(jù)采集卡是最直接的方式,同時(shí)可以完全和MATLAB整合并進(jìn)行實(shí)時(shí)的數(shù)據(jù)存取和實(shí)時(shí)的分析,使用資料采集工具箱再加上一片可以在工具箱內(nèi)使用的數(shù)據(jù)采集卡是所有需要作數(shù)據(jù)采集的工程師必備的工具。

(轉(zhuǎn)載)

標(biāo)簽:MATLAB 凌華科技 數(shù)據(jù)采集工具箱 模擬輸入 模擬輸出 數(shù)字輸出入 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道