吳義滿
(鹽城衛(wèi)生職業(yè)技術(shù)學(xué)院 江蘇 鹽城 224001)
自動(dòng)飲料機(jī)在日常生活中常見(jiàn),比如戶外、商場(chǎng)、公交、地鐵等處常見(jiàn)的自動(dòng)飲料機(jī)。自動(dòng)飲料機(jī)系統(tǒng)的設(shè)計(jì)方法有許多種,例如可用中小規(guī)模集成電路組成自動(dòng)飲料機(jī)系統(tǒng),也可以利用專用的芯片配以所需要的外圍電路組成特定功能自動(dòng)飲料機(jī)系統(tǒng),還可以利用數(shù)字電路、FPGA、PLC、單片機(jī)和ARM來(lái)實(shí)現(xiàn)自動(dòng)飲料機(jī)等等[1-5]。
而利用虛擬儀器技術(shù)labview設(shè)計(jì)的自動(dòng)飲料機(jī)系統(tǒng),可以用來(lái)模擬真實(shí)的自動(dòng)飲料機(jī)系統(tǒng)而進(jìn)行工作。使用虛擬儀器技術(shù),工程師可以利用圖形化開(kāi)發(fā)軟件labview方便、高效的創(chuàng)建完全自定義的解決方案,以滿足靈活多變的需求趨勢(shì)。
該論文設(shè)計(jì)的自動(dòng)飲料機(jī)系統(tǒng)是充分利用虛擬儀器labview技術(shù)獨(dú)特而強(qiáng)大的狀態(tài)機(jī)技術(shù)而完成的,省去傳統(tǒng)的編程語(yǔ)言繁瑣,且能做到更新維護(hù)非常方便。
主要功能是:自動(dòng)飲料機(jī),分別實(shí)現(xiàn):一是投錢,二是出貨,三是找零。
圖1 工作流程Fig.1 Work procedure
圖1 中直觀的表現(xiàn)了可樂(lè)機(jī)投入不同金額硬幣時(shí)的情況以及各個(gè)處理步驟的各個(gè)狀態(tài)和它們之間的轉(zhuǎn)換關(guān)系,根據(jù)投入硬幣的不同面值,對(duì)總金額進(jìn)行計(jì)算,并對(duì)各種操作進(jìn)行響應(yīng)以完成一次購(gòu)買。
Labview編程最大的特色圖形化的編程語(yǔ)言,外加十分豐富的函數(shù)庫(kù),使程序設(shè)計(jì)非常簡(jiǎn)單和直觀。該自動(dòng)飲料機(jī)系統(tǒng)的程序設(shè)計(jì)就是充分利用labview豐富的函數(shù)庫(kù)里一些特殊的函數(shù)實(shí)現(xiàn)相應(yīng)的功能,以及利用labview中狀態(tài)機(jī)技術(shù)實(shí)現(xiàn)整體編程思路。
圖2是Labview中的狀態(tài)機(jī)的經(jīng)典模式圖
圖2 Labview中的狀態(tài)機(jī)Fig.2 State machine of labview
圖3 用的就是Labview中的狀態(tài)機(jī)的經(jīng)典結(jié)構(gòu),最外層用的就是while循環(huán),里層是條件結(jié)構(gòu),只不多是多分支的條件結(jié)構(gòu)。第三個(gè)部分是移位寄存器,把指令傳輸?shù)较乱粋€(gè)循環(huán)狀態(tài)判斷中。另外,在圖3所示的狀態(tài)中,提供了初始狀態(tài),每一狀態(tài)的執(zhí)行步驟及其切換到下一個(gè)狀態(tài)代碼等等。
圖4所示的狀態(tài)是自動(dòng)飲料機(jī)前面板正在運(yùn)行的狀態(tài)的界面。
運(yùn)用虛擬儀器技術(shù)labview設(shè)計(jì)自動(dòng)飲料機(jī)系統(tǒng),有自己獨(dú)特的技術(shù)特色。
2.4.1 狀態(tài)機(jī)的使用
圖3 整體程序框圖Fig.3 The whole program layout
圖4 自動(dòng)飲料機(jī)界面Fig.4 The interface of automatic drink machines
經(jīng)典的狀態(tài)機(jī)模式融合了while循環(huán)、條件結(jié)構(gòu)和移位寄存器,使原本復(fù)雜的圖1工作流程圖編程變得思路清晰,結(jié)構(gòu)簡(jiǎn)單。其中條件結(jié)構(gòu)是多分支的條件機(jī)構(gòu),移位寄存器是用的是兩個(gè)移位寄存器,一個(gè)是實(shí)行狀態(tài)指令的向下一個(gè)狀態(tài)轉(zhuǎn)移,另一個(gè)是累計(jì)投幣的金額,以判斷工作狀態(tài)。
2.4.2 轉(zhuǎn)換數(shù)組轉(zhuǎn)換
條件結(jié)構(gòu)雖然能解決多狀態(tài)的選擇的問(wèn)題,但從結(jié)構(gòu)上來(lái)看不太直觀,管理不夠方便。可以把所有待選擇的狀態(tài)放入數(shù)組中,通過(guò)判斷子VI輸出不同的索引值,直接從數(shù)組中索引出下一個(gè)狀態(tài)到移位寄存器。如圖5所示。
圖5 轉(zhuǎn)換數(shù)組Fig.5 An array of conversion
此外,該自動(dòng)飲料機(jī)系統(tǒng)還用了不少其它功能函數(shù)。從而使編程變得非常簡(jiǎn)潔。
運(yùn)行結(jié)果分析:實(shí)現(xiàn)了自動(dòng)飲料機(jī)系統(tǒng)的三大功能——投幣、出貨和找零,符合設(shè)計(jì)預(yù)期。此外,該系統(tǒng)雖然只提供了一種飲料,要是想多幾種飲料且價(jià)格各不相同作選擇,只需要增加一個(gè)子VI用來(lái)選擇不同的飲料。
運(yùn)用虛擬儀器技術(shù)labview[8-9]中的狀態(tài)機(jī)技術(shù)來(lái)設(shè)計(jì)自動(dòng)飲料機(jī)系統(tǒng),思路清晰,編程、調(diào)試和增加功能十分簡(jiǎn)單,非常適合大學(xué)生實(shí)踐創(chuàng)新項(xiàng)目和畢業(yè)設(shè)計(jì)項(xiàng)目,以及為相關(guān)的企業(yè)設(shè)計(jì)生產(chǎn)自助設(shè)備提供參考。
該文設(shè)計(jì)的自動(dòng)售貨機(jī)運(yùn)用狀態(tài)機(jī)技術(shù)的另一大好處,在于狀態(tài)機(jī)技術(shù)相比其它的技術(shù),維護(hù)自動(dòng)更新或增加功能更加方便簡(jiǎn)潔。
該文只不過(guò)是典型狀態(tài)機(jī)技術(shù)的一個(gè)經(jīng)典應(yīng)用,其實(shí)labview中的狀態(tài)機(jī)技術(shù)應(yīng)用非常廣泛[6-7]。自動(dòng)售票器、自動(dòng)取款機(jī)等都可以運(yùn)用狀態(tài)機(jī)技術(shù)來(lái)設(shè)計(jì)。
故該系統(tǒng)的研制不管是對(duì)學(xué)習(xí)或儀器研發(fā),還是實(shí)際應(yīng)用,具有一定的實(shí)際意義和理論價(jià)值。
[1]楊軼霞.PLC與計(jì)算機(jī)在自動(dòng)售飲料機(jī)控制系統(tǒng)中的應(yīng)用[J].新鄉(xiāng)學(xué)院學(xué)報(bào):自然科學(xué)版,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ī)的全自動(dòng)熱飲機(jī)控制器的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,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的自動(dòng)售貨機(jī)主控制器的設(shè)計(jì)與開(kāi)發(fā)[J].計(jì)算機(jī)軟件與應(yīng)用,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òng)售貨機(jī)控制器設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:中南大學(xué),2009.
[5]張建龍.一種新型自動(dòng)售貨機(jī)控制系統(tǒng)研發(fā)[D].杭州:浙江工業(yè)大學(xué),2009.
[6]余淑慧.利用LabVIEW狀態(tài)機(jī)結(jié)構(gòu)實(shí)現(xiàn)數(shù)據(jù)讀取的通用化[J].機(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狀態(tài)機(jī)的研究及在運(yùn)動(dòng)控制中的應(yīng)用[D].武漢:湖北工業(yè)大學(xué),2012.
[8]雷剛,許勇.基于LabVIEW的發(fā)動(dòng)機(jī)數(shù)據(jù)采集系統(tǒng)[J].現(xiàn)代電子技術(shù),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的數(shù)據(jù)采集與信號(hào)處理系統(tǒng)設(shè)計(jì)[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.