a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > NI-DAQmx和傳統NI-DAQ常見問題解答

NI-DAQmx和傳統NI-DAQ常見問題解答

作者: 時間:2005-04-06 來源:網絡 收藏


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

NI-DAQmx描述

問:為什么軟件對于數據采集應用如此重要?

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

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


圖1.虛擬儀器軟件

本文引用地址:http://www.j9360.com/article/196099.htm



問:什么是測量服務軟件?

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

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

表1.NI-DAQmx包含了高性能的驅動和附加軟件來提高系統開發效率


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

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

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


圖2.NI-DAQmx里提供的DAQ助手簡化了DAQ任務的創建


問:為什么NI推出了NI-DAQmx?為什么不繼續開發傳統NI-DAQ?

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

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

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

圖3.多態VI簡化了NI-DAQmxAPI


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

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

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

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


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

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

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


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

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

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


問:我可以將NI-DAQmx與哪些應用程序開發環境結合使用?

答:NI-DAQmx可以與許多最流行的ADE協同工作。一旦安裝了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

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


問:NI-DAQmx是否適用于Linux?MacOSX操作系統?

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

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

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


問:NI會繼續傳統NI-DAQ的開發嗎?

答:NI沒有計劃繼續開發傳統NI-DAQ。但是,為了維持現有的應用程序,NI會繼續提供傳統NI-DAQ并繼續提供它的技術支持。

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

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

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

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

問:在什么情況下不應選擇使用NI-DAQmx進行開發呢?

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

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

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


問:我怎樣得到NI-DAQmx?

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

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



NI-DAQmx引入的概念

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

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

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

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

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

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

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

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


問:什么是NI-DAQmx任務?

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

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

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

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


問:什么時候我應該使用一個任務而不是一個全局虛擬通道?

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

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


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

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

可編程地保存任務、通道和量程簡化了系統配置和多種場合的應用,并且減少了發生錯誤的可能性和調試的需要。

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


問:我該如何導入/導出設備、任務、通道和縮放配置?

答:使用MAN,您可以導出您系統的配置以作為備份或應用至其他機器。

使用導出向導可從系統復制配置數據至一個文件。要啟動這個導出向導,請在MAX中選擇File?Export


問:什么是屬性節點?

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

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

圖6.使用NI-DAQmx屬性節點實現高級的自定義任務

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


問:我應該怎樣過濾屬性節點列表?

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



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

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


問:什么是NI-DAQmx仿真設備?

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

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

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


性能

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

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


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

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

由于NI-DAQmx7.3版本或更早的版本在一個讀或寫操作時會等待新的數據的到來,因此100%的CPU使用率就會發生。在等待新的數據到來時,如果在一個讀操作中數據仍然不可得,NI-DAQmx7.3版本就會轉向其他的處理。如果另外一個處理需要使用CPU,NI-DAQmx就會與那個處理共享CPU。然而,如果沒有其他的處理或任務需要使用CPU,NI-DAQmx繼續等待新數據的到來。如果計算機僅執行數據采集,那么這種解決方案提供了非常優異的性能,在與其他應用程序共享CPU時則提供了較好的性能。然而,副作用卻是在沒有其他應用程序運行時NI-DAQmx占用了100%的CPU的使用率。

這一問題的最好解決方案就是使用最近發布的NI-DAQmx,如NI-DAQmx7.4。NI-DAQmx7.4改變了緩沖式讀寫操作的默認等待模式。當需要輪詢時,NI-DAQmx在繼續讀或寫操作之前會休眠一小段時間(1ms)。與以前版本的NI-DAQmx相比,這一改變對于大部分應用程序的性能幾乎沒有影響。然而,其他NI-DAQmx7.4版本的讀寫改進和優化不僅僅只是彌補了可能的性能損失。應用程序升級至NI-DAQmx7.4既可以改進性能也可以減少CPU使用率。

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


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

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

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

傳統NI-DAQ為以下應用提供了更好的性能:
1.使用數字通道讀或寫
2.用于僅有一個輸入和輸出通道應用程序的硬件定時單點

注意:傳統NI-DAQ用戶可能不熟悉硬件定時單點。具體而言,這些應用程序使用硬件定時、大小為零的緩存并且每次讀或寫一個采樣。


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

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


問:狀態機是如何幫助改進NI-DAQmx的性能的?

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

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


欲想了解更多關于每個NI-DAQmx狀態的信息,請參閱NI-DAQmx幫助文檔。


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

磁盤I/O帶寬

典型的使用IDE驅動的系統主要被磁盤的吞吐量所限制。

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

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

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

增加系統中CPU的數量和CPU的速度提高了系統的帶寬。

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

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

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

注意:一個單一的NI6115DAQ可以產生80MB/s的數據

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


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

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

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

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

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

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


從傳統NI-DAQ升級

問:為什么我要從傳統NI-DAQ升級至NI-DAQmx?

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

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

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


問:哪些資源可以幫助我把應用程序從傳統NI-DAQ升級至NI-DAQmx?

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

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

第二個指南,學會NI-DAQmx里的10個功能并解決80%的數據采集應用程序,描述了您如何利用NI-DAQmx里的10個函數和VI來使用NI-DAQmx來代替眾多的傳統NI-DAQ功能和VI。這個指南闡述了如何使用這每個VI,它們構成了NI-DAQmxAPI核心。

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


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


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

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



問:對于VisualBasic6.0開發者來說應該選擇哪一種DAQ軟件?

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


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

答:您現在可以使用NI-DAQmx里的導出功能來在機器間轉移您的硬件配置。

進入MAX并選擇File?Export以啟動配置導出向導。使用這個向導,您可以選擇希望導出的配置并保存它們至您所選擇的用于導出的文件。為了導入配置,進入MAX,File?Export并從配置導出向導所生成的文件中導入配置。

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

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

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

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

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


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

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

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



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

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

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


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

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

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

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


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

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

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

c++相關文章:c++教程


pid控制器相關文章:pid控制器原理


熱電偶相關文章:熱電偶原理


關鍵詞: NI-DAQmx NI-DAQ

評論


相關推薦

技術專區

關閉