<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW新手的5大錯誤

          LabVIEW新手的5大錯誤

          作者: 時間:2017-02-06 來源:網(wǎng)絡(luò) 收藏


          錯誤使用局部變量

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

          對于其他編程語言來說,通過變量傳遞數(shù)據(jù)是必需的,而LabVIEW則提供了一種數(shù)據(jù)流方法,可將數(shù)據(jù)從程序的一個部分移動到另一個部分

          LabVIEW固有的并行性機(jī)制決定著用戶不能過度使用變量,因為同一時間內(nèi)通常會有多個不同的位置的程序訪問共享內(nèi)存。如果過度使用變量,則會出現(xiàn)某個讀/寫操作贏了“競爭”,而其他操作則輸了“競爭”,丟失數(shù)據(jù)的操作會被忽視,因此在LabVIEW中過度使用變量可能會最終導(dǎo)致數(shù)據(jù)丟失。

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

          忽略代碼模塊化

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

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



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


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






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

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

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

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



          圖 5. LabVIEW 2012中的模板和項目范例使得理解軟件架構(gòu)變得非常輕松


          關(guān)鍵詞: LabVIEW編程錯

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();