瀏覽人次:【9848】
應用程式語言技術
以上所敘述的所有技術都被整合至測試與量測領域中,多介面以及多廠商的系統變得越來越普遍。如果想要大幅利用最新的技術與最快的匯流排,就需要有一個可支援這些技術、可重複且容易使用的軟體架構。最好的方式就是使用一個有階層組織的軟體架構、可自動簡化以及隱藏不同匯流排的通訊協定,可簡單地把量測硬體整合到整個系統內。最佳的軟體架構(圖一)包含了強大且有彈性的應用軟體,可利用I/O軟體以及工具使用儀器驅動程式,或是直接I/O通訊能力來設定以及控制儀器。
應用軟體
在選擇適合儀器控制系統的軟體開發環境時,選擇一個有內建儀控功能軟體是十分重要的,它須包含儀器驅動程式以及直接I/O通訊能力。選擇一個對的開發環境可確保成功,並有足夠的工具來更快地開發高品質產品。
確保系統成功的關鍵是擁有一個提供內建儀器控制功能的軟體方案。所需要的軟體必須提供一系列的儀器I/O函式庫及工具,以簡化與儀器通訊軟體的撰寫。如果沒有內建I/O函式庫,則必須撰寫低階語言,使與作業系統能與I/O匯流排溝通,除此之外,選擇的開發環境也需提供一組完整的內建函式庫。即便某些軟體可提供基本I/O通訊,一個完整的開發環境還是擁有相當大的好處,例如客製化、應用整合、系統連結以及完整的分析與呈現能力。當從儀器擷取資料之後,這些功能都可加以分析以及呈現資料,最後再把資料整合到整個量測系統中。
更多關於最佳的I/O函式庫以及工具的資料,都已經透過儀器驅動程式,以及直接I/O通訊整合至開發系統中了。
《圖一 儀器控制系統的軟體架構》 |
儀器驅動程式
當選擇好開發環境後,便可以透過儀器驅動程式或是直接下I/O指令來控制儀器。大致上,如果此儀器有提供儀器驅動程式,直接使用其驅動程式會是最簡單以及最省時的方式。一個儀器驅動程式是一個函式庫,提供了高階功能可直接控制單一儀器或是一系列的儀器。儀器驅動程式是快速開發測試與量測應用的關鍵,由於它提供了簡易使用的高階模組化函式庫,它移除了學習複雜低階通訊協定的必要。每個儀器驅動程式都有一系列的函式可用,它包含了設定、讀取、寫入以及觸發儀器,除此之外,大多數的儀器驅動程式都有類似的架構,當學會一種儀器驅動程式的撰寫方法,就能夠很快地學會另一個。
有兩種不同的儀器驅動程式給不同需求的控制與測試應用:隨插即用以及IVI驅動程式。隨插即用儀器驅動程式簡化了控制,可使用一個標準的電腦語言來與儀器溝通。可替換式虛擬儀器(Interchangeable Virtual Instruments)或IVI驅動程式提供了更完整的功能以達到更高的效能以及彈性,如儀器的可替換性、狀態儲存以及儀器模擬,可使用儀器所支援的任何驅動程式,除非應用需要使用到IVI的高階功能,否則使用隨插即用儀器驅動程式即可。
LabVIEW隨插即用驅動程式
LabVIEW隨插即用儀器驅動程式是一組VI(虛擬儀器程式檔),用來控制可程式儀器,並與其溝通。每個VI對應到一個功能,例如設定、讀取、寫入或是觸發儀器。LabVIEW隨插即用儀器驅動程式規範了程式特性、錯誤處置、人機介面、程式方塊圖與線上支援。由於LabVIEW隨插即用驅動程式使用一個共同的架構與介面,所以可以快速地連結到儀器而不需撰寫過多的程式碼。除此之外,由於每個LabVIEW隨插即用驅動程式架構相同,學習另一個儀器的驅動程式非常容易,縮短很多學習時間。
LabWindows/CVI隨插即用驅動程式
LabWindows/CVI隨插即用驅動程式是一組ANSI C函式庫,用來控制可程式儀器,並與其溝通。每個函式對應到一個功能,例如設定、讀取、寫入或是觸發儀器。LabWindows/CVI隨插即用儀器驅動程式規範了程式特性、錯誤處置、函式介面、函式樹狀結構與說明檔。由於LabWindows/CVI隨插即用驅動程式使用一個共同的架構與介面,因此可快速連結到儀器而不需撰寫太多程式碼。此外,由於每個LabWindows/CVI隨插即用驅動程式架構相同,因此學習另一個儀器的驅動程式非常容易,可縮短許多學習時間。
可替換式虛擬儀器(IVI)驅動程式
IVI驅動程式是較先進的儀器驅動程式,提供了更大的效能與彈性,符合更複雜的需要,如可替換性儀器的使用、狀態儲存以及儀器模擬的測試應用。IVI驅動程式是由IVI協會所開發的業界標準,IVI協會的目的是創造出一個基於VXI隨插即用標準上的驅動程式,也要支援更進階的功能,例如儀器可替換性、模擬、狀態儲存以及安全多緒。IVI協會制定了兩個IVI驅動程式架構,一個是架構於ANSI-C上,另一個則是架構於Component Object Model(COM)技術,IVI-C驅動程式與IVI-COM驅動程式可同時被使用在同一個應用裡。雖然IVI-C與IVI-COM的底層技術不同,但無需在意它的架構,只需要專注在兩個重點上:一、此儀器驅動程式是否架構在一個壽命長的技術之上;二、此驅動程式在開發系統上是否可用。
《圖二 儀器驅動程式選擇:IVI、隨插即用與直接I/O通訊》 |
架構之壽命
架構的壽命對於IVI驅動程式的使用者而言非常重要。儀器可替換性是IVI驅動程式的最大功能之一,而此功能最主要的目的就是可以在需要運作10至20年的系統上更換儀器。若儀器驅動程式的架構每幾年就必須更改一次,即使擁有共同的應用程式介面也是不足夠的,因此,IVI-C架構是個非常好的選擇。ANSI-C是個已經開發成熟的標準,在每個平台上都支援,而且未來也會持續如此。相較起來,COM就不是每個平台都支援,已被.NET取代。
可使用度
開發IVI-COM驅動程式的最大動力就是想要開發一個能夠自動在任何開發環境下,都可使用的驅動程式。然而,如此一來將會犧牲掉可使用度。IVI-COM驅動程式只能在Microsoft Visual Basic 6.0展現出最佳效能(VB 6.0又被.NET取代)。最完美的狀況是驅動程式應該在每個開發環境都能展現出最佳效能。例如,儀器驅動程式應該包含:提供LabVIEW使用的一組LabVIEW VI,一組給Microsoft Visual C++的C++函式庫,以及一組給Microsoft Visual Basic.NET或Visual C#用的函式庫。
雖然IVI-C驅動程式為開發可替換性測試系統的最佳選擇,但當儀器只提供IVI-COM或VXI隨插即用,建議還是使用它。畢竟,最大目標為可簡易地與儀器溝通,並非在意其屬於哪種驅動程式技術。
直接I/O通訊
若找不到儀器的儀器驅動程式,或是不需要使用儀器驅動程式時,互動式的工具可協助工程師直接下I/O指令,來控制儀器。一些不需使用儀器驅動程式的原因包含:
* 只需下傳少數指令給儀器;
* 儀器驅動程式並不存在;
* 不需分享指令與其它開發者。
無論原因是什麼,都應該利用內建在開發環境裡的互動式I/O功能。軟體需提供儀器I/O小幫手,內建VISA與匯流排介面,以及在下文會提到的Measurement and Automation Explorer裡的一些除錯工具包含NI Spy、Interface Bus Interactive Control(IBIC),與VISA Interactive Control(VISAIC)。
儀器I/O小幫手
儀器I/O小幫手提供人機介面,可互動式的寫指令給裝置,從其裝置讀取資料回來,以及如何把讀取回來的資料加以解碼,它支援所有NI開發環境。儀器I/O小幫手簡化了撰寫儀控程式的挑戰,它可自動產生設定的程式碼在開發環境中。儀器I/O小幫手可將複雜的資料解碼,很多時候解字串碼的過程十分繁複,不過使用互動式的解碼視窗,可省下許多寶貴時間。
《圖三 儀器I/O小幫手互動對話視窗》 |
I/O軟體及工具
無論使用直接I/O通訊或是儀器驅動程式,這兩種的底層都是使用同樣的技術來與儀器溝通。除此之外,廠商更需提供許多工具來協助開發,協助儀器的設定以及協助除錯應用程式。
VISA I/O軟體
在早期1990年代時,有許多提供GPIB、序列埠與VXI使用的非標準I/O軟體存在。雖然之中有許多非常高品質且好用的I/O軟體出現,但最後還是有訂定共同標準,可在所有匯流排上使用。為了達到這樣的目標,VXI隨插即用系統聯盟開發了一個I/O軟體標準-Virtual Instrument Software Architecture(VISA)。VISA提供了一個開發的共同基礎,可給儀器驅動程式、軟體人機介面以及應用程式所使用。由於VISA提供了一個共同的開發介面,當使用新的匯流排介面時,可持續使用相同的程式碼。
如今VISA定義了一個可由GPIB、序列埠、USB、乙太網路、PXI以及VXI連結到儀器的I/O介面。使用者可利用幾乎相同的寫法來撰寫由任何上文中所提的匯流排儀器控制程式。除此之外,假設使用儀器驅動程式控制一個使用GPIB介面的儀器,如果此儀器驅動程式底層是用VISA撰寫的,未來此儀器支援乙太網路,也可以使用乙太網路控制,只需簡單的修改程式,做儀器設定即可。
特定匯流排I/O軟體
除了VISA之外,一些特定匯流排I/O軟體也可以使用。包含了提供GPIB介面使用的軟體撰寫介面,與標準488.1以及488.2相容。許多廠商均提供GPIB I/O驅動程式軟體,提供穩定的軟體撰寫介面,從1980年代開始支援一系列的作業系統與大部份的匯流排。
I/O軟體工具
無論使用哪種I/O軟體,其工具都可協助簡化開發過程。包含設定工具與硬體除錯工具、互動式控制以及溝通、匯流排分析等。以上所有工具都可大幅縮短開發時間。
儀器控制之軟體解決方案
下文將探討一系列符合以上所有類別的軟體方案。
應用軟體
LabVIEW
LabVIEW是個圖控式開發環境,具有高互動性,開放式開發環境可用於快速原型設計、量測自動化、即時內嵌式系統與硬體設計之程式撰寫。LabVIEW提供所有傳統文字語言的優點,再加上革命性的圖形化開發環境,加快程式撰寫。使用LabVIEW可設計客製化的虛擬儀器,其人機介面具有以下優點:
* 操作儀控程式;
* 控制硬體;
* 分析資料;
* 呈現資料。
可客製化人機介面之原件包含了旋鈕、按鈕與圖表等,可模擬傳統儀器之介面。由於LabVIEW圖控式撰寫方式與傳統流程圖類似,與傳統文字語言比較起來,可縮短學習時間。
撰寫程式時,可直覺地把每個函式方塊連結起來成為一個完整程式,思考邏輯與工程類似。使用圖形式開發環境,可比使用傳統語言更快速地開發,具彈性且高效能的應用軟體。
LabWindows/CVI
LabWindows/CVI也是一個完整的開發環境,不過它是基於ANSI C之上。有如LabVIEW專為量測自動化所最佳化一樣,LabWindows/CVI也是同樣用途。LabWindows/CVI不但提供了ANSI C的開發環境,也包含了設定小幫手,除錯工具,以及互動式執行。內建的量測函式庫讓您快速的開發複雜的量測應用程式,包含匯流排支援,分析函式,以及人機介面。
Microsoft Visual Studio
Microsoft Visual Studio,包含Visual C# .NET、Visual Basic .NET、Visual Basic 6.0與Visual C++也是個完整的開發環境。不過,它與LabVIEW以及LabWindows/CVI不同的是,Microsoft Visual Studio開發環境是給普遍開發用途,並沒有在量測自動化領域最佳化。也就是說它並不會包含量測自動化領域所需的函式,例如儀器控制、量測分析與資料呈現等。不過Measurement Studio外掛式軟體可幫助工程師,其外掛在Visual Studio之上,提供一系列的量測自動化領域中所需的函式,以方便由Visual Studio開發量測自動化應用程式。
SignalExpress
SignalExpress是個專為測試工程師所開發出來的互動式軟體,可讓工程師們快速的擷取以及分析電子訊號。SignalExpress提供了一個拖曳拉至的無程式撰寫環境、快速設定量測與模擬訊號整合,再配合LabVIEW增加功能。除此之外,SignalExpress提供了一個可直接與上百種儀器溝通的功能,而且是透過IVI-C儀器驅動程式。
儀器驅動程式
這些驅動程式包含了LabVIEW隨插即用、LabWindows/CVI隨插即用,以及IVI驅動程式。支援的儀器有NI、Agilent、Tektronix、Keithley以及其它廠商的示波器、數位電表、RF訊號產生器以及切換器。
直接I/O通訊
如前文所提及的儀器I/O小幫手可提供直接I/O的功能。儀器I/O小幫手可控制任何儀器,只要它支援ASCII碼並且回傳文字即可。它也可簡化解碼過程,並內建在所有開發環境裡,包含LabVIEW、LabWindows/CVI以及專為Microsoft Visual Studio設計的Measurement Studio。
I/O軟體與工具
隨著應用開發環境不同,現有兩種主要I/O軟體套件:
NI-VISA
NI-VISA是NI版本的VISA標準。它支援的儀器通訊介面有GPIB、序列埠、乙太網路、USB、PXI以及VXI。NI-VISA包含在軟體開發環境以及所支援的硬體裡,例如GPIB控制器。
NI-488.2
NI-488.2是NI版本的GPIB驅動程式,常被其它廠商所模擬。提供了基本的IEEE 488.1指令,例如ibwrt與ibrd等。它也支援比較不常用的IEEE 488.2指令,與任何NI GPIB控制器相容,包含內插式介面卡,例如PCI-GPIB或PCIe-GPIB,或外接式GPIB控制器,例如GPIB-USB-HS或GPIB-ENET/100。
互動式控制
NI-VISA與NI-488.2兩者都包含了互動式工具,可互動式地與儀器溝通,用來確認硬體是否良好。它提供基本的介面,十分適合用來做初步設定以及檢測。若欲做更進階的控制,建議使用儀器I/O小幫手。
NI Spy
NI Spy包含在I/O軟體裡。它可監聽所有在488.2、VISA、IVI與模組化儀器上的對話。
快速上手以及除錯
488.2包含了快速上手以及除錯精靈。它可協助安裝GPIB控制器,出現錯誤時,也可協助除錯。
GPIB分析器
488.2包含了GPIB分析器,可與有分析功能的GPIB控制器(例如PCI-GPIB+)搭配使用。它可監控在GPIB八條資料線以及八條控制線上的電子訊號,對於進階除錯時非常有用。
總結
即便可以從許多種類的匯流排以及軟體技術中,選擇最合適的儀器控制應用,重要的是在選擇適合的匯流排時,不會因軟體不同而被限制;相反的,在選擇軟體時,也不會因匯流排不同而被限制。
市面上雖有許多新式硬體匯流排,但較成熟的舊式匯流排在市面上仍有一席之地。可隨意地利用新的匯流排技術,而不需重新撰寫軟體的關鍵,在於使用有階層的軟體架構,提供穩定的軟體開發環境、儀器驅動程式、直接I/O功能,以及強大的支援多匯流排的I/O軟體與工具。這些更具彈性的儀器控制軟硬體工具,包含了業界標準最佳化的開發環境,最多選擇的儀器控制與量測硬體,以及非常紮實的儀器驅動程式組。
(作者任職於NI美商國家儀器)
|
|
無論是開發何種測試與測量應用,都需要依靠成熟的儀器控制技術,以在不分任何程式語言以及任何匯流排介面下,協助連接儀器。相關介紹請見「以任意語言在匯流排上執行儀器控制(上) 」一文。 |
|
在過去二十年裏,個人電腦應用的迅速普及,促進了量測與自動化儀器系統的革新,其中最顯著的就是「虛擬儀控」觀念的出現與發展,為工程師和科學家們提高生產率、量測精準度及系統功能等方面的貢獻。你可在「 虛擬儀控白皮書」一文中得到進一步的介紹。 |
|
PCI Express可謂是PCI匯流排的進化版,保留與PCI的軟體相容性,但是使用高速(2.5Gbps)序列匯流排取代平行匯流排。在「PCI Express-拓展虛擬儀控的世界 」一文為你做了相關的評析。 |
|
|
|
|