天天看點

使用NI-DAQmx進行資料采集和顯示,你來你也行!

ni-daqmx是national instruments現階段的資料采集驅動,ni-daqmx內建了全新的驅動架構和api,用于控制national instruments daq裝置。

本文示範如何通過ni-daqmx提供的api來控制national instruments daq裝置,實作資料采集任務。

為了友善大家學習,我們使用模拟的ni-daqmx裝置來示範。它是使用ni measurement and automation explorer(max)中的ni-daqmx模拟裝置選項建立的,其行為與真實裝置相似。某些ni-daqmx裝置無法在max中進行仿真。在許多情況下,可以模拟相似的裝置來代替無法模拟的裝置。

1)從national instruments官網www.ni.com下載下傳ni-daqmx 20.0版本軟體并安裝;安裝完畢ni-daqmx軟體驅動包,在目錄c:\users\public\documents\national instruments\ni-daq\examples\dotnet4.5下,存放ni-daqmx的常用例子,本例子項目的腳本基本上是參考這些例子編寫的。

2)運作ni max裝置管理軟體,通過裝置和接口節點,可以建立仿真裝置。本示範使用“simdev1”仿真裝置,采集電壓資料。

使用NI-DAQmx進行資料采集和顯示,你來你也行!
使用NI-DAQmx進行資料采集和顯示,你來你也行!

ni-daqmx對于microsoft .netframework平台,提供了nationalinstruments.common.dll和nationalinstruments.daqmx.dll兩個動态連結庫,作為第三方使用ni-daqmx控制national instruments daq裝置的應用程式接口。

其中nationalinstruments.common.dll動态庫位于c:\program files (x86)\national instruments\measurement studio\dotnet\v4.0\anycpu\nationalinstruments.common 19.0.40\nationalinstruments.common.dll

nationalinstruments.daqmx.dll動态庫位于c:\program files (x86)\national instruments\measurementstudiovs2012\dotnet\assemblies (64-bit)\current\nationalinstruments.daqmx.dll。

代碼架構是c#版本的。

采集項目的開發環境可以用visualstudio,ni-daqmx軟體安裝後,在目錄c:\users\public\documents\national instruments\ni-daq\examples\dotnet4.5下,存放ni-daqmx的使用例子。本文采用格西測控大師來建構,該軟體可以快速建構使用者界面,友善把采集到的資料用圖表顯示,類似labview軟體。

本例子最終的效果圖如下。

使用NI-DAQmx進行資料采集和顯示,你來你也行!

第一步,通過測控大師軟體建立項目,在項目屬性對話框中引用ni-daqmx的庫nationalinstruments.common.dll和nationalinstruments.daqmx.dll;

第二步,建立變量容器“電壓測量”,并把緩存capacity屬性設定為10000;其下建立“電壓”變量。

使用NI-DAQmx進行資料采集和顯示,你來你也行!

本例子使用者界面用到的控件:linechart(曲線圖)、tablegrid(資料表),combobox(通道清單),spineditbox(數字參數設定),button(按鈕)。

關鍵配置:

linechart:chartseries屬性(格式為“<系列名稱 1>,<x變量名>,<y變量名>;<系列名稱 2>,<x變量名>,<y變量名>;…“ ;本例子設定為:電壓曲線圖,序号,電壓)

dataprovider屬性:綁定“電壓測量”

tablegrid:dataseries屬性(格式為“<變量1名>,<列1名稱1>; <變量2名>,<列2名稱>;…“ ;本例子設定為:電壓,電壓)

datasource屬性:綁定“電壓測量”變量容器

使用NI-DAQmx進行資料采集和顯示,你來你也行!

“采集電壓畫面”設計完畢後,建立兩個事件,分别是采集電壓畫面的loaded事件和btnstart按鈕的click事件。

采集電壓畫面的loaded事件函數中初始化通道清單,btnstart按鈕的click事件函數中執行資料采集。

腳本引用ni庫的命名空間nationalinstruments和nationalinstruments.daqmx,即可直接使用動态庫中的類。

使用NI-DAQmx進行資料采集和顯示,你來你也行!

 主界面代碼:

儀器廠商都會針對自己的儀器裝置提供動态連結庫,供第三方軟體控制自家的儀器裝置,類似ni這樣的大廠更是有一整套完善的驅動庫,ni-daqmx即是ni的全新的驅動架構和api,已經能夠把複雜的底層邏輯隐藏起來,提供一組易于使用的面向對象類庫供開發者使用,讓開發者在短短的十幾行代碼即可完成資料的采集。

另外,格西測控大師軟體也是一個開放的測控軟體開發平台,該軟體能夠對測試流程進行組态,能夠自定義任意通信協定進行裝置通信,能夠開發漂亮的使用者操作界面等,比較适合用于資料采集和監控、裝置仿真、通信協定監聽和分析、通信協定一緻性測試等領域。

繼續閱讀