新聞中心

LabVIEW新手5大錯誤

作者: 時間:2013-09-06 來源:電子產(chǎn)品世界 收藏

  錯誤使用局部變量

本文引用地址:http://2s4d.com/article/167320.htm

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

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

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

     忽略代碼模塊化

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

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

  代碼模塊化時必須取消的一項(xiàng)設(shè)置是“允許調(diào)試”。 您可在“VI屬性(文件>>VI屬性)”下的“執(zhí)行”目錄中找到此選項(xiàng)。代碼完全正常運(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包含了模板和項(xiàng)目范例,使理解架構(gòu)變得更加容易。模板解釋了不同的架構(gòu)及應(yīng)用。項(xiàng)目范例則是基于模板的更大型應(yīng)用程序,演示了如何使用模板來應(yīng)對實(shí)際的挑戰(zhàn)。您可以將硬件加入到范例項(xiàng)目中,或者需要時可將項(xiàng)目范例作為一個整體應(yīng)用程序,同時項(xiàng)目范例具有開放性且文檔記述也很完整,所以您可針對具體應(yīng)用進(jìn)行自定義。



評論


相關(guān)推薦

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

關(guān)閉