NI-DAQmx和傳統(tǒng)NI-DAQ常見(jiàn)問(wèn)題解答
本文檔回答了關(guān)于NI-DAQmx和傳統(tǒng)NI-DAQ的一些常見(jiàn)問(wèn)題。所有問(wèn)題按照邏輯性分為如下四類(lèi):
目錄
NI-DAQmx描述
NI-DAQmx引入的概念
工作性能
從傳統(tǒng)NI-DAQ到NI-DAQmx的升級(jí)
NI-DAQmx描述
問(wèn):為什么軟件對(duì)于數(shù)據(jù)采集應(yīng)用如此重要?
答:功能靈活且強(qiáng)大的軟件是所有虛擬儀器系統(tǒng)的核心。
讓我們先仔細(xì)看一下虛擬儀器軟件的組成。大多數(shù)人首先想到的就是應(yīng)用程序?qū)樱褪侵饕拈_(kāi)發(fā)環(huán)境。它包括諸如LabVIEW、LabWindows/CVI(ANSIC)和MeasurementStudio(VisualStudio編程語(yǔ)言)之類(lèi)的軟件。測(cè)試執(zhí)行層結(jié)合了應(yīng)用程序?qū)铀_(kāi)發(fā)的功能。接下去一層通常很容易被忽視,但它對(duì)于軟件開(kāi)發(fā)效率來(lái)說(shuō)卻是至關(guān)重要的。測(cè)量和控制服務(wù)層包括與硬件通信的驅(qū)動(dòng)程序。測(cè)量和控制服務(wù)必須能訪(fǎng)問(wèn)并發(fā)揮硬件功能和性能,它們也必須與所有其他的驅(qū)動(dòng)和已成為解決方案一部分的眾多模塊化I/O協(xié)同工作。
圖1.虛擬儀器軟件
問(wèn):什么是測(cè)量服務(wù)軟件?
答:可以把測(cè)量服務(wù)軟件看作I/O驅(qū)動(dòng)軟件層,然而,它不僅僅只是一個(gè)驅(qū)動(dòng)。
測(cè)量服務(wù)是快速的應(yīng)用程序開(kāi)發(fā)中最為重要的部分之一。這個(gè)軟件提供了虛擬儀器軟件和硬件之間的連通性以用于測(cè)量和控制。直觀的應(yīng)用程序編程接口(API)、儀器驅(qū)動(dòng)、配置工具、快速I(mǎi)/O助手和其他包含在所購(gòu)買(mǎi)的NI硬件中的軟件是它的特色。NI測(cè)量和控制服務(wù)軟件提供了與NI硬件以及NI應(yīng)用程序開(kāi)發(fā)環(huán)境(ADE)的最優(yōu)化結(jié)合。
表1.NI-DAQmx包含了高性能的驅(qū)動(dòng)和附加軟件來(lái)提高系統(tǒng)開(kāi)發(fā)效率
NI測(cè)量自動(dòng)化瀏覽器(MAX)和DAQAssistant(DAQ助手)是NI-DAQmx測(cè)量服務(wù)軟件(大部分NI數(shù)據(jù)采集設(shè)備都附帶該軟件)體現(xiàn)它無(wú)限價(jià)值的其中兩個(gè)例子。此外,NI還在M系列和USBDAQ設(shè)備以及其他許多設(shè)備上附送了免費(fèi)的數(shù)據(jù)記錄軟件。
諸如MAX之類(lèi)的配置工具所包含的特性能夠用來(lái)配置和測(cè)試I/O,以及存儲(chǔ)標(biāo)定、校準(zhǔn)和通道別名信息。這些工具對(duì)于以更短的時(shí)間完成首次測(cè)量、維護(hù)測(cè)試系統(tǒng)和解決測(cè)試系統(tǒng)故障是十分重要的。
I/OAssistant(I/O助手)是一個(gè)交互式工具,用來(lái)快速創(chuàng)建測(cè)量應(yīng)用程序。DAQ助手就是其中一個(gè)這樣的I/O助手,如圖2所示。它提供了一個(gè)面板,您可在上面輕松配置常用的DAQ參數(shù),而無(wú)需任何編程工作。您可以在任何NIADE中使用由它生成的DAQ任務(wù)。易于使用的助手和強(qiáng)大編程環(huán)境的結(jié)合提供了快速的開(kāi)發(fā)和可滿(mǎn)足廣泛應(yīng)用需求的能力。
圖2.NI-DAQmx里提供的DAQ助手簡(jiǎn)化了DAQ任務(wù)的創(chuàng)建
問(wèn):為什么NI推出了NI-DAQmx?為什么不繼續(xù)開(kāi)發(fā)傳統(tǒng)NI-DAQ?
答:NI在20世紀(jì)90年代首次發(fā)布了傳統(tǒng)NI-DAQ驅(qū)動(dòng)。傳統(tǒng)NI-DAQ通過(guò)提供對(duì)各種設(shè)備的擴(kuò)展功能對(duì)已有的DAQ庫(kù)進(jìn)行了許多改進(jìn),這些改進(jìn)包括雙緩沖采集、對(duì)特定傳感器類(lèi)型提供內(nèi)置標(biāo)度,例如熱電偶和應(yīng)變計(jì)、信號(hào)調(diào)理、以及一個(gè)單一的且可與多種設(shè)備和操作系統(tǒng)(OS)協(xié)同工作的函數(shù)庫(kù)。
在90年代后期,NI-DAQ團(tuán)隊(duì)意識(shí)到保持API與以前版本的兼容性的這個(gè)要求增加了向傳統(tǒng)NI-DAQ添加新特性和設(shè)備的難度。此外,在長(zhǎng)期的發(fā)展過(guò)程中,傳統(tǒng)NI-DAQ的API產(chǎn)生了許多需要解決的問(wèn)題。NI-DAQ開(kāi)發(fā)者難以直觀地?cái)U(kuò)展API而且難以?xún)?yōu)化不斷增長(zhǎng)的客戶(hù)應(yīng)用范圍。因此NI認(rèn)為一個(gè)全新的API設(shè)計(jì)和體系結(jié)構(gòu)可以幫助NI-DAQ開(kāi)發(fā)者更輕松地添加新特性和新設(shè)備,解決許多現(xiàn)有的驅(qū)動(dòng)問(wèn)題,并且同時(shí)可以?xún)?yōu)化性能。
NI-DAQmx項(xiàng)目的一些宏偉目標(biāo)包括:
1.更輕松地往DAQAPI中添加新特性。傳統(tǒng)NI-DAQAPI的許多函數(shù)都有大量的參數(shù)而且沒(méi)有有效的方式可以添加新參數(shù)。相比而言,NI-DAQmxAPI通過(guò)一個(gè)豐富的屬性層次來(lái)使用基于屬性的方法。這種方法易于擴(kuò)展。通常,添加一個(gè)新特性與添加一個(gè)新屬性一樣輕松。
2.更輕松地添加新設(shè)備。如果不對(duì)現(xiàn)有的功能進(jìn)行改動(dòng),NI就難以向傳統(tǒng)NI-DAQ添加更多的設(shè)備,而改動(dòng)往往會(huì)導(dǎo)致一些漏洞。尋找并解決意外的漏洞花費(fèi)了太多的時(shí)間來(lái)發(fā)布每一個(gè)版本。相比而言,NI-DAQmx使用了作為組件的插入式設(shè)計(jì),使得添加新設(shè)備更加便利。
3.更有效的多線(xiàn)程數(shù)據(jù)采集。傳統(tǒng)NI-DAQ最初是為不具備多線(xiàn)程功能的舊版本操作系統(tǒng)而設(shè)計(jì)的。為了在多線(xiàn)程操作系統(tǒng)下安全地運(yùn)行,傳統(tǒng)NI-DAQ將存取操作限制在每次一個(gè)線(xiàn)程。對(duì)于那些需要同時(shí)完成兩個(gè)或更多DAQ任務(wù)的應(yīng)用來(lái)說(shuō),這種限制就引起了問(wèn)題因?yàn)閮蓚€(gè)任務(wù)不能同時(shí)訪(fǎng)問(wèn)驅(qū)動(dòng)器。NI-DAQmx使用多線(xiàn)程設(shè)計(jì)解決了這個(gè)問(wèn)題,這樣多線(xiàn)程就可以同時(shí)訪(fǎng)問(wèn)驅(qū)動(dòng)器。
4.提高數(shù)據(jù)采集性能,尤其是單點(diǎn)性能。一些使用傳統(tǒng)NI-DAQ的應(yīng)用經(jīng)歷過(guò)拙劣的軟件定時(shí)單點(diǎn)性能,因?yàn)樗鼈儾粩嗟卦谥餮h(huán)里執(zhí)行代價(jià)高昂的操作,例如驗(yàn)證配置(檢驗(yàn))、保留資源(保留)和對(duì)硬件編程(實(shí)施)。傳統(tǒng)NI-DAQ并沒(méi)有對(duì)何時(shí)執(zhí)行檢驗(yàn)、保留和實(shí)施操作給予足夠的應(yīng)用程序控制,因此用戶(hù)不能重寫(xiě)這些應(yīng)用程序以更快地運(yùn)行。NI-DAQmx利用一個(gè)基于已定義狀態(tài)模型的設(shè)計(jì)提高了性能。NI-DAQmx給用戶(hù)提供了高級(jí)的API功能,例如檢驗(yàn)、保留和實(shí)施。因此,用戶(hù)對(duì)于在何時(shí)執(zhí)行這些代價(jià)高昂的操作擁有更多的控制能力。
5.提高驅(qū)動(dòng)性能和可靠性。NI-DAQmx專(zhuān)門(mén)設(shè)計(jì)成具有世界一流的數(shù)據(jù)采集性能和穩(wěn)定性。自NI-DAQmx開(kāi)發(fā)伊始,用戶(hù)每次添加一個(gè)新特性或者對(duì)驅(qū)動(dòng)進(jìn)行一次改變,一個(gè)嚴(yán)格且完備的功能和性能自動(dòng)測(cè)試包就會(huì)檢驗(yàn)這個(gè)改變是否引入了漏洞。這個(gè)測(cè)試包對(duì)應(yīng)用于各種設(shè)備、傳感器和操作系統(tǒng)配置中的常見(jiàn)和不常見(jiàn)的驅(qū)動(dòng)進(jìn)行測(cè)試。不常見(jiàn)或例外的驅(qū)動(dòng)應(yīng)用對(duì)于整體的可靠性十分重要。NI-DAQmx設(shè)計(jì)成能夠處理異常的情形,例如DAQ任務(wù)中止、看門(mén)狗定時(shí)器終止和意外設(shè)備刪除(如從計(jì)算機(jī)中拔出USB設(shè)備)。
6.更輕松地進(jìn)行數(shù)據(jù)采集。在90年代中期,NI-DAQ團(tuán)隊(duì)往傳統(tǒng)NI-DAQ中添加了EasyI/O和中間I/O層,從而使得通常的DAQ任務(wù)更加輕松。然而,這種方法卻引起了一些問(wèn)題,因?yàn)橐坏┯脩?hù)需要給應(yīng)用程序添加更多高級(jí)的特性,他們就不得不使用更高級(jí)的API來(lái)重寫(xiě)應(yīng)用程序。NI-DAQmx通過(guò)以下方式使得開(kāi)發(fā)應(yīng)用程序更輕松:
配置工具如DAQ助手。利用DAQ助手,用戶(hù)可以圖形化地選擇他們希望進(jìn)行測(cè)量的類(lèi)型,保存配置以供以后使用,而且生成代碼以包含在應(yīng)用程序中。
高級(jí)NI-DAQmx路由特性。這些特性簡(jiǎn)化了DAQ設(shè)備的觸發(fā)和同步。
在NI-DAQmx里報(bào)告并描述錯(cuò)誤。這一特性幫助用戶(hù)精確地確定錯(cuò)誤的原因并推薦解決方案。用戶(hù)認(rèn)為NI-DAQmx里的高級(jí)錯(cuò)誤報(bào)告功能使得調(diào)試DAQ應(yīng)用程序更加輕松。
從LabVIEW7開(kāi)始的易用特性。LabVIEW7引入的新特性,尤其是應(yīng)用于NI-DAQmx之中的新特性,包含了創(chuàng)建ExpressVI和多態(tài)VI的能力。利用ExpressVI,用戶(hù)可以使用一個(gè)簡(jiǎn)單的配置對(duì)話(huà)框來(lái)代替一個(gè)復(fù)雜DAQ的絕大部分。利用多態(tài)VI,用戶(hù)可以更輕松地找到特性。由于這兩方面的特性,用戶(hù)可以用更少的時(shí)間開(kāi)發(fā)出應(yīng)用程序。
圖3.多態(tài)VI簡(jiǎn)化了NI-DAQmxAPI
問(wèn):NI-DAQmx支持哪些硬件?不支持哪些硬件?
答:作為最新的NI測(cè)量服務(wù)軟件,NI-DAQmx支持最新的NIDAQ硬件,包括M系列插入式DAQ設(shè)備,一些最新的USBDAQ設(shè)備,以及數(shù)以百計(jì)傳統(tǒng)NI-DAQ所支持的DAQ設(shè)備。
雖然NI-DAQmx支持許多最新的NIDAQ硬件設(shè)備,NI-DAQmx并不支持所有的NIDAQ設(shè)備。例如,傳統(tǒng)DAQ設(shè)備,如使用ISA總線(xiàn)(用于臺(tái)式計(jì)算機(jī))的設(shè)備,他們僅受傳統(tǒng)NI-DAQ的支持。
欲想了解當(dāng)前NI-DAQmx所支持的設(shè)備列表,請(qǐng)?jiān)L問(wèn)ni.com/dataacquisition/software并單擊DeviceSupport(所支持的設(shè)備),或者參看包含于NI-DAQmx之中NI-DAQmxReadme文件。
問(wèn):為什么有些DAQ設(shè)備僅受NI-DAQmx支持?
答:諸如M系列DAQ之類(lèi)的設(shè)備是最新的、最好的DAQ硬件。M系列設(shè)備是市場(chǎng)上第一款18位插入式DAQ設(shè)備,第一款擁有最大數(shù)據(jù)吞吐量達(dá)六個(gè)DMA通道的插入式DAQ設(shè)備,并且具有創(chuàng)新的設(shè)備校準(zhǔn)。這些設(shè)備只受NI-DAQmx支持,而不受傳統(tǒng)NI-DAQ支持。
將來(lái)新的NIDAQ設(shè)備也將只受NI-DAQmx支持,而受傳統(tǒng)NI-DAQ支持。NI工程師致力于NI-DAQmx的效率和性能,而不是使用資源來(lái)開(kāi)發(fā)傳統(tǒng)驅(qū)動(dòng)軟件。
問(wèn):我可以將NI-DAQmx與哪些編程語(yǔ)言共同使用?
答:您可以將NI-DAQmx用于各種不同的編程語(yǔ)言,它們包括:
NILabVIEW
ANSIC
MicrosoftVisualC++類(lèi)庫(kù)(NIMeasurementStudio7或更高版本)
MicrosoftVisualC++
MicrosoftC#.NET
MicrosoftVisualBasic.NET
MicrosoftVisualBasic(Beta版)
欲想了解更多關(guān)于使用NI-DAQmx和基于文本語(yǔ)言編程的信息,請(qǐng)?jiān)L問(wèn)NI-DAQ用于文本語(yǔ)言編程語(yǔ)言和NI-DAQReadme文件。
問(wèn):我可以將NI-DAQmx與哪些應(yīng)用程序開(kāi)發(fā)環(huán)境結(jié)合使用?
答:NI-DAQmx可以與許多最流行的ADE協(xié)同工作。一旦安裝了NI-DAQmx,您可以選擇安裝對(duì)各種ADE的支持,包括:
NILabVIEW7或更高
NILabVIEWReal-Time7.1或更高
NILabWindows/CVI7或更高
.NET語(yǔ)言
NIMeasurementStudio,支持VisualC++.NET(需要MeasurementStudio7或更高)
MicrosoftVisualC支持
為了安裝對(duì)這些ADE的支持,請(qǐng)?jiān)诎惭bNI-DAQmx時(shí)選擇合適的支持。在您第一次安裝NI-DAQmx時(shí),在特性樹(shù)上將NI-DAQmx選項(xiàng)展開(kāi),然后,選擇您希望使用的API來(lái)安裝合適的支持。
圖4.NI-DAQmx提供不同API用于各種ADE
如果你已經(jīng)安裝了NI-DAQmx并且希望改變你的選擇,運(yùn)行添加/刪除程序。選擇NI軟件入口并單擊Change。然后,在已安裝到您機(jī)器上的NI軟件列表上選擇NI-DAQmx。單擊Modify以啟動(dòng)NI-DAQmx安裝程序,在這里您可以指定API支持選項(xiàng)。
問(wèn):NI-DAQmx是否適用于Linux?MacOSX操作系統(tǒng)?
答:NI-DAQmx只適用于那些為MicrosoftWindows開(kāi)發(fā)應(yīng)用程序并應(yīng)用的用戶(hù)。NI目前沒(méi)有計(jì)劃將NI-DAQmx擴(kuò)展到Linux和MACOSX。然而,近來(lái)這些平臺(tái)在科學(xué)和工程計(jì)算領(lǐng)域的應(yīng)用有所增長(zhǎng),為滿(mǎn)足這些需求,NI已經(jīng)開(kāi)發(fā)了NI-DAQmxBASE。
NI-DAQmxBASE將NI-DAQmx功能的一個(gè)子集提供給Windows、Linux、MacOSX和PocketPC操作系統(tǒng),并且支持大部分最流行的NIDAQ設(shè)備,包括新的低成本USBDAQ產(chǎn)品。
請(qǐng)?jiān)L問(wèn)ni.com/linux和ni.com/mac以獲得為L(zhǎng)inux和MacOSX提供的最新NI產(chǎn)品。
問(wèn):NI會(huì)繼續(xù)傳統(tǒng)NI-DAQ的開(kāi)發(fā)嗎?
答:NI沒(méi)有計(jì)劃繼續(xù)開(kāi)發(fā)傳統(tǒng)NI-DAQ。但是,為了維持現(xiàn)有的應(yīng)用程序,NI會(huì)繼續(xù)提供傳統(tǒng)NI-DAQ并繼續(xù)提供它的技術(shù)支持。
問(wèn):NI-DAQmx與NI-DAQmxBase有何不同?
答:比較這些軟件工具的最好方式是在ni.com/dataacquisition/software上使用驅(qū)動(dòng)程序比較圖。這兒提到的是其中一些不同之處。
雖然NI-DAQmx和NI-DAQmxBASE具有相似的API,但是這兩種API具有完全不同的體系結(jié)構(gòu)。NI-DAQmxBase是使用NI工具――NI測(cè)量硬件驅(qū)動(dòng)開(kāi)發(fā)包(DDK)寫(xiě)成的,這個(gè)工具用寄存器級(jí)編程的方式來(lái)定制開(kāi)發(fā)驅(qū)動(dòng)。這種方式的一個(gè)好處是NI-DAQmxBase是開(kāi)放的源代碼。這使得您可以打開(kāi)子VI(subVI),并在LabVIEW里觀察/編輯寄存器存取情況,以及添加或修改功能。
NI-DAQmxBASE沒(méi)有NI-DAQmx中所包含的一些軟件特性。只有NI-DAQmx才有的一些特性包括:
DAQ助手
用于高級(jí)DAQ任務(wù)的屬性節(jié)點(diǎn)
多線(xiàn)程I/O性能
問(wèn):在什么情況下不應(yīng)選擇使用NI-DAQmx進(jìn)行開(kāi)發(fā)呢?
答:盡管NI鼓勵(lì)您將NI-DAQmx的優(yōu)點(diǎn)充分利用到您的應(yīng)用程序中,但是在有些情況下使用NI-DAQmx是不夠理想的。
若下列情形之一存在,請(qǐng)安裝并使用傳統(tǒng)NI-DAQ:
您有一臺(tái)NI-DAQmx不支持的設(shè)備,例如一個(gè)AT(用于ISA接口)E系列多功能DAQ卡。
您用的LabVIEW、LabWindows/CVI或MeasurementStudio版本在7.0之前。
您正在使用VisualBasic6。
您要從NI-DAQ6.9.x版本升級(jí)并且存在您不愿意與NI-DAQmx相連接的應(yīng)用程序。
如果下列情形之一存在,請(qǐng)安裝并使用NI-DAQmxBase:
您正在開(kāi)發(fā)應(yīng)用于Linux、MacOSX或PocketPC之上的應(yīng)用程序。
YouhaveaUSBDAQdevicesupportedonlybyNI-DAQmxBase.
您有一個(gè)僅受NI-DAQmxBase支持的USBDAQ設(shè)備。
如果下列情形之一存在,請(qǐng)安裝并使用使用MeasurementHardwareDDK:
您正在使用寄存器級(jí)編程來(lái)開(kāi)發(fā)一個(gè)自定義的驅(qū)動(dòng)程序。
欲想得到更多幫助來(lái)決定哪一種驅(qū)動(dòng)軟件適合您,請(qǐng)使用ni.com/dataacquisition/software上的設(shè)備支持表和驅(qū)動(dòng)軟件比較圖以及NI-DAQReadme文件。
問(wèn):我怎樣得到NI-DAQmx?
答:從NI購(gòu)買(mǎi)NI-DAQmx支持所支持的硬件產(chǎn)品的話(huà),其中會(huì)附有一張NI-DAQ光盤(pán),它包含了最新版本的NI-DAQmx。
您可以訪(fǎng)問(wèn)通過(guò)瀏覽ni.com/china/daq免費(fèi)下載最新版NI-DAQmx軟件。
NI-DAQmx引入的概念
問(wèn):什么是DAQ助手?
答:DAQ助手是一個(gè)基于步驟的向?qū)В梢允鼓鸁o(wú)需編程即可配置數(shù)據(jù)采集任務(wù)、虛擬通道以及實(shí)現(xiàn)縮放操作。您可以從NI應(yīng)用軟件中啟動(dòng)DAQ助手,例如LabVIEW、LabWindows/CVI、MeasurementStudio、VILogger或MAX。
圖5.DAQ助手支持NI所有的ADE
注意:您必須使用LabVIEW、LabWindows/CVI和MeasurementStudio的7.X版本或更新版本,以及VILogger的2.X版本才能使用DAQ助手。
您也可以使用DAQ助手來(lái)生成NI-DAQmx代碼,運(yùn)行您的任務(wù)和全局虛擬通道,或者把它們轉(zhuǎn)移到其他的系統(tǒng)。
利用DAQ助手,您可以:
創(chuàng)建和編輯任務(wù)和虛擬通道
添加虛擬通道至任務(wù)
創(chuàng)建并編輯量程
測(cè)試您的配置
保存您的配置
在您的NI應(yīng)用軟件中生成代碼以在您的應(yīng)用程序中使用
觀察您的傳感器的連接圖
問(wèn):為什么我要使用DAQ助手而不使用NI-DAQmxAPI?
答:DAQ助手建立在NI-DAQmxAPI之上,并且可以作為一個(gè)配置工具和學(xué)習(xí)工具來(lái)加快您在新的NI-DAQmxAPI上的學(xué)習(xí)速度。
在配置之后,LabVIEW里的DAQ助手ExpressVI包含了所有必需的API代碼來(lái)運(yùn)行您的配置任務(wù),但是它隱藏于程序框圖之中。如果您希望在您配置中觀察或修改API功能而不是使用DAQ助手對(duì)話(huà)框,DAQ助手也提供了了代碼生成功能,可以用于LabVIEW、LabWindows/CVI和MeasurementStudio應(yīng)用程序。
問(wèn):什么是NI-DAQmx任務(wù)?
答:NI-DAQmx任務(wù)是具有定時(shí)、觸發(fā)和其他特性的一個(gè)或多個(gè)虛擬通道的集合。概念上,一個(gè)任務(wù)代表了您希望完成的測(cè)量或信號(hào)產(chǎn)生任務(wù)。您可以建立和保存任務(wù)中的配置信息,并在應(yīng)用程序中使用任務(wù)。
問(wèn):NI-DAQmx里的局部虛擬通道和全局虛擬通道有什么區(qū)別?
答:在NI-DAQmx中,您可以將虛擬通道配置成任務(wù)的一部分或者與任務(wù)分離。創(chuàng)建于任務(wù)內(nèi)部的虛擬通道是局部虛擬通道。定義在任務(wù)外部的虛擬通道是全局虛擬通道。
您可以在MAX或您的應(yīng)用軟件中創(chuàng)建全局虛擬通道然后將它們保存在MAX中。您也可以在任意的應(yīng)用程序中使用全局虛擬通道或把它們添加到許多不同的任務(wù)中。如果您修改了一個(gè)全局虛擬通道,這個(gè)改變將會(huì)影響所有引用該全局虛擬通道的任務(wù)。
問(wèn):什么時(shí)候我應(yīng)該使用一個(gè)任務(wù)而不是一個(gè)全局虛擬通道?
答:當(dāng)一個(gè)任務(wù)是具有定時(shí)、觸發(fā)和其他特性的一個(gè)或多個(gè)虛擬通道的集合時(shí)。
一個(gè)全局虛擬通道只引用了一個(gè)物理通道,而且沒(méi)有包含定時(shí)或觸發(fā)功能。但是,全局虛擬通道可以被許多任務(wù)包含和引用,而一個(gè)任務(wù)是一個(gè)獨(dú)立的實(shí)體,它不能被其他任務(wù)包含或引用。
問(wèn):我能可編程地使用NI-DAQmx保存虛擬通道嗎?
答:利用NI-DAQ7.4或更新的版本,您可以可編程地創(chuàng)建并保存任務(wù)、全局虛擬通道和量程。這種編程方式保存的對(duì)象會(huì)出現(xiàn)在MAX里,您可以在DAQ助手和應(yīng)用程序中使用它們。
可編程地保存任務(wù)、通道和量程簡(jiǎn)化了系統(tǒng)配置和多種場(chǎng)合的應(yīng)用,并且減少了發(fā)生錯(cuò)誤的可能性和調(diào)試的需要。
欲想了解更多關(guān)于如何使用此特性以及觀看例程,請(qǐng)?jiān)L問(wèn)http://ni.com/dataacquisition/nidaqmx.。
問(wèn):我該如何導(dǎo)入/導(dǎo)出設(shè)備、任務(wù)、通道和縮放配置?
答:使用MAN,您可以導(dǎo)出您系統(tǒng)的配置以作為備份或應(yīng)用至其他機(jī)器。
使用導(dǎo)出向?qū)Э蓮南到y(tǒng)復(fù)制配置數(shù)據(jù)至一個(gè)文件。要啟動(dòng)這個(gè)導(dǎo)出向?qū)?,?qǐng)?jiān)贛AX中選擇File?Export
問(wèn):什么是屬性節(jié)點(diǎn)?
答:屬性節(jié)點(diǎn)是您可以使用的LabVIEW結(jié)構(gòu),它可以用來(lái)在引用的對(duì)象上訪(fǎng)問(wèn)屬性。NI-DAQmx使用這些結(jié)構(gòu)來(lái)對(duì)所有NI-DAQmxAPI支持的屬性提供完備的編程控制,并且這些屬性節(jié)點(diǎn)形成了API的基本功能。
除了屬性節(jié)點(diǎn)之外,NI-DAQmx也提供了一套NI-DAQmxVI,從而您可以用來(lái)編寫(xiě)程序。這些VI在功能上與使用屬性節(jié)點(diǎn)等價(jià),但是通常更容易且更便于使用。例如,下面的兩個(gè)例子在功能上是等價(jià)的,然而,第一個(gè)例子使用了NI-DAQmx,而另一個(gè)例子使用了NI-DAQmx屬性節(jié)點(diǎn)。
圖6.使用NI-DAQmx屬性節(jié)點(diǎn)實(shí)現(xiàn)高級(jí)的自定義任務(wù)
對(duì)于大多數(shù)應(yīng)用程序,NI-DAQmxVI提供了所需的功能。然而,對(duì)于更高級(jí)的應(yīng)用程序,您可能需要屬性節(jié)點(diǎn)來(lái)得到較少使用的驅(qū)動(dòng)屬性和特性。
問(wèn):我應(yīng)該怎樣過(guò)濾屬性節(jié)點(diǎn)列表?
答:當(dāng)您第一次打開(kāi)并瀏覽一個(gè)屬性節(jié)點(diǎn)時(shí),屬性列表的顯示也許會(huì)看起來(lái)令人難受。為了更容易地瀏覽這些列表,可以通過(guò)如下所示的對(duì)話(huà)窗口來(lái)利用一些過(guò)濾屬性。
要進(jìn)入該對(duì)話(huà)框,右擊屬性節(jié)點(diǎn)并單擊SelectFilter即可。ShowAllAttributes顯示了所有NI-DAQmxAPI所支持的屬性。ShowAttributesForConfiguredDevices顯示了所有當(dāng)前已安裝并配置在您系統(tǒng)中的設(shè)備所支持的屬性。使用ShowAttributesForSelectedDevices選擇您需要為之顯示屬性的已安裝設(shè)備。
除了過(guò)濾選項(xiàng)之外,您也可以通過(guò)LabVIEW幫助查看一個(gè)完整的設(shè)備屬性列表。為找到這個(gè)列表,單擊菜單欄的Help,并從幫助窗口所顯示的目錄表中選擇VI、FunctionHow-ToHelp。然后瀏覽至VIandFunctionReference?NIMeasurementsVIsandFunctions?DAQmxCDataAcquisitionVisandFunctions?AdditionalInformation?DeviceConsiderations?SupportedPropertiesbyDevice。
問(wèn):什么是NI-DAQmx仿真設(shè)備?
答:利用NI-DAQmx7.4版本和更新版本,您可以創(chuàng)建NI-DAQmx仿真設(shè)備。您可以選擇任意NI-DAQmx所支持的設(shè)備并且作為一個(gè)仿真設(shè)備在MAX里添加到您的硬件配置中。這使得設(shè)備通過(guò)應(yīng)用軟件即可使用。
NI-DAQmx仿真設(shè)備十分有用,可用來(lái)創(chuàng)建和運(yùn)行NI-DAQmx程序,而且無(wú)需任何物理硬件的存在即可試驗(yàn)諸如DAQ助手或SignalExpress之類(lèi)的工具。NI-DAQmx仿真設(shè)備在沒(méi)有真實(shí)物理硬件的時(shí)候發(fā)掘設(shè)備性能也是十分有用的。
檢驗(yàn)使用NI-DAQmx仿真設(shè)備的任務(wù),就如同它們運(yùn)行在真實(shí)設(shè)備之上。如果某個(gè)屬性被置為無(wú)效值,返回給仿真設(shè)備的錯(cuò)誤與返回給真實(shí)設(shè)備的錯(cuò)誤是相同的。所有任務(wù)需要的資源都為NI-DAQmx仿真設(shè)備而保存。RTSI線(xiàn)、PXI觸發(fā)線(xiàn)、DMA通道、計(jì)數(shù)器等等都如同它們?cè)谡鎸?shí)設(shè)備上一樣被計(jì)數(shù)和保存。
性能
問(wèn):NI-DAQmx提供了哪些性能的提高?
答:在用戶(hù)應(yīng)用程序中的DAQ性能是許多因素的綜合,包括采樣率、總線(xiàn)速度、驅(qū)動(dòng)性能、分析以及其他操作。在許多應(yīng)用中,NI-DAQmx都可以提高應(yīng)用程序在傳統(tǒng)DAQ上的性能,因?yàn)轵?qū)動(dòng)體系結(jié)構(gòu)的改進(jìn)包括以下幾個(gè)方面:
1.多線(xiàn)程操作。利用NI-DAQmx,由于在執(zhí)行不同的NI-DAQmx任務(wù)之時(shí),多個(gè)線(xiàn)程可以同時(shí)存取NI-DAQmx驅(qū)動(dòng),因此如果您使用LabVIEW或者多線(xiàn)程C程序,性能就能得到提高。多個(gè)線(xiàn)程存取驅(qū)動(dòng)的能力去除了DAQ應(yīng)用程序的瓶頸障礙,并且可以在一些情況下極大地提高性能。多線(xiàn)程操作使得那些執(zhí)行多任務(wù)和一次讀或?qū)懚鄠€(gè)采樣的應(yīng)用性能提高尤其明顯。
2.對(duì)諸多繁瑣的數(shù)據(jù)采集操作任務(wù)的更好的控制。利用NI-DAQmx,您可以更好地控制各種驅(qū)動(dòng)操作,如檢查配置(檢驗(yàn))、保存資源(保存)和對(duì)硬件編程(實(shí)施),而以往這些操作會(huì)成為一些應(yīng)用程序開(kāi)發(fā)的瓶頸。利用NI-DAQmx,您可以開(kāi)發(fā)一個(gè)在主DAQ循環(huán)之外進(jìn)行檢驗(yàn)、保存或?qū)嵤┤蝿?wù)的應(yīng)用程序,從而驅(qū)動(dòng)不再需要重復(fù)地執(zhí)行這些操作。
3.內(nèi)置的硬件定時(shí)單點(diǎn)操作。NI-DAQmx7.2版本引入了對(duì)需要執(zhí)行硬件定時(shí)單點(diǎn)數(shù)據(jù)采集的應(yīng)用程序的內(nèi)置支持。與傳統(tǒng)NI-DAQ相比,這種新的內(nèi)置模式具有許多優(yōu)勢(shì),包括更好的單點(diǎn)任務(wù)(使用多通道)性能。
NI-DAQmx團(tuán)隊(duì)一直致力于改進(jìn)NI-DAQmx的性能。
問(wèn):為什么NI-DAQmxCPU使用率達(dá)100%?
答:一些用戶(hù)已經(jīng)注意到他們的DAQ處理使CPU使用率達(dá)到了100%。使用NI-DAQmx7.3版本或更早的版本,在應(yīng)用程序執(zhí)行一個(gè)讀或?qū)懻{(diào)用之中時(shí),這種情況是可能發(fā)生的。通常,過(guò)度的CPU使用在運(yùn)行其他的應(yīng)用程序時(shí)不成問(wèn)題,但是對(duì)于筆記本,NI-DAQmx會(huì)消耗電池電量并且引起CPU風(fēng)扇啟動(dòng)。
由于NI-DAQmx7.3版本或更早的版本在一個(gè)讀或?qū)懖僮鲿r(shí)會(huì)等待新的數(shù)據(jù)的到來(lái),因此100%的CPU使用率就會(huì)發(fā)生。在等待新的數(shù)據(jù)到來(lái)時(shí),如果在一個(gè)讀操作中數(shù)據(jù)仍然不可得,NI-DAQmx7.3版本就會(huì)轉(zhuǎn)向其他的處理。如果另外一個(gè)處理需要使用CPU,NI-DAQmx就會(huì)與那個(gè)處理共享CPU。然而,如果沒(méi)有其他的處理或任務(wù)需要使用CPU,NI-DAQmx繼續(xù)等待新數(shù)據(jù)的到來(lái)。如果計(jì)算機(jī)僅執(zhí)行數(shù)據(jù)采集,那么這種解決方案提供了非常優(yōu)異的性能,在與其他應(yīng)用程序共享CPU時(shí)則提供了較好的性能。然而,副作用卻是在沒(méi)有其他應(yīng)用程序運(yùn)行時(shí)NI-DAQmx占用了100%的CPU的使用率。
這一問(wèn)題的最好解決方案就是使用最近發(fā)布的NI-DAQmx,如NI-DAQmx7.4。NI-DAQmx7.4改變了緩沖式讀寫(xiě)操作的默認(rèn)等待模式。當(dāng)需要輪詢(xún)時(shí),NI-DAQmx在繼續(xù)讀或?qū)懖僮髦皶?huì)休眠一小段時(shí)間(1ms)。與以前版本的NI-DAQmx相比,這一改變對(duì)于大部分應(yīng)用程序的性能幾乎沒(méi)有影響。然而,其他NI-DAQmx7.4版本的讀寫(xiě)改進(jìn)和優(yōu)化不僅僅只是彌補(bǔ)了可能的性能損失。應(yīng)用程序升級(jí)至NI-DAQmx7.4既可以改進(jìn)性能也可以減少CPU使用率。
如果您需要對(duì)NI-DAQmx7.4等待數(shù)據(jù)的方式進(jìn)行更多的控制,您可以選擇一個(gè)不同的休眠時(shí)間或者將讀等待模式改變成輪詢(xún)或出讓。使用出讓模式會(huì)造成與NI-DAQmx7.3相似的行為。使用輪詢(xún)方式會(huì)造成最大的吞吐量但是在同時(shí)運(yùn)行其他應(yīng)用程序的情況下并不合適。
問(wèn):?jiǎn)吸c(diǎn)I/O性能有沒(méi)有改進(jìn)?
答:與傳統(tǒng)NI-DAQ(Legacy)相比,NI-DAQmx幾乎在各個(gè)情形下都提供了更好的單點(diǎn)I/O性能。然而,也有些情形下,傳統(tǒng)NI-DAQ(Legacy)提供了更好的性能。
值得一提的是,NI-DAQmx為以下應(yīng)用提供了更好的單點(diǎn)性能:
1.用于模擬和計(jì)數(shù)通道的軟件定時(shí)讀和寫(xiě)
2.包含多通道的軟件或硬件定時(shí)讀或?qū)?
傳統(tǒng)NI-DAQ為以下應(yīng)用提供了更好的性能:
1.使用數(shù)字通道讀或?qū)?
2.用于僅有一個(gè)輸入和輸出通道應(yīng)用程序的硬件定時(shí)單點(diǎn)
注意:傳統(tǒng)NI-DAQ用戶(hù)可能不熟悉硬件定時(shí)單點(diǎn)。具體而言,這些應(yīng)用程序使用硬件定時(shí)、大小為零的緩存并且每次讀或?qū)懸粋€(gè)采樣。
有時(shí)候,傳統(tǒng)NI-DAQ會(huì)更快,因?yàn)镹I-DAQmx比傳統(tǒng)NI-DAQ提供了更多的功能。例如,您可以任意將線(xiàn)和端口與NI-DAQmx數(shù)字通道連接。支持多線(xiàn)程和處理異常情況,如意外設(shè)備刪除等,這些都會(huì)添加一些額外開(kāi)支。
許多DAQ應(yīng)用程序需要絕對(duì)最佳的性能,NI-DAQmx團(tuán)隊(duì)也一直致力于開(kāi)發(fā)可以改進(jìn)驅(qū)動(dòng)性能的新特性。
問(wèn):狀態(tài)機(jī)是如何幫助改進(jìn)NI-DAQmx的性能的?
答:NI-DAQmx任務(wù)狀態(tài)機(jī)能跟蹤保存在數(shù)據(jù)采集或生成可以開(kāi)始之前您所需要完成的配置操作。配置操作包括檢查配置(檢驗(yàn))、保存資源(保存)以及對(duì)硬件編程(實(shí)施)。
NI-DAQmx使用狀態(tài)機(jī)來(lái)確保代價(jià)高昂的操作如任務(wù)檢驗(yàn)、資源保存及硬件編程僅在需要時(shí)執(zhí)行。當(dāng)在主采集或信號(hào)生成循環(huán)外執(zhí)行顯示配置操作時(shí),一個(gè)DAQ應(yīng)用程序可從改進(jìn)的性能中受益。NI-DAQmx提供了顯示命令,可以引起一個(gè)將要執(zhí)行的檢驗(yàn)、保存或?qū)嵤.?dāng)一個(gè)任務(wù)顯示地在采集或生成循環(huán)外檢驗(yàn)、保存、實(shí)施或開(kāi)始時(shí),NI-DAQmx并不在每個(gè)循環(huán)重復(fù)這些操作。因此從總體上來(lái)說(shuō),應(yīng)用程序運(yùn)行得更快。
欲想了解更多關(guān)于每個(gè)NI-DAQmx狀態(tài)的信息,請(qǐng)參閱NI-DAQmx幫助文檔。
問(wèn):什么是限制流盤(pán)性能的主要因素?
.
答:磁盤(pán)I/O帶寬、CPU帶寬和總線(xiàn)帶寬。
磁盤(pán)I/O帶寬
典型的使用IDE驅(qū)動(dòng)的系統(tǒng)主要被磁盤(pán)的吞吐量所限制。
潛在的改進(jìn)包括添加一個(gè)用于流的專(zhuān)用驅(qū)動(dòng)器或控制器。一個(gè)專(zhuān)用的驅(qū)動(dòng)器避免了因碎片和操作系統(tǒng)或其他應(yīng)用程序存取磁盤(pán)而引起的性能問(wèn)題。高速的驅(qū)動(dòng)器和高速的RAID控制器提高了磁盤(pán)I/O帶寬。
注意:在添置驅(qū)動(dòng)器和控制器之前請(qǐng)檢查CPU帶寬和總線(xiàn)帶寬以防止增加的磁盤(pán)I/O超出了您事實(shí)上可以使用的范圍。
CPU帶寬
對(duì)于原始數(shù)據(jù),處理器帶寬通常只在高速RAID控制器已安裝的系統(tǒng)中影響性能。在這些系統(tǒng)中,CPU可以影響您如何快速地得到所需的數(shù)據(jù)并把它寫(xiě)入磁盤(pán)驅(qū)動(dòng)器。甚至利用一個(gè)專(zhuān)用的RAID控制器,CPU帶寬的一部分也在將數(shù)據(jù)寫(xiě)入磁盤(pán)時(shí)被消耗。對(duì)于經(jīng)標(biāo)度的數(shù)據(jù),處理器帶寬通常是限制因素。
增加系統(tǒng)中CPU的數(shù)量和CPU的速度提高了系統(tǒng)的帶寬。
甚至當(dāng)CPU使用率低于100%的時(shí)候,最小化并行的任務(wù)和操作。稀有資源的競(jìng)爭(zhēng)會(huì)降低流盤(pán)的性能。
最后,為特定的系統(tǒng)調(diào)節(jié)流代碼。對(duì)于多CPU的系統(tǒng),執(zhí)行一些并行的代碼可能會(huì)提高系統(tǒng)的吞吐量。(注意:對(duì)同一個(gè)磁盤(pán)的并行磁盤(pán)I/O操作通常降低了性能)優(yōu)化代碼以避免存儲(chǔ)副本和其他浪費(fèi)CPU帶寬的操作。
總線(xiàn)帶寬
一個(gè)典型的帶有單一PCI/PXI總線(xiàn)的臺(tái)式系統(tǒng)會(huì)被總線(xiàn)帶寬限制。標(biāo)準(zhǔn)PCI/PXI的理論帶寬大約是130MB/s。真實(shí)帶寬則依總線(xiàn)競(jìng)爭(zhēng)的程度而降低。通常,在同樣總線(xiàn)上同時(shí)運(yùn)行更多設(shè)備會(huì)降低總線(xiàn)帶寬。
注意:一個(gè)單一的NI6115DAQ可以產(chǎn)生80MB/s的數(shù)據(jù)
增加系統(tǒng)中總線(xiàn)的數(shù)量是提高帶寬的唯一方法。例如,一些高端的母板包括2個(gè)或更多的獨(dú)立PCI總線(xiàn)。這有利于您建立一個(gè)系統(tǒng),這個(gè)系統(tǒng)分別在獨(dú)立的總線(xiàn)上有一個(gè)RAID控制器和DAQ設(shè)備。對(duì)于這些母板,橋片可能會(huì)限制所有連接總線(xiàn)的總吞吐量。
問(wèn):NI-DAQmx執(zhí)行高速流盤(pán)的性能如何?
答:NI-DAQmx影響流盤(pán)性能主要在于它使用了CPU帶寬同時(shí)移動(dòng)和標(biāo)度了設(shè)備所采集的數(shù)據(jù)。因此,對(duì)于那些CPU帶寬是一個(gè)限制因素的系統(tǒng),NI-DAQmx有效地使用CPU就顯得十分重要。
自從首次發(fā)布以降低讀寫(xiě)時(shí)的CPU使用率開(kāi)始,NI-DAQmx經(jīng)歷了多次優(yōu)化。例如,在NI-DAQmx7.3和NI-DAQmx7.4版本之間,標(biāo)度的模擬輸入基準(zhǔn)的性能已從8%增長(zhǎng)至60%。未標(biāo)度的模擬輸入基準(zhǔn)性能已從12%增長(zhǎng)至40%。對(duì)于那些CPU帶寬緊張的系統(tǒng),這個(gè)性能的提高直接轉(zhuǎn)化成為的更高的流盤(pán)吞吐量。
NI-DAQmx使用了極為簡(jiǎn)單的壓縮形式。采樣末端的位被簡(jiǎn)單的丟棄而后將所得的采樣打包送入內(nèi)存。NI-DAQmx并沒(méi)有使用其他無(wú)損失或損失性壓縮算法如LZE或JPEG。
在一些情況下,由于采樣已經(jīng)包含不使用的位,因而沒(méi)有數(shù)據(jù)損失。例如,一個(gè)具有12位分辨率和16位采樣大小的通道包含4位不使用的位。您可以無(wú)損失地丟棄這4位同時(shí)所需磁盤(pán)空間減少的幅度達(dá)25%。
此外,您可以配置NI-DAQmx丟棄采樣中一個(gè)或更多不重要的位。例如,您可以配置一個(gè)24位分辨率和32位采樣大小的通道而僅返回最高的20位??偣灿?2位被丟棄,包括8個(gè)不使用的位,這樣所需磁盤(pán)空間減少的幅度達(dá)了37.5%。
從傳統(tǒng)NI-DAQ升級(jí)
問(wèn):為什么我要從傳統(tǒng)NI-DAQ升級(jí)至NI-DAQmx?
答:有許多原因可解釋為什么要升級(jí)到NI-DAQmx。一個(gè)重要的原因是NI工程師致力于提高NI-DAQmx而不是傳統(tǒng)NI-DAQ(Legacy)的效率和性能。如果使用這個(gè)測(cè)量服務(wù)軟件的最新版本,NI-DAQmx用戶(hù)就能享受這一革新的好處。
獨(dú)立于當(dāng)前工程師的努力之外,由于相對(duì)于傳統(tǒng)NI-DAQ(Legacy)的軟件特性?xún)?yōu)勢(shì),用戶(hù)可以簡(jiǎn)單地升級(jí)到NI-DAQmx。其中一些優(yōu)勢(shì)包括:
更好的狀態(tài)模型
多線(xiàn)程驅(qū)動(dòng)
異常情況下的可靠性
簡(jiǎn)化了的同步功能
DecreasedLabVIEWdiagramclutter
降低了LabVIEW程序的復(fù)雜度
從簡(jiǎn)單到高級(jí)編程的平滑過(guò)渡
注意:欲想了解更多關(guān)于這些優(yōu)點(diǎn)及其他信息,請(qǐng)參閱ni.com上DeveloperZone可得的AdvantagesofNI-DAQmx指南。
另外一個(gè)升級(jí)至NI-DAQmx的原因是利用了NI提供的最新的DAQ硬件。最新和最具創(chuàng)新性的DAQ設(shè)備提供了其他廠商和其他設(shè)備所不能提供的技術(shù)。最新的NIDAQ設(shè)備僅被NI-DAQmx支持。
問(wèn):哪些資源可以幫助我把應(yīng)用程序從傳統(tǒng)NI-DAQ升級(jí)至NI-DAQmx?
答:ni.com上的DeveloperZone包含了極好的資源,可以幫助傳統(tǒng)NI-DAQmx用戶(hù)將他們應(yīng)用程序升級(jí)至NI-DAQmx。
第一個(gè)指南,TransitionTraditionalNI-DAQtoNI-DAQmx,表明雖然在傳統(tǒng)NI-DAQ和NI-DAQmx之間許多編程技術(shù)是相似的,但是還是有一些細(xì)微的差別。這個(gè)指南描述了每個(gè)API中最為常見(jiàn)的VI和功能之間的相似之處和不同之處。
第二個(gè)指南,學(xué)會(huì)NI-DAQmx里的10個(gè)功能并解決80%的數(shù)據(jù)采集應(yīng)用程序,描述了您如何利用NI-DAQmx里的10個(gè)函數(shù)和VI來(lái)使用NI-DAQmx來(lái)代替眾多的傳統(tǒng)NI-DAQ功能和VI。這個(gè)指南闡述了如何使用這每個(gè)VI,它們構(gòu)成了NI-DAQmxAPI核心。
對(duì)于那些希望升級(jí)至NI-DAQmx但仍希望利用當(dāng)前傳統(tǒng)NI-DAQ應(yīng)用程序來(lái)使用NI-DAQmx所支持的新硬件產(chǎn)品的用戶(hù),NI創(chuàng)建了傳統(tǒng)NI-DAQ兼容的VI。這些VI利用了可與傳統(tǒng)NI-DAQ和NI-DAQmx協(xié)同工作的庫(kù)代替了一些傳統(tǒng)NI-DAQVI庫(kù)。這些VI看起來(lái)與現(xiàn)有的傳統(tǒng)NI-DAQVI一樣并與現(xiàn)有的應(yīng)用程序無(wú)縫集成。在等待用NI-DAQmx重寫(xiě)這些應(yīng)用程序的同時(shí),這些具有兼容性的VI被創(chuàng)建用來(lái)使用,但是您可以仍然使用僅NI-DAQmx支持的設(shè)備。用戶(hù)在使用具有兼容性的VI時(shí)應(yīng)該十分小心因?yàn)樗鼈儾⒉恢С炙性O(shè)備上的所有特性并且不保證在將來(lái)的版本中得到更新。欲想了解更多關(guān)于VI的信息,請(qǐng)?jiān)L問(wèn) http://ni.com 。
此外,NI網(wǎng)站在http://ni.com/examples上提供了數(shù)以千計(jì)的DAQ例程。數(shù)以百計(jì)的例程說(shuō)明了如何使用NI-DAQmx來(lái)完成最為常見(jiàn)的DAQ任務(wù)。
問(wèn):我能同時(shí)使用傳統(tǒng)NI-DAQ和NI-DAQmx嗎?
答:如果您擁有兩個(gè)DAQ設(shè)備,并且其中之一使用傳統(tǒng)NI-DAQ而另一臺(tái)使用NI-DAQmx,那么您可以同時(shí)使用傳統(tǒng)NI-DAQ和NI-DAQmx。如果您僅有一臺(tái)設(shè)備,您仍然可以既使用傳統(tǒng)NI-DAQ又使用NI-DAQmx,但是只能順序地使用――不是同時(shí)。在這個(gè)順序中,您需要重設(shè)您的設(shè)備以在傳統(tǒng)NI-DAQ和NI-DAQmx驅(qū)動(dòng)之間轉(zhuǎn)換。
在LabVIEW中,在傳統(tǒng)NI-DAQ)序列的末端使用DeviceResetVI,在您NI-DAQmx序列的末端使用DAQmxResetDeviceVI。您仍然需要?jiǎng)?chuàng)建一個(gè)傳統(tǒng)的NI-DAQ虛擬通道和一個(gè)NI-DAQmx任務(wù)以分別使用每個(gè)驅(qū)動(dòng)。
.
問(wèn):對(duì)于VisualBasic6.0開(kāi)發(fā)者來(lái)說(shuō)應(yīng)該選擇哪一種DAQ軟件?
答:許多使用VisualBasic6.0的數(shù)據(jù)采集系統(tǒng)開(kāi)發(fā)者還沒(méi)有轉(zhuǎn)移到Microsofts.NET語(yǔ)言。使用VisualBasic6.0的開(kāi)發(fā)者可有以下幾種選擇:
1.升級(jí)至VB.NET并使用NI-DAQmx。這種選擇的好處是您可以使用Microsoft和NI的最新軟件。
2.使用VisualBasic6.0和NI-DAQmx:NI-DAQmx7.4包含了對(duì)VisualBasic6.0的支持(測(cè)試版)。一旦安裝了C++支持,您還可以獲得一個(gè)VisualBasic類(lèi)型的庫(kù)。目前NI還不支持這種的選擇,尚未提供任何這方面的技術(shù)文檔。
3.使用傳統(tǒng)NI-DAQ和VisualBasic6.0:雖然在短期內(nèi)這種選擇基本沒(méi)有什么問(wèn)題,但是它要求您使用Microsoft和NI的傳統(tǒng)軟件。
問(wèn):沒(méi)有NIConfig.DAQ文件,我該如何在機(jī)器間轉(zhuǎn)移我的配置?
答:您現(xiàn)在可以使用NI-DAQmx里的導(dǎo)出功能來(lái)在機(jī)器間轉(zhuǎn)移您的硬件配置。
進(jìn)入MAX并選擇File?Export以啟動(dòng)配置導(dǎo)出向?qū)?。使用這個(gè)向?qū)?,您可以選擇希望導(dǎo)出的配置并保存它們至您所選擇的用于導(dǎo)出的文件。為了導(dǎo)入配置,進(jìn)入MAX,F(xiàn)ile?Export并從配置導(dǎo)出向?qū)傻奈募袑?dǎo)入配置。
問(wèn):我現(xiàn)在該如何使用SCXI設(shè)備?“ob0!sc1!md1!0”通道字符串語(yǔ)法在NI-DAQmx中無(wú)法用。
答:用在傳統(tǒng)NI-DAQ中的SCXI通道字符串不再能用于NI-DAQmx。現(xiàn)在的格式為SCxMody/channel
1.x代表在配置機(jī)箱時(shí)所選擇的SCXI機(jī)箱ID。
2.y代表模塊的插槽位置。機(jī)箱中的插槽從左至右開(kāi)始編號(hào),從1開(kāi)始。
3.I/channel根據(jù)所執(zhí)行的數(shù)據(jù)采集類(lèi)型具有不同的格式:
模擬輸入:/ai#。#是模塊上模擬輸入通道的數(shù)字。例如,SC1/MOD1/ai1代表ID位為1的SCXI機(jī)箱上1號(hào)插槽模塊上的物理模擬輸入通道1。如果您有許多在同一個(gè)SCXI模塊配置的通道,您可以把它們都包含在SC1/MOD1/ai1.2.4這樣的格式里,這表示同一個(gè)SCXI模塊的模擬輸入通道1、2、和4。
模擬輸出:/ao#。#是模塊上模擬輸出通道的數(shù)字。例如/ao2代表物理模擬輸出通道2。
數(shù)字I/O:port#/line#。第一個(gè)數(shù)字代表數(shù)字端口,第二個(gè)數(shù)字代表所使用端口的數(shù)字線(xiàn)。例如,port0/line2意味著物理數(shù)字端口0線(xiàn)2。
計(jì)數(shù)器I/O:/ctr#。#是模塊上計(jì)數(shù)器的數(shù)字。例如,/ctr0代表模塊上的計(jì)數(shù)器0。
問(wèn):如何使用NI-DAQmx對(duì)計(jì)數(shù)器進(jìn)行編程?
答:下面的表格列出了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里寫(xiě)入計(jì)數(shù)器應(yīng)用程序的幫助信息,請(qǐng)參閱ni.com上DeveloperZone的TransitionTraditionalNI-DAQtoNI-DAQmx技術(shù)指南。
問(wèn):在NI-DAQmx中我該如何使用雙緩沖采集?
答:如果您正在使用雙緩沖I/O,您最有可能以輪詢(xún)緩沖區(qū)的方式來(lái)連續(xù)地采集數(shù)據(jù)。在NI-DAQmx中,您可以簡(jiǎn)單地通過(guò)使用NI-DAQmx定時(shí)功能及將采樣模式參數(shù)設(shè)置成連續(xù)模式來(lái)達(dá)到這個(gè)目的。
NI-DAQmx使用循環(huán)式緩沖區(qū)。對(duì)于輸入操作,一部分?jǐn)?shù)據(jù)可以在緩沖區(qū)為滿(mǎn)時(shí)從緩沖區(qū)中讀取。如同輸出操作一樣,緩沖區(qū)的一部分可以在緩沖區(qū)為空時(shí)寫(xiě)入。使用循環(huán)式緩沖區(qū),您可以簡(jiǎn)單地將設(shè)備設(shè)置成連續(xù)采集數(shù)據(jù)模式,同時(shí)NI-DAQmx會(huì)按照要求找回采集到的數(shù)據(jù)。
問(wèn):我該如何使用NI-DAQmx來(lái)配置SCXI模塊?
答:您依舊可依在MAX中通過(guò)選擇NI-DAQmxDevices、右擊SCXI機(jī)箱并選擇Properties來(lái)設(shè)置SCXI模塊屬性。您可以看到每個(gè)安裝在機(jī)箱中的模塊并且您可以通過(guò)單擊詳細(xì)信息來(lái)設(shè)置每個(gè)模塊的屬性。
MAX中唯一沒(méi)有顯示的屬性是增益設(shè)置。NI-DAQmx可以使用基于信號(hào)的I/O極限來(lái)自動(dòng)地配置設(shè)備以達(dá)到最優(yōu)的增益設(shè)置。
問(wèn):NI-DAQmx里的脈沖序列極性和占空比控制功能的變化?
答:在NI-DAQmx里,您可以通過(guò)使用通用的DAQmx創(chuàng)建通道函數(shù)并選擇CounterOutput?PulseGeneration?Frequency來(lái)簡(jiǎn)化您的程序。在傳統(tǒng)NI-DAQmx里,您必須使用生成脈沖序列函數(shù)來(lái)定義脈沖序列的極性、頻率和占空比。除了頻率和占空比之外,NI-DAQmx使用空閑狀態(tài)參數(shù)來(lái)配置脈沖序列的極性。
問(wèn):使用NI-DAQmx我該如何完成遠(yuǎn)程數(shù)據(jù)采集(RDA)?
答:NI-DAQmx不提供RDA特性。要想遠(yuǎn)程控制您的DAQ設(shè)備,您可以使用LabVIEW7或更高版本里的遠(yuǎn)程前面板特性。利用這一特性,您可以通過(guò)因特網(wǎng)遠(yuǎn)程控制DAQ應(yīng)用程序。
問(wèn):我可以無(wú)需重啟任務(wù)就能改變NI-DAQmx里生成的脈沖序列頻率嗎?
答:可以。您可以在任何時(shí)候更新一個(gè)連續(xù)脈沖序列的頻率和占空比,包括在任務(wù)運(yùn)行的時(shí)候。這對(duì)于需要脈沖寬度調(diào)節(jié)的應(yīng)用十分有益,如PID環(huán)控制應(yīng)用程序。在DAQmx寫(xiě)功能里,頻率和占空比參數(shù)可以在任務(wù)運(yùn)行的時(shí)候自動(dòng)更新脈沖序列。在更新脈沖生成速率的時(shí)候,在新的速率起作用之前,一個(gè)當(dāng)前速率的完整周期會(huì)生成。
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)文章:熱電偶原理
評(píng)論