新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > NI-DAQmx和傳統(tǒng)NI-DAQ常見問題解答

NI-DAQmx和傳統(tǒng)NI-DAQ常見問題解答

作者: 時間:2005-04-06 來源:網(wǎng)絡(luò) 收藏


本文檔回答了關(guān)于mx和傳統(tǒng)的一些常見問題。所有問題按照邏輯性分為如下四類:
目錄
mx描述
引入的概念
工作性能
從傳統(tǒng)NI-DAQ到NI-DAQmx的升級

NI-DAQmx描述

問:為什么軟件對于數(shù)據(jù)采集應(yīng)用如此重要?

答:功能靈活且強大的軟件是所有虛擬儀器系統(tǒng)的核心。

讓我們先仔細看一下虛擬儀器軟件的組成。大多數(shù)人首先想到的就是應(yīng)用程序?qū)樱褪侵饕拈_發(fā)環(huán)境。它包括諸如LabVIEW、LabWindows/CVI(ANSIC)和MeasurementStudio(VisualStudio編程語言)之類的軟件。測試執(zhí)行層結(jié)合了應(yīng)用程序?qū)铀_發(fā)的功能。接下去一層通常很容易被忽視,但它對于軟件開發(fā)效率來說卻是至關(guān)重要的。測量和控制服務(wù)層包括與硬件通信的驅(qū)動程序。測量和控制服務(wù)必須能訪問并發(fā)揮硬件功能和性能,它們也必須與所有其他的驅(qū)動和已成為解決方案一部分的眾多模塊化I/O協(xié)同工作。


圖1.虛擬儀器軟件

本文引用地址:http://m.butianyuan.cn/article/196099.htm



問:什么是測量服務(wù)軟件?

答:可以把測量服務(wù)軟件看作I/O驅(qū)動軟件層,然而,它不僅僅只是一個驅(qū)動。

測量服務(wù)是快速的應(yīng)用程序開發(fā)中最為重要的部分之一。這個軟件提供了虛擬儀器軟件和硬件之間的連通性以用于測量和控制。直觀的應(yīng)用程序編程接口(API)、儀器驅(qū)動、配置工具、快速I/O助手和其他包含在所購買的NI硬件中的軟件是它的特色。NI測量和控制服務(wù)軟件提供了與NI硬件以及NI應(yīng)用程序開發(fā)環(huán)境(ADE)的最優(yōu)化結(jié)合。

表1.NI-DAQmx包含了高性能的驅(qū)動和附加軟件來提高系統(tǒng)開發(fā)效率


NI測量自動化瀏覽器(MAX)和DAQAssistant(DAQ助手)是NI-DAQmx測量服務(wù)軟件(大部分NI數(shù)據(jù)采集設(shè)備都附帶該軟件)體現(xiàn)它無限價值的其中兩個例子。此外,NI還在M系列和USBDAQ設(shè)備以及其他許多設(shè)備上附送了免費的數(shù)據(jù)記錄軟件。

諸如MAX之類的配置工具所包含的特性能夠用來配置和測試I/O,以及存儲標定、校準和通道別名信息。這些工具對于以更短的時間完成首次測量、維護測試系統(tǒng)和解決測試系統(tǒng)故障是十分重要的。

I/OAssistant(I/O助手)是一個交互式工具,用來快速創(chuàng)建測量應(yīng)用程序。DAQ助手就是其中一個這樣的I/O助手,如圖2所示。它提供了一個面板,您可在上面輕松配置常用的DAQ參數(shù),而無需任何編程工作。您可以在任何NIADE中使用由它生成的DAQ任務(wù)。易于使用的助手和強大編程環(huán)境的結(jié)合提供了快速的開發(fā)和可滿足廣泛應(yīng)用需求的能力。


圖2.NI-DAQmx里提供的DAQ助手簡化了DAQ任務(wù)的創(chuàng)建


問:為什么NI推出了NI-DAQmx?為什么不繼續(xù)開發(fā)傳統(tǒng)NI-DAQ?

答:NI在20世紀90年代首次發(fā)布了傳統(tǒng)NI-DAQ驅(qū)動。傳統(tǒng)NI-DAQ通過提供對各種設(shè)備的擴展功能對已有的DAQ庫進行了許多改進,這些改進包括雙緩沖采集、對特定傳感器類型提供內(nèi)置標度,例如熱電偶和應(yīng)變計、信號調(diào)理、以及一個單一的且可與多種設(shè)備和操作系統(tǒng)(OS)協(xié)同工作的函數(shù)庫。

在90年代后期,NI-DAQ團隊意識到保持API與以前版本的兼容性的這個要求增加了向傳統(tǒng)NI-DAQ添加新特性和設(shè)備的難度。此外,在長期的發(fā)展過程中,傳統(tǒng)NI-DAQ的API產(chǎn)生了許多需要解決的問題。NI-DAQ開發(fā)者難以直觀地擴展API而且難以優(yōu)化不斷增長的客戶應(yīng)用范圍。因此NI認為一個全新的API設(shè)計和體系結(jié)構(gòu)可以幫助NI-DAQ開發(fā)者更輕松地添加新特性和新設(shè)備,解決許多現(xiàn)有的驅(qū)動問題,并且同時可以優(yōu)化性能。

NI-DAQmx項目的一些宏偉目標包括:
1.更輕松地往DAQAPI中添加新特性。傳統(tǒng)NI-DAQAPI的許多函數(shù)都有大量的參數(shù)而且沒有有效的方式可以添加新參數(shù)。相比而言,NI-DAQmxAPI通過一個豐富的屬性層次來使用基于屬性的方法。這種方法易于擴展。通常,添加一個新特性與添加一個新屬性一樣輕松。
2.更輕松地添加新設(shè)備。如果不對現(xiàn)有的功能進行改動,NI就難以向傳統(tǒng)NI-DAQ添加更多的設(shè)備,而改動往往會導(dǎo)致一些漏洞。尋找并解決意外的漏洞花費了太多的時間來發(fā)布每一個版本。相比而言,NI-DAQmx使用了作為組件的插入式設(shè)計,使得添加新設(shè)備更加便利。
3.更有效的多線程數(shù)據(jù)采集。傳統(tǒng)NI-DAQ最初是為不具備多線程功能的舊版本操作系統(tǒng)而設(shè)計的。為了在多線程操作系統(tǒng)下安全地運行,傳統(tǒng)NI-DAQ將存取操作限制在每次一個線程。對于那些需要同時完成兩個或更多DAQ任務(wù)的應(yīng)用來說,這種限制就引起了問題因為兩個任務(wù)不能同時訪問驅(qū)動器。NI-DAQmx使用多線程設(shè)計解決了這個問題,這樣多線程就可以同時訪問驅(qū)動器。
4.提高數(shù)據(jù)采集性能,尤其是單點性能。一些使用傳統(tǒng)NI-DAQ的應(yīng)用經(jīng)歷過拙劣的軟件定時單點性能,因為它們不斷地在主循環(huán)里執(zhí)行代價高昂的操作,例如驗證配置(檢驗)、保留資源(保留)和對硬件編程(實施)。傳統(tǒng)NI-DAQ并沒有對何時執(zhí)行檢驗、保留和實施操作給予足夠的應(yīng)用程序控制,因此用戶不能重寫這些應(yīng)用程序以更快地運行。NI-DAQmx利用一個基于已定義狀態(tài)模型的設(shè)計提高了性能。NI-DAQmx給用戶提供了高級的API功能,例如檢驗、保留和實施。因此,用戶對于在何時執(zhí)行這些代價高昂的操作擁有更多的控制能力。
5.提高驅(qū)動性能和可靠性。NI-DAQmx專門設(shè)計成具有世界一流的數(shù)據(jù)采集性能和穩(wěn)定性。自NI-DAQmx開發(fā)伊始,用戶每次添加一個新特性或者對驅(qū)動進行一次改變,一個嚴格且完備的功能和性能自動測試包就會檢驗這個改變是否引入了漏洞。這個測試包對應(yīng)用于各種設(shè)備、傳感器和操作系統(tǒng)配置中的常見和不常見的驅(qū)動進行測試。不常見或例外的驅(qū)動應(yīng)用對于整體的可靠性十分重要。NI-DAQmx設(shè)計成能夠處理異常的情形,例如DAQ任務(wù)中止、看門狗定時器終止和意外設(shè)備刪除(如從計算機中拔出USB設(shè)備)。
6.更輕松地進行數(shù)據(jù)采集。在90年代中期,NI-DAQ團隊往傳統(tǒng)NI-DAQ中添加了EasyI/O和中間I/O層,從而使得通常的DAQ任務(wù)更加輕松。然而,這種方法卻引起了一些問題,因為一旦用戶需要給應(yīng)用程序添加更多高級的特性,他們就不得不使用更高級的API來重寫應(yīng)用程序。NI-DAQmx通過以下方式使得開發(fā)應(yīng)用程序更輕松:
配置工具如DAQ助手。利用DAQ助手,用戶可以圖形化地選擇他們希望進行測量的類型,保存配置以供以后使用,而且生成代碼以包含在應(yīng)用程序中。
高級NI-DAQmx路由特性。這些特性簡化了DAQ設(shè)備的觸發(fā)和同步。
在NI-DAQmx里報告并描述錯誤。這一特性幫助用戶精確地確定錯誤的原因并推薦解決方案。用戶認為NI-DAQmx里的高級錯誤報告功能使得調(diào)試DAQ應(yīng)用程序更加輕松。
從LabVIEW7開始的易用特性。LabVIEW7引入的新特性,尤其是應(yīng)用于NI-DAQmx之中的新特性,包含了創(chuàng)建ExpressVI和多態(tài)VI的能力。利用ExpressVI,用戶可以使用一個簡單的配置對話框來代替一個復(fù)雜DAQ的絕大部分。利用多態(tài)VI,用戶可以更輕松地找到特性。由于這兩方面的特性,用戶可以用更少的時間開發(fā)出應(yīng)用程序。

圖3.多態(tài)VI簡化了NI-DAQmxAPI


問:NI-DAQmx支持哪些硬件?不支持哪些硬件?

答:作為最新的NI測量服務(wù)軟件,NI-DAQmx支持最新的NIDAQ硬件,包括M系列插入式DAQ設(shè)備,一些最新的USBDAQ設(shè)備,以及數(shù)以百計傳統(tǒng)NI-DAQ所支持的DAQ設(shè)備。

雖然NI-DAQmx支持許多最新的NIDAQ硬件設(shè)備,NI-DAQmx并不支持所有的NIDAQ設(shè)備。例如,傳統(tǒng)DAQ設(shè)備,如使用ISA總線(用于臺式計算機)的設(shè)備,他們僅受傳統(tǒng)NI-DAQ的支持。

欲想了解當前NI-DAQmx所支持的設(shè)備列表,請訪問ni.com/dataacquisition/software并單擊DeviceSupport(所支持的設(shè)備),或者參看包含于NI-DAQmx之中NI-DAQmxReadme文件。


問:為什么有些DAQ設(shè)備僅受NI-DAQmx支持?

答:諸如M系列DAQ之類的設(shè)備是最新的、最好的DAQ硬件。M系列設(shè)備是市場上第一款18位插入式DAQ設(shè)備,第一款擁有最大數(shù)據(jù)吞吐量達六個DMA通道的插入式DAQ設(shè)備,并且具有創(chuàng)新的設(shè)備校準。這些設(shè)備只受NI-DAQmx支持,而不受傳統(tǒng)NI-DAQ支持。

將來新的NIDAQ設(shè)備也將只受NI-DAQmx支持,而受傳統(tǒng)NI-DAQ支持。NI工程師致力于NI-DAQmx的效率和性能,而不是使用資源來開發(fā)傳統(tǒng)驅(qū)動軟件。


問:我可以將NI-DAQmx與哪些編程語言共同使用?

答:您可以將NI-DAQmx用于各種不同的編程語言,它們包括:
NILabVIEW
ANSIC
MicrosoftVisualC++類庫(NIMeasurementStudio7或更高版本)
MicrosoftVisualC++
MicrosoftC#.NET
MicrosoftVisualBasic.NET
MicrosoftVisualBasic(Beta版)

欲想了解更多關(guān)于使用NI-DAQmx和基于文本語言編程的信息,請訪問NI-DAQ用于文本語言編程語言和NI-DAQReadme文件。


問:我可以將NI-DAQmx與哪些應(yīng)用程序開發(fā)環(huán)境結(jié)合使用?

答:NI-DAQmx可以與許多最流行的ADE協(xié)同工作。一旦安裝了NI-DAQmx,您可以選擇安裝對各種ADE的支持,包括:
NILabVIEW7或更高
NILabVIEWReal-Time7.1或更高
NILabWindows/CVI7或更高
.NET語言
NIMeasurementStudio,支持VisualC++.NET(需要MeasurementStudio7或更高)
MicrosoftVisualC支持
為了安裝對這些ADE的支持,請在安裝NI-DAQmx時選擇合適的支持。在您第一次安裝NI-DAQmx時,在特性樹上將NI-DAQmx選項展開,然后,選擇您希望使用的API來安裝合適的支持。


圖4.NI-DAQmx提供不同API用于各種ADE

如果你已經(jīng)安裝了NI-DAQmx并且希望改變你的選擇,運行添加/刪除程序。選擇NI軟件入口并單擊Change。然后,在已安裝到您機器上的NI軟件列表上選擇NI-DAQmx。單擊Modify以啟動NI-DAQmx安裝程序,在這里您可以指定API支持選項。


問:NI-DAQmx是否適用于Linux?MacOSX操作系統(tǒng)?

答:NI-DAQmx只適用于那些為MicrosoftWindows開發(fā)應(yīng)用程序并應(yīng)用的用戶。NI目前沒有計劃將NI-DAQmx擴展到Linux和MACOSX。然而,近來這些平臺在科學(xué)和工程計算領(lǐng)域的應(yīng)用有所增長,為滿足這些需求,NI已經(jīng)開發(fā)了NI-DAQmxBASE。

NI-DAQmxBASE將NI-DAQmx功能的一個子集提供給Windows、Linux、MacOSX和PocketPC操作系統(tǒng),并且支持大部分最流行的NIDAQ設(shè)備,包括新的低成本USBDAQ產(chǎn)品。

請訪問ni.com/linux和ni.com/mac以獲得為Linux和MacOSX提供的最新NI產(chǎn)品。


問:NI會繼續(xù)傳統(tǒng)NI-DAQ的開發(fā)嗎?

答:NI沒有計劃繼續(xù)開發(fā)傳統(tǒng)NI-DAQ。但是,為了維持現(xiàn)有的應(yīng)用程序,NI會繼續(xù)提供傳統(tǒng)NI-DAQ并繼續(xù)提供它的技術(shù)支持。

問:NI-DAQmx與NI-DAQmxBase有何不同?

答:比較這些軟件工具的最好方式是在ni.com/dataacquisition/software上使用驅(qū)動程序比較圖。這兒提到的是其中一些不同之處。

雖然NI-DAQmx和NI-DAQmxBASE具有相似的API,但是這兩種API具有完全不同的體系結(jié)構(gòu)。NI-DAQmxBase是使用NI工具――NI測量硬件驅(qū)動開發(fā)包(DDK)寫成的,這個工具用寄存器級編程的方式來定制開發(fā)驅(qū)動。這種方式的一個好處是NI-DAQmxBase是開放的源代碼。這使得您可以打開子VI(subVI),并在LabVIEW里觀察/編輯寄存器存取情況,以及添加或修改功能。

NI-DAQmxBASE沒有NI-DAQmx中所包含的一些軟件特性。只有NI-DAQmx才有的一些特性包括:
DAQ助手
用于高級DAQ任務(wù)的屬性節(jié)點
多線程I/O性能

問:在什么情況下不應(yīng)選擇使用NI-DAQmx進行開發(fā)呢?

答:盡管NI鼓勵您將NI-DAQmx的優(yōu)點充分利用到您的應(yīng)用程序中,但是在有些情況下使用NI-DAQmx是不夠理想的。

若下列情形之一存在,請安裝并使用傳統(tǒng)NI-DAQ:
您有一臺NI-DAQmx不支持的設(shè)備,例如一個AT(用于ISA接口)E系列多功能DAQ卡。
您用的LabVIEW、LabWindows/CVI或MeasurementStudio版本在7.0之前。
您正在使用VisualBasic6。
您要從NI-DAQ6.9.x版本升級并且存在您不愿意與NI-DAQmx相連接的應(yīng)用程序。
如果下列情形之一存在,請安裝并使用NI-DAQmxBase:
您正在開發(fā)應(yīng)用于Linux、MacOSX或PocketPC之上的應(yīng)用程序。
YouhaveaUSBDAQdevicesupportedonlybyNI-DAQmxBase.
您有一個僅受NI-DAQmxBase支持的USBDAQ設(shè)備。
如果下列情形之一存在,請安裝并使用使用MeasurementHardwareDDK:
您正在使用寄存器級編程來開發(fā)一個自定義的驅(qū)動程序。

欲想得到更多幫助來決定哪一種驅(qū)動軟件適合您,請使用ni.com/dataacquisition/software上的設(shè)備支持表和驅(qū)動軟件比較圖以及NI-DAQReadme文件。


問:我怎樣得到NI-DAQmx?

答:從NI購買NI-DAQmx支持所支持的硬件產(chǎn)品的話,其中會附有一張NI-DAQ光盤,它包含了最新版本的NI-DAQmx。

您可以訪問通過瀏覽ni.com/china/daq免費下載最新版NI-DAQmx軟件。



NI-DAQmx引入的概念

問:什么是DAQ助手?
答:DAQ助手是一個基于步驟的向?qū)?,它可以使您無需編程即可配置數(shù)據(jù)采集任務(wù)、虛擬通道以及實現(xiàn)縮放操作。您可以從NI應(yīng)用軟件中啟動DAQ助手,例如LabVIEW、LabWindows/CVI、MeasurementStudio、VILogger或MAX。

圖5.DAQ助手支持NI所有的ADE

注意:您必須使用LabVIEW、LabWindows/CVI和MeasurementStudio的7.X版本或更新版本,以及VILogger的2.X版本才能使用DAQ助手。

您也可以使用DAQ助手來生成NI-DAQmx代碼,運行您的任務(wù)和全局虛擬通道,或者把它們轉(zhuǎn)移到其他的系統(tǒng)。

利用DAQ助手,您可以:
創(chuàng)建和編輯任務(wù)和虛擬通道
添加虛擬通道至任務(wù)
創(chuàng)建并編輯量程
測試您的配置
保存您的配置
在您的NI應(yīng)用軟件中生成代碼以在您的應(yīng)用程序中使用
觀察您的傳感器的連接圖

問:為什么我要使用DAQ助手而不使用NI-DAQmxAPI?

答:DAQ助手建立在NI-DAQmxAPI之上,并且可以作為一個配置工具和學(xué)習工具來加快您在新的NI-DAQmxAPI上的學(xué)習速度。

在配置之后,LabVIEW里的DAQ助手ExpressVI包含了所有必需的API代碼來運行您的配置任務(wù),但是它隱藏于程序框圖之中。如果您希望在您配置中觀察或修改API功能而不是使用DAQ助手對話框,DAQ助手也提供了了代碼生成功能,可以用于LabVIEW、LabWindows/CVI和MeasurementStudio應(yīng)用程序。


問:什么是NI-DAQmx任務(wù)?

答:NI-DAQmx任務(wù)是具有定時、觸發(fā)和其他特性的一個或多個虛擬通道的集合。概念上,一個任務(wù)代表了您希望完成的測量或信號產(chǎn)生任務(wù)。您可以建立和保存任務(wù)中的配置信息,并在應(yīng)用程序中使用任務(wù)。

問:NI-DAQmx里的局部虛擬通道和全局虛擬通道有什么區(qū)別?

答:在NI-DAQmx中,您可以將虛擬通道配置成任務(wù)的一部分或者與任務(wù)分離。創(chuàng)建于任務(wù)內(nèi)部的虛擬通道是局部虛擬通道。定義在任務(wù)外部的虛擬通道是全局虛擬通道。

您可以在MAX或您的應(yīng)用軟件中創(chuàng)建全局虛擬通道然后將它們保存在MAX中。您也可以在任意的應(yīng)用程序中使用全局虛擬通道或把它們添加到許多不同的任務(wù)中。如果您修改了一個全局虛擬通道,這個改變將會影響所有引用該全局虛擬通道的任務(wù)。


問:什么時候我應(yīng)該使用一個任務(wù)而不是一個全局虛擬通道?

答:當一個任務(wù)是具有定時、觸發(fā)和其他特性的一個或多個虛擬通道的集合時。

一個全局虛擬通道只引用了一個物理通道,而且沒有包含定時或觸發(fā)功能。但是,全局虛擬通道可以被許多任務(wù)包含和引用,而一個任務(wù)是一個獨立的實體,它不能被其他任務(wù)包含或引用。


問:我能可編程地使用NI-DAQmx保存虛擬通道嗎?

答:利用NI-DAQ7.4或更新的版本,您可以可編程地創(chuàng)建并保存任務(wù)、全局虛擬通道和量程。這種編程方式保存的對象會出現(xiàn)在MAX里,您可以在DAQ助手和應(yīng)用程序中使用它們。

可編程地保存任務(wù)、通道和量程簡化了系統(tǒng)配置和多種場合的應(yīng)用,并且減少了發(fā)生錯誤的可能性和調(diào)試的需要。

欲想了解更多關(guān)于如何使用此特性以及觀看例程,請訪問http://ni.com/dataacquisition/nidaqmx.。


問:我該如何導(dǎo)入/導(dǎo)出設(shè)備、任務(wù)、通道和縮放配置?

答:使用MAN,您可以導(dǎo)出您系統(tǒng)的配置以作為備份或應(yīng)用至其他機器。

使用導(dǎo)出向?qū)Э蓮南到y(tǒng)復(fù)制配置數(shù)據(jù)至一個文件。要啟動這個導(dǎo)出向?qū)?,請在MAX中選擇File?Export


問:什么是屬性節(jié)點?

答:屬性節(jié)點是您可以使用的LabVIEW結(jié)構(gòu),它可以用來在引用的對象上訪問屬性。NI-DAQmx使用這些結(jié)構(gòu)來對所有NI-DAQmxAPI支持的屬性提供完備的編程控制,并且這些屬性節(jié)點形成了API的基本功能。

除了屬性節(jié)點之外,NI-DAQmx也提供了一套NI-DAQmxVI,從而您可以用來編寫程序。這些VI在功能上與使用屬性節(jié)點等價,但是通常更容易且更便于使用。例如,下面的兩個例子在功能上是等價的,然而,第一個例子使用了NI-DAQmx,而另一個例子使用了NI-DAQmx屬性節(jié)點。

圖6.使用NI-DAQmx屬性節(jié)點實現(xiàn)高級的自定義任務(wù)

對于大多數(shù)應(yīng)用程序,NI-DAQmxVI提供了所需的功能。然而,對于更高級的應(yīng)用程序,您可能需要屬性節(jié)點來得到較少使用的驅(qū)動屬性和特性。


問:我應(yīng)該怎樣過濾屬性節(jié)點列表?

答:當您第一次打開并瀏覽一個屬性節(jié)點時,屬性列表的顯示也許會看起來令人難受。為了更容易地瀏覽這些列表,可以通過如下所示的對話窗口來利用一些過濾屬性。



要進入該對話框,右擊屬性節(jié)點并單擊SelectFilter即可。ShowAllAttributes顯示了所有NI-DAQmxAPI所支持的屬性。ShowAttributesForConfiguredDevices顯示了所有當前已安裝并配置在您系統(tǒng)中的設(shè)備所支持的屬性。使用ShowAttributesForSelectedDevices選擇您需要為之顯示屬性的已安裝設(shè)備。

除了過濾選項之外,您也可以通過LabVIEW幫助查看一個完整的設(shè)備屬性列表。為找到這個列表,單擊菜單欄的Help,并從幫助窗口所顯示的目錄表中選擇VI、FunctionHow-ToHelp。然后瀏覽至VIandFunctionReference?NIMeasurementsVIsandFunctions?DAQmxCDataAcquisitionVisandFunctions?AdditionalInformation?DeviceConsiderations?SupportedPropertiesbyDevice。


問:什么是NI-DAQmx仿真設(shè)備?

答:利用NI-DAQmx7.4版本和更新版本,您可以創(chuàng)建NI-DAQmx仿真設(shè)備。您可以選擇任意NI-DAQmx所支持的設(shè)備并且作為一個仿真設(shè)備在MAX里添加到您的硬件配置中。這使得設(shè)備通過應(yīng)用軟件即可使用。

NI-DAQmx仿真設(shè)備十分有用,可用來創(chuàng)建和運行NI-DAQmx程序,而且無需任何物理硬件的存在即可試驗諸如DAQ助手或SignalExpress之類的工具。NI-DAQmx仿真設(shè)備在沒有真實物理硬件的時候發(fā)掘設(shè)備性能也是十分有用的。

檢驗使用NI-DAQmx仿真設(shè)備的任務(wù),就如同它們運行在真實設(shè)備之上。如果某個屬性被置為無效值,返回給仿真設(shè)備的錯誤與返回給真實設(shè)備的錯誤是相同的。所有任務(wù)需要的資源都為NI-DAQmx仿真設(shè)備而保存。RTSI線、PXI觸發(fā)線、DMA通道、計數(shù)器等等都如同它們在真實設(shè)備上一樣被計數(shù)和保存。


性能

問:NI-DAQmx提供了哪些性能的提高?

答:在用戶應(yīng)用程序中的DAQ性能是許多因素的綜合,包括采樣率、總線速度、驅(qū)動性能、分析以及其他操作。在許多應(yīng)用中,NI-DAQmx都可以提高應(yīng)用程序在傳統(tǒng)DAQ上的性能,因為驅(qū)動體系結(jié)構(gòu)的改進包括以下幾個方面:
1.多線程操作。利用NI-DAQmx,由于在執(zhí)行不同的NI-DAQmx任務(wù)之時,多個線程可以同時存取NI-DAQmx驅(qū)動,因此如果您使用LabVIEW或者多線程C程序,性能就能得到提高。多個線程存取驅(qū)動的能力去除了DAQ應(yīng)用程序的瓶頸障礙,并且可以在一些情況下極大地提高性能。多線程操作使得那些執(zhí)行多任務(wù)和一次讀或?qū)懚鄠€采樣的應(yīng)用性能提高尤其明顯。
2.對諸多繁瑣的數(shù)據(jù)采集操作任務(wù)的更好的控制。利用NI-DAQmx,您可以更好地控制各種驅(qū)動操作,如檢查配置(檢驗)、保存資源(保存)和對硬件編程(實施),而以往這些操作會成為一些應(yīng)用程序開發(fā)的瓶頸。利用NI-DAQmx,您可以開發(fā)一個在主DAQ循環(huán)之外進行檢驗、保存或?qū)嵤┤蝿?wù)的應(yīng)用程序,從而驅(qū)動不再需要重復(fù)地執(zhí)行這些操作。
3.內(nèi)置的硬件定時單點操作。NI-DAQmx7.2版本引入了對需要執(zhí)行硬件定時單點數(shù)據(jù)采集的應(yīng)用程序的內(nèi)置支持。與傳統(tǒng)NI-DAQ相比,這種新的內(nèi)置模式具有許多優(yōu)勢,包括更好的單點任務(wù)(使用多通道)性能。
NI-DAQmx團隊一直致力于改進NI-DAQmx的性能。


問:為什么NI-DAQmxCPU使用率達100%?

答:一些用戶已經(jīng)注意到他們的DAQ處理使CPU使用率達到了100%。使用NI-DAQmx7.3版本或更早的版本,在應(yīng)用程序執(zhí)行一個讀或?qū)懻{(diào)用之中時,這種情況是可能發(fā)生的。通常,過度的CPU使用在運行其他的應(yīng)用程序時不成問題,但是對于筆記本,NI-DAQmx會消耗電池電量并且引起CPU風扇啟動。

由于NI-DAQmx7.3版本或更早的版本在一個讀或?qū)懖僮鲿r會等待新的數(shù)據(jù)的到來,因此100%的CPU使用率就會發(fā)生。在等待新的數(shù)據(jù)到來時,如果在一個讀操作中數(shù)據(jù)仍然不可得,NI-DAQmx7.3版本就會轉(zhuǎn)向其他的處理。如果另外一個處理需要使用CPU,NI-DAQmx就會與那個處理共享CPU。然而,如果沒有其他的處理或任務(wù)需要使用CPU,NI-DAQmx繼續(xù)等待新數(shù)據(jù)的到來。如果計算機僅執(zhí)行數(shù)據(jù)采集,那么這種解決方案提供了非常優(yōu)異的性能,在與其他應(yīng)用程序共享CPU時則提供了較好的性能。然而,副作用卻是在沒有其他應(yīng)用程序運行時NI-DAQmx占用了100%的CPU的使用率。

這一問題的最好解決方案就是使用最近發(fā)布的NI-DAQmx,如NI-DAQmx7.4。NI-DAQmx7.4改變了緩沖式讀寫操作的默認等待模式。當需要輪詢時,NI-DAQmx在繼續(xù)讀或?qū)懖僮髦皶菝咭恍《螘r間(1ms)。與以前版本的NI-DAQmx相比,這一改變對于大部分應(yīng)用程序的性能幾乎沒有影響。然而,其他NI-DAQmx7.4版本的讀寫改進和優(yōu)化不僅僅只是彌補了可能的性能損失。應(yīng)用程序升級至NI-DAQmx7.4既可以改進性能也可以減少CPU使用率。

如果您需要對NI-DAQmx7.4等待數(shù)據(jù)的方式進行更多的控制,您可以選擇一個不同的休眠時間或者將讀等待模式改變成輪詢或出讓。使用出讓模式會造成與NI-DAQmx7.3相似的行為。使用輪詢方式會造成最大的吞吐量但是在同時運行其他應(yīng)用程序的情況下并不合適。


問:單點I/O性能有沒有改進?

答:與傳統(tǒng)NI-DAQ(Legacy)相比,NI-DAQmx幾乎在各個情形下都提供了更好的單點I/O性能。然而,也有些情形下,傳統(tǒng)NI-DAQ(Legacy)提供了更好的性能。

值得一提的是,NI-DAQmx為以下應(yīng)用提供了更好的單點性能:
1.用于模擬和計數(shù)通道的軟件定時讀和寫
2.包含多通道的軟件或硬件定時讀或?qū)?

傳統(tǒng)NI-DAQ為以下應(yīng)用提供了更好的性能:
1.使用數(shù)字通道讀或?qū)?
2.用于僅有一個輸入和輸出通道應(yīng)用程序的硬件定時單點

注意:傳統(tǒng)NI-DAQ用戶可能不熟悉硬件定時單點。具體而言,這些應(yīng)用程序使用硬件定時、大小為零的緩存并且每次讀或?qū)懸粋€采樣。


有時候,傳統(tǒng)NI-DAQ會更快,因為NI-DAQmx比傳統(tǒng)NI-DAQ提供了更多的功能。例如,您可以任意將線和端口與NI-DAQmx數(shù)字通道連接。支持多線程和處理異常情況,如意外設(shè)備刪除等,這些都會添加一些額外開支。

許多DAQ應(yīng)用程序需要絕對最佳的性能,NI-DAQmx團隊也一直致力于開發(fā)可以改進驅(qū)動性能的新特性。


問:狀態(tài)機是如何幫助改進NI-DAQmx的性能的?

答:NI-DAQmx任務(wù)狀態(tài)機能跟蹤保存在數(shù)據(jù)采集或生成可以開始之前您所需要完成的配置操作。配置操作包括檢查配置(檢驗)、保存資源(保存)以及對硬件編程(實施)。

NI-DAQmx使用狀態(tài)機來確保代價高昂的操作如任務(wù)檢驗、資源保存及硬件編程僅在需要時執(zhí)行。當在主采集或信號生成循環(huán)外執(zhí)行顯示配置操作時,一個DAQ應(yīng)用程序可從改進的性能中受益。NI-DAQmx提供了顯示命令,可以引起一個將要執(zhí)行的檢驗、保存或?qū)嵤.斠粋€任務(wù)顯示地在采集或生成循環(huán)外檢驗、保存、實施或開始時,NI-DAQmx并不在每個循環(huán)重復(fù)這些操作。因此從總體上來說,應(yīng)用程序運行得更快。


欲想了解更多關(guān)于每個NI-DAQmx狀態(tài)的信息,請參閱NI-DAQmx幫助文檔。


問:什么是限制流盤性能的主要因素?
.
答:磁盤I/O帶寬、CPU帶寬和總線帶寬。

磁盤I/O帶寬

典型的使用IDE驅(qū)動的系統(tǒng)主要被磁盤的吞吐量所限制。

潛在的改進包括添加一個用于流的專用驅(qū)動器或控制器。一個專用的驅(qū)動器避免了因碎片和操作系統(tǒng)或其他應(yīng)用程序存取磁盤而引起的性能問題。高速的驅(qū)動器和高速的RAID控制器提高了磁盤I/O帶寬。

注意:在添置驅(qū)動器和控制器之前請檢查CPU帶寬和總線帶寬以防止增加的磁盤I/O超出了您事實上可以使用的范圍。

CPU帶寬
對于原始數(shù)據(jù),處理器帶寬通常只在高速RAID控制器已安裝的系統(tǒng)中影響性能。在這些系統(tǒng)中,CPU可以影響您如何快速地得到所需的數(shù)據(jù)并把它寫入磁盤驅(qū)動器。甚至利用一個專用的RAID控制器,CPU帶寬的一部分也在將數(shù)據(jù)寫入磁盤時被消耗。對于經(jīng)標度的數(shù)據(jù),處理器帶寬通常是限制因素。

增加系統(tǒng)中CPU的數(shù)量和CPU的速度提高了系統(tǒng)的帶寬。

甚至當CPU使用率低于100%的時候,最小化并行的任務(wù)和操作。稀有資源的競爭會降低流盤的性能。

最后,為特定的系統(tǒng)調(diào)節(jié)流代碼。對于多CPU的系統(tǒng),執(zhí)行一些并行的代碼可能會提高系統(tǒng)的吞吐量。(注意:對同一個磁盤的并行磁盤I/O操作通常降低了性能)優(yōu)化代碼以避免存儲副本和其他浪費CPU帶寬的操作。

總線帶寬
一個典型的帶有單一PCI/PXI總線的臺式系統(tǒng)會被總線帶寬限制。標準PCI/PXI的理論帶寬大約是130MB/s。真實帶寬則依總線競爭的程度而降低。通常,在同樣總線上同時運行更多設(shè)備會降低總線帶寬。

注意:一個單一的NI6115DAQ可以產(chǎn)生80MB/s的數(shù)據(jù)

增加系統(tǒng)中總線的數(shù)量是提高帶寬的唯一方法。例如,一些高端的母板包括2個或更多的獨立PCI總線。這有利于您建立一個系統(tǒng),這個系統(tǒng)分別在獨立的總線上有一個RAID控制器和DAQ設(shè)備。對于這些母板,橋片可能會限制所有連接總線的總吞吐量。


問:NI-DAQmx執(zhí)行高速流盤的性能如何?

答:NI-DAQmx影響流盤性能主要在于它使用了CPU帶寬同時移動和標度了設(shè)備所采集的數(shù)據(jù)。因此,對于那些CPU帶寬是一個限制因素的系統(tǒng),NI-DAQmx有效地使用CPU就顯得十分重要。

自從首次發(fā)布以降低讀寫時的CPU使用率開始,NI-DAQmx經(jīng)歷了多次優(yōu)化。例如,在NI-DAQmx7.3和NI-DAQmx7.4版本之間,標度的模擬輸入基準的性能已從8%增長至60%。未標度的模擬輸入基準性能已從12%增長至40%。對于那些CPU帶寬緊張的系統(tǒng),這個性能的提高直接轉(zhuǎn)化成為的更高的流盤吞吐量。

NI-DAQmx使用了極為簡單的壓縮形式。采樣末端的位被簡單的丟棄而后將所得的采樣打包送入內(nèi)存。NI-DAQmx并沒有使用其他無損失或損失性壓縮算法如LZE或JPEG。

在一些情況下,由于采樣已經(jīng)包含不使用的位,因而沒有數(shù)據(jù)損失。例如,一個具有12位分辨率和16位采樣大小的通道包含4位不使用的位。您可以無損失地丟棄這4位同時所需磁盤空間減少的幅度達25%。

此外,您可以配置NI-DAQmx丟棄采樣中一個或更多不重要的位。例如,您可以配置一個24位分辨率和32位采樣大小的通道而僅返回最高的20位??偣灿?2位被丟棄,包括8個不使用的位,這樣所需磁盤空間減少的幅度達了37.5%。


從傳統(tǒng)NI-DAQ升級

問:為什么我要從傳統(tǒng)NI-DAQ升級至NI-DAQmx?

答:有許多原因可解釋為什么要升級到NI-DAQmx。一個重要的原因是NI工程師致力于提高NI-DAQmx而不是傳統(tǒng)NI-DAQ(Legacy)的效率和性能。如果使用這個測量服務(wù)軟件的最新版本,NI-DAQmx用戶就能享受這一革新的好處。

獨立于當前工程師的努力之外,由于相對于傳統(tǒng)NI-DAQ(Legacy)的軟件特性優(yōu)勢,用戶可以簡單地升級到NI-DAQmx。其中一些優(yōu)勢包括:
更好的狀態(tài)模型
多線程驅(qū)動
異常情況下的可靠性
簡化了的同步功能
DecreasedLabVIEWdiagramclutter
降低了LabVIEW程序的復(fù)雜度
從簡單到高級編程的平滑過渡
注意:欲想了解更多關(guān)于這些優(yōu)點及其他信息,請參閱ni.com上DeveloperZone可得的AdvantagesofNI-DAQmx指南。

另外一個升級至NI-DAQmx的原因是利用了NI提供的最新的DAQ硬件。最新和最具創(chuàng)新性的DAQ設(shè)備提供了其他廠商和其他設(shè)備所不能提供的技術(shù)。最新的NIDAQ設(shè)備僅被NI-DAQmx支持。


問:哪些資源可以幫助我把應(yīng)用程序從傳統(tǒng)NI-DAQ升級至NI-DAQmx?

答:ni.com上的DeveloperZone包含了極好的資源,可以幫助傳統(tǒng)NI-DAQmx用戶將他們應(yīng)用程序升級至NI-DAQmx。

第一個指南,TransitionTraditionalNI-DAQtoNI-DAQmx,表明雖然在傳統(tǒng)NI-DAQ和NI-DAQmx之間許多編程技術(shù)是相似的,但是還是有一些細微的差別。這個指南描述了每個API中最為常見的VI和功能之間的相似之處和不同之處。

第二個指南,學(xué)會NI-DAQmx里的10個功能并解決80%的數(shù)據(jù)采集應(yīng)用程序,描述了您如何利用NI-DAQmx里的10個函數(shù)和VI來使用NI-DAQmx來代替眾多的傳統(tǒng)NI-DAQ功能和VI。這個指南闡述了如何使用這每個VI,它們構(gòu)成了NI-DAQmxAPI核心。

對于那些希望升級至NI-DAQmx但仍希望利用當前傳統(tǒng)NI-DAQ應(yīng)用程序來使用NI-DAQmx所支持的新硬件產(chǎn)品的用戶,NI創(chuàng)建了傳統(tǒng)NI-DAQ兼容的VI。這些VI利用了可與傳統(tǒng)NI-DAQ和NI-DAQmx協(xié)同工作的庫代替了一些傳統(tǒng)NI-DAQVI庫。這些VI看起來與現(xiàn)有的傳統(tǒng)NI-DAQVI一樣并與現(xiàn)有的應(yīng)用程序無縫集成。在等待用NI-DAQmx重寫這些應(yīng)用程序的同時,這些具有兼容性的VI被創(chuàng)建用來使用,但是您可以仍然使用僅NI-DAQmx支持的設(shè)備。用戶在使用具有兼容性的VI時應(yīng)該十分小心因為它們并不支持所有設(shè)備上的所有特性并且不保證在將來的版本中得到更新。欲想了解更多關(guān)于VI的信息,請訪問 http://ni.com 。


此外,NI網(wǎng)站在http://ni.com/examples上提供了數(shù)以千計的DAQ例程。數(shù)以百計的例程說明了如何使用NI-DAQmx來完成最為常見的DAQ任務(wù)。


問:我能同時使用傳統(tǒng)NI-DAQ和NI-DAQmx嗎?
答:如果您擁有兩個DAQ設(shè)備,并且其中之一使用傳統(tǒng)NI-DAQ而另一臺使用NI-DAQmx,那么您可以同時使用傳統(tǒng)NI-DAQ和NI-DAQmx。如果您僅有一臺設(shè)備,您仍然可以既使用傳統(tǒng)NI-DAQ又使用NI-DAQmx,但是只能順序地使用――不是同時。在這個順序中,您需要重設(shè)您的設(shè)備以在傳統(tǒng)NI-DAQ和NI-DAQmx驅(qū)動之間轉(zhuǎn)換。

在LabVIEW中,在傳統(tǒng)NI-DAQ)序列的末端使用DeviceResetVI,在您NI-DAQmx序列的末端使用DAQmxResetDeviceVI。您仍然需要創(chuàng)建一個傳統(tǒng)的NI-DAQ虛擬通道和一個NI-DAQmx任務(wù)以分別使用每個驅(qū)動。
.



問:對于VisualBasic6.0開發(fā)者來說應(yīng)該選擇哪一種DAQ軟件?

答:許多使用VisualBasic6.0的數(shù)據(jù)采集系統(tǒng)開發(fā)者還沒有轉(zhuǎn)移到Microsofts.NET語言。使用VisualBasic6.0的開發(fā)者可有以下幾種選擇:
1.升級至VB.NET并使用NI-DAQmx。這種選擇的好處是您可以使用Microsoft和NI的最新軟件。
2.使用VisualBasic6.0和NI-DAQmx:NI-DAQmx7.4包含了對VisualBasic6.0的支持(測試版)。一旦安裝了C++支持,您還可以獲得一個VisualBasic類型的庫。目前NI還不支持這種的選擇,尚未提供任何這方面的技術(shù)文檔。
3.使用傳統(tǒng)NI-DAQ和VisualBasic6.0:雖然在短期內(nèi)這種選擇基本沒有什么問題,但是它要求您使用Microsoft和NI的傳統(tǒng)軟件。


問:沒有NIConfig.DAQ文件,我該如何在機器間轉(zhuǎn)移我的配置?

答:您現(xiàn)在可以使用NI-DAQmx里的導(dǎo)出功能來在機器間轉(zhuǎn)移您的硬件配置。

進入MAX并選擇File?Export以啟動配置導(dǎo)出向?qū)?。使用這個向?qū)?,您可以選擇希望導(dǎo)出的配置并保存它們至您所選擇的用于導(dǎo)出的文件。為了導(dǎo)入配置,進入MAX,F(xiàn)ile?Export并從配置導(dǎo)出向?qū)傻奈募袑?dǎo)入配置。

問:我現(xiàn)在該如何使用SCXI設(shè)備?“ob0!sc1!md1!0”通道字符串語法在NI-DAQmx中無法用。

答:用在傳統(tǒng)NI-DAQ中的SCXI通道字符串不再能用于NI-DAQmx?,F(xiàn)在的格式為SCxMody/channel
1.x代表在配置機箱時所選擇的SCXI機箱ID。
2.y代表模塊的插槽位置。機箱中的插槽從左至右開始編號,從1開始。
3.I/channel根據(jù)所執(zhí)行的數(shù)據(jù)采集類型具有不同的格式:
模擬輸入:/ai#。#是模塊上模擬輸入通道的數(shù)字。例如,SC1/MOD1/ai1代表ID位為1的SCXI機箱上1號插槽模塊上的物理模擬輸入通道1。如果您有許多在同一個SCXI模塊配置的通道,您可以把它們都包含在SC1/MOD1/ai1.2.4這樣的格式里,這表示同一個SCXI模塊的模擬輸入通道1、2、和4。
模擬輸出:/ao#。#是模塊上模擬輸出通道的數(shù)字。例如/ao2代表物理模擬輸出通道2。
數(shù)字I/O:port#/line#。第一個數(shù)字代表數(shù)字端口,第二個數(shù)字代表所使用端口的數(shù)字線。例如,port0/line2意味著物理數(shù)字端口0線2。
計數(shù)器I/O:/ctr#。#是模塊上計數(shù)器的數(shù)字。例如,/ctr0代表模塊上的計數(shù)器0。

問:如何使用NI-DAQmx對計數(shù)器進行編程?
答:下面的表格列出了NI-DAQmx和傳統(tǒng)NI-DAQ相似的VI以幫助您熟悉從前者到后者的轉(zhuǎn)變:

傳統(tǒng)NI-DAQNI-DAQmx
CounterGroupConfigVIDAQmxCreateChannelVI
CounterSetAttributeVIDAQmxChannelPropertyNodeVI
CounterSource(TIO)VIDAQmxTriggerPropertyNodeVI
CounterSource(STC)VIDAQmxPropertyNodeVI
CounterControlVIDAQmxStartVI
CounterGetAttributeVIDAQmxReadVI
CounterControlVIDAQmxStopVI

欲想了解更多關(guān)于在NI-DAQmx里寫入計數(shù)器應(yīng)用程序的幫助信息,請參閱ni.com上DeveloperZone的TransitionTraditionalNI-DAQtoNI-DAQmx技術(shù)指南。


問:在NI-DAQmx中我該如何使用雙緩沖采集?

答:如果您正在使用雙緩沖I/O,您最有可能以輪詢緩沖區(qū)的方式來連續(xù)地采集數(shù)據(jù)。在NI-DAQmx中,您可以簡單地通過使用NI-DAQmx定時功能及將采樣模式參數(shù)設(shè)置成連續(xù)模式來達到這個目的。

NI-DAQmx使用循環(huán)式緩沖區(qū)。對于輸入操作,一部分數(shù)據(jù)可以在緩沖區(qū)為滿時從緩沖區(qū)中讀取。如同輸出操作一樣,緩沖區(qū)的一部分可以在緩沖區(qū)為空時寫入。使用循環(huán)式緩沖區(qū),您可以簡單地將設(shè)備設(shè)置成連續(xù)采集數(shù)據(jù)模式,同時NI-DAQmx會按照要求找回采集到的數(shù)據(jù)。



問:我該如何使用NI-DAQmx來配置SCXI模塊?

答:您依舊可依在MAX中通過選擇NI-DAQmxDevices、右擊SCXI機箱并選擇Properties來設(shè)置SCXI模塊屬性。您可以看到每個安裝在機箱中的模塊并且您可以通過單擊詳細信息來設(shè)置每個模塊的屬性。

MAX中唯一沒有顯示的屬性是增益設(shè)置。NI-DAQmx可以使用基于信號的I/O極限來自動地配置設(shè)備以達到最優(yōu)的增益設(shè)置。


問:NI-DAQmx里的脈沖序列極性和占空比控制功能的變化?

答:在NI-DAQmx里,您可以通過使用通用的DAQmx創(chuàng)建通道函數(shù)并選擇CounterOutput?PulseGeneration?Frequency來簡化您的程序。在傳統(tǒng)NI-DAQmx里,您必須使用生成脈沖序列函數(shù)來定義脈沖序列的極性、頻率和占空比。除了頻率和占空比之外,NI-DAQmx使用空閑狀態(tài)參數(shù)來配置脈沖序列的極性。

問:使用NI-DAQmx我該如何完成遠程數(shù)據(jù)采集(RDA)?

答:NI-DAQmx不提供RDA特性。要想遠程控制您的DAQ設(shè)備,您可以使用LabVIEW7或更高版本里的遠程前面板特性。利用這一特性,您可以通過因特網(wǎng)遠程控制DAQ應(yīng)用程序。


問:我可以無需重啟任務(wù)就能改變NI-DAQmx里生成的脈沖序列頻率嗎?

答:可以。您可以在任何時候更新一個連續(xù)脈沖序列的頻率和占空比,包括在任務(wù)運行的時候。這對于需要脈沖寬度調(diào)節(jié)的應(yīng)用十分有益,如PID環(huán)控制應(yīng)用程序。在DAQmx寫功能里,頻率和占空比參數(shù)可以在任務(wù)運行的時候自動更新脈沖序列。在更新脈沖生成速率的時候,在新的速率起作用之前,一個當前速率的完整周期會生成。

2005NationalInstruments公司。版權(quán)所有:CVI、DAQCard、LabVIEW、MeasurementStudio、NI、ni.com、NI-DAQ、RTSI、SCXI和SignalExpress。

c++相關(guān)文章:c++教程


pid控制器相關(guān)文章:pid控制器原理


熱電偶相關(guān)文章:熱電偶原理


關(guān)鍵詞: NI-DAQmx NI-DAQ

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉