自訂異常訊息

規劃異常訊息

在程式的規劃上,異常訊息總是容易被人忽略。無論在使用者在操作上或程式本身的Bug上,異常現象的發生都是無可避免的,就算是再好的程式都一樣。

既然無法避免,那麼是不是需要有哪些機制來顯示錯誤發生的原因或可能的現象…等錯誤訊息,讓維護人員或設計人員甚至操作人員,依據錯誤發生的訊息來找出解決對策。

異常發生的種類及處置

對於異常訊息的規劃上,首先可以將訊息做區分,如:異常(Error)、警告(Alarm)…等。當然,你也可以依據程式特性或需要區分的更詳細,如:待料、待機…等。

有了異常訊息的區分後,再來就是細分每個訊息所需要處理的代碼及訊息。並將其歸納到訊息區分裡。

對於設計人員來說,錯誤訊息的規劃上確實有困難的地方,因為很多訊息是無法預測的,有的甚至於是設計人員在設計階段不會發生的Bug。就算是如此,也必須針對這些Unknown(不可預知)的錯誤預留空間。

順序控制一文中已提到如何運用State Machine方式將Error做統一處理及如何利用Select元件當發生異常訊息時,指定執行的個程序。這裡,我們所要討論的是如何利用LabVIEW的Edit Error Code功能 圖1.1,自訂屬於專案的異常訊息。

![|558x340](upload://mvkoBWXRm03aiUTZU8stY4Z43nv.png)

圖1.1 Error Code File Editor畫面

自訂專屬的異常訊息

在LabVIEW的內建異常訊息裡本就已經提供了許多的錯誤訊息及代碼,不只是在軟體方面,在硬體分面更是如此圖1.2。為了提供這方面的彈性及避免設計人員在設計規劃異常訊息時產生衝突,LabVIEW預留了5000~9999的Error Code編輯空間,提供給使用者定義自己的錯誤訊息。

自訂異常訊息的方式除了使用Edit Error Code功能來建立指定錯誤訊息及錯誤代碼外,還可以利用內建的General Error Handler.vi 來指定並顯示錯誤訊息 圖1.3。

![|624x524](upload://yJCT7IOce277rnE2cO4B0a4Oqww.png)

圖1.2 VISA Error Code列表

![|659x317](upload://6BreEvcSaZD7HV9fG3l03Qnb6xS.png)

圖1.3 利用General Error Handler.vi指定錯誤訊息

除了以上的方式外,還可以利用Edit Error Code功能來編輯錯誤訊息,將錯誤訊息存成LabVIEW專屬的txt文字檔圖1.4。這樣不但可以有效的管理錯誤訊息,並且可以增加錯誤訊息在編輯時的彈性。在編譯成執行檔時,也可以將這些編譯的錯誤訊息加入在程式裡圖1.5,加以發佈出去。

![|536x311](upload://hZeCsi6WZ4NGe7EEiGIhVBhFcgT.png)

圖1.4 SPT-Error.txt檔案

![|513x417](upload://1ju2UXQNQM9gpKSnrIq2yPQtmxH.png)

圖1.5 選擇加入的Error Code txt 檔案

編輯錯誤訊息

接下來將一步步的介紹如何使用LabVIEW7.0中的Edit Error Codes..來進行錯誤訊息的編輯。

步驟一:
在LabVIEW的工具列上選擇Tools>>Advanced>>Edit Error Codes選項 圖1.6。

步驟二:
出現Error Code File Editor畫面並出現 圖1.7的新增或開啟檔案選項。如果要新增檔案,按下New按鈕;反之,按下Open按鈕。

![|420x371](upload://b04amtL5FtU6FLxhxLLiC090LlJ.png)

圖1.6 Edit Error Codes選項

![|268x107](upload://gvngXAXajaMEZoRzQ88ficFbxRR.png)

圖1.7 新增或開啟檔案

步驟三:
在Error Code File Editor畫面按下Add按鈕 圖1.8後,彈出Add Error Code視窗 圖1.9。開始編輯你自訂的Error Code及Error Message 圖1.10。

步驟四:
編輯完成後,進行存檔 圖1.11。

![|327x328](upload://cX1ZPbuakCR5cHi4t1ImYsXpmnz.png)

圖1.8 Add按鈕

![|505x262](upload://mz8smyJI6SBrsdNYXgjjxBwb0sF.png)

圖1.9 Add Error Code畫面

![|399x211](upload://xeAb7zJtPM8Mqt3ddaP4r5P53E6.png)

圖1.10 自訂的Error Code及Error Message

存檔時有幾點必須要注意:

1. 檔名必須是XXX-errors.txt型態,其中,XXX為檔案名稱,-errors.txt則為必須的名稱定義 圖1.12。

2. 存檔的路徑必須存放在…\National Instruments\LabVIEW 7.0\user.lib\ errors\下。

3. 完成上述動作後,必須重新啟動LabVIEW,這樣才會把檔案重新Load進來。否則,就算完成存檔動作,當錯誤發生時,也不會出現剛剛定義的錯誤訊息,出現的反而是如圖1.13的訊息。

![|290x191](upload://taCfQWyxfmOCc5vNOiLCQ3ugQbB.png)

圖1.11 將自訂的Error訊息存檔

![|432x119](upload://s6PoQWge3Hd7Va4VHpTGJLcKzfv.png)

圖1.12 檔名定義必須為xxx-errors.txt型態

![|270x177](upload://c4wwnONvHaM3XgdoEHCWrZpiSLY.png)

圖1.13 找不到Error 6000的自訂訊息

如果完成以上步驟,執行的結果就會 如圖1.14所示。

![|338x188](upload://6dj6ZNsMUoTnUD3SPRDvV3tA3g4.png)

圖1.14 Error 6000的自訂訊息

結論

異常訊息的規劃通常是被工程師遺忘的一部分,因為大多數的工程師都會有一個觀念:〝我的程式怎麼可能發生這樣的錯誤〞。

發生錯誤的情況在所難免,如果能讓維護人員或操作人員當錯誤異常現象發生時,能提供對策。這樣,更能讓一個程式具備更高的完整性。

Benjamin42087.8542476852