LabVIEW360首頁
登入|註冊會員
論壇.討論區
教育訓練中心
LabVIEW轉檔
個人專案管理
LabVIEW專家技術專欄
技術專欄
資源中心
尋找 專案人才
LabVIEW自動控制專案
線上購物
資料代管
手機簡訊
LabSMS
LabEmail
關於LabVIEW360
聯絡我們


目前狀態
尚未登入
電子郵件信箱
尚未登入
More Settings
Account Settings
LabVIEW360
錯誤叢集 (Error Cluster)
2019/01/31 02:29:21
無論你對於自己製作的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。