資源描述:
《適用于每個(gè)LabVIEW開發(fā)者的巧妙調(diào)試技巧.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、適用于每個(gè)LabVIEW開發(fā)者的巧妙調(diào)試技巧 作者:OmarMussa,程序架構(gòu)師和專業(yè)服務(wù)經(jīng)理,NI聯(lián)盟伙伴JKI JusTInGoeres,程序架構(gòu)師和產(chǎn)品市場(chǎng)經(jīng)理,NI聯(lián)盟伙伴JKI 成為L(zhǎng)abVIEW漏洞修復(fù)高手 如果您經(jīng)常使用NILabVIEW軟件,當(dāng)軟件不能按照預(yù)期的情況運(yùn)行時(shí),您可能會(huì)有一個(gè)自己的調(diào)試技巧和技術(shù)工具箱。這些技巧和技術(shù)有些是常用的,而剩下的可能是您自己摸索出來的?! D1.巧妙的調(diào)試方法能夠清除漏洞。(BrianSearle攝) 我們與JKI的LabVIEW程序架構(gòu)師(CerTIfiedLabVIEWArchitec
2、ts,CLA)以及LabVIEW社區(qū)的朋友進(jìn)行了交流,向他們學(xué)習(xí)一些快速識(shí)別、隔離和修復(fù)漏洞的“絕密”技巧。我們了解到以下幾個(gè)巧妙的調(diào)試技巧?! ±锰结槨 √结樖荓abVIEW調(diào)試的第一個(gè)也是最簡(jiǎn)單的工具,但它們卻是非常強(qiáng)大的工具。您可極其輕松地將探針置于線路上,在查找問題過程中不斷獲取信息。以下是探針的幾個(gè)功能: 保存連線值功能 LabVIEW開發(fā)環(huán)境中的保存連線值功能經(jīng)常會(huì)被忽略。當(dāng)您啟用某個(gè)VI的連線值保存功能時(shí),LabVIEW將自動(dòng)存儲(chǔ)該VI框圖上每根連線的最后一個(gè)值。然后,將光標(biāo)懸停在任一連線上,即使該VI未運(yùn)行,探針工具也將出現(xiàn)提示信,顯示該連
3、線最后一個(gè)值?! D2.保存連線值按鈕就在“燈泡”圖標(biāo)旁邊。 自定義探針,無需編寫任何代碼 運(yùn)用LabVIEW自定義探針,您無需編寫任何代碼就可創(chuàng)建強(qiáng)大、復(fù)雜的調(diào)試工具。例如,您可在“自定義探針”>>“控件”>>“波形圖”中創(chuàng)建顯示任意數(shù)字連線的先前值的“歷史探針”。這可幫助您發(fā)現(xiàn)您正在探究的數(shù)據(jù)的模式或趨勢(shì),而無需編寫特殊的探針代碼。 圖3.使用波形圖探針顯示簡(jiǎn)單數(shù)字連線的歷史值。 從LabVIEW工具網(wǎng)絡(luò)獲取自定義探針 借用他人創(chuàng)建的探針來擴(kuò)展您的工具箱。SAPHIR在LabVIEW工具網(wǎng)絡(luò)上提供了一系列免費(fèi)的自定義LabVIEW探針。您只
4、需下載安裝VI軟件包管理器(VIPM)社區(qū)版(也是免費(fèi)的)、搜索ViBox,再通過幾次單擊就可安裝探針?! ∪绻谑褂肔abVIEW2011,您還可通過單擊LabVIEW入門指南窗口的“查找LabVIEW附加工具...”從LabVIEW工具網(wǎng)絡(luò)上獲取ViBox?! D4.使用VIPM安裝SAPHIR自定義探針。 調(diào)用時(shí)掛起 許多LabVIEW程序架構(gòu)師甚至不知道LabVIEW具備該項(xiàng)功能?!罢{(diào)用時(shí)掛起”功能可將執(zhí)行掛起,使您可以進(jìn)行以下任一或所有操作: 在VI運(yùn)行之前隨意更改VI的控件值?! I返回調(diào)用程序時(shí)隨意更改顯示件的值?! ≈貜?fù)運(yùn)行VI,而無
5、需將執(zhí)行返回至調(diào)用程序。 完全跳過VI執(zhí)行,返回至調(diào)用VI?! D5.在子VI節(jié)點(diǎn)設(shè)置窗口中,選擇“調(diào)用時(shí)掛起”功能?! ?duì)于調(diào)用時(shí)掛起功能,NI做了簡(jiǎn)要說明,見此處。然而,熟悉該功能的最佳方法還是親自動(dòng)手實(shí)踐?! ∥催B線的前面板控件和顯示件 為FIRST(崇尚發(fā)揚(yáng)科學(xué)技術(shù))機(jī)器人競(jìng)賽團(tuán)隊(duì)推薦了一項(xiàng)技術(shù),這項(xiàng)技術(shù)對(duì)于專業(yè)的LabVIEW開發(fā)人員也非常有用 Ben建議在VI中添加前面板控件或顯示控件,但并不與連線板連接。這些控件和顯示件與“調(diào)試”輸入或輸出工作方式類似,您可在測(cè)試時(shí)對(duì)其進(jìn)行手動(dòng)控制。這可使您更容易在應(yīng)用中生成偶然或極端事件,而無需繁多的支持或
6、仿真代碼的寫入?! ∧€可以在已建應(yīng)用程序中使用這些調(diào)試控件和顯示件,前提是LabVIEW應(yīng)用程序生成器包含了VI前面板?! ㈤哃VMastery.com上的介紹,進(jìn)一步了解Ben建議的調(diào)試子VI?! ?zhí)行跟蹤 如果其他方法都失敗的情況下,有時(shí)您所能做的只有逐步跟蹤代碼。遇到此類問題時(shí),您可通過幾種方法在LabVIEW內(nèi)進(jìn)行執(zhí)行跟蹤?! ∽蠲黠@的方法是使用LabVIEW中內(nèi)置的“高亮顯示執(zhí)行”功能,也稱為“燈泡”。如果說探針是LabVIEW調(diào)試的首要工具,燈泡則位列第二。但是,如果碰到復(fù)雜或是時(shí)間相關(guān)的漏洞,您則可選擇其他更有效的工具?! D6.執(zhí)行跟蹤功能
7、比燈泡功能更多?! 「櫞疟P或內(nèi)存 啟動(dòng)執(zhí)行跟蹤的一個(gè)簡(jiǎn)單方法是在其中一個(gè)子VI中記錄一個(gè)連線值。您可編寫一個(gè)簡(jiǎn)單的VI,將該值記錄到文件中,或甚至可創(chuàng)建一個(gè)自定義探針來顯示連線的歷史值。通常通過這樣一個(gè)簡(jiǎn)單的跟蹤您就可收集足夠的信息來幫助您找到漏洞的原因。 NILabVIEW桌面執(zhí)行跟蹤工具包 如果要調(diào)試一個(gè)大型的高度并行應(yīng)用程序,則包含NI開發(fā)者套件2011的LabVIEW桌面執(zhí)行跟蹤工具包就是您進(jìn)行LabVIEW代碼分析的“利器”。它可提供關(guān)于正在運(yùn)行的應(yīng)用程序的各種信息,包括詳細(xì)的內(nèi)存分配和再分配、事件生成、由代碼定