應(yīng)用開發(fā)環(huán)境(ADE)在一個(gè)測試軟件框架中發(fā)揮著關(guān)鍵而又顯著的作用。借助這些工具,系統(tǒng)開發(fā)人員設(shè)計(jì)并集成測試系統(tǒng),使其能完成測量,向終端用戶顯示信息,連接其它應(yīng)用等。由于軟件在測試系統(tǒng)實(shí)現(xiàn)中持續(xù)增長的重要性,系統(tǒng)開發(fā)人員將大部分開發(fā)時(shí)間花費(fèi)在ADE上。選擇一個(gè)易用又可支持多個(gè)平臺,并方便與測量和控制服務(wù)(如驅(qū)動(dòng)程序)相集成的ADE非常關(guān)鍵。在選擇用于開發(fā)您的測試系統(tǒng)的ADE時(shí),還應(yīng)當(dāng)考慮其它一些因素,包括ADE的顯示與報(bào)告特性、如何保護(hù)您以免遭產(chǎn)品退化導(dǎo)致的損失、以及全球范圍內(nèi)能夠提供怎樣的培訓(xùn)與支持。本文將對NI LabVIEW、NI LabWindows/CVI和Microsoft Visual Studio .Net三個(gè)不同的ADE就這些特性進(jìn)行比較。
目錄
選擇一個(gè)ADE時(shí)需要考慮的因素
LabWindows/CVI
相關(guān)產(chǎn)品
1. 選擇一個(gè)ADE時(shí)需要考慮的因素
易用性
由于ADE是自動(dòng)化系統(tǒng)核心部分的開發(fā)環(huán)境,所以這些工具的易用性對于軟件工程師的生產(chǎn)力非常關(guān)鍵。易用性所包括的內(nèi)容遠(yuǎn)不止用戶如何快速熟悉并使用。通過易用的ADE,開發(fā)人員可以方便地集成多個(gè)測量設(shè)備的處理任務(wù),創(chuàng)建復(fù)雜的用戶界面,配置并維護(hù)應(yīng)用,并隨著產(chǎn)品設(shè)計(jì)的優(yōu)化和系統(tǒng)需求的擴(kuò)展而調(diào)整現(xiàn)有應(yīng)用。ADE的易用性還包括廣泛的文檔描述與范例代碼。
測量與分析能力
用于開發(fā)測試系統(tǒng)的ADE能夠無縫地管理和處理測量任務(wù),這一點(diǎn)非常關(guān)鍵。為了有效完成這些,ADE應(yīng)當(dāng)將測量數(shù)據(jù)類型直接納入開發(fā)環(huán)境,以便這些數(shù)據(jù)能在其它任務(wù)處理中方便使用。為了達(dá)到最大的開發(fā)生產(chǎn)力,ADE應(yīng)當(dāng)包含廣泛的統(tǒng)計(jì)和數(shù)值分析函數(shù),以及測量應(yīng)用中常見的高性能的信號處理和控制算法。
與測量和控制驅(qū)動(dòng)程序的集成 太多情況下,測試系統(tǒng)的開發(fā)人員假定一個(gè)設(shè)備驅(qū)動(dòng)程序便足以有效集成其測量設(shè)備。然而,僅有一個(gè)驅(qū)動(dòng)程序是不夠的,測量和控制驅(qū)動(dòng)程序應(yīng)當(dāng)盡可能地與ADE無縫集成。在理想狀況下,控制測量設(shè)備的軟件應(yīng)當(dāng)是透明的,只表現(xiàn)為ADE的一部分。這種理想的實(shí)現(xiàn)保證了開發(fā)中的最大靈活性和一個(gè)可擴(kuò)展的能夠配置AED所支持平臺的架構(gòu)。
培訓(xùn)與支持 ADE的易用性也僅限于新用戶學(xué)習(xí)該工具時(shí)變得簡單。因此,ADE廠商應(yīng)當(dāng)提供使用手冊和在線培訓(xùn),以便工程師們可以快速學(xué)習(xí)如何使用其產(chǎn)品。高級用戶或許更需要課堂培訓(xùn),以擴(kuò)展其知識并深入了解系統(tǒng)層次設(shè)計(jì)的概念。這樣的課堂培訓(xùn)應(yīng)當(dāng)通過不同級別的認(rèn)證過程,為開發(fā)人員提供證明其知識技能的機(jī)會。選擇ADE時(shí)的另一個(gè)考慮因素就是,在開發(fā)您的應(yīng)用時(shí)可以得到的如電話或郵件支持的廠商支持。而且,如果您希望在全球范圍內(nèi)使用統(tǒng)一的ADE,那么您將考慮您是否可以得到在世界各地的工程師使用母語的技術(shù)支持。
平臺獨(dú)立性
現(xiàn)今的測試軟件應(yīng)用以多種不同的架構(gòu)為目標(biāo)。重要的是,不論您選擇了怎樣的ADE,它都應(yīng)足夠靈活以盡可能無縫支持所有這些不同架構(gòu)。不同的OS,如Windows、Linux®和Mac OS X,因應(yīng)用而異,具有不同益處。工程師們應(yīng)當(dāng)能將其代碼從一個(gè)平臺移植至另一個(gè)平臺。如果您的ADE不能兼容其它這些平臺,那么您將需要為不同的項(xiàng)目使用不同的ADE,并需要花費(fèi)寶貴的時(shí)間來實(shí)現(xiàn)您的現(xiàn)有知識產(chǎn)權(quán)從一個(gè)平臺移植至另一個(gè)平臺。
顯示與報(bào)告特性
測試應(yīng)用,由于強(qiáng)調(diào)其對數(shù)據(jù)圖形化表示的重要性,給顯示和報(bào)告領(lǐng)域帶來了眾多挑戰(zhàn)。ADE應(yīng)當(dāng)擁有多個(gè)用于數(shù)據(jù)可視化的視覺組件,如圖表、圖形、旋鈕和儀表等。報(bào)告也應(yīng)當(dāng)足夠方便,以便促進(jìn)系統(tǒng)所采集信息的通信。一些應(yīng)用最為廣泛的報(bào)告,如MS Word和MS Excel,應(yīng)當(dāng)可以方便地生成。這些結(jié)果的通信也應(yīng)當(dāng)能方便地實(shí)現(xiàn),通過在網(wǎng)頁上發(fā)布應(yīng)用程序或者將信息錄入到數(shù)據(jù)庫。
針對產(chǎn)品退化的保護(hù) 統(tǒng)一用于開發(fā)您的測試系統(tǒng)的ADE是一件重大事項(xiàng)。重要的是,您的投資得到保護(hù),免遭產(chǎn)品退化導(dǎo)致的損失。您應(yīng)當(dāng)考慮的特性之一是,產(chǎn)品與最新軟件技術(shù)相集成的既往記錄和保護(hù)您免遭測試軟件開發(fā)中的非連續(xù)變遷帶來損失的承諾。此外,產(chǎn)品應(yīng)當(dāng)提供例行的升級以增加新的功能。
LabVIEW LabVIEW是一種圖形化開發(fā)語言,用于幫助工程師和科學(xué)家們以最小的成本快速創(chuàng)建靈活的可擴(kuò)展測試應(yīng)用。LabVIEW使用一個(gè)圖形化的開發(fā)模式,而不是依靠其它如Visual Basic、C++和C#等編程語言的基于文本編程。LabVIEW的圖形化數(shù)據(jù)流語言和程序框圖的方式自然地描述了您的數(shù)據(jù)流,直觀地實(shí)現(xiàn)了用戶界面控件到您的數(shù)據(jù)的映射,從而您可以方便地查看和修改您的數(shù)據(jù)或控制輸入。
LabVIEW也包含可以方便對該產(chǎn)品所涉及文檔進(jìn)行訪問的特性。通過上下文幫助(Context Help)特性,您可以利用LabVIEW的圖形化特點(diǎn)訪問subVI文檔,您所要做的只是將光標(biāo)
停留在對應(yīng)subVI的上方。此外,LabVIEW十分重視在線產(chǎn)品案例的提供,并以此作為展示和講授LabVIEW不同特性的一種途徑。
盡管基礎(chǔ)算法非常復(fù)雜,LabVIEW分析工具還是易于使用。超過15個(gè)用于數(shù)據(jù)分析的如頻譜測量的快速VI,,通過交互式配置對話框(在此對話框中您可以即刻預(yù)覽分析結(jié)果),降低您在應(yīng)用中實(shí)現(xiàn)分析功能的復(fù)雜度。
這些及其它測量分析工具可以直接接受來自數(shù)據(jù)采集硬件的現(xiàn)實(shí)時(shí)域信號輸入,并提供適合繪圖、制表或進(jìn)一步處理的分析結(jié)果。使用這些功能,您可以方便地確定信號特征,如DC/rms水平、總諧波失真(THD/SINAD)、沖激響應(yīng)、頻率響應(yīng)和互功率譜等。
LabVIEW的最大優(yōu)勢在于它與測量和控制驅(qū)動(dòng)程序的緊密集成。LabVIEW簡化了與來自數(shù)百個(gè)廠商的數(shù)千種儀器的連接和通信。使用LabVIEW,您可以通過儀器驅(qū)動(dòng)程序、交互式助手和內(nèi)置儀器I/O庫,快速采集來自GPIB、串口、以太網(wǎng)、PXI、USB和VXI儀器的數(shù)據(jù)。此外,LabVIEW還包含了易用的函數(shù)庫和與NI模塊化儀器和數(shù)據(jù)采集產(chǎn)品通信的交互式助手。
NI為任何層次的使用者提供LabVIEW培訓(xùn)?;A(chǔ)課程定位于希望了解該產(chǎn)品的非編程人員和現(xiàn)有開發(fā)人員,而中高級用戶也可以找到對其技能層次有益的相關(guān)課程。用戶現(xiàn)場課程幫助快速培訓(xùn)大量的開發(fā)人員,使他們不必離開其辦公場所。在線和自學(xué)課程定位于那些希望在自我支配時(shí)間、以個(gè)人的進(jìn)度增加自己知識的開發(fā)人員。與LabVIEW的大量培訓(xùn)機(jī)會相補(bǔ)充的是用戶可以得到全球范圍的支持。NI應(yīng)用工程師在世界各地的分支機(jī)構(gòu)為LabVIEW提供支持。這就意味著,不論工程師身處何地,您都能得到使用母語的電話、郵件或論壇的LabVIEW支持。
雖然LabVIEW通常被看作一個(gè)MS Windows應(yīng)用,但最初的產(chǎn)品是運(yùn)行于Macintosh之上的。在Windows開始統(tǒng)治臺式機(jī)領(lǐng)域時(shí),NI將LabVIEW移植至Windows平臺。今天LabVIEW仍然堅(jiān)守支持新平臺的承諾。LabVIEW繼續(xù)同時(shí)運(yùn)行于Windows和Mac OS X,但鑒于Linux在客戶群中的日益普及,LabVIEW也開始運(yùn)行于Linux。支持在不同的OS上運(yùn)行LabVIEW VI,這意味著無論您需要使用哪一種運(yùn)算平臺,您都能夠使用您的NI LabVIEW技術(shù)。LabVIEW甚至可以運(yùn)行于其它目標(biāo)平臺,如實(shí)時(shí)系統(tǒng)、FPGA和DSP。
LabVIEW的顯示和報(bào)告特性,是ADE如此適合于測試軟件開發(fā)的重要原因之一。LabVIEW包含多個(gè)圖形、圖表、儀表、旋鈕和開關(guān)(同時(shí)包括二維和三維的展示),以便測量數(shù)據(jù)的圖形化表示。ADE也包含LabVIEW報(bào)告生成工具包,該工具包使得創(chuàng)建MS Word和Excel格式的報(bào)告更為方便。如需要通過網(wǎng)頁實(shí)現(xiàn)應(yīng)用程序輸出結(jié)果的通信,可使用LabVIEW遠(yuǎn)程面板,使在網(wǎng)絡(luò)另一端任何一臺瀏覽器上顯示前面板。另一方面,如果您的測量結(jié)果需要錄入到數(shù)據(jù)庫,LabVIEW數(shù)據(jù)庫連接工具包則提供了一組易用的工具,通過這些工具您可以快速連接到本地與遠(yuǎn)程數(shù)據(jù)庫,并完成多種常用數(shù)據(jù)庫操作。
最后,NI始終強(qiáng)調(diào)并承諾幫助其LabVIEW用戶克服產(chǎn)品退化的問題。雖然大量的開發(fā)努力已經(jīng)被集中在增加新特性和新技術(shù)集成中,但是在最新產(chǎn)品中運(yùn)行舊版本的代碼總是更為優(yōu)先的,因?yàn)檫@意味著投入于開發(fā)先前應(yīng)用的寶貴資源,不僅不會被浪費(fèi),而且可以實(shí)現(xiàn)與未來開發(fā)的銜接。
2. LabWindows/CVI
LabWindows/CVI是一個(gè)在業(yè)界得到驗(yàn)證的測試與測量ANSI C開發(fā)環(huán)境,它顯著地提高了工程師與科學(xué)家們的生產(chǎn)力。圖4展示了LabWindows/CVI的開發(fā)環(huán)境。
在制造測試、軍事航空、電信、設(shè)計(jì)驗(yàn)證和汽車工業(yè)等領(lǐng)域,工程師和科學(xué)家們使用LabWindows/CVI,以開發(fā)高性能穩(wěn)定的應(yīng)用。LabWindows/CVI使用硬件配置助手、廣泛調(diào)試工具和交互式執(zhí)行能力(這種交互執(zhí)行能力使得開發(fā)人員在設(shè)計(jì)期間便可以運(yùn)行函數(shù)),使這些領(lǐng)域的開發(fā)流線化。
如高級分析庫的工具包與LabWindows/CVI所包含的分析庫形成互補(bǔ),以幫助工程師們分析其測量數(shù)據(jù)。LabWindows/CVI高級分析庫提供了廣泛的、可用于分析您數(shù)據(jù)的函數(shù)庫。通過這些強(qiáng)大的分析例程,您可以方便地將原始數(shù)據(jù)轉(zhuǎn)換為有用信息,并構(gòu)建測試應(yīng)用程序。高級分析庫所包含的函數(shù)有:信號發(fā)生、一維與二維數(shù)組操作、復(fù)雜操作、信號處理、統(tǒng)計(jì)學(xué)和曲線擬合等。
通過來自200多個(gè)廠商的超過4000個(gè)儀器驅(qū)動(dòng)程序構(gòu)成的儀器驅(qū)動(dòng)程序網(wǎng)絡(luò),LabWindows/CVI成為儀器控制和連接業(yè)界的領(lǐng)軍者。您可以使用這些驅(qū)動(dòng)程序,方便地編寫儀器控制應(yīng)用程序。通過儀器I/O助手,您可以生成與設(shè)備(如串口、以太網(wǎng)和GPIB儀器)通信的代碼,而不必使用儀器驅(qū)動(dòng)程序。儀器I/O助手提供了一個(gè)簡單的界面,您可以快速構(gòu)建應(yīng)用的原型并自動(dòng)解析儀器數(shù)據(jù),而無需任何編程。您可以將所生成的代碼方便地輸入到任何現(xiàn)有應(yīng)用中,從而免除了編寫儀器連接、基本通信和字符串解析代碼帶來的乏味工作。除集成的NI-DAQmx庫外,LabWindows/CVI還提供了DAQ助手——一個(gè)與數(shù)據(jù)采集驅(qū)動(dòng)程序框架交互的界面。
LabVIEW的培訓(xùn)和支持框架也同樣適用于LabWindows/CVI。目前,LabWindows/CVI的培訓(xùn)課程,根據(jù)培訓(xùn)對象使用LabWindows/CVI的不同技能水平,有不同的定位。對于那些需要快速培訓(xùn)大量開發(fā)人員的活動(dòng),我們也可以為其提供用戶現(xiàn)場培訓(xùn)課程,使其不必離開自己的辦公場所。對于那些希望在自己支配的時(shí)間、按個(gè)人的進(jìn)度增加知識的工程師,我們通過在線和自學(xué)課程為其提供了多重選擇。與LabWindows/CVI的培訓(xùn)機(jī)會形成互補(bǔ)的是,在世界各地的分支機(jī)構(gòu)的NI應(yīng)用工程師會提供全球范圍的支持。
通過保持LabWindows/CVI的向后兼容性,NI幫助您免遭產(chǎn)品退化帶來的損失。您不僅可以運(yùn)行多年以前所開發(fā)的C代碼或者更早版本中創(chuàng)建的LabWindows/CVI代碼,您還可以通過新的優(yōu)化編譯器集成更快速地運(yùn)行應(yīng)用程序。LabWindows/CVI對向后兼容性的承諾對于重視產(chǎn)品生命周期和延續(xù)性的領(lǐng)域(如軍事與航空)非常關(guān)鍵。
Microsoft Visual Studio .Net (C++、Visual Basic .Net、C#和ASP.NET) Visual Studio .NET,由于支持四種編程語言(C++、Visual Basic .Net、C#和ASP.NET),提供了一個(gè)非常強(qiáng)大的ADE。選擇這幾種編程語言中的任一種,意味著您使用這種工具的同時(shí)還可以利用開發(fā)人員的不同專業(yè)技能,即使他們的技術(shù)使用的是不同的編程語言。使用Visual Studio .NET所開發(fā)的應(yīng)用程序可以運(yùn)行于PC,也同樣可以通過ASP.NET語言運(yùn)行于網(wǎng)頁。
Visual Studio .Net提供了使用不同編程語言(如C++、Visual Basic .Net和C#)進(jìn)行開發(fā)的功能。通過支持將這些編程語言編譯成通用語言運(yùn)行時(shí),您可以增加由不同語言開發(fā)的函數(shù)庫。另一方面,.Net平臺僅工作于Microsoft Windows的這一事實(shí),意味著可以運(yùn)行您的應(yīng)用程序的OS的數(shù)目將是非常有限的。而且,將您的應(yīng)用程序移植到未來其它OS,可能需要用不同語言重新編寫該應(yīng)用程序。
缺省情況下,Visual Studio .NET并不包含任何與測量和控制驅(qū)動(dòng)程序相集成的功能,也不執(zhí)行任何分析操作。有些組件,例如那些由NI測量工作室所提供的組件,可以提供對測量和儀器驅(qū)動(dòng)程序的訪問以及分析功能。這些組件通過提供自動(dòng)生成代碼的交互式助手,提高了ADE與儀器和測量驅(qū)動(dòng)程序的集成度。相比之下,.NET框架的某些特性使它與某些儀器的通信固有地相當(dāng)困難。.NET架構(gòu)以通用語言運(yùn)行時(shí)的方式執(zhí)行代碼,隔絕了您對硬件的訪問。無法訪問硬件,從而很難直接寫入到儀器寄存器。為了完成這項(xiàng)任務(wù),通常不得不創(chuàng)建一個(gè)DLL,然后從一個(gè).NET應(yīng)用程序中調(diào)用這個(gè)DLL。
缺省情況下,Visual Studio .NET幾乎不能提供任何顯示與報(bào)告能力。此外, ADE通過提供文本框、組合框、列表框、按鈕和其它創(chuàng)建一個(gè)基本應(yīng)用所需的組件,提供了足夠的特性以生成一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序。為了使用更多強(qiáng)大組件以展示數(shù)據(jù),例如圖形和圖表,您將需要為此應(yīng)用購買一套組件。對于Visual Studio .NET中的任一個(gè)編程語言,由于缺少報(bào)告工具,這個(gè)問題同樣也會出現(xiàn)。另一方面,.NET架構(gòu)通過將信息存儲在數(shù)據(jù)庫來提供強(qiáng)大的報(bào)告特性。ADO .NET,一個(gè)豐富的數(shù)據(jù)功能庫,可與不同數(shù)據(jù)庫通信并對其執(zhí)行操作。
缺省情況下,Visual Studio .NET幾乎不能提供任何顯示與報(bào)告能力。此外, ADE通過提供文本框、組合框、列表框、按鈕和其它創(chuàng)建一個(gè)基本應(yīng)用所需的組件,提供了足夠的特性以生成一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序。為了使用更多強(qiáng)大組件以展示數(shù)據(jù),例如圖形和圖表,您將需要為此應(yīng)用購買一套組件。對于Visual Studio .NET中的任一個(gè)編程語言,由于缺少報(bào)告工具,這個(gè)問題同樣也會出現(xiàn)。另一方面,.NET架構(gòu)通過將信息存儲在數(shù)據(jù)庫來提供強(qiáng)大的報(bào)告特性。ADO .NET,一個(gè)豐富的數(shù)據(jù)功能庫,可與不同數(shù)據(jù)庫通信并對其執(zhí)行操作。
由于.NET關(guān)注的是商業(yè)、IT和基于網(wǎng)頁的應(yīng)用而不是自動(dòng)化測試,保證編程語言的長生命周期和避免跳躍式的變遷不是優(yōu)先關(guān)注的方面。聚焦于IT的應(yīng)用生命周期可能為數(shù)月,而自動(dòng)化測試應(yīng)用的生命周期可能為數(shù)年。例如,即使將DLL集成到.NET中是可能的,但這要求開發(fā)人員以手動(dòng)的方式調(diào)用函數(shù),并保證DLL的數(shù)據(jù)類型與.NET中的數(shù)據(jù)類型相匹配。
初看之下,這些要求似乎不很難,但如果您需要和一個(gè)儀器驅(qū)動(dòng)程序的數(shù)百個(gè)函數(shù)通信時(shí),這個(gè)過程將變得非常費(fèi)時(shí)。另一方面,將您已有的ActiveX組件合并到一個(gè).NET自動(dòng)化測試應(yīng)用中,要比合并一個(gè)DLL容易得多。Visual Studio .NET可以為您的ActiveX組件生成封裝,使之現(xiàn)示為.NET對象。
初看之下,這些要求似乎不很難,但如果您需要和一個(gè)儀器驅(qū)動(dòng)程序的數(shù)百個(gè)函數(shù)通信時(shí),這個(gè)過程將變得非常費(fèi)時(shí)。另一方面,將您已有的ActiveX組件合并到一個(gè).NET自動(dòng)化測試應(yīng)用中,要比合并一個(gè)DLL容易得多。Visual Studio .NET可以為您的ActiveX組件生成封裝,使之現(xiàn)示為.NET對象。
3. 相關(guān)產(chǎn)品
軟件:
NI TestStand測試管理軟件
LabVIEW 圖形化編程語言
LabVIEW SignalExpress交互式測量軟件
硬件:
模塊化儀器(示波器、萬用表、RF、開關(guān)和其它)
數(shù)據(jù)采集(DAQ)設(shè)備
PXI系統(tǒng)組件(機(jī)箱和控制器)
儀器控制(GPIB、USB和LAN)
技術(shù)白皮書
NI公司提供了《設(shè)計(jì)新一代測試系統(tǒng)開發(fā)者指南》。這篇指南是集合了各類白皮書,是用來幫助開發(fā)測試系統(tǒng),降低成本、提高測試吞吐量,可擴(kuò)展以適應(yīng)未來的需求。需要下載完整的開發(fā)者指南(120頁),請?jiān)L問ni.com/automatedtest/zhs