日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 測試測量 > 測試測量
[導讀] 雖然NILabview軟件長期以來一直幫助工程師和科學家們快速開發(fā)功能測量和控制應用,但不是所有的新用戶都會遵循LabVIEW編程的最佳方法。LabVIEW圖形化編程比較獨特,因為只需看一眼用戶的應用程序,就馬

雖然NILabview軟件長期以來一直幫助工程師和科學家們快速開發(fā)功能測量和控制應用,但不是所有的新用戶都會遵循LabVIEW編程的最佳方法。LabVIEW圖形化編程比較獨特,因為只需看一眼用戶的應用程序,就馬上可以發(fā)現(xiàn)用戶是否遵循編碼的最佳方法。有些用戶會犯這些錯誤是因為他們沒有真正理解LabVIEW框圖數(shù)據(jù)流背后的原理,而有些用戶則是不知道哪些特性可提高LabVIEW編程質量。

本文介紹了經驗欠缺的LabVIEW程序員最經常犯的一些編程錯誤,同時也提供了采用正確LabVIEW編程方法的建議。

圖 1.LabVIEW新手典型“杰作”

過度使用平鋪式順序結構

許多LabVIEW新手并不完全了解“數(shù)據(jù)流”執(zhí)行背后的概念,而這些概念卻是LabVIEW編程的基礎。其中一個現(xiàn)象是用戶往往在程序框圖中過度使用平鋪式順序結構。用戶經常依賴平鋪式順序結構來實現(xiàn)程序框圖的代碼串行執(zhí)行,而不是使用數(shù)據(jù)流和節(jié)點之間的連線。

圖 2. 用戶往往過度依賴平鋪式順序結構,而沒有充分理解數(shù)據(jù)流編程概念

數(shù)據(jù)流編程是指只有在所需的數(shù)據(jù)輸入全部到達時,框圖上的節(jié)點(子VI、本原、結構等)才開始執(zhí)行。 這對于使用LabVIEW的程序員來說非常有用,因為獨立的進程本身就可以實現(xiàn)并行運行,而命令式語言卻需要額外的設置才能實行并行執(zhí)行。隨著計算機CPU的不斷增多,LabVIEW可自動分解并行流程,提高代碼性能,而無需用戶編寫任何額外代碼。而強行使用平鋪式順序結構來執(zhí)行程序框圖不僅會限制并行運行,還會喪失這一優(yōu)勢。限制程序框圖中不必要的結構有助于提高整體可讀性和保持更簡潔的框圖。

錯誤連線可以有效地實現(xiàn)程序框圖上的數(shù)據(jù)流,而不需要依靠平鋪式順序結構,此外錯誤連線還有助于實現(xiàn)錯誤處理策略。

何時應該使用平鋪式順序結構?

通過平鋪式順序結構來執(zhí)行程序框圖有助于代碼性能的基準測試。通過使用框架內具有時間計數(shù)器的順序結構,您可以決定兩個時間計數(shù)器之間代碼執(zhí)行所花費的時間。這是一般數(shù)據(jù)流執(zhí)行所無法實現(xiàn)的。

圖 3. 平鋪式順序結構和時間計數(shù)器VI有助于代碼的基準測試

關于數(shù)據(jù)流編程的更多信息,請訪問在線自學培訓(ni.com/self-paced-training)LabVIEW核心課程1的“數(shù)據(jù)流”。購買LabVIEW或具有標準服務項目(ni.com/ SSP)會員資格的用戶可以免費參加在線自學培訓。

錯誤使用局部變量

LabVIEW編程中另一個常見的錯誤是過度使用局部變量。局部變量是共享內存中的一個區(qū)域,用于在計算機程序不同部分之間傳遞數(shù)據(jù)。局域變量通常用于文本編程語言,具有非常強大的功能,但如果出現(xiàn)競爭條件,就會產生問題。

對于其他編程語言來說,通過變量傳遞數(shù)據(jù)是必需的,而LabVIEW則提供了一種數(shù)據(jù)流方法,可將數(shù)據(jù)從程序的一個部分移動到另一個部分。LabVIEW固有的并行性機制決定著用戶不能過度使用變量,因為同一時間內通常會有多個不同的位置的程序訪問共享內存。如果過度使用變量,則會出現(xiàn)某個讀/寫操作贏了“競爭”,而其他操作則輸了“競爭”,丟失數(shù)據(jù)的操作會被忽視,因此在LabVIEW中過度使用變量可能會最終導致數(shù)據(jù)丟失。

您可以通過多種方法安全地將數(shù)據(jù)從LabVIEW程序的一個部分傳遞到另一個部分,包括連線、隊列、事件、通知、功能全局變量等等。每個機制都是針對特定情況設計的,但都具有消除競爭條件的功能。

關于在LabVIEW程序內正確移動數(shù)據(jù)的更多信息,請訪問在線自學培訓(ni.com/self-paced-training)LabVIEW核心課程1的“局域變量”和LabVIEW核心課程2的“通知、隊列和事件”。

忽略代碼模塊化

通常情況下,新LabVIEW用戶創(chuàng)建的是“即寫即忘”應用程序去完成簡單的任務,而沒有考慮到以后是否會用到這些代碼。隨著編程工作越來越多,他們會發(fā)現(xiàn)自己一遍又一遍地重寫同一段代碼。而如果在編程同時創(chuàng)建一個可復用于其他應用的模塊化子VI,就可以節(jié)省大量的開發(fā)時間。

如果您知道代碼的特定部分將會重用于同一應用程序,或感覺該部分代碼可能會用于未來的應用程序,那么您應該花一點時間將該部分代碼變成一個子VI。如果要使某部分代碼成為一個子VI,您需要做的主要是添加一個文檔、使用“接線端”、禁用某些VI屬性。創(chuàng)建子VI的最簡單方法之一是高亮標記程序框圖中的某部分代碼,然后從菜單欄中選擇“編輯>>創(chuàng)建子VI”。這樣這部分代碼就會放到一個單獨的VI,然后使用“接線端”。您仍然需要為圖標添加說明,并將文檔記述添加到程序框圖和VI屬性中,然后取消某些VI設置,但“編輯>>創(chuàng)建子VI”可幫助您很好地了解代碼的模塊化功能。

圖 4. 采用正確的LabVIEW代碼模塊化操作可以幫助您節(jié)省大量開發(fā)時間

代碼模塊化時必須取消的一項設置是“允許調試”。 您可在“VI屬性(文件>>VI屬性)”下的“執(zhí)行”目錄中找到此選項。代碼完全正常運行無需再使用高亮執(zhí)行等調試功能時,在執(zhí)行設置中取消“允許調試”,然后再次運行VI。這樣做的好處是由于在編譯過程中進行了優(yōu)化,應用程序的運行速度可能加快,而且由于啟動調試的代碼被關閉,VI所占的磁盤物理空間也相應減少了。

創(chuàng)建龐大繁瑣的程序框圖

許多新LabVIEW用戶都會把程序框圖編寫得非常繁瑣龐大。對于一些復雜的應用程序,我們難免需要編寫較大的程序框圖,但龐大的程序框圖從一定程度上也可以表明該程序缺乏編程架構。如果沒有一個基本的架構,要長期維護該程序是非常困難的,而且如果以后要添加新功能也會非常困難。正如只有一個好的框架才能建造一棟結構合理的房子,一個好的編程架構可以為您構建應用程序提供了一個安全可靠的框架。

幾乎所有的程序員都會發(fā)現(xiàn)常見的框架中,軟件架構是非常有用的。實際上LabVIEW中的許多架構,如生產者/消費者和狀態(tài)機,與其他編程語言非常相似。

了解LabVIEW的架構可以縮短開發(fā)時間和提高應用程序的可擴展性。LabVIEW2012包含了模板和項目范例,使理解架構變得更加容易。模板解釋了不同的架構及應用。項目范例則是基于模板的更大型應用程序,演示了如何使用模板來應對實際的挑戰(zhàn)。您可以將硬件加入到范例項目中,或者需要時可將項目范例作為一個整體應用程序,同時項目范例具有開放性且文檔記述也很完整,所以您可針對具體應用進行自定義。

圖 5.LabVIEW2012中的模板和項目范例使得理解軟件架構變得非常輕松

關于LabVIEW架構的更多信息,請訪問在線自學培訓(ni.com/self-paced-training) forLabVIEW核心課程2的“設計模式”。

不重視文檔記錄

優(yōu)秀的代碼文檔可以有效地幫助他人理解自己寫的程序。遺憾的是,許多程序員通常在開發(fā)周期末期功能開發(fā)結束之后才開始進行文檔撰寫。這使得用于對代碼進行文檔記錄的時間變得非常少。正確的做法應該是在開發(fā)過程中就需抽出時間來開始進行文檔記錄。文檔對于編程人員自身也非常有用,尤其是當他們過段時間回來看代碼卻不記得當初他們?yōu)槭裁催x擇某些代碼時。程序員經常會一邊喝著咖啡,一邊熬夜編程,這往往會出現(xiàn)“短暫失憶”。而文檔則可以幫助程序員進行回憶。

一般情況下,相對于基于文本的程序,LabVIEW的圖形化特性使得程序閱讀更為容易,但是有效的文檔記錄可以減少“解碼”程序所需的時間。添加文檔注釋到程序框圖的最簡單方式是使用自由標簽。您可以在框圖的空白位置雙擊左鍵,并輸入文字,添加注釋。然后,使用箭頭標記來指向自由標簽引用的特定代碼。如果需要添加圖片,則可將它們復制到剪貼板,然后粘貼到程序框圖中。物理系統(tǒng)圖片和數(shù)學公式均有助于清晰說明程序框圖內的代碼上下文。

圖 6.架構正確且文檔記錄充分的代碼不僅可幫助其他人理解您的代碼,也可幫助您更好地理解自己的代碼

對代碼進行文檔記錄不僅只是針對復用程序庫,而應該是針對每一個程序。當一個人需要為其他人講解時,他對該主題將會有更深刻的理解。文檔記錄從本質上看就是在迫使程序員進行講解,以幫助他們更好地了解自己的代碼。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

下面的項目包括一個機器人完成各種任務。這是通過在機器人上使用和實現(xiàn)各種傳感器來完成的。機器人能夠在一個封閉的區(qū)域內移動,收集球,并在最后的一個點上放下球。機器人將繪制出它去過的位置和該區(qū)域內的障礙物。

關鍵字: 傳感器 機器人 LabVIEW

NI提供的軟件包經濟省時,不僅幫助開發(fā)人員節(jié)省時間,還為創(chuàng)客提供了新的機遇

關鍵字: LabVIEW 自動化測試系統(tǒng)

強大的圖形化編程工具使整個測試和測量過程的各個方面實現(xiàn)可視化

關鍵字: LabVIEW 圖形化編程工具

摘要:對于每一型新機試飛,或者是重大的研究性試飛和驗證試飛,都必須實施遙測監(jiān)控?,F(xiàn)基于TTS(TextToSpeech)語音合成技術,結合飛行試驗遙測監(jiān)控系統(tǒng)的不足,利用TTS引擎在LabVIEW開發(fā)環(huán)境下設計并實現(xiàn)了遙...

關鍵字: 飛行試驗遙測監(jiān)控系統(tǒng) TTS LabVIEW

在科研以及應用軟件領域,LabVIEW和MATLAB作為比較常用的2款工具,相信很多人都用過吧。簡單的概括一下,LabVIEW側重測試測量和數(shù)據(jù)采集,MATLAB側重科學計算和數(shù)據(jù)分析。

關鍵字: LabVIEW matlab 混合編程

摘要:利用單片機和虛擬儀器LabVIEW在PC端設計了溫濕度測量及控制系統(tǒng),用于溫濕度數(shù)據(jù)監(jiān)測。該系統(tǒng)上位機為PC端監(jiān)控界面,下位機為單片機,單片機采集溫濕度數(shù)據(jù),并將采集到的數(shù)據(jù)通過串口發(fā)送給監(jiān)控界面進行監(jiān)測和管理。該...

關鍵字: DHT11 LabVIEW 單片機

摘要:當前閉環(huán)步進電機在自動化設備中的應用越來越廣泛,故為了進一步滿足閉環(huán)步進電機的應用需求,采用LabVIEW上位機+運動控制卡+驅動器模塊的控制方案進行了多軸運動系統(tǒng)的設計,通過設計的上位機軟件實現(xiàn)閉環(huán)步進電機的實時...

關鍵字: 閉環(huán)步進電機 精度測試 LabVIEW

摘要:為滿足某扭矩檢測試驗標準要求,基于LabView設計開發(fā)了一款扭矩檢測裝置,該裝置能檢測某類零部件的斷裂力矩,滿足試驗標準要求,其他零部件的扭矩也可在該裝置上檢測。類似的扭矩裝置可參考該裝置進行設計。

關鍵字: 伺服電機 LabVIEW PLC

在下述的內容中,小編將會對LabVIEW的相關消息予以報道,如果LabVIEW是您想要了解的焦點之一,不妨和小編共同閱讀這篇文章哦。

關鍵字: LabVIEW 測試測量 NI

一直以來,LABVIEW都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)鞮ABVIEW的相關介紹,詳細內容請看下文。

關鍵字: LabVIEW 測試測量 測試儀器
關閉