將近二十年來,科學家和工程師一直使用圖形化程式設計語言來製作自動化資料擷取及儀器控制解決方案,供設計實驗室、驗證實驗室以及生產工廠使用。在這段時間裡,根據使用者的回饋及經驗,透過許多次的新版本及擴充功能,不斷地改良,現在圖形化程式設計語言已經成為這些應用領域的實質業界標準,如(圖一)。在這項標準的核心中,圖形化程式設計語言讓不具備正式程式設計訓練或背景的技術專業人員得以快速製作自動化量測及控制系統。目前圖形化程式設計語言已經演進到遠遠超越程式設計語言的地步,例如以廣泛的工具組合建構成一個圖形化開發平台,供設計、控制及測試之用。本文摘要說明使圖形化開發平台得以在過去二十年間,為許多使用者提供生產力的核心技術元件,並檢視推動圖形化開發平台進入新行業及市場中的各種應用程式工具及函式庫。
《圖一 作業系統、整合以及程式設計語言等方面的技術集合》 |
|
虛擬和實體資料漸漸結合的世界
隨著過去二十年來工程技術的爆炸性發展,無論是摩爾定律所指稱的半導體效能提升和體積縮小、電腦及微處理器普及於各項行業,或是通訊標準及網路的進步等,工程師在設計、製造或測試新產品時,都會面對複雜度大量提高的挑戰。在這些領域中的手動程序已經被電腦的自動化設計、模擬、控制、檢驗及測試工具所取代。隨著技術的進步,挑戰將從個別的步驟或程序加以自動化,轉變成整合不同的工具和技術,再轉變為將整個過程自動化及流暢化。當個別功能的最佳工具無法與過程中的其它工具整合時,這個工具就會失去優勢。由於這種複雜度,現在的工程師和科學家需要的不只是處理其必須完成的各種工作的最佳點狀方案,而是需要一個可以提供一貫相容性和生產力的開發平台。
朝著自動化發展最明顯的行業就是設計領域。無論是設計電子晶片和印刷電路板、機械架構或是通訊信號連結,這個領域中的大部份設計師會先用一套軟體工具來設計產品。常見的第二個步驟是透過模擬工具來執行這些設計,嘗試在多種層面上預測其效能。利用許多這一類的設計工具,使用者可以將設計內容輸入至不同的模擬工具,進行早期的設計評估。從這個步驟開始,下一個步驟包括自動化佈線(layout)或模型製作及修整,以及將實際製造過程自動化。
在任何一個設計及發展流程中,以軟體為基礎進行設計的虛擬世界,和以電子或機械測量的實體世界中之模擬工具之間存在著極為明顯的差異。虛擬和實體之間的差異正是圖形化開發平台的價值最為明顯之處。實體測量和設計及模擬是完全不同類型的挑戰:實體測量需要和多種量測及控制硬體密切地整合,需要最佳化的效能,以處理大量的通道(如機翼的壓力測試需要大規模的資料記錄)或極高速度的資料流通率(如RF通訊測試)。
圖形化開發平台已經發展至能在實體測量方面提供效能和彈性。更重要的是,圖形化開發平台是開放的,因此設計師可以將測量資料與其模擬結果比對,甚至交換其模擬及實體資料,以便製作設計的行為模型,或是使用模擬誘因來驅動實體測試。即使是採用最新運算法及電腦科技的最先進設計及模擬平台,也沒有考慮到解決實體測量這個部份的挑戰。
發現必須彌補虛擬及實體量測和控制之間差異的工程師們,最先體會到以平台的角度來進行技術設計、模擬、測量及控制的重要性。如(圖二)所示,實體測量的資料在整個產品的生命週期裡呈現全新的重要性,而且不限於晚期流程中才發生的生產控制或驗證測試步驟。
開放的重要性
如果工程師要運用實體測量資料,就必須使用一個開放而且與其所選擇的設計及模擬平台相容的量測平台。圖形化開發平台已經在許多不同的設計領域中獲得廣泛的採用,亦因而產生大量的整合工具、函式庫及檔案格式,將開發平台所產生的資料與不同的設計和模擬工具結合,如(圖三)。除了和這些特別的工具整合之外,圖形化開發平台亦容納許多軟體標準,以期能在等式的兩端提供整合─和其它的軟體工具及套件整合,或是和多種量測資源整合,包括:
- (1)DLL,共用函式庫;
- (2)ActiveX、COM以及.NET(Microsoft);
- (3)DDE、TCP/IP、UDP、乙太網路及藍芽;
- (4)CAN、DeviceNet、ModBus、OPC;
- (5)USB、IEEE 1394(FireWire)、RS232/485、GPIB;
- (6)資料庫(ADO、SQL等等)。
透過這些通用標準來和硬體及軟體資源通訊,圖形化開發平台的使用者通常可以在必要時找到一個方法來交換及重覆使用其資料。
《圖三 圖形化程式設計語言的設計,是為了用比順序型文字程式語言更加直覺的方式來呈現平行執行》 |
|
一貫的重要性
當工程產品的生命週期遷移到使用軟體進行設計及開發的虛擬世界之後,它越容易受到軟體生產力的兩刃利劍的影響─透過自動化使得生產力獲得提升,同時也必須面對軟體技術以驚人的速度在變化。現在工程師和科學家使用軟體及個人電腦做為獲得更佳結果的工具,但是其它行業(例如IT、網際網路或以企業為主的方案)則以軟體為目標。軟體業的競爭驅使廠商建立起由技術、開發工具以及專業人員組成的生態系統,最後再將這個系統拆毀,以全新的技術和基礎取而代之。
雖然這種做法對軟體業而言或許行得通,但是其它參與設計及製造產品的行業(如汽車、通訊、材料等等)卻只是在尋找方法,使他們在設計及開發方面的核心能力更加流暢。這些行業的工程師必須採用一個能夠在橫跨多代產品之際,保證提供長期穩定性和一貫性的平台。設計師必須能夠在多年間重複使用並改良其設計,而不需要更換整組工具,或是重新學習不同的設計及測量方法。
自從圖形化開發平台於1986年問世以來,長期一貫性一直是其特色之一。圖形化開發平台首先在麥金塔上推出,因為它是當時唯一能夠提供圖形化程式設計語言所需要的繪圖功能之平台。此後的二十年間,圖形化開發平台雖然經歷軟體、通訊及作業系統技術的巨幅改變,但使用者在程式設計方面的投資則不受影響。開發平台的多平台哲學是要提供一個共用的基礎,使用者可以在其上製作解決方案,並在不同的作業系統上執行,如Mac OS X、Windows或是UNIX(Linux)。但是在每一種平台上,圖形化開發平台的使用者都可以運用作業系統所獨有的技術(例如Windows的ActiveX或.NET)來加強其解決方案。
只要遵循這個途徑,使用者可以在兩個層次上將其解決方案最佳化:在一款特定的作業系統上發揮其全部的功能,或是提供最大的可攜性,以確保能夠長期保護其投資。圖形化開發平台隨時提供一個機制,讓使用者得以在不斷變動的技術之間轉移,因此在發展的過程中不斷地增加新使用者,同時也不會將特定技術的使用者邊緣化或加以放棄,如(圖四)。這一點對於科學家或工程師而言尤其重要,因為他們需要利用最新的技術,同時不致於發展至死胡同。
圖形化開發平台的核心技術優勢
圖形化開發平台是一種開放的開發平台,許多不同的應用領域和行業均採用。因為在其核心中,圖形化程式設計語言讓數以千計的科學家及工程師得以迅速而簡易地開發複雜的量測及控制系統。但是程式語言只是在過去二十年間提高其接受度的平台元件之一。有四項關鍵元件,被視為是圖形化開發平台的重要元素:
- (1)直覺式的圖形化程式設計語言;
- (2)高階的應用程式專用工具;
- (3)整合的量測及控制專用功能;
- (4)多重運算目標。
直覺式的圖形化程式設計語言
可以想像得到,在過去二十年來,圖形化程式語言已經推出大量的函式庫及結構,並且加以改良。本文的範圍無法詳細說明圖形化程式設計語言的所有層面,以及它為何能供科學家和工程師使用。在本文中,將著重介紹幾項使這種程式語言與眾不同的關鍵概念:
資料流(Dataflow)
圖形化開發平台是一個以圖形化程式設計語言為基礎的開發環境。這種開發應用程式的方法大幅降低學習曲線,因為對工程師和科學家而言,圖形呈現要比文字程式碼更加自然。因此工程師可以透過互動式面板、對話方塊、選單以及數百種函數程式區(虛擬儀器;VI)來存取工具及功能。更可以將這些VI拖拉至程式區中,以定義應用程式的行為。這種點選的方式大幅降低從初步設定到最終方案之間所花的時間。
透過一種稱為資料流程式設計(dataflow programming)的概念來設定資料的流程,以及應用程式的執行。資料從一個VI傳送到下一個VI,最後決定了執行的順序以及整個應用程式的功能。資料流的本質可以比擬為閱讀流程圖。程式區中包括函數(以圖示表示)、連接這些圖示的接線,以及控制執行邏輯的結構。資料從一個函數流到下一個函數,而函數和VI要等到所有的端子(terminal)或接線連接都有資料可以處理時才會執行,如(圖五)。
模組化
圖形化開發平台在本質上即鼓勵模組化及程式碼重覆使用。使用者利用圖形化的人機界面建立VI(即程式模組);在人機界面中,以圖形化的控制器和指示器呈現函數程式碼的輸入及輸出。圖形化的控制器及指示器(旋鈕、量表、儀表、圖表顯示及長條圖等)代表傳入及傳出函數的資料類型。使用者可以將這些VI加入其它VI中,因此可以產生模組化、階層化的程式碼,讓使用者得以一次製作一個元件,並在發展過程中重覆使用共用的操作做為subVI,逐漸地建立複雜系統。應用程式中使用的覆層或subVI數量沒有限制,因此程式語言可以隨著應用程式所需的複雜度而擴充。
多執行緒及平行執行
圖形化開發平台除去傳統程式語言所必須的低階程式寫作工作,例如記憶體管理(變數宣告等等)。圖形化開發平台亦具備直覺式的圖形化架構,供文字式程式語言中的一般性程式設計架構使用。舉例來說,While迴圈及For迴圈以方塊的形式呈現,以圖形方式位於方塊內的程式碼就是迴圈重複執行的程式碼。
再深入一層來檢視這個程式語言,圖形化開發平台的設計就是作為一種平行語言,也就是說這個圖形化程式語言架構在本質上即呈現出平行執行的簡單概念。但是要在文字式程式語言中設計這種簡單概念卻非常困難,因為它們傳統上就是採取循序執行(一行接一行)的方式。利用圖形化開發平台,使用者可以開發平行執行的應用程式,只需在其程式碼中加入多個迴圈架構即可。如(圖六)所示的兩個獨立迴圈也會平行地獨立執行。這項功能是用非常簡單的方式來解決非常困難的程式設計挑戰。平行執行在自動化測試系統中非常重要,因為可能同時測試多部設備;在即時控制系統中則可能在需要嚴格控制時間的迴圈擷取資料及控制輸出的同時,資料也同步傳送到主機;或是在嵌入式應用中,多種類型的輸入必須以可確定的方式來加以回應。
在開發平行執行應用程式時,程式設計師必須擁有工具,以設定不同操作的優先順序。舉例來說,程式的I/O部份就比使用者界面重要得多。利用圖形化開發平台,使用者可以使用直覺式的對話方塊及設定,在作業系統層級上設定執行緒的優先順序。
互動式執行及除錯
圖形化開發平台語言也是互動式的,也就是說使用者在開發過程中可以嘗試函式庫中不同的函數,這在設計I/O資源程式時尤其重要。舉例來說,在設定資料擷取(DAQ)操作時,使用者可以直接從內建的DAQ函式庫中選擇一個擷取函數,再讓它獨立執行。這個操作會實際從電腦的DAQ介面卡上取得資料,因此使用者可以檢視資料,看看它的運作是否適合程式之用。若是如此,只需將該VI拉進程式中並繼續進行開發即可。如果不適合,再試試函式庫中的其它VI,直到找到所需要的函數為止。
在圖形化開發平台中除錯也是採用互動方式,它具備所有傳統程式設計工具的常見功能,例如中斷點、step over/into/out of等等。圖形化開發平台的除錯功能之一是將運算法中任何一處的資料予以視覺化,而不會降低運算法的效能或需要複雜的程式設計。舉例來說,如果在圖形化開發平台中開發一個複雜的訊號處理運算法,可以將圖表控制器放進人機界面,將它們連接到資料路徑上,以檢視運算法中該點的資料。或者也可以連接一個控制器(例如旋鈕或滑軸控制器),用來更動運算法的輸入參數值。這種互動式檢查資料和參數值的能力使得在圖形化開發平台中除錯的速度提高許多,也更加直覺。
高階的應用程式專用開發工具
圖形化程式語言為科學家及工程師提供一個直覺的方式,以開發其量測和控制應用程式。除了容易學習及使用之外,這種語言也提供先進應用程式所需要的效能。編譯後的程式執行速度可接近傳統文字式程式語言的編繹結果。但是對許多應用程式而言,可能有更高階的方式可以呈現解決方案(或是解決方案的一部份),而不需要使用低階程式碼。圖形化開發平台的高階工具日漸增多,其目標在於用更快的速度解決特殊類型的結構需求。利用大部份的工具,使用者可以在較高階的概念層次進行開發,然後再轉換成低階的開發平台程式碼,以提供編譯後之開發平台語言所具備的開放性、彈性及效能。這些開發工具包括:
- (1)控制程式區:用於設計線性、非線性、離散性以及連續性控制系統。使用者可以使用傳統的控制觀念來進行開發,例如傳送函數區塊、積分器、微分器及回饋迴圈;
- (2)狀態圖表:使用圖形化的狀態圖表呈現,定義多項狀態及狀態間的轉換邏輯;
- (3)公式/腳本節點:用於在文字中使用複雜公式,或輸入以傳統數學工具(例如MATLAB或MATRIXx)定義的運算法;
- (4)使用者界面設計:使用圖形化開發平台的事件架構,在圖形化程式碼中管理非常複雜的使用者界面。架構接收與每一個使用者事件有關的資訊,可以在事件架構中的不同面板上進行處理。
運用這些高階觀念來製作特定的應用程式,加上圖形化開發平台程式語言的彈性,使用者就可以在一個平台上發揮這兩種方式的最大功能。
整合的I/O功能
圖形化開發平台最廣為人知的就是它是一套資料擷取及儀器控制工具。這些功能皆內建於程式語言中,而且普見於整個環境之中。語言本身可以自然地管理連續性、迴圈式的資料擷取作業,並為開發人員節省大量的時間,因為這項工具在以下所列的領域當中,以工程師和科學家的角度提供各種功能:
I/O函式庫
- (1)插入式資料擷取設備;
- (2)模組化儀器;
- (3)獨立儀器(GPIB、RS232等等);
- (4)視覺/影像擷取;
- (5)運動控制。
分析
- (1)訊號處理;
- (2)聲音及震動;
- (3)命令分析(輪流式機器分析;rotational machinery analysis);
- (4)頻譜測量及調變。
顯示
- (1)圖表、長條圖;
- (2)旋鈕、計量器、量規;
- (3)幫浦、活閥、管路;
- (4)溫度計、水槽。
這些不同類型的工程專用控制器和函式庫的整合功能不容低估。
多重運算目標
圖形化開發平台的另一個優勢是它的開放後端,可以用多種運算平台為目標。開發平台的原生編譯器可以在所有普遍的桌上型作業系統上執行,例如Windows、Mac OS X以及Linux。圖形化開發平台也可以在工業用即時平台上執行,供需要可確定性或額外穩定性的應用環境使用。圖形化開發平台程式也可以以執行Windows Mobile、Windows CE或Palm OS的可攜式設備為目標。除了常見的可攜式PDA或智慧型電話設備之外,這些技術也常見於機器或工業系統所使用的觸控式顯示器。最後,圖形化開發平台的嵌入式系統產品將開發平台程式轉變成C程式碼,可以在32位元微處理器上執行。
透過廣泛的運算目標,圖形化開發平台使用者可以為其應用程式選擇正確的執行時段環境, 並隨著需求改變而變動規模。
供設計、控制及測試應用的整合平台
圖形化開發平台將本文中所描述的技術優勢引進到許多不同的應用領域及行業。大致上來說,這種開發平台橫跨三種不同的水平應用程式領域,如(圖十)所示:
- (1)自動化測試及測量;
- (2)工業測量及控制;
- (3)嵌入式設計及原型製作。
圖形化開發平台自動化測試及量測平台
在自動化測試應用方面,圖形化開發平台提供在不同領域中進行量測所需的多種硬體I/O相容性及專用分析功能。除了硬體相容性之外,此平台亦在所需的系統自動化及量測分析方面提供多種工具。舉例來說,在自動化方面,圖形化開發平台提供的工具包括:
互動式量測
利用SignalExpress,使用者可以在實驗桌上用互動的方式來使用虛擬儀器(使用一部PC進行控制的插入式或獨立儀器)。至於連簡單的程式設計都顯得小題大做的快速簡易測量,並可設定量測、將結果與模擬資料比對,並將量測結果存在電腦中。
自動化測試系統
利用TestStand,使用者可以使用複雜的通過/失敗邏輯來定義詳盡的測試順序(開發成為個別的圖形化開發平台程式),以推動執行流程。此外,若和企業系統整合,則可將測試結果存放在資料庫中,或透過MES系統追蹤單位。
在自動化量測方面
圖形化開發平台在特定量測領域所需的分析常式中加入垂直智慧屬性,例如:
- (1)通訊測試:可選用調變工具及先進頻譜量測常式,做為圖形化開發平台核心程式的附加工具;
- (2)聲音及震動:用於監督動態聲音訊號的聲音品質,或在驗證測試中的結構反應;
- (3)機器狀態監督:使用特殊的循環命令分析運算法,如小波(wavelet)或聯合時頻分析(joint time-frequency analysis)等;
- (4)影像處理:用於自動化檢驗及機器視覺應用。
圖形化開發平台工業量測及控制平台
在控制應用方面,圖形化開發平台有一組不同的附加工具,以延伸開發平台的功能。明確地說,圖形化開發平台為圖形化核心平台提供的延伸功能包括控制方法、分散式監督及控制功能,以及即時工業平台等領域。
利用圖形化開發平台,控制工程師可以使用同樣的平台,透過不同的方法和技術來開發及發展其控制策略,例如:
- (1)PID控制:用於相當單純的控制應用程式;
- (2)先進控制設計:在先進控制方面,圖形化開發平台工具包括工廠及控制器模型工具,可以用傳統控制運算法為基礎,或是以使用先進系統辨識法的I/O訊號為基礎。此外,圖形化開發平台具備一個連續性動態系統執行附加工具,可以配合傳統控制程式(例如傳送函數、積分器、微分器及回饋迴圈)來使用這些模型;
- (3)運動控制:用於控制需要訊號控制的工業機器;
- (4)再生:圖形化開發平台內建的I/O功能使它自然而然成為取得負載資料(汽車的道路負荷,通訊中的信號等等)以便用於驅動模擬或新型硬體的工具。
至於在生產系統中執行控制運算法方面,可以在工業平台上執行的圖形化開發平台即時延伸功能非常受歡迎。此外,機器設計和工業控制領域中有許多使用者認為圖形化開發平台能夠設定I/O介面卡上的FPGA,是佈署控制運算的一項更加可靠的方法。透過在FPGA上設定硬體本身,系統在生產過程中更為安全可靠。這是圖形化開發平台的獨特優勢,它能夠使用同樣直覺的程式設計環境,為嵌入式FPGA程式設計和工業控制建立連結。
至於分散式監督及控制系統,圖形化開發平台為特定的控制流程工具加入更高階系統層級的功能,例如:
- (1)資料記錄及歷史資料庫;
- (2)警訊;
- (3)趨勢分析;
- (4)安全性。
圖形化開發平台嵌入式設計及原型製作平台
設計師明白圖形化開發平台是一個量測工具。其中有許多人重視以圖形化開發平台收集實體量測資料的能力,並在設計過程中將它加入其設計及模擬工具,以進行行為模型建立或設計驗證之用。但是,基於以下的原因,圖形化開發平台也漸漸在許多設計領域中被科學家和工程師視為一般用途的設計工具,而漸受歡迎:
- (1)龐大的分析和數學函數函式庫:圖形化開發平台具備數以百計的函數,涵蓋數學、信號處理、可攜性及統計性等廣泛的傳統運算法,並且具備構成自定運算法之程式區的控制器;
- (2)原生I/O整合:由於真實世界的實體資料非常容易透過圖形化開發平台取得,使用者發現以真實的資料來測試其運算法,做為進行調整的覆核方法,是極具價值的;
- (3)即時執行平台:圖形化開發平台可以將所開發的原生運算法佈署在具備整合I/O的即時平台上。當測試和設計過程結合時:例如在動態控制系統中,硬體迴路測試者必須動態地模擬控制運算法所嘗試控制的環境時,這項功能尤其具有價值。
結論
從最簡單的設計實驗室,到嵌入式設計的先進世界,圖形化開發平台為科學家及工程師提高生產力。直覺式圖形化程式設計語言、與多種I/O的相容性、容易開發的分散式系統,以及越來越多以圖形化開發平台為製作基礎的使用者,這些因素互相結合,使圖形化開發平台更進一步深入垂直應用領域中。透過改用生產力更佳的圖形化開發方法,同時繼續使用開放性的圖形化開發平台環境以保留及再使用舊的運算法,或是與其設計和模擬工具交換資料,工程師可以將開發工具現代化,並將整個產品的生命週期流線化,而不需要全部重新開始。
|
|
科學家和工程師可以利用National Instruments LabVIEW軟體的高階圖形化程式設計運算法,在將嵌入式應用程式佈署至32位元微處理器之時節省大量的時間。新推出的NI LabVIEW嵌入開發模組將LabVIEW的功能延伸至任何32位元嵌入式處理器,幫助科學家和工程師以圖形化的方式,為嵌入式系統進行運算法設計、模擬、自定設計的原型建立及佈署。相關介紹請見「NI為嵌入系統設計人員提供圖形化程式設計語言」一文。 |
|
LabVIEW可檢驗實驗室中經常重複的量測自動化,並檢驗包括不合設計規格的參數值及電子屬性等裝置功能。 結構式/機械式測試 利用圖形化程式設計,設計包括雜訊、振動與環境容忍度測試(NVH) 、結構式振動監測,以及噪音形態轉換等結構式與機械式測試系統。你可在「LabVIEW 用於自動化測試與量測」一文中得到進一步的介紹。 |
|
新的模組內附應用程式範例,包括聲音、控制、電力監督及通訊,並能與測試及量測硬 體連接,以進行外部模擬與測試。 結合直覺式圖形化程式設計與彈性化Blackfin處理器 的LabVIEW Embedded Module for Blackfin Processors平台可應用於工業與學術界。在「NI LabVIEW結合ADI Blackfin處理器簡化嵌入式系統開發」一文為你做了相關的評析。 |
|
|
|