毛片视频免费观看-毛片视频在线免费观看-毛片手机在线视频免费观看-毛片特级-中文亚洲字幕-中文一级片

在NI LabVIEW中進行圖形化編程的優勢

2014-09-28 來源:微波射頻網 字號:

20多年來,NI LabVIEW被數百萬名工程師和科學家用來開發繁復的測試、測量和控制應用程序。盡管LabVIEW提供從交互式助手到可配置式用戶自定義界面的各種特性與工具,卻通過圖形化通用編程語言(所知的G)以及相關的集成化編譯器、連接器和調試工具,顯得與眾不同。

運用高級編程的簡史

為更深入理解LabVIEW圖形化編程的主要價值定位,不妨對首類更高級編程語言的某些背景加以了解。當20世紀50年代中期現代計算機時代的曙光來臨之際,IBM的一個小組決定創建更實際方案,用底層匯編這門時下最現代的語言為巨大的IBM 704主機(當時的超級計算機)編程。結果誕生了FORTRAN這門用戶更易識別的編程語言,它能夠加快開發。

工程社區起初懷疑這種新方式能否勝過通過匯編手工編寫的程序,但不久事實證明:FORTRAN生成的程序在運行時與那些通過匯編編寫的程序幾乎同樣有效。同時,FORTRAN將程序中必要編程語句的數量減少了20倍,因此它也總是被當成第一門更高級的程序語言。自然,FORTRAN很快為科技圈接受并持續發揮影響。

50年后,這段奇聞仍具有重要意義。首先,50多年來,工程師一直希望更輕松快捷地通過計算機編程解決問題。其次,工程師選來詮釋任務的編程語言,已趨于更高級別的抽象。此類教導有助解釋G為何能在1986年出現以來獲得極度推崇與廣泛使用;G代表相當高級的編程語言,其目的是:在提高用戶生產效率的同時,確保執行速度與層級較低的語言(如:FORTRAN、C、C++)幾乎相同。

LabVIEW: 圖形化、數據流編程

LabVIEW與其他大多數通用編程語言存在兩點主要差異。首先,進行G編程需要將程序框圖上的圖標連接在一起,之后程序框圖被直接編譯為計算機處理器能夠加以執行的機器碼。采用圖形而非文本代表自身的G,包含與最傳統語言相同的編程概念。例如,G包含所有標準構造,如:數據類型、循環、事件處理、變量、遞歸、面向對象的編程。

在NI LabVIEW中進行圖形化編程的優勢

圖1. G中的While循環由圖形化循環直觀代表,它會一直執行到停止條件獲得滿足為止。

第二項主要區別在于:由LabVIEW開發的G代碼,其執行時遵照的規則是數據流,而不是大多數基于文本的編程語言(如:C和C++)中更傳統的過程化方式(即,被執行的命令序列)。G等數據流語言(以及Agilent VEE、Microsoft Visual Programming Language、Apple Quartz Composer)將數據作為支持各類程序的主要概念。而數據流執行模式是由數據驅動的,或者說是依賴于數據的。是程序內節點間的數據流動,而非文本的順序行,決定著執行順序。

這種差別起初也許不大,影響卻是非凡的,因為它讓程序組件間的數據路徑成為開發者關注的重點。LabVIEW程序中的節點(即:函數、循環等結構、子程序……)獲取輸入數據、處理數據并生成輸出數據。一旦所有給定節點的輸入都包含有效數據,該節點就會執行其邏輯、產生輸出數據并將該數據傳遞至數據流路徑中的下一個節點。從別的節點接收數據的節點只在別的節點執行完以后才開始執行。

G編程的優勢

直觀的圖形化編程

與大多數人一樣,工程師和科學家可通過查看和處理圖像來學習,根本無需有意識的冥想。許多工程師和科學家還會被描述成“視覺型思考者”,這表示他們尤其擅長通過視覺處理組織信息。換句話說,他們最擅長圖像化思考。這往往在高校中得到強化,那里的學生被鼓勵使用流程框圖的形式來構建問題的解決方案。然而,大多數通用編程語言需要您花大量時間學習與該語言相關的特定文本語法,再將語言的結構映射至正被解決的問題。搭配G的圖形化編程,提供更直觀的體驗。

G代碼通常更易于工程師和科學家迅速理解,因為它們與顯示有很大關聯,甚至能以圖解形式對程序框圖和流程圖的過程與任務進行建模(這也遵循了數據流規則)。此外,由于數據流語言須要您將數據流的程序結構作為基礎,所以在思考時得關注需要解決的問題。例如,典型的G程序可能首先采集多條通道的溫度數據,再將數據傳送至分析函數;最后將分析后的數據寫入磁盤。總體而言,數據流和涉及該程序的步驟在LabVIEW框圖中易于理解。

在NI LabVIEW中進行圖形化編程的優勢

圖2. 數據從采集函數出發,繼而通過連線直觀地流入分析與存儲函數。

交互式調試工具

由于LabVIEW圖形化G代碼易于理解,常見編程任務(如:調試)也就更直觀。例如,LabVIEW獨一無二的調試工具,既有助您在數據途經LabVIEW程序的連線交互移動時進行查看,也有助您看清數據值沿連線從一個函數向另一個函數傳遞時(LabVIEW在高亮顯示執行時)的過程。

在NI LabVIEW中進行圖形化編程的優勢

圖3. 高亮顯示執行有助直觀理解G代碼的執行順序。

LabVIEW還向G提供堪比傳統編程工具的調試功能。這些功能,作為面向程序框圖的工具欄組件,包括:探針、斷點、單步步過(Step Over)/單步進入(Step Into)/單步步出(Step Out)。

圖4. 程序框圖工具欄可訪問標準調試工具(如:步進)。

搭配G調試工具,用戶無需復雜編程,就能同時檢測程序中很多部分的數據探針,并且能夠輕松的暫停或者進入到子程序當中。盡管這在其他編程語言中也是可能的,可視化顯示程序的狀態和代碼并行部分間的關系(鑒于G的圖形化特性,這不稀奇)卻顯得更容易。

在NI LabVIEW中進行圖形化編程的優勢

圖5. LabVIEW中的探針能夠有效查看數值沿連線在整個應用中運行的情況,即便在代碼的并行部分亦如此。

在NI LabVIEW中進行圖形化編程的優勢

圖6. 在探針監測窗口中查看探針數值;探針監測窗口能夠顯示整個應用程序(包括子程序)中各類探針對應的探針數值。

LabVIEW中一項最常用的調試功能就是常開型編譯器。當您開發程序時,編譯器不斷檢查錯誤并提供關于應用的語義和語法反饋。如果有誤,您就無法運行程序——您只會發現工具欄中“運行”按鈕是斷開的。

在NI LabVIEW中進行圖形化編程的優勢

圖7. 斷開的“運行(Run)”箭頭可提供即時反饋,指明G代碼中的語法錯誤。

按動斷開的“運行”(Run)按鈕,就開啟了一列您必須解決的問題。一旦您解決了這些問題,LabVIEW編譯器就能將您的程序編譯為機器碼。一經編譯,G程序就能與傳統且基于文本的語言(如:C)獲得可比擬的性能。

在NI LabVIEW中進行圖形化編程的優勢

圖8. 錯誤列表詳細解釋了整體代碼層次中的各類語法錯誤。

自動并行機制與性能

數據流語言(如:LabVIEW),實現了自動平行化。相對于順序語言(如:C和C++),圖形化程序內含代碼中哪些部分應當并行執行的信息。例如,常用的G設計模型是生產者/消費者設計模式,其中2個獨立的While循環獨立運行:第一個循環負責生成數據;第二個循環負責處理數據。盡管并行執行(可能會按不同速度),數據在使用隊列的2個循環之間傳送;隊列是通用編程語言中的標準數據結構。

在NI LabVIEW中進行圖形化編程的優勢

圖9. LabVIEW生產者/消費者設計模式往往被用來提高須并行執行任務的應用程序的性能。

并行機制在計算機程序中意義重大,因為由于進來計算機處理器設計的變化,它能解除純順序執行程序的性能限制。40多年來,計算機芯片制造商通過加快處理器的時鐘速度來提高芯片性能。如今,為提高性能而加快時鐘速度卻因能耗與熱耗限制,不再可行。最終,芯片供應商轉而使用在單芯片上結合多個處理器內核的新型芯片架構。

要利用多核處理器中的性能,您必須能夠在應用程序中使用多線程(即,把應用程序分解成可接受獨立執行的離散部分)。如果使用傳統且基于文本的語言,您必須直接創建并管理線程以實現并行——這項非專業程序員面臨的主要挑戰。

相反,G代碼并行執行的本質令多任務和多線程易于執行。內置編譯器在后臺連續工作,以識別代碼的并行部分。一旦G代碼出現一個連線分支或是具有程序框圖上節點的并行序列,編譯器就試圖在LabVIEW自動管理的一組線程中并行運行代碼。在計算機科學術語里,這被稱作“內隱的并行性”,因為用戶無需為了并行運行代碼專門編寫代碼;G語言自行確保并行性。

除了多核系統上的多線程,G還能夠將圖形化編程擴展至現場可編程門陣列(FPGA),以實現更強大的并行執行。FPGA是大規模并行且可重新編程的硅芯片——各自獨立的處理任務被分配至芯片的特定部分——但它們不受當前處理器內核數的限制。因此,加入更多處理時,一部份的應用性能不受負面影響。

之前,惟有接受專門訓練且深入理解數字硬件設計語言的專家,才負責FPGA編程。逐漸地,不具備FPGA專長的工程師希望使用基于FPGA的自定義硬件來實現:獨特的定時和觸發例行程序、超高速控制、數字協議連接、數字信號處理(DSP)、射頻與通信以及其他許多對高速硬件可靠性、定制和高度確定性提出要求的應用程序。G尤其適合FPGA編程,因為它不但能明確地表示并行和數據流,而且迅速成為開發人員實現并行處理與確定性執行時的一款流行工具。

在NI LabVIEW中進行圖形化編程的優勢

圖10. 結合并行性的LabVIEW FPGA代碼成為FPGA硅芯片上真正獨立的通道。

低層任務的抽象

正如FORTRAN所展現的,抽象是更高級編程語言的一項主要優勢;它比起較低層級的語言能夠更直觀地詮釋程序。G自行解決了許多您通常在文本編程語言(好比內存使用)中必須應對的挑戰。文本語言中,一旦不再需要內存,您便負責在使用和釋放內存前予以分配。同時,您還必須記得:所寫入數據不得超過已分配的內存容量。因此,對于使用文本編程語言的用戶來說,最大問題之一是無法分配內存或分配足夠的內存。內存分配不足也是很難調試的問題。

自動內存處理是用G編程的一項主要優勢。使用G,您既不用分配變量,也不用為變量交互賦值。相反,像早先解釋的那樣,您只需創建帶有連線的程序框圖來表示數據的傳輸。LabVIEW程序框圖上自動生成數據的節點,負責為該數據分配存儲。當數據不再被使用,其占用的內存也將被自動釋放。如果向數組或字符串添加新數據,LabVIEW將自動分配更多的內存來管理這些新數據。低層次內存管理細節的消除,讓您不再關注正在試圖解決的問題,而是研究程序執行中與防止運行時錯誤相關的復雜規則。

與此同時,如果希望對G內存的使用進行低層控制,您能夠使用內置的內存管理工具來幫助監測內存;這是一類選擇參加的方式,您既能在特定應用里使用,也能單單在應用的一部分里使用。如果您斷定內存使用對LabVIEW程序來說是一個問題,可以通過更高級編程技巧來降低使用中的內存量。

在NI LabVIEW中進行圖形化編程的優勢

圖11. 管理LabVIEW中的內存可以選擇,但高級用戶能夠展現內存使用情況以幫助界定哪些部分的應用程序有待優化。

當G代碼出現不尋常或不可預期行為導致您無法使用之前提及的調試工具輕松解決問題時,您可采用結合LabVIEW桌面執行跟蹤工具包的更高級調試功能。該工具包的設計適合希望通過動態代碼分析執行以下任務的更高級用戶:

·    檢測內存和參考泄漏
·    阻隔特定事件或不良行為的來源
·    為性能可獲得提升的領域篩選應用程序
·    在錯誤出現前, 確定最終調用
·    確保應用程序在不同對象上的執行均相同

結合G與其他語言

盡管G代碼能夠出色地代表并行機制并讓開發人員無須理解和管理計算機內存,卻未必適合所有任務。特別是,數學公式和方程往往能夠更簡潔地被文本代表。因此,您可使用LabVIEW,將圖形化編程與多種形式的文本編程相結合。搭配LabVIEW時,您能選擇文本方式、圖形化方式或將兩者結合。

例如,LabVIEW包含公式節點的概念;它能評估程序框圖上類似于C的文本數學公式和表達式。這些數學公式可并排執行并集成圖形化LabVIEW代碼。

在NI LabVIEW中進行圖形化編程的優勢

圖12. 公式節點使用類似C的語法,以簡潔且基于文本的格式來代表數學表達式。

同樣,MathScript節點將面向數學的文本編程加入通常兼容常用類.m文件語法的LabVIEW。

在NI LabVIEW中進行圖形化編程的優勢

圖13. 結合MathScript節點,您能創建或重復使用用于信號處理和數據分析的.m文件腳本。

用戶解決問題的更佳方式

LabVIEW及其圖形化數據流編程語言,比傳統且層級更低的方式更好地解決了問題,耐用性就是證據。用G編程的重要區別在于:您能創建的直觀圖形化代碼和由數據驅動的統管其執行的規則結合后,在編程時可比其他語言更貼切地展現用戶的思維過程。盡管G屬于層級較高的語言,內置LabVIEW編譯器卻仍能幫助您取得媲美C等語言的性能。

主題閱讀:NI  LabVIEW
主站蜘蛛池模板: 色婷婷免费视频 | 毛片免费毛片一级jjj毛片 | 日本中文字幕永久在线 | 黄色网站在线免费 | 日韩欧美小视频 | 日本综合在线 | 爱人体147在线视频 爱情综合症泰剧在线观看全集 | 亚洲天堂色 | 英语课强插英语课代表 | 操操爱| 亚欧三级 | 手机看片高清日韩精品 | 四虎国产精品永久在线网址 | 成人精品一区二区www | 日韩欧美亚洲一区精选 | 欧美老人另类视频 | 一区二区三区免费高清视频 | 视频一区色眯眯视频在线 | 高清欧美一区二区免费影视 | 欧美精品xxx | 亚洲一级毛片在线观播放 | 天天干天天操天天舔 | 久久久久国产精品免费 | 欧美特级特黄a大片免费 | 亚洲成年男人的天堂网 | 欧美高清a| 国产三级精品在线观看 | 香蕉成人 | 在线中文字幕视频 | 久久久久久久99视频 | 日韩一级免费视频 | 99精品国产高清一区二区麻豆 | 97国产在线视频公开免费 | 国产午夜视频在线观看第四页 | 国产一级做a爰片在线看免费 | 欧美91在线 | 久热操 | 黄色片网址在线观看 | 1024你懂的国产精品 | 日韩小视频在线观看 | 欧美一区二区三区网站 |