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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > LabVIEW程序的調(diào)試方式

          LabVIEW程序的調(diào)試方式

          作者: 時(shí)間:2017-01-09 來源:網(wǎng)絡(luò) 收藏



          圖 7 Breakpoint Manager對話框

          1.4高亮工具(Highlight)

          高亮工具是LabVIEW相對于傳統(tǒng)的文本式語言的IDE環(huán)境所獨(dú)有的調(diào)試工具,也是數(shù)據(jù)流程序設(shè)計(jì)思想的一種體現(xiàn)。打開工具欄中的Highlight工具(如圖 8所示)并單擊“Run”按鈕,程序開始在Highlight模式下運(yùn)行。此時(shí)根據(jù)數(shù)據(jù)流的運(yùn)行順序,LabVIEW將在各個(gè)節(jié)點(diǎn)的輸入和輸出的端子上顯示當(dāng)前端子上的數(shù)據(jù),并且以小圓點(diǎn)的方式顯示數(shù)據(jù)流的執(zhí)行方式。程序員可以比較清楚地觀察到數(shù)據(jù)流的走向以及源代碼的執(zhí)行情況,這極大地方便了LabVIEW開發(fā)者對某部分代碼的詳細(xì)調(diào)試。


          圖 8 Highlight工具
          對初學(xué)者而言,這種調(diào)試方式無疑是直觀和清楚的。但是同時(shí)對一些VI也會(huì)帶來一些影響,如某些對時(shí)間有著嚴(yán)格控制的VI。由于在Highlight模式中,LabVIEW會(huì)減慢程序執(zhí)行的速度,因此有些與時(shí)間有關(guān)的事件或者Bug會(huì)被掩蓋和忽略。這也是為什么有時(shí)候程序在Highlight模式下運(yùn)行正常,而回到普通模式時(shí)卻無法返回正確的結(jié)果。此時(shí),就需要使用Breakpoint和Probe工具(下一小節(jié)介紹)聯(lián)合調(diào)試,找到程序出現(xiàn)問題的原因。

          1.5探針工具(Probe)

          探針并不是LabVIEW所特有的調(diào)試工具,在很多的文本式語言的IDE中都存在著Watch窗口用來實(shí)時(shí)監(jiān)視某些變量的值,LabVIEW中的探針與此類似,也是用來實(shí)時(shí)監(jiān)測程序背面板中任一連接線(不是任一節(jié)點(diǎn))上的值。
          右擊源代碼中任一連線處,選擇Probe菜單項(xiàng)將彈出當(dāng)前位置的探針,如圖 9所示。LabVIEW會(huì)自動(dòng)判斷當(dāng)前位置的數(shù)據(jù)類型從而調(diào)用不同的探針以顯示當(dāng)前位置的數(shù)據(jù)。當(dāng)VI的背面板關(guān)閉時(shí),那么該VI中所有的探針窗口也會(huì)自動(dòng)關(guān)閉。運(yùn)行VI,當(dāng)運(yùn)行到探針的位置時(shí)將在探針窗口中立即顯示當(dāng)前的值。


          圖 9 Probe工具
          為了定位到錯(cuò)誤源或者找到某一時(shí)刻的運(yùn)行結(jié)果,往往程序員需要配合斷點(diǎn)和探針工具,在適當(dāng)?shù)奈恢迷黾訑帱c(diǎn),而適當(dāng)?shù)奈恢眉尤胩结??;蛘咧苯釉O(shè)置探針工具,讓探針捕獲到某一特定的條件是程序暫停運(yùn)行。如在圖 9中,選擇Custom Probe>>Conditional String Probe菜單項(xiàng)將彈出圖 10所示的探針窗口。在Condition頁中,可以設(shè)置程序暫停的條件。當(dāng)滿足該條件時(shí),程序?qū)⒘⒓丛诋?dāng)前探針位置暫停。


          圖 10 Conditional String Probe
          從圖 9和圖 10可以看出,探針的主要功能就是將當(dāng)前連線上的數(shù)據(jù)以控件(Indicator)的形式表示出來。由于在LabVIEW中,數(shù)據(jù)的顯示方式是可以自定義的,如使用Type Def.控件修改某些控件的外觀或者將String控件以****的密碼方式顯示,因此LabVIEW提供了自定義探針技術(shù)允許程序員根據(jù)實(shí)際情況使用任意預(yù)定義的探針。
          在圖 9的快捷菜單中選擇Custom Probe>>New…菜單項(xiàng),將彈出圖 11所示的自定義探針向?qū)?。程序員可以選擇從現(xiàn)有的探針文件(從后面可以看出,事實(shí)上也是一個(gè)vi文件)新建探針或者直接新建一個(gè)空的探針。選擇“Create a new probe”項(xiàng)。


          圖 11 Create New Probe_1
          單擊Next按鈕進(jìn)入圖 12所示的界面。Filename表示探針文件的名字;Window title and shortcut menu name表示探針VI的標(biāo)題欄名字同時(shí)也是使用探針時(shí)出現(xiàn)在快捷菜單中的名字;Directory to save the probe表示探針的存儲(chǔ)位置。


          圖 12 Create New Probe_2
          單擊Save按鈕,LabVIEW會(huì)自動(dòng)生成圖 13所示的探針VI。不要?jiǎng)h除界面上的任何控件:
          1. String型控件表示探針位置當(dāng)前的數(shù)值;
          2. Boolean型控件表示條件斷點(diǎn),當(dāng)該值被設(shè)置為TRUE時(shí),程序?qū)⒃诋?dāng)前的斷點(diǎn)處暫停。
          實(shí)際上,程序員可以任意修改這兩個(gè)控件的外觀,如設(shè)置為自定義類型、修改控件的Label或Caption,甚至可以在當(dāng)前VI中加入新的控件。但是最好不要修改控件的類型和Connection(輸入輸出連接端子)定義方式,因?yàn)長abVIEW會(huì)根據(jù)控件的類型選擇在不同的位置調(diào)用不同的探針VI。


          圖 13 String Probe_Custom.vi
          本例將修改String Probe_Custom.vi(下載)使得程序以不同的方式顯示String的值,并且設(shè)置為當(dāng)值為“Hello”時(shí)暫停程序運(yùn)行。如圖 14所示,加入適當(dāng)?shù)拇a,并調(diào)整Probe的前面板窗口大?。ㄟ@也是最終探針的顯示大小)。


          圖 14 修改后的String Probe_Custom.vi
          新建一個(gè)VI,并加入一個(gè)String控件,此時(shí)在右鍵快捷菜單中選擇Custom Probe>> My First String Probe菜單項(xiàng),如圖 15所示。


          圖 15 調(diào)用String Probe_Custom探針
          此時(shí),LabVIEW會(huì)自動(dòng)調(diào)用String Probe_Custom.vi,并以探針窗口的樣式顯示,如圖 16所示。在運(yùn)行VI前修改Display Style中的值并運(yùn)行VI,那么String顯示框?qū)⒆詣?dòng)以相應(yīng)的方式顯示數(shù)值。


          圖 16 String Probe_Custom探針窗口
          從上面的調(diào)用過程可以看出,LabVIEW中的探針實(shí)際上是對VI的調(diào)用。因此,在編輯探針VI時(shí)需要遵循以下的原則:
          1. 不要在探針VI中加入任何等待或長時(shí)間執(zhí)行的代碼,如循環(huán)、事件、隊(duì)列等,否則LabVIEW在運(yùn)行時(shí)會(huì)自動(dòng)掛起。
          2. 不要修改探針VI的默認(rèn)屬性,如設(shè)置為Modal等。但是可以修改它的標(biāo)題欄和大小。
          只有當(dāng)程序運(yùn)行到探針位置時(shí),探針窗口才顯示當(dāng)前運(yùn)行值,并且這些值在連線中不會(huì)保存。也就是說如果需要探測某個(gè)位置的值必須要在運(yùn)行之前在該位置加入探針,否則如果是在程序運(yùn)行之后再次加入探針,那么這些新加入的探針將無法顯示程序之前的運(yùn)行值。
          LabVIEW提供了一種工具允許程序中的連接線保留上一次的運(yùn)行值。單擊圖 17中的“Retain Wire Values”按鈕打開該工具,此時(shí)LabVIEW將保留當(dāng)前VI上一次的運(yùn)行值。當(dāng)VI運(yùn)行完成后,再次添加探針,則探針會(huì)自動(dòng)立即顯示該位置上一次的運(yùn)行值。當(dāng)然,這也會(huì)影響程序運(yùn)行的效率,因此當(dāng)VI退出內(nèi)存時(shí),LabVIEW會(huì)自動(dòng)關(guān)閉該工具。


          圖 17 Retain Wire Values工具

          1.6VI窗口管理(VI Windows)

          在調(diào)試過程中,為了追蹤子VI的運(yùn)行狀態(tài),經(jīng)常需要打開很多的VI窗口。往往在關(guān)閉這些窗口時(shí)反復(fù)地按下“Ctrl + W”鍵,LabVIEW提供了同時(shí)關(guān)閉這些VI的方法。單擊Windows>>All Windows…(快捷點(diǎn)是Ctrl + Shift + W)菜單項(xiàng),將彈出圖 18所示的VI窗口管理對話框。選擇需要關(guān)閉的窗口(可以使用Ctrl鍵或Shift鍵多選),單擊“Close Windows”按鈕就可以關(guān)閉選擇的窗口。


          圖 18 VI窗口管理
          【小技巧】
          在LabVIEW中,按下Ctrl + Tab鍵能夠在不同的LabVIEW窗口之間切換(Windows的Alt + Tab鍵是在所有的窗口之間切換)。

          1.7小結(jié)

          在實(shí)際的應(yīng)用中,程序員通常將上述多種調(diào)試工具綜合起來使用。根據(jù)多種提示和輔助信息可以快速地定位錯(cuò)誤源,并觀察部分代碼執(zhí)行的詳細(xì)過程,最終排除錯(cuò)誤,達(dá)到調(diào)試程序的目的。

          上一頁 1 2 下一頁

          關(guān)鍵詞: LabVIEW程序調(diào)試方

          評論


          技術(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); })();