新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 不得不看的LabVIEW新手5大錯(cuò)誤

不得不看的LabVIEW新手5大錯(cuò)誤

作者: 時(shí)間:2013-09-28 來(lái)源:網(wǎng)絡(luò) 收藏
0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 20px; WORD-SPACING: 0px; FONT: 14px/25px 宋體, arial; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; webkit-text-size-adjust: auto; orphans: 2; widows: 2; webkit-text-stroke-width: 0px">  對(duì)于其他編程語(yǔ)言來(lái)說(shuō),通過(guò)變量傳遞數(shù)據(jù)是必需的,而則提供了一種數(shù)據(jù)流方法,可將數(shù)據(jù)從程序的一個(gè)部分移動(dòng)到另一個(gè)部分。固有的并行性機(jī)制決定著用戶不能過(guò)度使用變量,因?yàn)橥粫r(shí)間內(nèi)通常會(huì)有多個(gè)不同的位置的程序訪問(wèn)共享內(nèi)存。如果過(guò)度使用變量,則會(huì)出現(xiàn)某個(gè)讀/寫(xiě)操作贏了“競(jìng)爭(zhēng)”,而其他操作則輸了“競(jìng)爭(zhēng)”,丟失數(shù)據(jù)的操作會(huì)被忽視,因此在中過(guò)度使用變量可能會(huì)最終導(dǎo)致數(shù)據(jù)丟失。

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

  關(guān)于在LabVIEW程序內(nèi)正確移動(dòng)數(shù)據(jù)的更多信息,請(qǐng)?jiān)L問(wèn)在線自學(xué)培訓(xùn)(ni.com/self-paced-training)LabVIEW核心課程1的“局域變量”和LabVIEW核心課程2的“通知、隊(duì)列和事件”。

  忽略代碼模塊化

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

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

不得不看的LabVIEW新手5大錯(cuò)誤

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

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

  關(guān)于代碼模塊化的更多信息,請(qǐng)?jiān)L問(wèn)在線自學(xué)培訓(xùn)LabVIEW核心課程1的“理解模塊化”。

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

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

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

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

塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


關(guān)鍵詞: LabVIEW

評(píng)論


相關(guān)推薦

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

關(guān)閉