更換登入信箱  | 未收到確認信  | 忘記密碼  | 註冊  | 登入
|
|
登入‧會員服務
新聞 論壇
教學 下載
專欄 影音
LabVIEW轉檔
分享
搜尋
產品評測
技術文章
資源中心
線上購物
資料代管
手機簡訊
LabSMS
LabEmail
外包 專案人才
外包 360團隊
聯絡我們
LabVIEW360 教學:錯誤叢集 (Error Cluster)
錯誤叢集 (Error Cluster)
發佈時間:2010/6/11 下午 10:40:44
無論你對於自己製作的VI 多麼有信心,你都無法預測使用者可能遭遇的所有問題。若是沒有檢查錯誤的機制,你只能知道VI 沒有正常運作。錯誤查驗可以告訴你錯誤為何發生,以及發生的位置。當你進行任何類型的I/O 時,都要考慮到錯誤發生的可能性。幾乎所有的I/O 函數都會傳回錯誤資訊。在VI 中加入錯誤查驗(尤其是I/O 作業,例如檔案、序列埠、儀器、資料擷取以及通訊操作),並且提供機制,以便適當處理錯誤。

檢查VI 中的錯誤,可以幫助你找出以下的問題:
不正確地初始化通訊,或是對外部設備寫入不當的資料。
外部設備斷電、故障,或是不當運作。
你更新作業系統軟體,改變了檔案的路徑或VI 或函式庫的功能。

如果你的程式需要與網路連線,或是與儀器連線。有一些特殊狀況總是不能事先預測,比如說:網路斷線、海底電纜破壞,GPIB線鬆脫…等。一個比較好的程式應該要具備容錯的能力,當外在突發狀況發生時,程式產生相對應的動作等等。這個部份在撰寫較有系統的大型程式上面需要考慮。但是對於實驗室使用的小程式,因為使短時間使用,而且程式執行的過程中,開發者都在儀器附近,所以程式的容錯能力就補教不是那麼需要。但是還要要建立相關的觀念。

在預設情況下,LabVIEW 會自動處理VI 執行時發生的任何錯誤,也就是暫停執行,標示出發生錯誤的subVI 或函數,並且顯示一個對話方塊。你可以選擇其它的錯誤處理方式。舉例來說,如果程式區中的I/O VI 等候時間已到,你可能不希望整個程式停下來。你也可能希望VI 重試一段時間。在LabVIEW 中,你可以在VI 的程式區中進行錯誤處理的決定。VI 和函數使用兩種方法之一來傳回錯誤-使用數字錯誤代碼,或是錯誤叢集。一般來說,函數使用數字錯誤代碼,VI 則使用錯誤叢集,通常具備錯誤輸出埠及輸入埠。

在LabVIEW 中,資料處理乃遵循資料流模式。正如資料流經VI 一樣,錯誤資訊也可以。將錯誤資訊從VI 的開始連接到結束處。在VI結束的位置加入錯誤處理器,以判斷VI 執行是否正確。在你使用或建立的每一個VI 中使用錯誤輸入及輸出叢集,以便將錯誤資訊傳經VI。

當VI 執行時,LabVIEW 會在每個執行節點上測試是否有錯誤。如果LabVIEW 沒有發現任何錯誤,節點就會正常執行。如果LabVIEW 發現錯誤,該節點即將錯誤傳給下一個節點,但是不執行。下一個節點也作同樣的動作,餘此類推。使用下一個範例Simple Error Handler VI,在執行流結束之處處理錯誤。Simple Error Handler VI 位於Functions»All Functions»Time & Dialog 面板中。將錯誤叢集連接至error in 輸入埠。



這個錯誤叢集(Error Cluster)的位置在人機介面的「 Controls»Array & Cluster 」。

錯誤叢集包含的的資訊有三種:布林、數字、字串。

status 是個布林值,如果發生錯誤,即回報TRUE (真)。大部份接受布林值資料的VI、函數以及結構也會認得這個參數。舉例來說,你可以將一個錯誤叢集連接至Stop、Quit LabVIEW 或是Select 函數的布林輸入埠。如果發生錯誤,錯誤叢集就會傳送TRUE 值給函數。
code 是一個32 位元有正負記號整數,以數字的方式來辨識錯誤。非零代碼加上status 的值為FALSE,代表警訊,而非致命錯誤。
source 是一個字串,用於辨識錯誤發生的位置。

使用錯誤叢集控制器及指示器,在subVI 中建立錯誤輸入埠及輸出埠。



在預設情況下,LabVIEW 會自動處理VI 執行時發生的任何錯誤,也就是暫停執行,標示出發生錯誤的subVI 或函數,並且顯示一個對話方塊。你可以選擇其它的錯誤處理方式。舉例來說,如果程式區中的I/O VI 等候時間已到,你可能不希望整個程式停下來。你也可能希望VI 重試一段時間。在LabVIEW 中,你可以在VI 的程式區中進行錯誤處理的決定。VI 和函數使用兩種方法之一來傳回錯誤-使用數字錯誤代碼,或是錯誤叢集。一般來說,函數使用數字錯誤代碼,VI 則使用錯誤叢集,通常具備錯誤輸出埠及輸入埠。

在LabVIEW 中,資料處理乃遵循資料流模式。正如資料流經VI 一樣,錯誤資訊也可以。將錯誤資訊從VI 的開始連接到結束處。在VI結束的位置加入錯誤處理器,以判斷VI 執行是否正確。在你使用或建立的每一個VI 中使用錯誤輸入及輸出叢集,以便將錯誤資訊傳經VI。

當VI 執行時,LabVIEW 會在每個執行節點上測試是否有錯誤。如果LabVIEW 沒有發現任何錯誤,節點就會正常執行。如果LabVIEW 發現錯誤,該節點即將錯誤傳給下一個節點,但是不執行。下一個節點也作同樣的動作,餘此類推。使用下一個範例Simple Error Handler VI,在執行流結束之處處理錯誤。Simple Error Handler VI 位於Functions»All Functions»Time & Dialog 面板中。將錯誤叢集連接至error in 輸入埠。











你可以將錯誤叢集連接至While Loop 的條件接頭(conditional terminal),以停止While Loop 的執行。當你將錯誤叢集連接至條件接頭時,只有錯誤叢集的status 參數的TRUE 或FALSE 值會傳送到接頭。當錯誤發生時,While Loop 就會停止。

當錯誤叢集被連接至條件接頭時,捷徑選單中的Stop if True 及Continue if True 選項會改變為Stop on Error 及Continue while Error。





 列印格式
|
 寄給朋友
|
 加到最愛
|
 意見回饋
|
 加到知識庫
|
 開啟知識庫
|

  |  我的最愛 隱私權保護政策 免責聲明 廣告刊登 系統整合 合作提案 聯絡我們 電話: 0988-002692