自動(dòng)售貨機(jī)詳細(xì)設(shè)計(jì)_曹琦_第1頁
自動(dòng)售貨機(jī)詳細(xì)設(shè)計(jì)_曹琦_第2頁
自動(dòng)售貨機(jī)詳細(xì)設(shè)計(jì)_曹琦_第3頁
自動(dòng)售貨機(jī)詳細(xì)設(shè)計(jì)_曹琦_第4頁
自動(dòng)售貨機(jī)詳細(xì)設(shè)計(jì)_曹琦_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、詳細(xì)設(shè)計(jì)1.主程序流程設(shè)計(jì)輸出退幣 返回 1-1程序流程圖2.各子程序設(shè)計(jì)計(jì)幣部分當(dāng)有顧客購買時(shí),每投入一次錢幣都得經(jīng)過感應(yīng)器進(jìn)行真假監(jiān)辨后,再給PLC進(jìn)行計(jì)幣的指令。當(dāng)發(fā)現(xiàn)偽幣時(shí),感應(yīng)器不給PLC累計(jì)投幣值的指令,同時(shí)自行退出偽幣。而當(dāng)PLC接收到感應(yīng)器傳來的記幣的指令時(shí),PLC自動(dòng)把接收來的貨幣對(duì)應(yīng)的數(shù)據(jù)累加到寄存器D1中。PLC編程梯形圖如圖1-2:由圖可以知道我是把投進(jìn)的不同貨幣,進(jìn)行不同的記錄,并把總數(shù)目都寄存到寄存器D1中。為了避免小數(shù)點(diǎn)的影響,我是把貨幣的數(shù)據(jù)化成整數(shù)進(jìn)行處理的,這樣可以減少自己在編程時(shí)會(huì)出現(xiàn)的差錯(cuò)。X002X004為設(shè)置為高電平的輸入,這樣中間繼電器M1M3

2、側(cè)為一周期內(nèi)都會(huì)保證了X002X004的輸入有效。一方面避免了掃描漏了有投幣的有效反應(yīng);另一方面也可以避免了不良輸入對(duì)記數(shù)的不良影響。圖1-2比較部分價(jià)格的比較要貫穿實(shí)驗(yàn)過程的始終,只要余額大于某種商品價(jià)格時(shí),就需要輸出一個(gè)信號(hào),提示可以購買。投幣完成后,系統(tǒng)會(huì)將D1內(nèi)錢幣數(shù)據(jù)和可以購買的飲料價(jià)格進(jìn)行比較:當(dāng)投幣2元,則沒有可購買的商品指示燈亮,表示所投錢幣不能購買任何東西,此時(shí)可以繼續(xù)投幣或退幣;只有投幣在2元或以上時(shí)會(huì)見到汽水選擇的指示燈長亮,此時(shí)可以選擇購買汽水或退幣;同樣,大于3元的就有可樂的選擇顯示,5元就出現(xiàn)咖啡的選擇顯示,此時(shí)都是可以選擇購買或退幣。梯形圖如圖7-3:在梯形圖1-

3、3中,為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)比較,用了一個(gè)特殊內(nèi)部繼電器M8000,在程序執(zhí)行過程中,M800始終保持閉合,F(xiàn)NC10 CMP是16位數(shù)據(jù)比較指令,用它來比較余額和商品的價(jià)格。當(dāng)余額大于等于某種商品價(jià)格時(shí),程序使相應(yīng)的指示燈亮起來表示可以購買該種商品。為了優(yōu)化程序,我都設(shè)計(jì)了比較的價(jià)格是比商品的價(jià)格少1角的。因?yàn)橛囝~都是五的倍數(shù),少一就可以達(dá)到等于或大于商品價(jià)格的意圖了,還可以用上中間繼電器來輔助顯示可選商品的等亮起來。 圖1-3選擇和飲料供應(yīng)部分比較完成后,按下指示燈長亮的選擇按鈕,相應(yīng)的電磁閥(Y12或Y13)起動(dòng),并且相應(yīng)的選擇指示燈由長亮轉(zhuǎn)為以1s為周期的閃爍直至飲料供應(yīng)完畢后閃爍停止。當(dāng)

4、飲料輸出達(dá)到7s時(shí),電磁閥關(guān)斷。梯形圖如圖1-4:圖1-4余額計(jì)算部分飲料輸出的同時(shí)減去相應(yīng)的購買幣數(shù)。梯形圖如圖1-5: 圖1-5退幣部分顧客可在購?fù)觑嬃虾?,由退幣指示燈Y23可知是否可以退幣,指示燈亮,則可以退幣,當(dāng)按下退幣控制按鈕后,數(shù)據(jù)寄數(shù)器D1內(nèi)的幣數(shù)除以10,商的整數(shù)部分是需要退回1元的個(gè)數(shù)并儲(chǔ)存在D2中;D3的數(shù)據(jù)除以5,商的整數(shù)部分是需要退回的5角錢的個(gè)數(shù),并儲(chǔ)存在D4中,依次類推選擇退幣的同時(shí)起動(dòng)3個(gè)退幣電動(dòng)機(jī)。3個(gè)感應(yīng)器開始計(jì)數(shù),當(dāng)感應(yīng)器記幣的個(gè)數(shù)等于數(shù)據(jù)寄存器退回的幣數(shù)時(shí),退幣電動(dòng)機(jī)停止運(yùn)轉(zhuǎn)。PLC編程梯形圖如圖1-6 圖7-6報(bào)警部分 還有就是其他的運(yùn)行監(jiān)控系統(tǒng)和報(bào)警系

5、統(tǒng)。主要的運(yùn)行監(jiān)控系統(tǒng),包括有溫度的監(jiān)控,光度的監(jiān)控兩個(gè),都可以外接傳感器進(jìn)行單輸入單輸出的簡單操作。不妨構(gòu)思一下,假設(shè)飲料的溫度要保持在4C左右,用溫度傳感器設(shè)置售貨機(jī)里面溫度在6C時(shí)就給PLC一個(gè)開動(dòng)制冷器的信號(hào),是一個(gè)持續(xù)的信號(hào)。當(dāng)售貨機(jī)里的溫度達(dá)到4.5C時(shí),信號(hào)斷開。同樣的光度監(jiān)控就直接用個(gè)光感來給PLC進(jìn)行售貨機(jī)照明的信號(hào)。報(bào)警系統(tǒng)分為非故障報(bào)警和故障報(bào)警。如果是非故障報(bào)警,只要通過網(wǎng)絡(luò)通知送掖車或者送幣車即可;如果是故障報(bào)警則需要通知維修人員到現(xiàn)場進(jìn)行維修。同時(shí)系統(tǒng)如果報(bào)警則要打出回條給顧客,避免故障造成顧客損失。二 函數(shù)1.main#includemain.hvoid main

6、()Struct Goodsinfo drink3=1,20,cola,2,20,milk,3,20,coffee; struct Moneyinfo money=100,20,0,0; money.sum=money.onenum+5*money.fivenum+10*money.tennum; Mainmenu(drink,&money);2.mainmenu#includemain.h#includemouse.h#includebutton.h#includemainmenu.h#includedrawfram.hvoid Window1(int (*v)4) setbkcolor(C

7、YAN); int i; Frame1(); for(i=0;i3;i+) Drawbutton(vi,15,8); settextstyle(0,0,1); outtextxy(177,177,buy service); outtextxy(280,177,costumer use); outtextxy(175,217,admi service); outtextxy(280,217,administer use); outtextxy(200,257,quit); outtextxy(177,290,please choose the service you want!); settex

8、tstyle(0,0,2); outtextxy(250,130,welcome!);void Mainmenu(struct Goodsinfo *drink1,struct Moneyinfo *money1) /主菜單struct Goodsinfo *pdrink1=drink1;struct Moneyinfo *pmoney1=money1;int k=0,t=1;int v34=170,170,270,190,170,210,270,230,170,250,270,270;InitGra(); /圖形初始化Window1(v); /畫界面if (! InitMouse() Err

9、Msg(); /鼠標(biāo)初始化k=Pressbutt(v,3,&t);switch(k) case 1: sale(pdrink1,pmoney1); /購買飲料 break; case 2: Inputpa(pdrink1,pmoney1); /輸入密碼 break; case 3: Quit(); /退出 3.sale#includemouse.h#includebutton.h#includedrawfram.h#includesale.h#includemain.hvoid Window2(int (*v)4) cleardevice(); Frame2(); int i,j; for(i

10、=0;i8;i+) Drawbutton(vi,15,8); for(j=0;j3;j+) settextstyle(0,0,1); outtextxy(327,207+40*j,+); outtextxy(357,207+40*j,-); outtextxy(375,220+40*j,chosen:0); outtextxy(210,207, cola ); outtextxy(210,247, milk ); outtextxy(208,287,coffee); outtextxy(210,327,Enter); outtextxy(210,367,Exit); settextstyle(

11、2,0,6); outtextxy(270,70,READ THIS); settextstyle(0,0,1); outtextxy(110,90,cola:2 yuan per bottle;); outtextxy(110,110,milk:3 yuan per box;); outtextxy(110,130,coffee:5 yuan per cup.); outtextxy(110,150,If you want one more drink,click + behind the drink name, ); outtextxy(110,170,one less,click - b

12、ehind the drink name.);void sale(struct Goodsinfo *drink2,struct Moneyinfo *money2)/購買飲料 struct Goodsinfo *pdrink2=drink2; struct Moneyinfo *pmoney2=money2; int v84=320,200,340,220,350,200,370,220,320,240,340,260,350,240,370,260,320,280,340,300,350,280,370,300,170,320,280,340,170,360,280,380; int k,buynum0=0,buynum1=0,buynum2=0,t=1; Window2(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論