吳義滿
(鹽城衛生職業技術學院 江蘇 鹽城 224001)
自動飲料機在日常生活中常見,比如戶外、商場、公交、地鐵等處常見的自動飲料機。自動飲料機系統的設計方法有許多種,例如可用中小規模集成電路組成自動飲料機系統,也可以利用專用的芯片配以所需要的外圍電路組成特定功能自動飲料機系統,還可以利用數字電路、FPGA、PLC、單片機和ARM來實現自動飲料機等等[1-5]。
而利用虛擬儀器技術labview設計的自動飲料機系統,可以用來模擬真實的自動飲料機系統而進行工作。使用虛擬儀器技術,工程師可以利用圖形化開發軟件labview方便、高效的創建完全自定義的解決方案,以滿足靈活多變的需求趨勢。
該論文設計的自動飲料機系統是充分利用虛擬儀器labview技術獨特而強大的狀態機技術而完成的,省去傳統的編程語言繁瑣,且能做到更新維護非常方便。
主要功能是:自動飲料機,分別實現:一是投錢,二是出貨,三是找零。

圖1 工作流程Fig.1 Work procedure
圖1 中直觀的表現了可樂機投入不同金額硬幣時的情況以及各個處理步驟的各個狀態和它們之間的轉換關系,根據投入硬幣的不同面值,對總金額進行計算,并對各種操作進行響應以完成一次購買。
Labview編程最大的特色圖形化的編程語言,外加十分豐富的函數庫,使程序設計非常簡單和直觀。該自動飲料機系統的程序設計就是充分利用labview豐富的函數庫里一些特殊的函數實現相應的功能,以及利用labview中狀態機技術實現整體編程思路。
圖2是Labview中的狀態機的經典模式圖

圖2 Labview中的狀態機Fig.2 State machine of labview
圖3 用的就是Labview中的狀態機的經典結構,最外層用的就是while循環,里層是條件結構,只不多是多分支的條件結構。第三個部分是移位寄存器,把指令傳輸到下一個循環狀態判斷中。另外,在圖3所示的狀態中,提供了初始狀態,每一狀態的執行步驟及其切換到下一個狀態代碼等等。
圖4所示的狀態是自動飲料機前面板正在運行的狀態的界面。
運用虛擬儀器技術labview設計自動飲料機系統,有自己獨特的技術特色。
2.4.1 狀態機的使用

圖3 整體程序框圖Fig.3 The whole program layout

圖4 自動飲料機界面Fig.4 The interface of automatic drink machines
經典的狀態機模式融合了while循環、條件結構和移位寄存器,使原本復雜的圖1工作流程圖編程變得思路清晰,結構簡單。其中條件結構是多分支的條件機構,移位寄存器是用的是兩個移位寄存器,一個是實行狀態指令的向下一個狀態轉移,另一個是累計投幣的金額,以判斷工作狀態。
2.4.2 轉換數組轉換
條件結構雖然能解決多狀態的選擇的問題,但從結構上來看不太直觀,管理不夠方便。可以把所有待選擇的狀態放入數組中,通過判斷子VI輸出不同的索引值,直接從數組中索引出下一個狀態到移位寄存器。如圖5所示。

圖5 轉換數組Fig.5 An array of conversion
此外,該自動飲料機系統還用了不少其它功能函數。從而使編程變得非常簡潔。
運行結果分析:實現了自動飲料機系統的三大功能——投幣、出貨和找零,符合設計預期。此外,該系統雖然只提供了一種飲料,要是想多幾種飲料且價格各不相同作選擇,只需要增加一個子VI用來選擇不同的飲料。
運用虛擬儀器技術labview[8-9]中的狀態機技術來設計自動飲料機系統,思路清晰,編程、調試和增加功能十分簡單,非常適合大學生實踐創新項目和畢業設計項目,以及為相關的企業設計生產自助設備提供參考。
該文設計的自動售貨機運用狀態機技術的另一大好處,在于狀態機技術相比其它的技術,維護自動更新或增加功能更加方便簡潔。
該文只不過是典型狀態機技術的一個經典應用,其實labview中的狀態機技術應用非常廣泛[6-7]。自動售票器、自動取款機等都可以運用狀態機技術來設計。
故該系統的研制不管是對學習或儀器研發,還是實際應用,具有一定的實際意義和理論價值。
[1]楊軼霞.PLC與計算機在自動售飲料機控制系統中的應用[J].新鄉學院學報:自然科學版,2011,28(1):59-61.YANG Yi-xia.Application of PLC and computer in the automatic machine of sale drink control system[J].Journal of Xinxiang University:Natural Science Edition,2011,28 (1):59-61.
[2]胡如龍.基于AVR單片機的全自動熱飲機控制器的設計[J].計算機測量與控制,2008(8):1110-1112.HU Ru-long.Design of the automatic machine of sale drink controller based on AVR computer[J].Computer Measurement&Control,2008(8):1110-1112.
[3]鄧娜娜,王鵬,楊子姜.基于ARM的自動售貨機主控制器的設計與開發[J].計算機軟件與應用,2012(5):260-261.DENG Na-na,WANG Peng,YANG Zi-jiang.Designing and developing ARM-based main controllerfor automated vending machine[J].Computer Applications and Software,2012(5):260-261.
[4]周澤鵬.基于ARM的自動售貨機控制器設計與實現[D].長沙:中南大學,2009.
[5]張建龍.一種新型自動售貨機控制系統研發[D].杭州:浙江工業大學,2009.
[6]余淑慧.利用LabVIEW狀態機結構實現數據讀取的通用化[J].機械,2012(2):21-22.YU Shu-hui.Achieve the universal of read program by using LabVIEW state machine structure[J].Machinery,2012(2):21-22.
[7]徐立翔.LabVIEW狀態機的研究及在運動控制中的應用[D].武漢:湖北工業大學,2012.
[8]雷剛,許勇.基于LabVIEW的發動機數據采集系統[J].現代電子技術,2012(14):140-142.LEI Gang,XU Yong.Engine data acquisition system based on LabVIEW[J].Modern Electronics Technique,2012(14):140-142.
[9]姚麗,劉東東.基于LabVIEW的數據采集與信號處理系統設計[J].電子科技,2012(5):79-81.YAO Li,LIU Dong-dong.Design of the data acquisition and signal processing system based on LabVIEW[J].Electronic Science and Technology,2012(5):79-81.