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