新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > LabVIEW程序的調試方式

        LabVIEW程序的調試方式

        作者: 時間:2017-01-09 來源:網絡 收藏
        調試工具是任何一種程序開發環境都必須提供的功能,它們可以顯著地提高程序員的開發效率。LabVIEW作為一種圖形化程序設計語言的IDE工具(同時也是一門獨特的語言),自然需要考慮為工程師提供適合于圖形化語言調試的工具。
        事實上,LabVIEW并沒有規定哪些工具被劃分為調試工具,哪些工具被劃分為其它的工具。這種界限和定義是比較模糊的,在實際使用中,我們可以把輔助程序員更準確、快捷地定位代碼執行和Bug的工具統稱為“調試工具”。
        LabVIEW主要的調試工具位于工具欄,如圖 1所示。從左至右依次是:
        1. Run:運行,單擊它會直接運行當前的VI,快捷鍵Ctrl + R。
        2. Run Continuously:連續運行。
        3. Abort Execution:中止運行,單擊它會停止當前運行的VI。
        4. Pause:暫停運行。
        5. Highlight Execution:高亮執行工具,單擊它程序會變慢,反映整個數據流運行的過程。
        6. Retain Wire Values:單擊它會保留當前連接線上的值(這一點在后面描述)。
        7. Start Single Stepping:單步執行,此時程序往前運行一個節點。
        8. Step Over:跳過當前的節點。
        9. Step Out:跳出單步執行。
        10. Step Into:進入到某一個子VI中執行。
        其中(1)~(4)是常用的工具,用來控制VI的運行、暫停和停止;而(7)~(10)是其它的程序設計語言的IDE環境均具備的,用法也沒有其它的區別。因此,本文將著重介紹LabVIEW中特有的程序調試工具或者方法。


        圖 1 LabVIEW的工具欄

        1.1錯誤列表(Error List)

        LabVIEW作為一種圖形化的編譯型語言,其編譯的過程是在后臺自動完成的(無需程序員手動編譯),編譯后的目標代碼也存儲在vi文件中。因此LabVIEW會“實時地”判斷代碼是否能夠正常運行。當無法正常運行時,將彈出Error List對話框,列出當前VI繼承中所有的錯誤,如圖 2所示。
        對話框分為3個部分,分別表示發生錯誤的VIs、發生錯誤的節點和錯誤簡單表述、錯誤的詳細描述。雙擊某一個VI可以直接打開該VI,雙擊某個錯誤節點可以直接定位到該節點節點。


        圖 2 Error List對話框
        通常使用該方式可以快速地定位發生錯誤的VI或節點,并根據錯誤描述進行修改。有時候會出現LabVIEW的“運行”箭頭是斷開,而Error List對話框中卻沒有顯示任何錯誤的情況。這是由于LabVIEW在內存中的已編譯代碼無法執行,只需要把當前的VI重新強制編譯即可,方法是在單擊“運行”箭頭的同時按住Ctrl鍵(LabVIEW 8.6.1之前的版本可能是Ctrl + Shift鍵)。

        1.2VI繼承和調用(VI Hierarchy)

        LabVIEW允許并且鼓勵子VI的調用,因此VI之間存在著調用與被調用關系,LabVIEW將這種關系以圖形的方式表示出來,稱之為“VI繼承”(動態調用的VI將不會顯示其調用與被調用的關系)。選擇View>>VI Hierarchy菜單項,彈出VI之間的關系圖,如圖 3所示。


        圖 3 VI Hierarchy
        從該圖中可以迅速地看出當前VI的子VI以及被調用的VI之間的關系,雙擊某個VI的圖標可以快速地打開該VI前面板。
        【小技巧】
        雙擊某個VI圖標的同時按住Ctrl鍵能夠直接打開VI的后面板。
        當LabVIEW暫停在某個VI中時,會在背面板工具欄中顯示當前VI被調用的VIs列表,如圖 4所示。從圖中可以看出,當前的VI正被1.vi調用,單擊該選項,可以看出整個被調用關系的列表VIs。當從列表中選擇某一個VI時,LabVIEW會自動定位到該VI。


        圖 4 VI Caller Chain

        1.3斷點工具(Breakpoint)

        LabVIEW運行對背面板中的任何一個節點和連線都可以設置斷點,程序運行到斷點位置時會暫停運行。
        在需要放置斷點的位置上右擊,選擇彈出菜單中的Breakpoint菜單項,使用Set Breakpoint指令可以在當前位置放置一個斷點,如圖 5所示。


        圖 5 Breakpoint快捷菜單
        當在已經存在斷點的位置上右擊鼠標時,會彈出圖 6所示的快捷菜單。使用Clear Breakpoint菜單項可以清除當前的斷點,而Disable Breakpoint可以禁止當前的斷點,此時斷點將不再暫停程序的執行。


        圖 6 Breakpoint快捷菜單
        在大型的程序調試中,斷點往往是使用的最為頻繁的工具,它使得程序員能夠迅速地專注于所關心的VI,而對于其它的VI執行過程則正常運行。通常,程序員為了找到某個Bug出現的原因,會在背面板中設置若干個斷點,而一旦清除掉Bug后又需要將這些斷點一一地清除,這難免會重復和繁瑣。LabVIEW 8.6提供了一個斷點管理的工具,可以選擇圖 5或圖 6中的Breakpoint Manager菜單項,啟動如所示的斷點管理對話框(或者直接使用View>>Breakpoint Manager菜單項)。該對話框中列出了當前內存中所有VI中包含的斷點,程序員可以選擇任意地斷點批量地將它們清除或者禁設置為禁止狀態。

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 汉阴县| 沁水县| 岑巩县| 涿鹿县| 辛集市| 称多县| 鄂伦春自治旗| 陆川县| 将乐县| 郓城县| 大竹县| 屯留县| 博乐市| 林西县| 淳安县| 闻喜县| 洛隆县| 横山县| 万荣县| 阿克| 晋宁县| 德庆县| 扬州市| 蒲城县| 景德镇市| 康平县| 岳池县| 西青区| 荣昌县| 翁牛特旗| 新竹县| 松阳县| 五家渠市| 曲阜市| 龙里县| 绿春县| 中卫市| 南皮县| 天镇县| 微博| 集安市|