手提式水果糖酸度檢測機的操作程式完全是由LabVIEW寫成的大型程式,是我寫的程式中用到SubVI最多的程式。程式的寫作歷經4次改寫才有如今的規模,這要歸功於客戶的要求和多嘴的教授
程式寫作的原理是程序可跳著執行的循序結構,以錯誤訊息為導向,也就是程式中有錯誤訊息時,是優先處理錯誤訊息;除了幾個操控重要畫面外,還會叫用SubVI的跳現式視窗畫面
先來看程式的操作畫面,按照開機後的執行順序:
1.開機後會先執行偵測光譜儀通訊埠能否開啟?開啟失敗的機率約1/50左右,這應該是原廠驅動程式的問題。若光譜儀通訊埠開啟失敗,會呼叫SubVI跳出視窗,按確定後自動進入關機程序
2.若光譜儀光譜儀通訊埠開啟成功,會進入"初始化"程序,順序讀取各相關檔案,及上次關機前存檔的參數
首先讀取的是"暗電流"、"操作參數"、"設定資料"3個檔案,若讀取失敗,會把是哪個檔案讀取失敗的訊息,加入呼叫的SubVI跳出視窗顯示,按確定後結束程式動作;注意這邊是結束程式不是電腦關機,在程式結束後可打開檔案總管檢查檔案是否損壞或毀損
接著若上次的操作參數有打開通訊功能,會進入開啟通訊埠程式。若通訊埠開啟失敗,同樣會呼叫SubVI跳出視窗,但不會執行任何動作。在後續程序跑到"待機"狀態時仍可嘗試打開通訊埠
3.以上程序沒有錯誤會進入"暖機"程序,暖機開始前會檢查操作硬體,若操作硬體有錯誤,同樣會呼叫SubVI跳出視窗,按確定後結束程式動作;注意這邊是結束程式不是電腦關機,程式結束後可打開裝置管理員檢查硬體狀態
若硬體沒問題則直接執行暖機程序,暖機畫面原本有公司電話地址等資料,這邊避免造成困擾予以遮蔽
暖機程式中有使用2個SubVI
其中1個是把倒數數值轉成文字格式顯示在螢幕上,並比對倒數時間
另1個是倒數結束時,透過DAQ送出訊號,使音樂鈴發出聲音通知
4.暖機結束進入讀取資料的程序,依照設定資料調用相關的"檢量線"和校正參數;這裡使用的是讀取TDMS檔的SubVI,是LabVIEW專屬的特殊檔案,裡面的資料是混合式結構,若不知道建立檔案的人用的編排規則,要讀取破解很難
5.以上程序跑完,進入檢測程式畫面待機;上方是檢測結果顯示,下方是操作畫面切換。中間上方是功能選項顯示,中間下方是吸收光譜顯示。右邊上方是檢測數量和點數顯示,右邊下方是檢測模式設定。左邊上方是檢測項目和模式設定,左邊下方是檢測參數設定
其中點選"檢測點數設定"和"檢測標準"這2個項目時,會呼叫SubVI跳出數字鍵盤1的視窗;程式內容可以查看部落格內文章
點選"水果溫度"這個設定項時,會呼叫SubVI跳出數字鍵盤2的視窗;和數字鍵盤1差別在有"-"號,程式內容可以查看部落格內文章
點選"操作模式"這個項目,會跳出選項。只有"糖度量測"和"白板校正"這2項可選
點選"檢測項目"這個項目,會呼叫SubVI跳出選單視窗。選擇"水果名稱"或是點選"取消選擇"都會回到檢測程式畫面
6.點選下面"參數設定"會進入參數設定畫面
上方是選項開關,依序是:"聲音報知"設定音樂鈴動作,"溫度補償"打開溫度校正功能,"列印功能"設定是否要列印標籤,"通訊功能"設定是否要透過線路輸出檢測結果,"酸度切換"設定酸度顯示單位是百分比或PH值
中間左邊是"燈泡使用時間"計時,換新IR燈泡時可將時間歸0;中間右邊"存檔/檢測數量歸0"可把當時的全部檢測結果存檔,並把檢測數量歸0
在下方是4個功能設定項目
"列印設定"會呼叫SubVI跳出設定視窗,裡面的位置寬高設定的單位是點數,設定數值要依標籤機手冊說明去調整
"系統設定"會呼叫SubVI跳出設定視窗,雖然因客戶要求要有這項目,但基本上是不應開放給客戶使用;曾有客戶手賤修改裡面的數值,結果就是準確率完全走樣
"糖度校正"和"酸度校正"會呼叫SubVI跳出幾乎相同的設定視窗,程式碼也幾乎相同;這部分是出廠前用來修正光譜儀的檢測誤差用,原本也是不開放給客戶使用,但在部分客戶要求下開放使用。但後來有些客戶誤用濫用造成不少糾紛,有點後悔開放這項目
雖然這個程式用到的SubVI有幾十個,但含主要檢測畫面在內只有以上那幾個
接下來針對看過及使用過這台機器的教授和客戶的疑問順便解謎
1.程式畫面的配色:原本畫面都是LabVIEW內定的銀灰色系列,教授認為這樣比較有質感。但實際使用客戶大多是中老年人,銀灰色系對客戶來說看的很吃力。純黑白對比又太強烈,經過幾次調整才變成目前的狀態,要兼顧配色和對比可不容易。一切還是以使用者的意見為主,至於教授的意見?吃屎去吧
2.數字鍵盤為何會有2個版本?其實一開始也只有一種版本,但就是有些客戶不看使用手冊,在不該設定負數的地方設定為負數,結果就是程式系統當機;而改用2個版本的數字鍵盤後,雖然還有客戶亂設定,至少不曾程式系統當機
3.酸度為何會有百分比或PH值的顯示方式?這邊我就老實承認實際取樣時都是PH值,學術單位用的"滴定法"不是沒有考慮過。但提出這個意見的教授不肯出借設備,加上"滴定法"取樣耗時,在商品化取樣是很不利的;為了給教授一個交代,我另外搞了一個將PH值換算為百分比的程式
4.通訊功能怎麼設定?老實說不開放給客戶自己設定,IP位址的設定是到客戶那邊我再依客戶的資料修改;這項功能是某些客戶要求而設定,輸出的資料是直接進到客戶的資料庫,但大多數客戶沒有自己的資料庫,所以這一項幾乎都是關閉狀態
5.標籤機能不能換用其他機種?可以,但只限TSC這一廠牌,畢竟使用到的萬用驅動程式是那家廠牌的東西
6."系統設定"內的項目要如何設定?再強調是不應開放給客戶使用的東西
"資料起點"那項要怪罪"海洋光學"公司,同樣是訂購波長範圍200到1050的光譜儀,但事實上波長範圍是沒變,但讀取光譜資料有差。也就是同一波長資料在不同個光譜儀之間,不是落在資料陣列的同一索引位置上,這一項是在修正這個資料的偏移誤差。也因為這樣每一台出廠的機器我都有特別記下出廠設定
"曝光倍率"這項要怪罪歐盟,原本IR燈泡用的好好的,因為"環保"問題,使得IR燈泡廠商更改充填氣體。結果是燈泡不穩定,在更改初期還每批號都不同,當時換了幾批後才穩定下來;但這一設定項還是保留下來預防萬一
下一篇文是程式詳解,其中用到較複雜的SubVI會另闢專文詳解