[LabVIEW程式技巧] 輕鬆使用 NI MAX 模擬 DAQ 擷取數據
<source : LabVIEW Example>
一、為什麼要使用 NI MAX 模擬硬體呢?
在說明之前,我們先了解什麼是 NI MAX 。
NI MAX是National Instruments(美商_國家儀器股份有限公司)所開發的一套管理硬體的軟體,當然也包含模擬硬體。所謂的管理硬體,即為當硬體滿足標準,也就是說能被識別,那麼NI MAX就可以讓使用者知道電腦接上哪些硬體,做進一步的操作。
所以為什麼要模擬硬體呢?舉例來說,當你已採購一具儀器,但尚未收到,而你又有急迫的專案在進行,這時候 NI MAX 就可以幫大忙了。因為 NI MAX 進行硬體模擬,非常真實,即便手邊沒有儀器,也能進行一些基本的操作,不至於嚴重延宕專案的進度。
二、使用 NI MAX 模擬硬體的步驟
步驟速覽
步驟1. 點選NI MAX中的Device and Interface按右鍵,點選"Create New"
系統會出現 NI 系列的所有硬體,可依照自己的需求選擇對應硬體。在本例中,我們選擇 NI PCI-6289。
此時系統會開始模擬,約幾秒鐘的時間,接著所選裝置就會出現以下畫面,按 "Finish" 即可。
步驟2以後的步驟為測試用,非必要。
步驟2. Self-Test
此步驟為檢視模擬裝置是否正常運作。
步驟3. Self-Calibrate
此步驟為模擬裝置進行校正。
步驟4. Test-Panels
此步驟為操作模擬裝置進行數據模擬。點選後 "Test Panels"後,會出現一個視窗,該視窗的功能即是顯示各種訊號的輸入與輸出。
舉例來說,如果你選擇 Analog Input (類比訊號輸入),模式選擇 "Finite (有限)",按下 "Start",可得到介於-10到10的數值(訊號),視窗會顯示類比訊號輸入的圖形。
其中 Mode 的設定分別有 3 種狀況,說明如下:
- Finite : 有限筆數資料
- Continuous:連續資料
- On-Demand:想趕快進行實驗有訊號產出,暫時不想去做任何參數設定。
類比訊號,每一個通道獨立,不像數位訊號會分組。
如果模式選擇 "Continuous",視窗會一直有圖形輸出,如下圖。
打開 LabVIEW範例程式 "Voltage - Finite Output",如下圖,可再調整不同參數檢視變化狀態。
接下來以 Digital I/O 為例,原則上,每張卡片有不同頻道,基本上8個為1組。此卡片有32個數位訊號,如下圖所示。
數位訊號就是會產生數字位元 0和1的訊號,也就是True和False。所謂的Input/Output(輸入/輸出)是從"電腦觀點"出發。
最後說明 Counter I/O 的功能。Counter就是計數器,計算收到脈波數量。因此,Counter I/O的功能就是接收與發送脈波數量。Counter I/O的顯示畫面請參考下圖。Pulse Train Generation 表示輸出脈波數量。
三、關於 DAQ 的程式重點摘要
DAQmx Start Task
和DAQ裝置進行連結。
DAQmx read
讀取DAQ資料。此程式方塊的使用關鍵在於資料量與頻道選擇。如果選擇1個頻道,則是要選Single Channel。讀多筆資料,則模式要選擇Single Channel, Multi Samples, Waveform(samples)
如需一次抓取多個通道,可參考說明以下文件的寫法。舉例來說,要取第0通道 到 第4通道,寫法為 "Dev1/ai0:Dev1/ai4"。
DAQmx Write
寫入資料。
以上方法也可用下列布林array轉換成數字的形式撰寫,但要注意到布林 array 最低位數字在最左邊。
DAQmx Wait Until Done
此程式方塊功能為,若輸出的資料未達設定筆數,會停在這。直到滿足條件後,才會往後做。
Logging Settings
相當於將接受到的訊號儲存起來,也就是將收到的訊號進行紀錄,要留意硬體大小,避免數據量過大而無法繼續存入。
DAQmx Stop Task
停止擷取資料。
DAQmx Clear Task
斷開與DAQ連結。
沒先下停止,就直接下清除,程式仍可以運作。實務上有人會這麼寫。
關於DAQ的各種類型訊號擷取,LabVIEW已有完整範例程式,毋須重新撰寫。
Counter
Rising Edge(上緣觸發):脈波往上加1
Falling Edge(下緣觸發):脈波向下加1
DAQmx Is Task Done vs DAQmx Wait Until Done
DAQmx Is Task Done在迴圈中使用,搭配脈波產生器。
DAQmx Wait Until Done,毋須使用迴圈,進行類比訊號輸出和數位訊號輸出之處理。
四、資料擷取的 3 種方式
(一)、面板
(二)、DAQ MAX function組合
就是用DAQ的各種功能方塊來撰寫所需功能。長時間使用下,建議使用這種方式。
(三)、LabVIEW中 DAQ Assistant
需求為迅速抓訊號,不管效率。建議使用這種方法。
0 留言