日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]LabVIEW做為一個編程開發(fā)平臺,和其它的文本編程環(huán)境一樣,當我們編寫的程序變得很大時,為了能在調(diào)試的時候快速的定位問題,也為了能在最終用戶使用時,對于突發(fā)的錯誤或者可預(yù)知的錯誤能夠通過一定的處理進行糾正或

LabVIEW做為一個編程開發(fā)平臺,和其它的文本編程環(huán)境一樣,當我們編寫的程序變得很大時,為了能在調(diào)試的時候快速的定位問題,也為了能在最終用戶使用時,對于突發(fā)的錯誤或者可預(yù)知的錯誤能夠通過一定的處理進行糾正或關(guān)閉應(yīng)用程序,避免錯誤的進一步發(fā)生。這就需要LabVIEW開發(fā)人員在開發(fā)應(yīng)用程序時,能夠合理的使用一種錯誤處理策略。這篇文章中,我們將會給大家介紹一些LabVIEW中的基本的和高階的錯誤處理技巧,提高應(yīng)用程序魯棒性。 默認的,LabVIEW是會進行自動錯誤處理的。這表現(xiàn)在當程序執(zhí)行過程中出現(xiàn)錯誤時(如加載文件失?。?,程序會掛起,LabVIEW會自動彈出錯誤對話框,并高亮導(dǎo)致錯誤產(chǎn)生的子VI或函數(shù)模塊。在LabVIEW中可以通過:1)工具>>選項>>程序框圖>>錯誤處理:該分支下有兩個選項可以決定是否使能自動錯誤處理;2)對于單個VI,文件>>VI屬性>>執(zhí)行:該分支下可以選擇是否對當前VI關(guān)閉自動錯誤處理。 如果希望程序在執(zhí)行過程中出現(xiàn)錯誤時能給出更有意義的提示信息,我們可以使用自定義錯誤處理。首先評估一下該應(yīng)用中,有可能會出現(xiàn)哪些錯誤,并給這個錯誤賦特定的錯誤代碼(error code)和描述信息(description)。LabVIEW預(yù)留了以下錯誤代碼供用戶自定義錯誤使用:-8999到-8000,5000到9999,500000到599999。比如:在一個數(shù)據(jù)采集應(yīng)用中,需要監(jiān)測外部信號的幅值,當幅值大于8V時,我們可以定義該錯誤碼為6000,并通過General Error Handler函數(shù)彈出相應(yīng)對話框。(參考basic error handling.vi)圖1.通用錯誤處理 上述這種方式,如果程序很大時,為了不遺漏掉各部分可能產(chǎn)生的錯誤,我們需要不斷的放置General Error Handler函數(shù),并給它不斷的配置“用戶自定義代碼”和“用戶自定義描述信息”,時間長了,就難于維護,而且很難面面俱到,而且增大代碼的體積和占用配圖的空間。有沒有一種全局的方式呢?答案是肯定的,在LabVIEW中通過:工具>>高級>>編輯錯誤代碼,彈出錯誤代碼編輯對話窗口,可以新建或修改現(xiàn)有的文件。在錯誤編輯窗口中可以添加自定義錯誤代碼和相應(yīng)的文本描述信息。如果是新建的文件,點擊Save按鈕時會彈出對話框提示保存,文件名稱必須是xxx-errors.txt,xxx是用戶可以自由命名部分。xxx-errors.txt文件的存放目錄必須在:盤符:Program FilesNational InstrumentsLabVIEW 2011user.liberrors目錄下(這里以LabVIEW 2011為例,其中盤符為LabVIEW所在的安裝目錄),如果沒有errors目錄,可以手動創(chuàng)建。xxx-errors.txt文件在LabVIEW關(guān)閉并重啟后才生效。圖2. 錯誤代碼編輯對話窗口 到這里的時候,如果只是一個人在孤獨的寫程序,那么通過xxx-errors.txt文件對自定義錯誤代碼進行管理就基本上能滿足一個LabVIEW開發(fā)者在同一臺計算機上的要求了。但是在很多情況下,我們開發(fā)的應(yīng)用程序最終可能會在其它計算機上部署或運行,或者要共享給其他開發(fā)人員,那怎么使得xxx-errors.txt得以復(fù)用。 如果是把源代碼共享給另一個開發(fā)人員,只需要從原來的計算機上將xxx-errors.txt文檔拷貝到對方計算機上的相應(yīng)目錄:盤符:Program FilesNational InstrumentsLabVIEW 2011user.liberrors下即可。如果是生成Executable文件,那么在Executable的屬性配置窗口的高級頁面中,勾選上“拷貝錯誤代碼文件”,這樣在生成Executable時,會自動將”盤符:Program FilesNational InstrumentsLabVIEW 2011user.liberrors”下所有的xxx-errors.txt復(fù)制到”C:Program FilesNational InstrumentsSharedLabVIEW Run-Time2011errors”目錄下(這里以LabVIEW 2011為例,該路徑為LabVIEW Run-Time的目錄)。圖3. Executable的屬性配置窗口 但這只是在原來的計算機上做了一次復(fù)制,要在目標計算機上運行,除了拷貝Executable文件,必須將xxx-errors.txt文件手動拷貝到目標計算機的LabVIEW Run-time目錄下。大家可能會有疑問,要是這樣的話,那圖3中的勾選項還有什么用!確實,如果只是在目標機上運行Executable,是否勾選上都無所謂。但是當我們勾選上之后,進一步生成安裝文件時,在安裝文件的屬性配置窗口的附加安裝頁面中,勾選上LabVIEW Run-time Engine,這樣安裝文件中將會包含LabVIEW Run-time Engine,而xxx-errors.txt在之前生成Executable時已經(jīng)拷貝到LabVIEW Run-time Engine目錄下了,也將包含在Installer中,所以在目標計算機上安裝Installer時,就不再需要手動拷貝xxx-errors.txt文件了。 好了,到這里為止。基礎(chǔ)知識我們介紹完了,接下來我們介紹對于可預(yù)見的錯誤,是否可以選擇直接忽略,或者前幾次嘗試忽略直到該特定錯誤出現(xiàn)很多次后才通知用戶需要糾正該錯誤了;是否可以對重要的錯誤進行存檔;當主VI中多個線程時,如果某一個線程出錯,如何保證其它線程進行適當?shù)氖瘴埠笸瑯觾?yōu)雅的退出,避免一錯再錯。這里我編寫了一個參考VI,我們將詳細介紹:圖4.項目文件概覽 打開Error Handling in LabVIEW.vi的程序框圖,其包含三個循環(huán),分別是Producer loop,Consumer loop,Display Loop。Producer loop用于響應(yīng)用戶事件,并通過隊列通知Consumer loop執(zhí)行相應(yīng)的操作;Display loop用于對前面板顯示控件進行更新。圖5.項目原理圖 Error Handling in LabVIEW.vi中關(guān)于錯誤處理部分最核心的VI是Error Module.vi。它其實是一個功能全局變量,包含Initialize,Handle Errors和Report Errors三個分支。Initialize分支中定義好哪些錯誤代碼是直接被忽略的,哪些錯誤代碼是允許出現(xiàn)若干次,并且為了實現(xiàn)在主VI Error Handling in LabVIEW.vi的任何一個循環(huán)出現(xiàn)錯誤時,所有的其它循環(huán)也能夠退出,在Initialize分支中將分別獲取三個循環(huán)中的相應(yīng)隊列引用或用戶事件引用。圖6.Error Module模塊圖7. Initialize分支 先介紹一下Error Handling Info簇控件,它包含兩個數(shù)組。數(shù)組Ignore中定義的Error Code即我們希望Error Module.vi直接忽略的;Retry是簇數(shù)組,每個簇中包含三個元素:Code即我們希望出錯后重試的代碼,Retry times為允許出錯的次數(shù),Current Iteration記錄了該特定錯誤已經(jīng)發(fā)生的次數(shù)(在主VI中不要設(shè)置,讓它為0)。我們希望當Current Iteration < Retry times時,如果該錯誤出現(xiàn),我們可以忽略該錯誤,但是Current Iteration值加1。對于本次測試,主VI給Error Module.vi的傳遞的參數(shù)如下,我們將在后面看到,5556的錯誤將被直接忽略,而5557的錯誤第三次出現(xiàn)時程序?qū)棾鰧υ捒蛱崾境鲥e。圖8. Error Handling Info簇控件信息 Error Module.vi中最重要的是Handle Errors分支,簡單的說,它其實是包含兩層條件結(jié)構(gòu)嵌套,三種處理情況。1)錯誤直接被忽略;2)錯誤符號Retry的條件;3)錯誤不能被預(yù)處理,將錯誤存檔。圖9. Handle Errors分支 當錯誤不能被預(yù)處理時,將錯誤存檔后,我們調(diào)用General Error Handler函數(shù),這樣就會彈出錯誤對話框,對話框中包含xxx-errors.txt文件中定義好的描述信息。除了將錯誤存檔,在程序中同時通過元素入隊列、產(chǎn)生用戶事件使得主VI中的Consumer loop,Display loop和Producer loop都能夠優(yōu)雅的退出。 接下來我們來看一下程序的測試:圖10.主VI前面板1.點擊Acquire按鈕,將獲取波形;2.點擊Generate error for consumer,將使得Consumer loop產(chǎn)生error 5555,由于5555不包含在預(yù)處理的情況中,Error Module.vi的Handle Errors分支將該錯誤存檔并彈出錯誤對話框,同時其它循環(huán)通過元素入隊列,產(chǎn)生用戶事件而退出,整個程序停止運行;3.重新運行程序,點擊Generate error for Ignore按鈕,可以看到,程序?qū)⒗^續(xù)正常運行,完全忽略該錯誤;4.點擊Generate error for Retry按鈕,當點擊第三次時,才彈出錯誤對話框,程序停止運行。如下圖所示:圖11. 錯誤代碼5557重復(fù)出現(xiàn)3次

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

下面的項目包括一個機器人完成各種任務(wù)。這是通過在機器人上使用和實現(xiàn)各種傳感器來完成的。機器人能夠在一個封閉的區(qū)域內(nèi)移動,收集球,并在最后的一個點上放下球。機器人將繪制出它去過的位置和該區(qū)域內(nèi)的障礙物。

關(guān)鍵字: 傳感器 機器人 LabVIEW

錯誤處理不太可能成為任何用于嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)的主要功能。這是資源限制的必然結(jié)果——所有嵌入式系統(tǒng)都有某種限制。這也是合乎邏輯的,因為只有有限數(shù)量的嵌入式系統(tǒng)有機會像桌面系統(tǒng)一樣運行——即為用戶提供在發(fā)生某些異常事...

關(guān)鍵字: RTOS 錯誤處理

NI提供的軟件包經(jīng)濟省時,不僅幫助開發(fā)人員節(jié)省時間,還為創(chuàng)客提供了新的機遇

關(guān)鍵字: LabVIEW 自動化測試系統(tǒng)

強大的圖形化編程工具使整個測試和測量過程的各個方面實現(xiàn)可視化

關(guān)鍵字: LabVIEW 圖形化編程工具

摘要:對于每一型新機試飛,或者是重大的研究性試飛和驗證試飛,都必須實施遙測監(jiān)控?,F(xiàn)基于TTS(TextToSpeech)語音合成技術(shù),結(jié)合飛行試驗遙測監(jiān)控系統(tǒng)的不足,利用TTS引擎在LabVIEW開發(fā)環(huán)境下設(shè)計并實現(xiàn)了遙...

關(guān)鍵字: 飛行試驗遙測監(jiān)控系統(tǒng) TTS LabVIEW

在科研以及應(yīng)用軟件領(lǐng)域,LabVIEW和MATLAB作為比較常用的2款工具,相信很多人都用過吧。簡單的概括一下,LabVIEW側(cè)重測試測量和數(shù)據(jù)采集,MATLAB側(cè)重科學(xué)計算和數(shù)據(jù)分析。

關(guān)鍵字: LabVIEW matlab 混合編程

摘要:利用單片機和虛擬儀器LabVIEW在PC端設(shè)計了溫濕度測量及控制系統(tǒng),用于溫濕度數(shù)據(jù)監(jiān)測。該系統(tǒng)上位機為PC端監(jiān)控界面,下位機為單片機,單片機采集溫濕度數(shù)據(jù),并將采集到的數(shù)據(jù)通過串口發(fā)送給監(jiān)控界面進行監(jiān)測和管理。該...

關(guān)鍵字: DHT11 LabVIEW 單片機

摘要:當前閉環(huán)步進電機在自動化設(shè)備中的應(yīng)用越來越廣泛,故為了進一步滿足閉環(huán)步進電機的應(yīng)用需求,采用LabVIEW上位機+運動控制卡+驅(qū)動器模塊的控制方案進行了多軸運動系統(tǒng)的設(shè)計,通過設(shè)計的上位機軟件實現(xiàn)閉環(huán)步進電機的實時...

關(guān)鍵字: 閉環(huán)步進電機 精度測試 LabVIEW

摘要:為滿足某扭矩檢測試驗標準要求,基于LabView設(shè)計開發(fā)了一款扭矩檢測裝置,該裝置能檢測某類零部件的斷裂力矩,滿足試驗標準要求,其他零部件的扭矩也可在該裝置上檢測。類似的扭矩裝置可參考該裝置進行設(shè)計。

關(guān)鍵字: 伺服電機 LabVIEW PLC

在下述的內(nèi)容中,小編將會對LabVIEW的相關(guān)消息予以報道,如果LabVIEW是您想要了解的焦點之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: LabVIEW 測試測量 NI
關(guān)閉