欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      自動(dòng)售貨機(jī)系統(tǒng)程序

      時(shí)間:2019-05-14 04:32:20下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《自動(dòng)售貨機(jī)系統(tǒng)程序》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《自動(dòng)售貨機(jī)系統(tǒng)程序》。

      第一篇:自動(dòng)售貨機(jī)系統(tǒng)程序

      Coin類:

      #include #include #include

      using namespace std;

      class Coin { public: /** Constructs a coin with a given name and value @param n the coin name @param v the coin value */ Coin(string n, double v);/** Gets the coin name.@return the name */ string get_name()const;/** Gets the coin value @return the value */ double get_value()const;private: string name;double value;};

      Coin::Coin(string n, double v){ name = n;value = v;}

      string Coin::get_name()const { return name;}

      double Coin::get_value()const { return value;}

      Product類: #include #include #include

      using namespace std;

      class Product { public: /** Constructs a product with a given name, price and quantity @param n the product name @param p the price @param q the quantity */ Product(string n, double p, int q);/** Gets the product name @return the name */ string get_name()const;/** Gets the product price @return the price */ double get_price()const;/** Gets the product quantity @return the quantity */ int get_quantity()const;/** Adds to the product quantity @param amount the amount to add */ void add_quantity(int amount);private: string name;double price;int quantity;};

      Product::Product(string n, double p, int q){ name = n;price = p;quantity = q;}

      string Product::get_name()const { return name;}

      double Product::get_price()const { return price;}

      int Product::get_quantity()const { return quantity;}

      void Product::add_quantity(int amount){ quantity = quantity + amount;}

      VendingMachine類:

      class VendingMachine { public: /** Constructs a vending machine with no current product selection.*/ VendingMachine();/** Adds product to the machine.@param p the product to add */ void add_product(Product p);/** Sets the currently selected product @param name the product name @return true if the machine has a product with the given name */ bool select_product(string name);void chaxun_product();//查詢當(dāng)前售貨機(jī)內(nèi)的商品

      /** Adds a coin to pay for the currently selected product.@param c the coin to add @return true if sufficient coins have been added to pay for the selected product.*/ bool add_coin(vector current_pay);/** Removes all coins that were added to pay for the current product.@return the value of the returned coins */ double return_coins();/** Removes all money that was paid for products.@return the value of the money */ double remove_money();double add_coinbijiao(vector current_pay);//對(duì)投入的金錢和所購(gòu)買的商品的價(jià)格進(jìn)行比較

      double return_yiyoucoins();//統(tǒng)計(jì)售貨機(jī)中已有的貨款 void setcurrent_product();//把當(dāng)前選擇的商品代號(hào)置為-1 int getcurrent_product();//得到當(dāng)前選擇的商品代號(hào) private: vector

      products;int current_product;vector current_payment;vector coins;};

      VendingMachine::VendingMachine(){ current_product =-1;}

      void VendingMachine::add_product(Product p)//添加商品 { for(int i = 0;i < products.size();i++){ if(products[i].get_name()== p.get_name()&& products[i].get_price()== p.get_price()){ products[i].add_quantity(p.get_quantity());cout<<“添加成功!”<

      {

      cout<<“已存在該商品,與您輸入的價(jià)格不同!”<

      return;

      } } products.push_back(p);cout<<“添加成功!”<

      bool VendingMachine::select_product(string name)//選擇商品 {

      int i;for(i = 0;i < products.size();i++){

      if(products[i].get_name()== name && products[i].get_quantity()> 0){ current_product = i;return true;} else { if(products[i].get_name()== name && products[i].get_quantity()== 0){ cout << “對(duì)不起,該商品已售完!n”;return false;} } } if(i==products.size()){ cout<<“對(duì)不起,不存在該商品!”<

      double VendingMachine::return_yiyoucoins()//統(tǒng)計(jì)售貨機(jī)當(dāng)前的金錢總額 { double total = 0;for(int i = coins.size()1;i >= 0;i--){ coins.push_back(current_payment[i]);current_payment.pop_back();} products[current_product].add_quantity(-1);current_product =-1;cout<<“交易成功!”<

      { return false;} }

      double VendingMachine::add_coinbijiao(vector current_pay){ if(current_product ==-1)return false;double total = 0;for(int k=0;k < current_pay.size();k++){ total = total + current_pay[k].get_value();

      } double m=products[current_product].get_price()-total;if(m>0)return m;else return-1;}

      double VendingMachine::return_coins()//統(tǒng)計(jì)當(dāng)前投入的金錢總額 { double total = 0;for(int i = current_payment.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

      void VendingMachine::chaxun_product(){

      if(products.size()==0){ cout<<“暫時(shí)沒(méi)有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

      int VendingMachine::getcurrent_product(){ return current_product;}

      Main函數(shù):

      #include #include #include #include“coin.h” #include“product.h” #include“machine.h” using namespace std;

      void main(){ vector coins;vector current_pay;coins.push_back(Coin(“nickel”, 0.05));coins.push_back(Coin(“dime”, 0.1));coins.push_back(Coin(“quarter”, 0.25));coins.push_back(Coin(“rmb”, 1.00));

      VendingMachine machine;bool more = true;machine.chaxun_product();while(more){ cout << “a)添加商品 x)查詢商品 s)選擇商品 p)投幣 c)取消 e)查詢當(dāng)前金額 r)取款 q)退出: ”;string command;cin>>command;if(command == “a”){ cout << “商品名: ”;string name;cin>>name;

      cout << “價(jià)格: ”;double price;cin >> price;cout << “數(shù)量: ”;int quantity;cin >> quantity;machine.add_product(Product(name, price, quantity));} else if(command == “s”){

      double total1;

      total1=machine.return_yiyoucoins();

      if(total1>=5000)//當(dāng)售貨機(jī)中的貨款大于等于5000時(shí),暫停售貨

      {

      cout<<“對(duì)不起,現(xiàn)在暫停售貨!”<

      }

      else

      { machine.setcurrent_product();cout << “商品名: ”;string name;cin>>name;machine.select_product(name);

      } } else if(command == “p”){

      if(machine.getcurrent_product()!=-1)//如果當(dāng)前已選擇商品,才可以投幣

      { bool panduan=false;while(!panduan)//多次投幣的實(shí)現(xiàn)

      { cout << “所投錢幣名稱(以 # 結(jié)束投幣過(guò)程):”;string name;cin>>name;while(name!=“#”){ bool found = false;for(int i = 0;!found && i < coins.size();i++){ if(coins[i].get_name()== name){ current_pay.push_back(coins[i]);found=true;} } if(!found){ cout << “不存在該貨幣,請(qǐng)重新投入:n”;} cin>>name;

      }

      double k=machine.add_coinbijiao(current_pay);if(k==-1)

      { machine.add_coin(current_pay);for(int i = current_pay.size()1;i >= 0;i--){ total = total + current_pay[i].get_value();current_pay.pop_back();} cout << “Returned(退還)” <

      else

      cout<<“您還沒(méi)有選擇商品!”<

      {

      machine.setcurrent_product();

      double total=0;

      for(int i = current_pay.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

      void VendingMachine::chaxun_product(){

      if(products.size()==0){ cout<<“暫時(shí)沒(méi)有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

      int VendingMachine::getcurrent_product(){ return current_product;} }

      JAVA

      import Input.touqian;import java.*;class shangpin {

      } class fenpeiqi {

      }

      class xianshichanpin {

      fenpeiqi fpq[]=new fenpeiqi[3];public xianshichanpin(){

      fpq[0]=new fenpeiqi(3.0);fpq[0].sp[0]=new shangpin(“玉米烤腸

      ”,10);fpq[0].sp[1]=new shangpin(“可口可樂(lè)

      ”,15);fpq[0].sp[2]=new shangpin(“百事可樂(lè)

      ”,10);fpq[1]=new fenpeiqi(5.0);fpq[1].sp[0]=new shangpin(“哈德門香煙”,10);fpq[1].sp[1]=new shangpin(“將軍香煙

      ”,15);fpq[1].sp[2]=new shangpin(“紅梅香煙

      ”,10);fpq[2]=new fenpeiqi(10.0);fpq[2].sp[0]=new shangpin(“一支筆香煙”,10);fpq[2].sp[1]=new shangpin(“紅塔山香煙”,10);fpq[2].sp[2]=new shangpin(“泰山香煙

      ”,15);double price;shangpin sp[]=new shangpin[3];public fenpeiqi(double price){ } this.price=price;String name;int num;public shangpin(String name,int num){

      } this.name=name;this.num=num;

      #“);#”);#“);#”);#“);

      } } void show(){ System.out.println(”===============

      System.out.println(“#

      System.out.println(”#

      System.out.println(“#

      歡迎使用自動(dòng)售貨機(jī)

      System.out.println(”#

      System.out.println(“#

      =================”);System.out.println(“===============

      System.out.println();System.out.println(”編號(hào)tt“+”名稱ttt“+”價(jià)格tt“+”數(shù)量t“);for(int i=0;i

      } if(fpq[i]!=null){

      } for(int j=0;j

      } } if(fpq[i].sp[j]!=null){ =================”);System.out.println((i+1)*10+j+1+“tt”+fpq[i].sp[j].name+“tt”+fpq[i].price+“tt”+fpq[i].sp[j].num);System.out.println(“=============== } =================”);class panduan { boolean ying()

      } {

      } boolean zhi(){

      }

      int z=touqian.in();

      if(z==5||z==10){ } else { } return false;return true;double y=touqian.dou();if(y==1||y==0.5){ } else { } return false;return true;class jiabi {

      switch(touqian.in())void ceshi(){ System.out.println(“請(qǐng)選擇投放錢的類型 ”);System.out.println(“1 表示投放 硬幣”);System.out.println(“2 表示投放 紙幣”);System.out.println(“請(qǐng)輸入您選擇的錢的類型 :”);

      panduan pd=new panduan();

      { case 1:

      System.out.println(“請(qǐng)您投入有效的面值”);

      if(pd.ying())

      {

      System.out.println(“您投入的是有效地硬幣”);

      System.out.println();

      // System.out.println(“^_^ 請(qǐng)選擇您所需要的物品^_^”);

      }

      else

      }

      class chanpin {

      {

      System.out.println(“您投入的不是有效地硬幣,請(qǐng)您重新投入”);

      }

      break;

      case 2 :

      System.out.println(“請(qǐng)您投入有效的面值”);

      if(pd.zhi())

      {

      //

      }

      else

      {

      }

      break;

      default :

      System.out.println(“請(qǐng)您重新投入有效地貨幣”);

      } }

      System.out.println(“您投入的不是有效的紙幣,請(qǐng)您重新投入”);System.out.println(“您投入的是有效的紙幣”);System.out.println();System.out.println(“^_^ 請(qǐng)選擇您所需要的物品^_^”);

      } } public static void main(String args[]){

      System.out.println(“請(qǐng)輸入您想要產(chǎn)品的編碼:”);int bianma;bianma=touqian.in();System.out.println(“請(qǐng)輸入您想要產(chǎn)品的數(shù)量:”);int shuliang;shuliang=touqian.in();System.out.println(“您一共要付:”);double sumjine;sumjine= xianshichanpin xscp=new xianshichanpin();xscp.show();

      第二篇:軟件工程_自動(dòng)售貨機(jī)

      自動(dòng)售貨機(jī)

      信息1101 施敏宇 18號(hào)

      下面是自動(dòng)售貨機(jī)系統(tǒng)的需求陳述,試建立它的對(duì)象模型、動(dòng)態(tài)模型和功能模型: 自動(dòng)售貨機(jī)系統(tǒng)是一種無(wú)人售貨系統(tǒng)。售貨時(shí),顧客把硬幣投入機(jī)器的投幣口中,機(jī)器檢查硬幣的大小、重量、厚度及邊緣類型。有效的硬幣是一元幣、五角幣、五分幣、二分幣、一分幣。其他貨幣被認(rèn)為是假幣。機(jī)器拒絕接受假幣,并將其從退幣孔退出。當(dāng)機(jī)器接受了有效的硬幣之后,就把硬幣送入硬幣儲(chǔ)藏器中。顧客支付的貨幣根據(jù)硬幣的面值進(jìn)行累加。自動(dòng)售貨機(jī)裝有貨物分配器。每個(gè)貨物分配器中包含零個(gè)或多個(gè)價(jià)格相同的貨物。顧客通過(guò)選擇貨物分配器來(lái)選擇貨物。如果貨物分配器中有貨物,而且顧客支付的貨幣值不小于該貨物的價(jià)格,貨物將被分配到貨物傳送孔送給顧客,并將適當(dāng)?shù)牧沐X返還到退幣孔。如果分配器是空的,則和顧客支付的貨幣值相等的硬幣將被送回到退幣孔。如果顧客支付的貨幣值少于所選擇的分配器中貨物的價(jià)格,機(jī)器將等待顧客投進(jìn)更多的貨幣。如果顧客決定不買所選擇的貨物,他投放進(jìn)的貨幣將從退幣孔中退出。

      面向?qū)ο蟮姆治?/p>

      面向?qū)ο蠓治龇椒ǖ暮诵乃枷胧抢妹嫦驅(qū)ο蟾拍詈头椒檐浖枨髽?gòu)造一組相關(guān)模型(對(duì)象模型,動(dòng)態(tài)模型和功能模型),來(lái)獲得關(guān)于問(wèn)題域的全面認(rèn)識(shí)。

      這三個(gè)模型從不同的角度對(duì)系統(tǒng)進(jìn)行描述,其中:對(duì)象模型描述了系統(tǒng)靜態(tài)的、結(jié)構(gòu)化的數(shù)據(jù)性質(zhì);動(dòng)態(tài)模型描述了系統(tǒng)順勢(shì)的、行為化的控制性質(zhì);功能模型描述了變化的系統(tǒng)的功能性質(zhì)。這三個(gè)模型都涉及到數(shù)據(jù)。控制和操作等共同的概念,但每種模型描述的側(cè)重有所不同。它們各自以不同側(cè)面反應(yīng)系統(tǒng)的實(shí)質(zhì)內(nèi)容,綜合起來(lái)則全面反映了目標(biāo)系統(tǒng)的需求。

      對(duì)象模型是三個(gè)模型中最關(guān)鍵的。它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對(duì)象、它們的屬性和操作以及它們之間的聯(lián)系。UML中類圖適用于建立對(duì)象模型,狀態(tài)圖適用于建立動(dòng)態(tài)模型。每個(gè)類的動(dòng)態(tài)行為用一張狀態(tài)圖來(lái)表示,各個(gè)類的狀態(tài)圖通過(guò)事件合并起來(lái),構(gòu)成系統(tǒng)的動(dòng)態(tài)模型。也就是說(shuō),動(dòng)態(tài)模型是基于事件共享而相互關(guān)聯(lián)的一組狀態(tài)圖的集合。建立對(duì)象模型大體上按照下列順序進(jìn)行:尋找問(wèn)題域內(nèi)的對(duì)象,識(shí)別出對(duì)象間的關(guān)系、定義屬性和服務(wù)。事實(shí)上,分析工作不可能嚴(yán)格按照預(yù)定順序進(jìn)行,系統(tǒng)的模型往往需要反復(fù)構(gòu)造多遍才能建成。

      注:對(duì)象硬幣計(jì)算器和對(duì)象硬幣檢測(cè)器可以作為對(duì)象自動(dòng)售貨器的一部分,它們的屬性作為自動(dòng)售貨器的屬性。

      建立動(dòng)態(tài)模型

      對(duì)于僅存數(shù)靜態(tài)數(shù)據(jù)的系統(tǒng)來(lái)說(shuō),動(dòng)態(tài)模型并沒(méi)有什么實(shí)際意義。然而在開發(fā)交互式系統(tǒng)時(shí),動(dòng)態(tài)模型卻起著很重要的作用。如果收集輸入信息是目標(biāo)系統(tǒng)的一項(xiàng)主要工作,則在開發(fā)這類應(yīng)用系統(tǒng)時(shí)建立正確的動(dòng)態(tài)模型是至關(guān)重要的。

      建立動(dòng)態(tài)模型的步驟:

      (1)編寫典型的對(duì)話腳本;

      (2)從腳本中提取出事件,聯(lián)系該事件與其目標(biāo)對(duì)象;

      (3)組織事件的順序和狀態(tài)(采用狀態(tài)圖描繪);

      (4)比較各個(gè)不同對(duì)象的狀態(tài)圖,檢查對(duì)象之間的一致性,確保事件之間的匹配。

      提示投幣投幣購(gòu)買提示是假幣,退幣假幣檢查硬幣否真幣存儲(chǔ)硬幣,計(jì)算貨幣總值確認(rèn)投完硬幣是請(qǐng)求選擇貨物選擇貨物檢測(cè)貨物存量無(wú)貨提示無(wú)貨計(jì)算比較貨幣總值和貨物價(jià)格確認(rèn)確認(rèn)顧客購(gòu)買小于提示貨物不足,確認(rèn)顧客購(gòu)買不購(gòu)買送出貨物,請(qǐng)求取貨不購(gòu)買退幣請(qǐng)求取退幣提示顯示交易完畢

      功能模型

      功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對(duì)象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來(lái)表示從源對(duì)象到目標(biāo)對(duì)象的數(shù)據(jù)值的流向,它不包含控制信息,控制信息在動(dòng)態(tài)模型中表示,同時(shí)數(shù)據(jù)流圖也不表示對(duì)象中值的組織,值的組織在對(duì)象模型中表示。

      數(shù)據(jù)流圖中包含有處理、數(shù)據(jù)流、動(dòng)作對(duì)象和數(shù)據(jù)存儲(chǔ)對(duì)象。

      1.處理

      數(shù)據(jù)流圖中的處理用來(lái)改變數(shù)據(jù)值。最低層處理是純粹的函數(shù),一張完整的數(shù)據(jù)流圖是一個(gè)高層處理。

      2.數(shù)據(jù)流

      數(shù)據(jù)流圖中的數(shù)據(jù)流將對(duì)象的輸出與處理、處理與對(duì)象的輸入、處理與處理聯(lián)系起來(lái)。在一個(gè)計(jì)算機(jī)中,用數(shù)據(jù)流來(lái)表示一中間數(shù)據(jù)值,數(shù)據(jù)流不能改變數(shù)據(jù)值。

      3.動(dòng)作對(duì)象

      動(dòng)作對(duì)象是一種主動(dòng)對(duì)象,它通過(guò)生成或者使用數(shù)據(jù)值來(lái)驅(qū)動(dòng)數(shù)據(jù)流圖。

      4.數(shù)據(jù)存儲(chǔ)對(duì)象

      數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對(duì)象,它用來(lái)存儲(chǔ)數(shù)據(jù)。它與動(dòng)作對(duì)象不一樣,數(shù)據(jù)存儲(chǔ)本身不產(chǎn)生任何操作,它只響應(yīng)存儲(chǔ)和訪問(wèn)的要求。

      有效幣特征假幣退假幣假幣檢查硬幣有效幣硬幣送入硬幣儲(chǔ)藏器計(jì)算面值貨物價(jià)格有貨貨幣總值硬幣顧客投幣顧客不足等待顧客投幣顧客取消購(gòu)買,退幣顧客判斷貨幣是否足夠足夠選擇貨物判斷分配器貨物存量無(wú)貨分配貨物,找零貨物,硬幣硬幣退幣

      第三篇:自動(dòng)售貨機(jī)的PLC系統(tǒng)設(shè)計(jì)

      常工院畢業(yè)設(shè)計(jì)論文

      自動(dòng)售貨機(jī)的PLC系統(tǒng)設(shè)計(jì)

      摘要:本文介紹了自動(dòng)售貨機(jī)的基本原理以及工作流程,然后以一次交易過(guò)程為例,把交易過(guò)程分為了幾個(gè)程序塊,然后分別對(duì)程序塊進(jìn)行編程。具體說(shuō)明了可編程序控制在自動(dòng)售貨機(jī)忠的作用。程序涉及到了自動(dòng)售貨機(jī)工作的絕大部分過(guò)程。利用PLC控制的自動(dòng)售貨機(jī)提高了系統(tǒng)的穩(wěn)定性,保證自動(dòng)售貨機(jī)能夠長(zhǎng)期穩(wěn)定運(yùn)行。

      關(guān)鍵字

      自動(dòng)售貨機(jī);可編程控制器;梯形圖

      Abstact: This articke introduced vending machine?s basic principle as well as the work flow, then take a transaction process as examples, divides into several blocks the transaction process, the carries on the programming separately to the block.Explained the programmable controller?s in vending machine function specifically.The procedure involved the vending machine work major part process.Enhanced system?s stability using the PLC control?s vending machine, the guarantee vending machine has been able the long-term stability movement.Key word vending machine;programmable controller;trapezoidal chart

      常工院畢業(yè)設(shè)計(jì)論文

      目錄

      ·摘要…………………………………………………………………………………1 ·前言…………………………………………………………………………………3 ·第一章 自動(dòng)售貨機(jī)的介紹………………………………………………………...4 ·1.1自動(dòng)售貨機(jī)功能分析…………………………………………………………..4 ·1.1.1自動(dòng)售貨機(jī)的基本功能……………………………………………………...4 ·1.2 PLC的選型原理………………………………………………………………..5 ·1.3 PLC的概論……………………………………………………………………..6 ·1.3.1 PLC的產(chǎn)生…………………………………………………………………...6 ·1.3.2 PLC的定義…………………………………………………………………...6 ·1.3.3 PLC的發(fā)展趨勢(shì)……………………………………………………………...7 ·1.3.4 PLC的特點(diǎn)…………………………………………………………………...8 ·1.3.5 PLC的基本功能……………………………………………………………...9 ·1.4 PLC的基本結(jié)構(gòu)和原理………………………………………………………10 ·1.4.1 PLC的系統(tǒng)結(jié)構(gòu)…………………………………………………………….10 ·1.4.2 PLC各部分的作用………………………………………………………….10 ·1.5 松下電工可編程序控制器產(chǎn)品—FP1-C24介紹……………………………12 ·1.5.1 FP1-C24的組成各部分……………………………………………………..13 ·1.5.2 技術(shù)性能……………………………………………………………………14 ·第二章

      PLC系統(tǒng)設(shè)計(jì)………………………………………………………….14 ·2.1 可編程序控制系統(tǒng)設(shè)計(jì)的基本原則………………………………………...14 ·2.1.1 控制系統(tǒng)設(shè)計(jì)原則…………………………………………………………14 ·2.1.2 控制系統(tǒng)設(shè)計(jì)的基本內(nèi)容…………………………………………………14 ·2.1.3 控制系統(tǒng)設(shè)計(jì)的一般步驟…………………………………………………15 ·2.1.4 編寫梯形圖的注意事項(xiàng)……………………………………………………15 ·2.1.5 程序設(shè)計(jì)的步驟……………………………………………………………15 ·第三章

      自動(dòng)售貨機(jī)PLC程序設(shè)計(jì)……………………………………………16 ·3.1 仿真實(shí)驗(yàn)中的售貨機(jī)的分析………………………………………………...16 ·3.2 設(shè)計(jì)任務(wù)的確定……………………………………………………………...18 ·3.3 程序設(shè)計(jì)部分………………………………………………………………...18 ·3.3.1 程序設(shè)計(jì)說(shuō)明………………………………………………………………19 ·3.3.2 PLC 程序設(shè)計(jì)………………………………………………………………19 ·3.4 仿真界面與PLC……………………………………………………………...28 ·3.5 數(shù)據(jù)連接……………………………………………………………………...32 ·3.5.1 定義I/O設(shè)備……………………………………………………………….32 ·3.5.2 設(shè)計(jì)…………………………………………………………………………34 ·3.5.3 運(yùn)行…………………………………………………………………………37 ·4 結(jié)束語(yǔ)…………………………………………………………………………38 ·致謝………………………………………………………………………………..39 ·參考文獻(xiàn)…………………………………………………………………………..39

      常工院畢業(yè)設(shè)計(jì)論文

      前言

      從自動(dòng)售貨機(jī)的發(fā)展趨勢(shì)來(lái)看,它的出現(xiàn)是由于勞動(dòng)密集型的產(chǎn)業(yè)構(gòu)造向技術(shù)密集型社會(huì)轉(zhuǎn)變的產(chǎn)物。大量生產(chǎn)、大量消費(fèi)以及消費(fèi)模式和銷售環(huán)境的變化,要求出現(xiàn)新的流通渠道;而相對(duì)的超市、百貨購(gòu)物中心等新的流通渠道的產(chǎn)生,人工費(fèi)用也不斷上升;再加上場(chǎng)地的局限性以及購(gòu)物的便利性等因素的制約,無(wú)人自動(dòng)售貨機(jī)作為一種必須的機(jī)器便應(yīng)運(yùn)而生了。

      從廣義來(lái)講投入硬幣、紙幣、信用卡等后便可以銷售商品的機(jī)械,從狹義來(lái)講就是自動(dòng)銷售商品的機(jī)械。從供給的條件看,自動(dòng)售貨機(jī)可以充分補(bǔ)充人力資源的不足,適應(yīng)消費(fèi)環(huán)境和消費(fèi)模式的變化,24小時(shí)無(wú)人售貨的系統(tǒng)可以更省力,運(yùn)營(yíng)時(shí)需要的資本小、面積小,有吸引人們購(gòu)物的好奇心的自身性能,可以很好地解決人工費(fèi)用上升的問(wèn)題等各項(xiàng)優(yōu)點(diǎn)。

      據(jù)說(shuō)世界上最早的自動(dòng)售貨機(jī)出現(xiàn)在公元前3世紀(jì),那是埃及神殿里的投幣式圣水出售機(jī)。17世紀(jì),英國(guó)的小酒吧里設(shè)有了香煙的自動(dòng)售貨機(jī)。在自動(dòng)售貨機(jī)歷史的長(zhǎng)河里,日本開發(fā)出實(shí)用型的自動(dòng)售貨機(jī),那是在進(jìn)入本世紀(jì)后的事。日本第一臺(tái)自動(dòng)售貨機(jī)是1904年問(wèn)世的“郵票明信片自動(dòng)售貨機(jī)“,它是集郵票明信片的出售和郵筒投函為一體的機(jī)器。自動(dòng)售貨機(jī)的真正普及是在第二次世界大戰(zhàn)以后。50年代,”噴水型果汁自動(dòng)售貨機(jī)“大手歡迎,果汁杯注入在紙杯里出售。后來(lái),由于美國(guó)的飲料大公司進(jìn)入日本市場(chǎng),1962年,出現(xiàn)了以自動(dòng)售貨機(jī)主體的流通領(lǐng)域的革命。1967年,100日元單位以下的貨幣全改為硬幣,從而促進(jìn)了自動(dòng)售貨機(jī)產(chǎn)業(yè)的發(fā)展。現(xiàn)在,自動(dòng)售貨機(jī)產(chǎn)業(yè)正走向信息化并進(jìn)一步實(shí)現(xiàn)合理化。例如實(shí)行聯(lián)機(jī)方式,通過(guò)電話線路將自動(dòng)售貨機(jī)內(nèi)的庫(kù)存信息及時(shí)地傳送到各營(yíng)業(yè)點(diǎn)的電腦中,從而確保了商品的發(fā)送、補(bǔ)充以及商品選定的順利進(jìn)行。并且,為防止地球暖化,自動(dòng)售貨機(jī)的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動(dòng)售貨機(jī)成為該行業(yè)的主流。在夏季電力消費(fèi)高峰時(shí),這種機(jī)型的自動(dòng)售貨機(jī)即使在關(guān)掉冷卻器的狀態(tài)下也能保持低溫,與以往的自動(dòng)售貨機(jī)相比,它能夠節(jié)省10—15%的電力。進(jìn)入21世紀(jì)時(shí),自動(dòng)售貨機(jī)也將進(jìn)一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。因經(jīng)濟(jì)復(fù)蘇緩慢,社會(huì)對(duì)擴(kuò)大就業(yè)與工作場(chǎng)所所提供的茶點(diǎn)飲料的福利事業(yè)更為關(guān)注。自動(dòng)售貨機(jī)不僅保障了愜意的工作時(shí)間,也是最廉價(jià)、提高職工工作效率最有效的手段。特別是在24小時(shí)無(wú)休工作狀態(tài)中的辦公場(chǎng)所,使用獨(dú)具魅力的迷你型飲料沖飲機(jī)解決了不間斷提供咖啡飲料服務(wù)的問(wèn)題,這種服務(wù)加速了自動(dòng)售貨機(jī)與咖啡飲品服務(wù)的融合。1999年的全美自動(dòng)售貨機(jī)協(xié)會(huì)和全美咖啡服務(wù)協(xié)會(huì)的合并使人們更直觀地看到了這種融合的現(xiàn)象。

      日本是自動(dòng)售貨機(jī)的天堂。出了雞蛋、米飯之外,報(bào)紙、雜志、一次性相機(jī)、干電池、磁帶、刮胡刀、襪子、花及寵物食品等各種商品都通過(guò)自動(dòng)售貨機(jī)進(jìn)行銷售。連熟知自動(dòng)售貨機(jī)的美國(guó)游客在日本看到10臺(tái)自動(dòng)售貨機(jī)排成一列的景象后,也是連聲稱奇。

      韓國(guó)大約有78萬(wàn)臺(tái)自動(dòng)售貨機(jī),是除了日本、美國(guó)、英國(guó)之外自動(dòng)售貨機(jī)使用數(shù)量最多的國(guó)家。從不同的種類來(lái)看,咖咖啡茶的自動(dòng)售貨機(jī)約占全部售貨機(jī)的40%以上;另外,還有冰飲料自動(dòng)售貨機(jī)、聽裝飲料自動(dòng)售貨機(jī)、成人用品自動(dòng)售貨機(jī)、生活用品自動(dòng)售貨機(jī)、煙、方便面自動(dòng)售貨機(jī)等多種。主要的設(shè)置場(chǎng)所包括學(xué)校、樓房、公共機(jī)關(guān)、地鐵、公共汽車站、公園、體育場(chǎng)、展示場(chǎng)、工廠等。運(yùn)營(yíng)自動(dòng)售貨機(jī)產(chǎn)業(yè)的公司全國(guó)大約有800余個(gè),而銷售自動(dòng)售貨機(jī)原料、商品流通、機(jī)械銷售的公司大約達(dá)到了1150個(gè)。

      常工院畢業(yè)設(shè)計(jì)論文

      第一章 自動(dòng)售貨機(jī)的介紹

      1.1自動(dòng)售貨機(jī)功能分析

      這部分闡述了自動(dòng)售貨機(jī)的各種動(dòng)作功能和控制要求,給出了完整的自動(dòng)售貨機(jī)操作規(guī)章,并介紹了自動(dòng)售貨機(jī)運(yùn)行系統(tǒng)所包括的人工操作步驟。

      1.1.1自動(dòng)售貨機(jī)的基本功能

      在進(jìn)行上、下位機(jī)程序編寫之前,首先要做的工作是確定自動(dòng)售貨機(jī)本身所具備的功能及在進(jìn)行某種操作后具有的狀態(tài)。

      在實(shí)際生活照,我們見(jiàn)到的售貨機(jī)可以銷售一些簡(jiǎn)單的日用品,如飲料、常用藥品和小的生活保健用品等。售貨機(jī)的基本功能就是投入的貨幣進(jìn)行運(yùn)算,并根據(jù)貨幣數(shù)值判斷是否能夠買某種商品,并做出相應(yīng)的反應(yīng)。舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明,列如:售貨機(jī)中有8種商品,其中01號(hào)商品(代表第一種商品)價(jià)格為2.60元,02號(hào)商品為3.50元,其余類推?,F(xiàn)投入1個(gè)1元銀幣,當(dāng)投入的貨幣超過(guò)01商品的價(jià)格時(shí),01商品的選擇按鈕處應(yīng)有變化,提示可以購(gòu)買,其他商品同比。當(dāng)按下選擇01商品的價(jià)格時(shí),售貨機(jī)進(jìn)行減法運(yùn)算,從投入的貨幣總值中減去01商品的價(jià)格同時(shí)啟動(dòng)相應(yīng)的電機(jī),提取01號(hào)商品到出貨口。此時(shí)售貨機(jī)繼續(xù)進(jìn)行等待外部命令。如繼續(xù)交易,則同上。如果此時(shí)不在購(gòu)買而按下退幣按鈕,售貨機(jī)則要進(jìn)行退幣操作,退回相應(yīng)的貨幣,并在程序中清零,完成此次交易。由此看來(lái),售貨機(jī)一次交易要涉及加法運(yùn)算、減法運(yùn)算以及在退幣時(shí)的 出發(fā)運(yùn)算,這是它內(nèi)部功能。還要有貨幣識(shí)別系統(tǒng)和貨幣的傳動(dòng)來(lái)實(shí)現(xiàn)完整的收獲、退幣功能。自動(dòng)售貨機(jī)的工作流程圖如圖1所示。

      常工院畢業(yè)設(shè)計(jì)論文

      1.2 PLC的選型原則

      當(dāng)某一個(gè)控制任務(wù)決定由PLC來(lái)完成后,選擇PLC就成為最重要的事情。一方面要選擇多大容量的PLC,另一方面是選擇哪個(gè)的PLC及外設(shè)。

      對(duì)第一個(gè)問(wèn)題,首先要對(duì)控制任務(wù)進(jìn)行詳細(xì)的分析,把所有的I/O點(diǎn)找出來(lái),包括開關(guān)量I/O和模擬量I/O以及輸出是用繼電器還是晶體管或者是可控硅型??刂葡到y(tǒng)輸出點(diǎn)的類型非常關(guān)鍵,如果他們之間既有交流220V的接觸器、電磁閥、又有24V的指示燈,則最后選用的PLC的輸出端數(shù)有可能呢大于實(shí)際點(diǎn)數(shù)。因?yàn)镻LC的輸出點(diǎn)一般是幾個(gè)一組公用一個(gè)公共端,這一組輸出只能有一種電源的種類和等級(jí)。所以一旦它們是交流220V的負(fù)載負(fù)載使用,則直流24V的負(fù)載只能使用其他的輸出端了。這樣有可能造成輸出點(diǎn)浪費(fèi),成本增加。所以要盡可能所則相同等級(jí)和種類的負(fù)載,比如使用交流220V的指示燈等。一般情況下繼電器輸出的PLC使用最多,但對(duì)于要求高速輸出的情況,就要使用無(wú)觸點(diǎn)的晶體管輸出的PLC了。

      對(duì)于第二問(wèn)題,則有以下幾個(gè)方面的考慮:(1)功能方面

      所有PLC一般都具有常規(guī)的功能,但對(duì)某些特殊要求,就要知道所選用的PLC是否有能力控制任務(wù)。如對(duì)PLC與智能儀表及上位機(jī)之間有靈活方便的通信要求;或?qū)LC的計(jì)算速度、用戶程序容量等有特殊要求‘或?qū)LC的位置控制有特殊要求等。這就要求用戶對(duì)市場(chǎng)上流行的PLC品種有一個(gè)詳細(xì)的了解,以便做出正確的選擇。

      (2)價(jià)格方面

      不同廠家的PLC產(chǎn)品價(jià)格相差很大,有些功能類似、質(zhì)量相當(dāng)、I/O點(diǎn)數(shù)相當(dāng)?shù)腜LC的價(jià)格能相差40%以上。在使用PLC較多的情況下,這樣的差價(jià)當(dāng)然是必須考慮的因素。

      (3)PLC主機(jī)選定后,如果控制系統(tǒng)需要,則相應(yīng)的配套模塊也就選定了。

      常工院畢業(yè)設(shè)計(jì)論文

      1.3 PLC的 概述

      1.3.1 PLC的產(chǎn)生

      20世紀(jì)20年代起,人們把各種繼電器、定時(shí)器、接觸器及其觸點(diǎn)按一定的邏輯關(guān)系聯(lián)系起來(lái)組成控制系統(tǒng),控制各種生產(chǎn)機(jī)械,這就是大家所熟悉的傳統(tǒng)繼電接觸器控制機(jī)系統(tǒng)。由于它結(jié)構(gòu)簡(jiǎn)單,容易掌握,價(jià)格便宜,在一定范圍內(nèi)能滿足控制要求,因而使用面甚廣,在空也控制領(lǐng)域中一直占主導(dǎo)地位。但是繼電接觸器控制系統(tǒng)有明顯的缺點(diǎn):設(shè)備體積大,可靠性差,動(dòng)作速度慢,功能少,難與實(shí)現(xiàn)較復(fù)雜的控制,特別是由于它是靠硬連線邏輯構(gòu)成的系統(tǒng),接線復(fù)雜,當(dāng)生產(chǎn)工藝或?qū)ο蟾淖儠r(shí),原有的接線和控制盤就要更換,所以通用性和靈活性較差。

      20世紀(jì)60年代末期,美國(guó)的汽車制造業(yè)競(jìng)爭(zhēng)激烈,各生產(chǎn)廠家的汽車型號(hào)不斷更換,它必要求生產(chǎn)線的控制系統(tǒng)亦隨之改變,以及對(duì)整個(gè)開展系統(tǒng)重新配置,為拋棄傳統(tǒng)的繼電接觸器控制系統(tǒng)的束縛,適應(yīng)白熱化的市場(chǎng)競(jìng)爭(zhēng)要求。1968年美國(guó)通用汽車公司向社會(huì)招標(biāo),對(duì)汽車流水線控制系統(tǒng)提出具體要求,歸納起來(lái)是:

      (1)編程方便,可現(xiàn)場(chǎng)修改程序(2)維修方便,采用插件式結(jié)構(gòu)(3)可靠性高于繼電接觸器控制系統(tǒng)(4)體積小于繼電器控制盤

      (5)數(shù)據(jù)可直接送人管理計(jì)算機(jī)(6)成本可與繼電器控制盤競(jìng)爭(zhēng)(7)輸入可以是交流150V以上

      (8)輸出為交流115V容量要求在2A以上,可直接驅(qū)動(dòng)接觸器、電磁閥等(9)擴(kuò)展時(shí)原系統(tǒng)改變最小

      (10)用戶存儲(chǔ)器至少能擴(kuò)張到4KB(適應(yīng)當(dāng)時(shí)汽車裝備過(guò)程的需要)

      十項(xiàng)指標(biāo)的核心要求是采用軟布線(編程)方式代替繼電控制的硬接線方式,實(shí)現(xiàn)大規(guī)模生產(chǎn)線的流程控制。

      1.3.2 PLC的定義

      美國(guó)國(guó)際電工委員會(huì)(IEC)在1987年對(duì)可編程序控制器做出以下定義:可編程序控制器是一類專門為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)的數(shù)字式電子系統(tǒng),它采用了可編程序的存儲(chǔ)器,用來(lái)在其內(nèi)部進(jìn)行存儲(chǔ)執(zhí)行邏輯運(yùn)算等功能的面向用戶的指令,并通過(guò)數(shù)字式或模擬式的輸入或輸出,控制各種類型的機(jī)械或者生產(chǎn)過(guò)程??删幊绦蚩刂破骷捌湎嚓P(guān)外部設(shè)備,都應(yīng)按照易于與工業(yè)控制系統(tǒng)聯(lián)成一個(gè)整體,易于擴(kuò)展其功能的原理而設(shè)計(jì)。

      定義強(qiáng)調(diào)了PLC應(yīng)直接應(yīng)用于工業(yè)環(huán)境,它必須具有很強(qiáng)的抗干擾能力,廣泛的適應(yīng)能力和應(yīng)用范圍。這也是去唄與一般微機(jī)控制系統(tǒng)的一個(gè)重要特征。定義還強(qiáng)調(diào)了PLC是“數(shù)字運(yùn)算操作的電子系統(tǒng)”,它也是一種計(jì)算機(jī),它是“專門在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)的”工業(yè)計(jì)算機(jī)。這種工業(yè)計(jì)算機(jī)采用“面向用戶的指令”,因此編程方便。它能完成邏輯運(yùn)算、順序運(yùn)算、定時(shí)、記數(shù)和算術(shù)運(yùn)算

      常工院畢業(yè)設(shè)計(jì)論文

      等操作,它還具有“數(shù)字量和模擬量輸入和輸出”的能力,并且非常容易與“工業(yè)控制系統(tǒng)聯(lián)成一體”,易于“擴(kuò)充”。

      1.3.3 PLC的發(fā)展趨勢(shì)

      PLC總的發(fā)展趨勢(shì)是向高集成度、小體積、大容量、高速度、易使用、高性能方向發(fā)展。具體表現(xiàn)在以下方面:

      (1)向小型化、專業(yè)化、低成本方向發(fā)展

      隨著微電子技術(shù)的發(fā)展,新型器件大幅度的提高功能和降低價(jià)格,使PLC結(jié)構(gòu)更為緊湊,相當(dāng)于一本精裝書本的大小,操作使用十分方便。PLC的功能不斷增加,將原來(lái)大、中型PLC才有的功能部分地移植到小型PLC上。(2)向大容量、高速度方向發(fā)展

      大型PLC多采用微處理器系統(tǒng),有的采用32位微處理器,可同時(shí)進(jìn)行多任務(wù)操作,處理速度提高,特別是增強(qiáng)了過(guò)程控制和數(shù)據(jù)處理的功能。另外,存儲(chǔ)容量大大增加。

      (3)智能型I/O模塊的發(fā)展

      智能型I/O模塊是以微處理器和存儲(chǔ)器為基礎(chǔ)的功能部件,它們的CPU與PLC的主CPU并行工作,占用主CPU的時(shí)間很少,有利于提高PLC的掃描速度。(4)基于PC的編程軟件取代編程器 隨著計(jì)算機(jī)的日益普及,越來(lái)越多的用戶使用基于計(jì)算機(jī)上的編程軟件。編程軟件可以對(duì)PLC控制系統(tǒng)的硬件組態(tài),即設(shè)置硬件的結(jié)構(gòu)和參數(shù),例如設(shè)置各框架各個(gè)插槽上的模塊的型號(hào)、模塊的參數(shù)、各串行通用接口的參數(shù)等。(5)PLC編程語(yǔ)言的標(biāo)準(zhǔn)化

      與個(gè)人計(jì)算機(jī)相比,PLC的硬件、軟件的體系結(jié)構(gòu)都是封閉的而不是開放的。在硬件方面,各廠家的CPU模塊和I/O模塊互不通用。PLC的編程語(yǔ)言和指令系統(tǒng)的功能和表達(dá)式也不一致,因此各廠家的可編程序控制器互不兼容。為了解決這一問(wèn)題,IEC制定了可編程序控制器標(biāo)準(zhǔn)。標(biāo)準(zhǔn)中共有5種編程語(yǔ)言,允許編程者在同一程序中使用多種編程語(yǔ)言,這使編程能夠選擇不同的語(yǔ)言來(lái)適應(yīng)特殊的工作。

      (6)PLC通信的易用化

      PLC的通信聯(lián)網(wǎng)功能使它能與個(gè)人計(jì)算機(jī)和其他智能控制設(shè)備交換數(shù)字信號(hào),使系統(tǒng)形成一個(gè)統(tǒng)一的整體,實(shí)現(xiàn)分散控制和集中控制。(7)組態(tài)軟件與PLC的軟件化

      個(gè)人計(jì)算機(jī)(PC)的價(jià)格便宜,有很強(qiáng)的數(shù)學(xué)運(yùn)算、數(shù)據(jù)處理、通信和人機(jī)交互的功能。

      (8)PLC與現(xiàn)場(chǎng)總線相結(jié)合

      現(xiàn)場(chǎng)總線I/O與PLC可以組成功能強(qiáng)大的、廉價(jià)的DCS系統(tǒng)。(9)開發(fā)新型特殊功能模塊

      I/O組件可以提高PLC的智能化、高密集度和增大處理能力。(10)CPU的處理速度進(jìn)一步加快

      目前,PLC的處理速度與計(jì)算機(jī)相比還比較慢,其中高的CPU也不過(guò)80486,將來(lái)會(huì)全面使用64位的RISC芯片,采用多CPU進(jìn)行處理、分時(shí)處理或者分任務(wù)處理方式,將各種模塊智能化,部分系統(tǒng)程序用門陣列電路固化,這樣可使PLC的處理速度達(dá)到納秒級(jí)。

      常工院畢業(yè)設(shè)計(jì)論文

      1.3.4 PLC的特點(diǎn)

      (1)抗干擾能力強(qiáng),可靠性好 PLC在電子線路、機(jī)械結(jié)構(gòu)以及軟件上都吸取了生產(chǎn)廠家長(zhǎng)期積累的生產(chǎn)控制經(jīng)驗(yàn),主要模塊均采用大規(guī)模與超大規(guī)模集成電路。I/O系統(tǒng)設(shè)計(jì)有完善的通道保護(hù)與信號(hào)調(diào)理電路;在結(jié)構(gòu)上對(duì)耐熱、防潮、防塵、抗震等都有周到的考慮。具體措施主要有以下幾個(gè)方面:

      1)隔熱:這是抗干擾的主要措施之一。PLC的輸入、輸出接口電路一般采用光電耦合器來(lái)傳遞信號(hào)。這種光電隔離措施,是外部電路與內(nèi)部電路之間避免了電的聯(lián)系,可有效的抑制外部干擾對(duì)于PLC的影響,同時(shí)防止外部高電壓串入,從而減少故障和誤操作。

      2)濾波:這是抗干擾的另一個(gè)主要措施。在PLC的電源電路和輸入/輸出電路中設(shè)置了多種濾波電路,用以對(duì)高頻干擾信號(hào)進(jìn)行有效的抑制。

      3)對(duì)內(nèi)部電源采用了屏蔽、穩(wěn)壓等保護(hù)措施,以減少外界干擾,保護(hù)供電質(zhì)量。另外使輸入輸出接口電路電源彼此獨(dú)立,以避免電源之間的干擾。4)內(nèi)部設(shè)置了連鎖、環(huán)境檢測(cè)與診斷、WATCHDOG(看門狗)等電路,一旦發(fā)現(xiàn)故障或程序循環(huán)執(zhí)時(shí)間超過(guò)了警戒時(shí)鐘(WDT)規(guī)定時(shí)間(預(yù)示程序進(jìn)入了死循環(huán)),立即報(bào)警,以保證CPU可靠運(yùn)行。

      5)利用系統(tǒng)軟件定期進(jìn)行系統(tǒng)狀態(tài)、用戶程序、工作環(huán)境和故障檢測(cè),并采用信息保護(hù)和恢復(fù)措施。

      6)對(duì)用戶程序及動(dòng)態(tài)工作數(shù)據(jù)進(jìn)行電池備份,以保障停電后有關(guān)狀態(tài)或者信息部丟失。

      7)采用密封、防塵、防震的外殼封裝結(jié)構(gòu),以適應(yīng)工作現(xiàn)場(chǎng)的惡劣環(huán)境。8)以集成電路為基礎(chǔ)元件,內(nèi)部處理過(guò)程不依賴于機(jī)械觸點(diǎn),以保障高可靠性。而采用循環(huán)掃描的工作循環(huán)方式,也提高了抗干擾能力。(2)控制系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,通用性強(qiáng) PLC及外圍模塊品種多,可由各種組件靈活組合成各種大小和不同要求的控制系統(tǒng)。

      (3)編程方便,易于使用

      PLC是面向用戶的設(shè)備,PLC的設(shè)計(jì)者充分考慮到現(xiàn)場(chǎng)工程技術(shù)人員的技能和習(xí)慣,PLC程序的編程,采用梯形圖或面向工業(yè)控制的簡(jiǎn)單指令形式。梯形圖與繼電器原理圖類似,這種編程語(yǔ)言現(xiàn)象直觀,容易掌握,不需要專門的計(jì)算機(jī)知識(shí)和語(yǔ)言,只要具有一定的電工和工藝的知識(shí)的人員都可以在短時(shí)間內(nèi)學(xué)會(huì)。(4)功能完善

      PLC的I/O功能完善,性能可靠,能適應(yīng)于任何形式和性質(zhì)的開關(guān)量和模擬量的I/O。在PLC內(nèi)部具有許多控制功能,諸如時(shí)序、計(jì)算機(jī)、主控繼電器以及位移寄存器、中間寄存器等。由于采用了微處理器,它能夠很方便地實(shí)現(xiàn)延時(shí)、鎖存、比較、跳轉(zhuǎn)和強(qiáng)制I/O等諸多功能,不僅具有邏輯功能、算術(shù)運(yùn)算、數(shù)制轉(zhuǎn)換以及順序控制功能,而且還具備模擬預(yù)算、顯示、監(jiān)控、掃描以及報(bào)表生成等功能。

      (5)設(shè)計(jì)、施工、調(diào)試的周期短

      用繼電接觸器控制完成一項(xiàng)控制工程,必須首先按工藝要求畫出電氣原理圖,然后畫出繼電器屏的布置和接線圖等,進(jìn)行安裝調(diào)試,以后修改起來(lái)十分方便。而采用PLC控制,由于其硬軟件齊全,為模塊化積木式結(jié)構(gòu),且以商品化,故

      常工院畢業(yè)設(shè)計(jì)論文

      僅需按性能、容量等選用組裝,而大量具體的程序編制工作也可在PLC到貨前進(jìn)行,因而縮短了設(shè)計(jì)周期,使設(shè)計(jì)和施工可同時(shí)進(jìn)行。(6)體積小,維護(hù)操作方便

      PLC體積小,質(zhì)量輕,便于安裝。PLC的I/O系統(tǒng)能夠直接的反映現(xiàn)場(chǎng)總線信號(hào)的變化狀態(tài),還能通過(guò)各種方式直觀地反映控制系統(tǒng)的運(yùn)行狀態(tài)。(7)易于實(shí)現(xiàn)網(wǎng)絡(luò)化

      PLC可連成功能很強(qiáng)的網(wǎng)絡(luò)系統(tǒng)。(8)可實(shí)現(xiàn)三電一體化 PLC將電控(邏輯控制)、電儀(過(guò)程控制)和電結(jié)(運(yùn)動(dòng)控制)這三電集于一體,可以方便、靈活的組合成各種不同規(guī)模和要求的控制系統(tǒng),以適應(yīng)各種工業(yè)控制的需要。

      1.3.5 PLC的主要功能

      (1)條件控制功能

      條件控制(或稱邏輯控制或順序控制)功能是指用PLC的與、或、非指令取代繼電器接觸的串聯(lián)、并聯(lián)及其他各種邏輯連接,進(jìn)行開關(guān)控制。(2)定時(shí)/記數(shù)控制功能

      定時(shí)/記數(shù)控制功能是指用PLC提供的定時(shí)器、記數(shù)器指令實(shí)現(xiàn)對(duì)某種操作的定時(shí)或記數(shù)控制,以取代時(shí)間繼電器和記數(shù)繼電器。(3)數(shù)據(jù)處理功能

      數(shù)據(jù)處理功能是指PLC能進(jìn)行數(shù)據(jù)傳輸、比較、位移、數(shù)制轉(zhuǎn)換、算術(shù)運(yùn)算、邏輯運(yùn)算以及編碼和譯碼等操作。(4)步進(jìn)控制功能

      步進(jìn)控制功能是指用步進(jìn)指令來(lái)實(shí)現(xiàn)在有多道加工工序的控制中,只有前一道工序完成以后,才能進(jìn)行下一道工序的操作的控制,以取代由硬件構(gòu)成的步進(jìn)控制器。

      (5)A/D與D/A轉(zhuǎn)換功能

      A/D與D/A轉(zhuǎn)化功能是指通過(guò)A/D、D/A模塊完成模擬量和數(shù)字量之間的轉(zhuǎn)換。

      (6)運(yùn)動(dòng)控制功能

      運(yùn)動(dòng)控制功能是指通過(guò)高速記數(shù)模塊和位置控制模塊等進(jìn)行單軸或者多軸運(yùn)動(dòng)控制。

      (7)過(guò)程控制功能

      過(guò)程控制功能是指通過(guò)PLC的PID控制指令或模塊實(shí)現(xiàn)對(duì)溫度、壓力、速度、流量等物理參數(shù)的閉環(huán)控制。(8)拓展功能

      拓展功能是指通過(guò)連接輸入輸出拓展單元(即I/O拓展單元)模塊來(lái)增加輸入輸出點(diǎn)數(shù),也可通過(guò)附加各種智能單元及特殊功能單元來(lái)提高PLC的控制功能。(9)遠(yuǎn)程I/O功能

      遠(yuǎn)程I/O功能是指通過(guò)I/O單元將分散在遠(yuǎn)距離的各種輸出、輸入設(shè)備與PLC主機(jī)相連接,進(jìn)行遠(yuǎn)程控制,接收輸入信號(hào)、傳出輸出信號(hào)。(10)通信聯(lián)網(wǎng)功能

      通信聯(lián)網(wǎng)功能是指通過(guò)PLC之間的聯(lián)網(wǎng)、PLC與上位機(jī)的鏈接等,實(shí)現(xiàn)遠(yuǎn)程

      常工院畢業(yè)設(shè)計(jì)論文

      I/O控制或數(shù)據(jù)交換,以完成較大規(guī)模系統(tǒng)的復(fù)雜控制。(11)監(jiān)控功能

      監(jiān)控功能是指PLC能監(jiān)視系統(tǒng)各部分地進(jìn)行狀態(tài)和進(jìn)程,對(duì)系統(tǒng)中出現(xiàn)的異常情況進(jìn)行報(bào)警和記錄,甚至自動(dòng)終止運(yùn)行;也可在線調(diào)整、修改控制程序中的定時(shí)器、記數(shù)器等設(shè)定值或強(qiáng)制I/O狀態(tài)。

      1.4 PLC的基本結(jié)構(gòu)及原理

      1.4.1 PLC的系統(tǒng)結(jié)構(gòu)

      目前PLC種類繁多,功能和指令系統(tǒng)也都各不相同,但都是以微處理器為核心用做工業(yè)控制的專用計(jì)算機(jī),所有其結(jié)構(gòu)和工作原理都大致相同,硬件結(jié)構(gòu)與微機(jī)相似。主要包括中央處理單元CPU、存儲(chǔ)器RAM和ROM、輸入輸出接口電路、電源、I/O拓展接口、外部設(shè)備接口等。其內(nèi)部也是采用總線結(jié)構(gòu)進(jìn)行數(shù)據(jù)和指令的傳輸。

      如同2所示,PLC控制系統(tǒng)由輸入量—PLC—輸出量組成,外部的各種開關(guān)信號(hào)、模擬信號(hào)、傳感器檢測(cè)的各種信號(hào)均作為PLC的輸出量,它們經(jīng)PLC外部輸入端子,作為PLC的輸出量對(duì)外圍設(shè)備進(jìn)行各種控制。由此可見(jiàn),PLC的基本結(jié)構(gòu)由控制部分輸入和輸出組成。

      1.4.2 PLC各部分的作用

      (1)中央處理器

      CPU是由控制器和運(yùn)算器組成的。運(yùn)算器也稱為算術(shù)邏輯單元,它的功能就是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。控制器的作用是控制整個(gè)計(jì)算機(jī)的各個(gè)部件有條不紊地工作,它的基本功能是從內(nèi)存中取出指令和執(zhí)行指令。他的重要功能如下:

      ① 診斷PLC電源、內(nèi)部電路的工作狀態(tài)及編程中的語(yǔ)法錯(cuò)誤。

      ② 采集由現(xiàn)場(chǎng)輸入裝置送來(lái)的狀態(tài)或數(shù)據(jù),并送入PLC的寄存器中。③ 按用戶程序存儲(chǔ)器中存放的先后順序逐條讀取指令,進(jìn)行編譯解釋后,按指令規(guī)定的任務(wù)完成各種運(yùn)算和操作。④ 將存于寄存器中的處理結(jié)果送至輸出端。⑤ 應(yīng)各種外部設(shè)備的工作請(qǐng)求。

      常工院畢業(yè)設(shè)計(jì)論文

      (2)存儲(chǔ)器

      PLC的存儲(chǔ)器分為兩大部分: 一大部分是系統(tǒng)存儲(chǔ)器,用來(lái)存放系統(tǒng)管理程序、監(jiān)控程序及其系統(tǒng)內(nèi)部數(shù)據(jù)。二大部分是用戶存儲(chǔ)器,包括用戶程序存儲(chǔ)區(qū)及工作數(shù)據(jù)存儲(chǔ)區(qū)。(3)輸入輸出接口電路 PLC通過(guò)輸入輸出(I/O)接口電路實(shí)現(xiàn)與外圍設(shè)備的連接。輸入接口通過(guò)PLC的輸入端子接受現(xiàn)場(chǎng)輸入設(shè)備的控制信號(hào),并將這些信號(hào)轉(zhuǎn)換成CPU所能接受和處理的數(shù)字信號(hào)。(4)電源

      PLC的電源是指將外部輸入的交流電經(jīng)過(guò)整流、濾波、穩(wěn)壓等處理后轉(zhuǎn)換成滿足PLC的CPU、存儲(chǔ)器、輸入輸出接口等內(nèi)部電路工作所需要的直流電源電路或電源模塊。

      (5)輸入輸出I/O拓展接口、若主機(jī)單元的I/O點(diǎn)數(shù)不能滿足輸入輸出點(diǎn)數(shù)需要時(shí),可通過(guò)此接口用扁平電纜線將I/O拓展單元與主機(jī)單元相連接。(6)PLC的基本工作原理

      PLC采用的是循環(huán)掃描工作方式。對(duì)每個(gè)程序,CPU從第一條指令開始執(zhí)行,按指令步序號(hào)做周期性的程序循環(huán)掃描,如果無(wú)跳轉(zhuǎn)指令,則從第一條指令開始逐條順序執(zhí)行用戶程序直至遇到結(jié)束信號(hào)后又返回第一條指令,如此周而復(fù)始不斷循環(huán),每一個(gè)循環(huán)稱為一個(gè)掃描周期。PLC的掃描全過(guò)程如圖3所示。

      ① 輸入刷新階段

      在輸入刷新階段,CPU掃描全部輸入端口,讀取其狀態(tài)并寫入輸入狀態(tài)寄存器。完成后關(guān)閉輸入端口,轉(zhuǎn)入程序執(zhí)行階段。② 程序執(zhí)行階段

      在程序執(zhí)行階段,根據(jù)用戶輸入的控制程序,從第一條開始逐條執(zhí)行,并將相應(yīng)的邏輯運(yùn)算結(jié)果存入對(duì)應(yīng)的內(nèi)部輔助寄存器和輸出狀態(tài)寄存器。③ 輸出刷新階段

      常工院畢業(yè)設(shè)計(jì)論文

      當(dāng)所有指令執(zhí)行完畢后,將輸出狀態(tài)寄存器中的內(nèi)容,依次送到輸出鎖存電路,并通過(guò)一定輸出方式輸出,驅(qū)動(dòng)外部相應(yīng)執(zhí)行元件工作,這才形成PLC的實(shí)現(xiàn)輸出。

      顯然掃描周期的長(zhǎng)短取決于程序的長(zhǎng)短。掃描周期越長(zhǎng),響應(yīng)速度越慢。由于每一個(gè)掃描周期只進(jìn)行一次I/O刷新,即每一個(gè)掃描周期PLC只對(duì)輸入、輸出狀態(tài)寄存器更新一次,故使系統(tǒng)存在輸入、輸出滯后現(xiàn)象,這在一定程度上降低了系統(tǒng)的響應(yīng)速度。由此可見(jiàn),若輸入變量在I/O刷新期間狀態(tài)發(fā)生變化,則本次掃描期間輸出會(huì)相應(yīng)地繁盛變化。反之,若在本次刷新之后輸入變量才發(fā)生變化,則本次掃描輸出不變,而要到下一次掃描的I/O刷新期間輸出才會(huì)發(fā)生變化。這對(duì)于一般的開關(guān)量控制系統(tǒng)來(lái)說(shuō)是完全允許的,不但不會(huì)造成不利影響,反而可以增強(qiáng)系統(tǒng)的抗干擾能力。這是因?yàn)檩斎氩蓸觾H在輸入刷新階段進(jìn)行,PLC在一個(gè)工作周期的大部分時(shí)間里實(shí)際上是設(shè)隔離的。而工業(yè)現(xiàn)場(chǎng)的干擾常常是脈沖式的、短時(shí)的,由于系統(tǒng)相應(yīng)較慢往往要幾個(gè)掃描周期菜響應(yīng)一次,而多次掃描后,因瞬間干擾而引起的誤操作將會(huì)大大減少,從而提高了系統(tǒng)的抗干擾能力。但是對(duì)于控制時(shí)間要求較為嚴(yán)格、響應(yīng)速度要求較快的系統(tǒng),就需要精心編制程序,必要時(shí)采用一些特殊功能,以減少因掃描周期造成的響應(yīng)滯后等不良影響。

      1.5 松下電工可編程序控制器產(chǎn)品—FR1-C24介紹

      經(jīng)過(guò)從功能和價(jià)格兩個(gè)方面的考慮,發(fā)現(xiàn)松下電工可編程序控制器產(chǎn)品—FR1-C24比較適合自動(dòng)售貨機(jī)。因?yàn)樗且环N功能很強(qiáng)的小型機(jī),在設(shè)計(jì)的過(guò)程中采用先進(jìn)的方法及組件使其通常只有在大型PLC中才具有的功

      常工院畢業(yè)設(shè)計(jì)論文

      能,且具有其他控制器所不具備的功能。雖然是小型機(jī),但是其功能較完善,性能價(jià)格比高,較適合自動(dòng)售貨機(jī)。

      現(xiàn)在就對(duì)FR1-C24的組成各部分和技能做一個(gè)簡(jiǎn)單介紹。在松下電工公司生產(chǎn)的FR系列產(chǎn)品中,F(xiàn)R1屬于小型的PLC產(chǎn)品,其中C24是具有高級(jí)處理功能的型號(hào)。從型號(hào)可以看出FR1-C24可編程序控制器的輸入輸出點(diǎn)數(shù)(即I/O)之和為24.1.5.1 FR1-C24的組成各部分

      (1)RS232 該端口能于PC機(jī)通信編程,也可連接其他外圍設(shè)備。(2)運(yùn)行監(jiān)視指示燈

      ① 當(dāng)運(yùn)行程序時(shí),“RUN”指示燈亮; ② 當(dāng)控制單元終止執(zhí)行程序時(shí),“PROG”指示燈亮; ③ 當(dāng)發(fā)生自診斷錯(cuò)誤時(shí),“ERR”指示燈亮;

      ④ 當(dāng)檢測(cè)到異常的情況時(shí)或出現(xiàn)“Watchdog”時(shí),“ALARM”指示燈亮。(3)工作方式選擇開關(guān)

      ①“RUN”工作方式

      當(dāng)開關(guān)扳到這個(gè)檔位時(shí),控制單元運(yùn)行程序。②“REMOTE”工作方式

      在這個(gè)工作方式下,可以使用編程工具改變可編程序控制器的工作方式為“RUN”或“PROG”工作方式。③“PROG”工作方式

      在此方式下可以編輯程序。若在“RUN”工作方式下編輯程序,則按出錯(cuò)對(duì)待??删幊炭刂破鼬Q響報(bào)警,提示編程者將方式選擇開關(guān)切換至“PROG”工作方式。④輸出端子

      C24型的輸出端子有8點(diǎn)。該端子板為兩頭帶螺釘可拆卸的板。⑤直流電源輸出端子

      在FP1系統(tǒng)主機(jī)內(nèi)部均配有一個(gè)供輸入端使用的24V直流電源。⑥輸入端子

      C24型的輸入端子有16點(diǎn)。輸入電壓范圍為直流12~24V。該端子板為兩頭帶螺釘可拆卸的板。⑦編程工具連接插座(RS422口)

      可用此插座經(jīng)專用外設(shè)電纜連接編程工具。⑧波特率選擇開關(guān)

      有19 200bp和9 600sbps兩檔,當(dāng)可編程控制器與外部設(shè)備進(jìn)行通信時(shí),應(yīng)根據(jù)不同的外設(shè)選定波特率。⑨電位器(V0、V1)

      電位器(V0、V1)這兩個(gè)電位器可用螺絲刀進(jìn)行手動(dòng)調(diào)節(jié),實(shí)現(xiàn)外部設(shè)定。當(dāng)調(diào)節(jié)該點(diǎn)位器時(shí),PLC內(nèi)部對(duì)應(yīng)的特殊數(shù)據(jù)寄存器DT9040和DT9041的內(nèi)容在0~255之間變化,相當(dāng)于輸入外部可調(diào)的模擬量。C24有兩個(gè)(V0、V1)。

      常工院畢業(yè)設(shè)計(jì)論文

      ⑩ I/O點(diǎn)狀態(tài)指示燈和拓展單元接口插座

      用來(lái)指示輸入/輸出的通斷狀態(tài),當(dāng)某個(gè)輸入觸點(diǎn)閉合時(shí),對(duì)應(yīng)于這份觸點(diǎn)編號(hào)的輸入指示發(fā)光二極管點(diǎn)亮(下一排);當(dāng)某個(gè)輸出繼電器接通時(shí),對(duì)應(yīng)這個(gè)輸出繼電器編號(hào)的輸出只是發(fā)光二極管點(diǎn)亮(上一排)。拓展單元接口插座用以連接FP1拓展元件及A/D、D/A轉(zhuǎn)換單元、鏈接單元。

      1.5.2 技術(shù)性能

      FP1—C24的主機(jī)I/O點(diǎn)數(shù)為16/8;最大I/O點(diǎn)數(shù)為104;運(yùn)行速度為1.6μs/步;容量為2720步;基本指令數(shù)為80;高級(jí)指令數(shù)為111;內(nèi)部繼電器為1008點(diǎn);特殊內(nèi)部繼電器為64點(diǎn);定時(shí)器/記數(shù)器為144點(diǎn);數(shù)據(jù)寄存器為1660字;特殊數(shù)據(jù)寄存器為70字;索引寄存器為2字;主控指令為32點(diǎn);跳轉(zhuǎn)標(biāo)記數(shù)為64點(diǎn);步進(jìn)數(shù)為128級(jí);子程序個(gè)數(shù)為16個(gè);中斷個(gè)數(shù)為9個(gè)程序;輸入濾波時(shí)間為1—128ms。

      第二章 PLC系統(tǒng)設(shè)計(jì)

      2.1 序控制系統(tǒng)設(shè)計(jì)的基本原則

      2.1.1 控制系統(tǒng)設(shè)計(jì)原則

      任何一種電氣控制系統(tǒng)都是為了實(shí)現(xiàn)被控對(duì)象(生產(chǎn)設(shè)備或生產(chǎn)過(guò)程)的工藝要求,以提高生產(chǎn)效率和產(chǎn)品質(zhì)量。因此,在設(shè)計(jì)PLC控制系統(tǒng)時(shí),應(yīng)遵循以下基本原則:

      (1)最大限度地滿足被控對(duì)象的控制對(duì)象。設(shè)計(jì)前,應(yīng)深入現(xiàn)場(chǎng)進(jìn)行調(diào)查研究,收集資料,并與機(jī)械部分的設(shè)計(jì)人員和實(shí)際操作人員密切配合,共同擬定電氣控制方案,協(xié)同解決設(shè)計(jì)中出現(xiàn)的各種問(wèn)題。

      (2)在滿足控制系統(tǒng)要求的前提下,力求使控制系統(tǒng)簡(jiǎn)單、經(jīng)濟(jì)、使用及維修方便。

      (3)保證控制系統(tǒng)的安全、可靠。

      (4)考慮到生產(chǎn)的發(fā)展和工藝的改進(jìn),在選擇PLC容量時(shí),應(yīng)適當(dāng)留有余量。

      2.1.2 控制系統(tǒng)設(shè)計(jì)的基本內(nèi)容

      PLC控制系統(tǒng)是由PLC與用戶輸入、輸出設(shè)備連接而成的,因此,PLC控制系統(tǒng)設(shè)計(jì)的基本內(nèi)容應(yīng)包括:

      (1)用戶輸入設(shè)備(按鈕、操作開關(guān)、限位開關(guān)、傳感器等)、輸出設(shè)備(繼電器、接觸器、信號(hào)燈等執(zhí)行元件)以及有輸出設(shè)備驅(qū)動(dòng)的控制對(duì)象(電動(dòng)機(jī)、電

      常工院畢業(yè)設(shè)計(jì)論文

      磁閥等)。這些設(shè)備屬于一般的電氣元件,其選擇的方法在其他有關(guān)數(shù)據(jù)中已有介紹。

      (2)PLC的選擇。PLC是PLC控制系統(tǒng)的核心部件,正確選擇PLC對(duì)于保證整個(gè)控制系統(tǒng)的技術(shù)經(jīng)濟(jì)性能指標(biāo)起到重要作用。選擇PLC,應(yīng)包括機(jī)型選擇、容量的選擇、I/O模塊的選擇、電源模塊的選擇等。(3)分配I/O點(diǎn),繪制I/O梯形圖。

      (4)設(shè)計(jì)控制程序。包括設(shè)計(jì)梯形圖、語(yǔ)句表(即程序清單)和控制系統(tǒng)流程圖??刂葡到y(tǒng)程序是控制整個(gè)系統(tǒng)工作的軟件,是保證系統(tǒng)工作安全、可靠的關(guān)鍵。因此,控制程序的設(shè)計(jì)必須經(jīng)過(guò)反復(fù)調(diào)試、修改,知道滿足要求為止。(5)必要時(shí)還需要設(shè)計(jì)控制臺(tái)。(6)編制程序系統(tǒng)的技術(shù)文件。

      2.1.3 控制系統(tǒng)設(shè)計(jì)的一半步驟

      (1)根據(jù)生產(chǎn)的工藝過(guò)程分析控制要求。

      (2)根據(jù)控制要求確定所需的用戶輸入、輸出設(shè)備,以此確定PLC的I/O點(diǎn)數(shù)。(3)選擇PLC系統(tǒng)。

      (4)分配PLC的I/O點(diǎn),設(shè)計(jì)I/O接線圖。

      (5)進(jìn)行PLC程序設(shè)計(jì),同時(shí)可進(jìn)行控制大的設(shè)計(jì)和現(xiàn)場(chǎng)施工。

      2.1.4 編寫梯形圖的注意事項(xiàng)

      (1)輸入/輸出繼電器、內(nèi)部輔助繼電器、定時(shí)器。記數(shù)器等器件的觸點(diǎn)可以多次重復(fù)使用,無(wú)需復(fù)雜的程序結(jié)構(gòu)來(lái)減少觸點(diǎn)的使用次數(shù)。

      (2)梯形圖每一行都是從左母線開始,線圈終止于右母線。觸點(diǎn)不能放在線圈的右邊。除步進(jìn)程序外,任何線圈、定時(shí)器、記數(shù)器、高級(jí)指令等不能直接與左母線相連。如果需要任何時(shí)候都被執(zhí)行的程序段,可以通過(guò)特殊內(nèi)部常閉繼電器或者一個(gè)沒(méi)有使用過(guò)的內(nèi)部繼電器的常閉觸點(diǎn)來(lái)連接。(3)在程序中,不允許同以編號(hào)的線圈兩次輸出。(4)不允許出現(xiàn)橋式電路。

      程序的編寫順序應(yīng)該按照自上而下、從左至右的方式編寫。為了減少程序的執(zhí)行步數(shù),程序應(yīng)為“左大右小,上大下小”。

      2.1.5 程序設(shè)計(jì)的步驟

      (1)對(duì)于較復(fù)雜的控制系統(tǒng),需繪制系統(tǒng)控制流程圖,用以清楚地表明動(dòng)作的順序和條件。

      (2)設(shè)計(jì)梯形圖。是程序設(shè)計(jì)的關(guān)鍵一步,也是比較困難的一步。(3)根據(jù)梯形圖編制程序清單。(4)用編程器將程序輸入到PLC的用戶存儲(chǔ)器中,并檢查輸入的程序是否正確。(5)對(duì)程序進(jìn)行調(diào)試和修改,知道滿足要求為止。

      常工院畢業(yè)設(shè)計(jì)論文

      (6)帶控制臺(tái)及現(xiàn)場(chǎng)施工完成后,就可以進(jìn)行聯(lián)機(jī)調(diào)試。若未滿足要求,再?gòu)男滦薷某绦蚧驒z查接線,知道滿意為止。(7)編寫技術(shù)文件。(8)交付使用。

      控制系統(tǒng)設(shè)計(jì)步驟流程圖如圖4所示。

      第三章

      自動(dòng)售貨機(jī)PLC程序設(shè)計(jì)

      3.1 仿真實(shí)驗(yàn)系統(tǒng)中售貨機(jī)的分析

      由于售貨機(jī)的全部功能時(shí)在上位機(jī)上模擬的,所以售貨機(jī)的部分硬件是由計(jì)算機(jī)軟件來(lái)模擬

      常工院畢業(yè)設(shè)計(jì)論文

      圖4 PLC 控制系統(tǒng)設(shè)置

      替代的。如錢幣識(shí)別系統(tǒng)可以用按壓某個(gè)“仿真對(duì)象”輸出一個(gè)脈沖直接給PLC發(fā)布命令而傳動(dòng)系統(tǒng)也是由計(jì)算機(jī)來(lái)直接模擬的,這些并不會(huì)影響實(shí)際程序的操作,完全能模擬現(xiàn)實(shí)中自動(dòng)飲料售貨機(jī)的運(yùn)行。(1)試驗(yàn)狀態(tài)假設(shè)

      由于是在計(jì)算機(jī)上模擬運(yùn)行,試驗(yàn)中有一些區(qū)別于實(shí)際情況的假設(shè),本試驗(yàn)中假設(shè):

      ① 自動(dòng)飲料售貨機(jī)只可售8種商品。

      ② 自動(dòng)飲料售貨機(jī)可識(shí)別10元、5元、1元、5角、1角硬幣。

      ③ 自動(dòng)飲料售貨機(jī)可退幣10元、5元、1元、5角、1角硬幣。

      常工院畢業(yè)設(shè)計(jì)論文

      ④ 自動(dòng)飲料售貨機(jī)有液晶顯示功能

      ⑤ 實(shí)驗(yàn)中售貨機(jī)忽略了各種故障以及缺貨等因素。(2)一次交易過(guò)程分析

      為了方便分析,我們以一次交易過(guò)程為例。

      ① 初始狀態(tài)。由電子標(biāo)簽顯示各種商品價(jià)格,顯示屏顯示友好界面,此時(shí)不能購(gòu)買任何商品。

      ② 投幣狀態(tài)。按下投幣按鈕,顯示投幣框,按下所投幣值顯示屏顯示投入、消費(fèi)、余額數(shù)值,當(dāng)所投幣值超過(guò)商品價(jià)格時(shí),相應(yīng)價(jià)格選擇按鈕發(fā)生變化,提示可以購(gòu)買。

      ③ 購(gòu)買狀態(tài)。按下可以購(gòu)買的選擇按鈕,所選的商品出現(xiàn)在出貨框中,同時(shí)顯示屏上的金額數(shù)字根據(jù)消費(fèi)情況相應(yīng)變化。取走商品后出貨框消失。

      ④ 退幣按鈕。按下退幣按鈕,顯示退幣框,同時(shí)顯示出應(yīng)退幣值及數(shù)量。按下確認(rèn)鈕,則恢復(fù)初始狀態(tài)。

      到此為止,飲料自動(dòng)售貨機(jī)的一個(gè)完整工作過(guò)程結(jié)束。

      3.2 設(shè)計(jì)任務(wù)的確定

      在清楚飲料自動(dòng)售貨機(jī)運(yùn)行工作過(guò)程的基礎(chǔ)上,制定出設(shè)計(jì)方案,確定任務(wù)的目標(biāo),以設(shè)計(jì)出合理的仿真系統(tǒng)。

      首先,應(yīng)該做上位機(jī)與下位機(jī)的任務(wù)分工:上位機(jī)主要用來(lái)完成仿真界面的制作過(guò)程,而下位機(jī)則主要用來(lái)完成PLC程序的編寫。其次,要分別對(duì)上位機(jī)和下位機(jī)進(jìn)行資料的查找與收集。例如在進(jìn)行仿真界面的設(shè)計(jì)時(shí)可以去觀看一下真正售貨機(jī)的外觀,必要時(shí)可以借助一些宣傳圖片來(lái)設(shè)計(jì)飲料自動(dòng)售貨機(jī)的外型:在進(jìn)行PLC程序的編寫時(shí)需要先分配PLC的I/O點(diǎn),確定上、下位機(jī)的接口。然后,對(duì)上、下位機(jī)分別進(jìn)行設(shè)計(jì)工作。最后,進(jìn)行上位機(jī)設(shè)計(jì)結(jié)果與下位機(jī)設(shè)計(jì)結(jié)果的配合工作,經(jīng)調(diào)試后完成整個(gè)系統(tǒng)的設(shè)計(jì)。

      另外,上位機(jī)與下位機(jī)的設(shè)計(jì)工作是緊密配合的。它們無(wú)論在通信中使用的變量,還是在仿真中控制的對(duì)象都應(yīng)該是一致的。總體上講,仿真界面是被控對(duì)象,利用PLC來(lái)控制這個(gè)仿真的飲料自動(dòng)售貨機(jī),仿真的飲料自動(dòng)售貨機(jī)接受PLC的控制指令并完成相應(yīng)的動(dòng)作;另一方面,仿真界面中的仿真飲料自動(dòng)售貨機(jī)的運(yùn)行,都是由組態(tài)界面所提供的命令語(yǔ)言來(lái)完成的。這是整個(gè)仿真系統(tǒng)內(nèi)部各大部件之間的內(nèi)在關(guān)系。

      我主要是對(duì)飲料自動(dòng)售貨機(jī)中的下位機(jī),也就是主要是對(duì)PLC在其中的程序進(jìn)行設(shè)計(jì)。仿真程序只做了解,雖然只做了解,但是也將在下面有所介紹。清楚了仿真試驗(yàn)的整體設(shè)計(jì)思路,下面就可以開始著手設(shè)計(jì)了。

      3.3 程序設(shè)計(jì)部分

      這個(gè)部分內(nèi)容是整個(gè)系統(tǒng)設(shè)計(jì)的主體部分。所要完成的任務(wù)是仿真系統(tǒng)的上位機(jī)與下位機(jī)的程序設(shè)計(jì),即在上述功能分析的基礎(chǔ)上,有針對(duì)地進(jìn)行設(shè)計(jì)。

      常工院畢業(yè)設(shè)計(jì)論文

      3.3.1 程序設(shè)計(jì)說(shuō)明

      下位機(jī)程序的編制則是利用松下PLC專用編程軟件FPWIN-GR完成的。

      在設(shè)計(jì)的過(guò)程中,就像上面所敘述的那樣,并非孤立的分別進(jìn)行上位機(jī)和下位機(jī)的設(shè)計(jì)工作,而是互相配合的。因此在以下的詳細(xì)設(shè)計(jì)過(guò)程中,并沒(méi)有將上位機(jī)的設(shè)計(jì)與下位機(jī)的設(shè)計(jì)整體分開來(lái)寫,而是相互交替,同時(shí)盡量清晰的敘述,在相應(yīng)的設(shè)計(jì)部分中注明是上位機(jī)的設(shè)計(jì)還是下位機(jī)的設(shè)計(jì)。

      3.3.2 PLC程序設(shè)計(jì)

      可以把一次交易過(guò)程分為幾個(gè)程序塊:運(yùn)行初期電子標(biāo)簽價(jià)格的內(nèi)部傳遞;投幣過(guò)程;價(jià)格比較過(guò)程;選擇商品過(guò)程;退幣過(guò)程。(1)運(yùn)行初期電子標(biāo)簽價(jià)格的內(nèi)部傳遞程序的設(shè)計(jì)

      仿真系統(tǒng)運(yùn)行初期,要由PLC向仿真畫面相應(yīng)對(duì)象傳遞已存儲(chǔ)好的價(jià)格,還要給投入顯示、消費(fèi)顯示以及余額顯示存儲(chǔ)器清零,同時(shí)也要給存儲(chǔ)退幣幣值的存儲(chǔ)器清零。程序編制過(guò)程中,要用到運(yùn)行初期閉合繼電器R9013、16位數(shù)據(jù)傳送指令F0,同時(shí)在上位機(jī)上ForceControl中,必須定義相應(yīng)的變量,來(lái)實(shí)現(xiàn)與PLC程序的對(duì)接。所定義的變量如表1所示。

      表1初始狀態(tài)變量表

      根據(jù)表1編制PLC程序如圖5所示。

      常工院畢業(yè)設(shè)計(jì)論文

      圖5 運(yùn)行初期電子標(biāo)簽價(jià)格的內(nèi)部傳遞程序

      在梯形圖程序圖5中,系統(tǒng)初始化時(shí),通過(guò)運(yùn)行初期閉合繼電器R9031在第一次掃描時(shí)將數(shù)值傳遞給上位機(jī)。給WR1-WR11及SV0-SV4賦初值,賦值功能通過(guò)高級(jí)指令F0實(shí)現(xiàn),至于為什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中將介紹他們的作用。(2)投幣過(guò)程

      在投幣過(guò)程中,每投下一枚硬幣,投入顯示將增加相應(yīng)的幣值,余額也增加同樣幣制。先建立變量表,在編寫程序。變量表如表2所示。對(duì)應(yīng)的梯形圖程序如圖7所示。

      表2 投幣過(guò)程變量表

      在圖中,當(dāng)按下投入1角時(shí),相當(dāng)于讓R200接通,之所以用一個(gè)微分指令,就是要只在接通時(shí)檢測(cè)一次,不能永遠(yuǎn)加下 去。投入1角要投入顯示、余額顯示

      常工院畢業(yè)設(shè)計(jì)論文

      都相應(yīng)增加相同數(shù)值,加法是由16位加法指令E20來(lái)實(shí)現(xiàn)的。投入5角、1元、10元,原理同上。(3)價(jià)格比較過(guò)程

      價(jià)格的比較要貫穿實(shí)驗(yàn)的始終,只要余額大于某種商品價(jià)格時(shí),就需要輸出一個(gè)信號(hào),圖7 投幣過(guò)程梯形圖

      提示可以購(gòu)買。這里只要選擇燈代表此信號(hào)。所建立的變量表如表3所示。

      表3 價(jià)格比較過(guò)程變量表

      常工院畢業(yè)設(shè)計(jì)論文

      根據(jù)變量表和控制要求編寫程序如圖8所示。

      在梯形圖8中,為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)比較,用了一個(gè)特殊內(nèi)部繼電器R9010,在程序執(zhí)行過(guò)程中,R9010始終保持閉合,F(xiàn)60是16位數(shù)據(jù)比較指令,用它來(lái)比較余額和商品價(jià)格,R900A是大于價(jià)格,R900B是等于標(biāo)志。當(dāng)余額大于等于某種商品價(jià)格時(shí),程序使相應(yīng)的指示燈閃爍表示可以購(gòu)買該種商品。

      常工院畢業(yè)設(shè)計(jì)論文

      圖8 價(jià)格比較過(guò)程梯形圖

      (4)選擇商品過(guò)程

      當(dāng)投入的幣值可以購(gòu)買某種商品時(shí),按下相應(yīng)的“選擇”按鈕即可在出貨框中出現(xiàn)該種商品,同時(shí)消費(fèi)顯示欄中顯示出已經(jīng)消費(fèi)掉的金額,余額也將扣除已消費(fèi)的幣值,接著余額繼續(xù)與價(jià)格相比較,判斷是否能繼續(xù) 購(gòu)買。出現(xiàn)在出貨口的商品在沒(méi)有取走之前,一直保持顯示狀態(tài),用鼠標(biāo)點(diǎn)擊該商品代表已經(jīng)取走,出貨口的商品隱藏。建立的變量表如表4所示。對(duì)應(yīng)的梯形圖程序如圖9所示。

      常工院畢業(yè)設(shè)計(jì)論文

      表4 選擇商品過(guò)程變量表

      在梯形圖9中,一是要使商品出現(xiàn)在出貨框中,而是要實(shí)現(xiàn)內(nèi)部的貨幣運(yùn)算。以第一步為例,按下選擇01 商品鍵,相當(dāng)于給R205加一個(gè)信號(hào)(只接受一次脈沖,所以用DF微分指令),當(dāng)Y0接通(01商品燈亮)時(shí),則系統(tǒng)顯示可以購(gòu)買01商品,購(gòu)買成功。當(dāng)按下取01商品按鈕時(shí),R230斷開,不能輸出Y8,代表01商品被取走。內(nèi)部幣值的計(jì)算和是否取走商品無(wú)關(guān),只要按下選擇按鈕,并且可以購(gòu)買此商品就要從余額中扣除相應(yīng)的金額,顯示消費(fèi)的幣值。加法由F20指令實(shí)現(xiàn),減法由F25實(shí)現(xiàn)。

      常工院畢業(yè)設(shè)計(jì)論文

      常工院畢業(yè)設(shè)計(jì)論文

      (5)退幣過(guò)程

      常工院畢業(yè)設(shè)計(jì)論文

      在退幣過(guò)程中,最主要的是完成退幣的運(yùn)算過(guò)程,根據(jù)結(jié)果輸出相應(yīng)的錢幣,退幣結(jié)束時(shí)還要使用到的某些寄存器重新賦零,所建立的變量如表5所示,對(duì)應(yīng)的梯形圖程序如圖10所示。

      表5 退幣過(guò)程變量表

      整個(gè)退幣過(guò)程在按下按鈕(即R20F接通時(shí))時(shí)執(zhí)行,同樣也用到一個(gè)微分指令,在接收到信號(hào)時(shí)產(chǎn)生一次開關(guān)脈沖,進(jìn)而執(zhí)行一次其下面的指令。F32是除法指令,第一次將余額的幣值除以1000,商存儲(chǔ)于SV0中,作為退幣10的輸出值。余數(shù)則存儲(chǔ)于特殊數(shù)據(jù)寄存器DT9015中,下次將不能被1000(10元)整除的余數(shù)除以100(5元),商且存儲(chǔ)于SV1中,余數(shù)繼續(xù)下傳,直至被1角除過(guò),由于所投幣值最小是1角,并且商品價(jià)格也確定在整角,所以最終能被1角整除。在程序的初始化時(shí)曾給WR13、WR15、WR17、WR19和WR20賦零,WR13、WR15、WR17、WR19和WR20是程序的中間量,為的只是程序在使用過(guò)程中能穩(wěn)定執(zhí)行,避免出現(xiàn)退幣錯(cuò)誤。

      為什么要除以1000呢?這主要是考慮到PLC的主要特點(diǎn)是執(zhí)行過(guò)程穩(wěn)定可靠,但執(zhí)行速度較慢,在計(jì)算時(shí)盡量將數(shù)值作為整數(shù)計(jì)算,因?yàn)槭窃谟?jì)算機(jī)上模擬,可以把一部分功能交由計(jì)算機(jī)來(lái)實(shí)現(xiàn),這里把1角當(dāng)作

      10、把5角當(dāng)作50、1元當(dāng)作100、5元當(dāng)作500、10元當(dāng)作1000,可以避免把這些數(shù)據(jù)當(dāng)作有小數(shù)點(diǎn)的實(shí)數(shù)計(jì)算,這同前面的加1角等于10(K10)是相同的道理。至于交由計(jì)算機(jī)的任務(wù)將在以后敘述。

      退幣過(guò)程結(jié)束后,PLC要將寄存器中的數(shù)值置回原定得初值0,完成一次交易,防止下一次交易時(shí)出錯(cuò),還將中間量WR13、WR15、WR17、WR19和WR20清零。完成了以上5個(gè)過(guò)程,自動(dòng)售貨機(jī)的PLC控制程序基本完成,程序可以控制售貨機(jī)實(shí)現(xiàn)各種要求的功能。

      常工院畢業(yè)設(shè)計(jì)論文

      圖10 退幣過(guò)程梯形圖

      3.4 仿真界面與PLC的配合定

      在這一段中,將仔細(xì)分析仿真界面各部分是如何與PLC連接的。分析過(guò)程是按照一次交易的實(shí)際情況來(lái)進(jìn)行的,即有初始狀態(tài)、投幣狀態(tài)、購(gòu)買狀態(tài)、退幣狀態(tài)到交易結(jié)束。(1)初始狀態(tài)

      通過(guò)分析得知,當(dāng)電子標(biāo)簽顯示各商品的價(jià)格、顯示屏顯示友好界面時(shí),不能購(gòu)買任何商品。因此先讓變量poiwindows=0(系統(tǒng)默認(rèn))。

      電子標(biāo)簽中的字符?J.01?(以01商品為例)對(duì)應(yīng)的變量JG01.PV與PLC程序中的地址WR4相匹配,WR4中的存儲(chǔ)器據(jù)為250,即讓字符顯示2.5元。對(duì)應(yīng)的梯形圖如

      常工院畢業(yè)設(shè)計(jì)論文

      圖11所示。(2)投幣狀態(tài)

      當(dāng)投幣時(shí),按下“投幣”提示字,出現(xiàn)投幣框。如何定義“投幣”呢?雙擊漢字“投幣”來(lái)到“動(dòng)畫連接”畫面,選擇“觸敏動(dòng)作”框中作如下定義:按下鼠標(biāo)時(shí),poiwinJB=1,poiwinJB這個(gè)變量是控制投幣框的,當(dāng)poiwinJB=1時(shí),出現(xiàn)錢幣和提示框:poiwinJB=0時(shí),錢幣和提示框隱藏。

      圖11 數(shù)據(jù)初始化梯形圖

      下面分別定義提示框和錢幣以及“確認(rèn)”按鈕,雙擊提示框,來(lái)到“動(dòng)畫連接”畫

      常工院畢業(yè)設(shè)計(jì)論文

      面,定義poiwinJB=1時(shí)顯示,各硬幣也用同樣的方法定義,這樣就使在按下漢字“投幣”時(shí),變量poiwinJB=1,從而出現(xiàn)投幣框,以及硬幣等。我們只是定義了投幣框的顯示狀態(tài),用鼠標(biāo)點(diǎn)擊代替 了實(shí)際過(guò)程中的錢幣投入動(dòng)作,最重要的任務(wù)是錢幣運(yùn)算,下面介紹錢幣的定義方法。

      以10為例:雙擊10硬幣,開到“動(dòng)畫連接”畫面,選擇“觸敏動(dòng)作”中的“左鍵動(dòng)作”,在動(dòng)作描述中如下定義:按下鼠標(biāo)時(shí),poiwinJB=1;TR$100.PV=1時(shí)給PLC發(fā)出一個(gè)接通信號(hào),由于TR$100.PV對(duì)應(yīng)的PLC地址是R204,使得204繼電器導(dǎo)通,轉(zhuǎn)而執(zhí)行相應(yīng)的加10元程序。同樣定義其他錢幣,注意其對(duì)應(yīng)的PLC軟繼電器。最后還要定義“確認(rèn)按鈕”。要實(shí)現(xiàn)的功能是按下“確認(rèn)”按鈕時(shí),所有的錢幣以及提示框均消失。當(dāng)投幣以后,顯示屏要及時(shí)反映出投幣情況,同時(shí)“選擇”指示也要相應(yīng)變化。下面來(lái)定義顯示屏和“選擇”按鈕。

      顯示屏要顯示3種數(shù)據(jù),分別為:投入顯示、消費(fèi)顯示、余額顯示。三種顯示均用力控軟件自帶的附件—數(shù)碼管來(lái)顯示?,F(xiàn)在工具箱中點(diǎn)擊“選擇子圖框”,在子圖框中找到儀表中的數(shù)碼管,放在顯示屏中,作為投入顯示,再?gòu)?fù)制兩個(gè),分別作為消費(fèi)顯示、余額顯示。雙擊數(shù)碼管來(lái)到數(shù)碼管屬性設(shè)置畫面,在表達(dá)式中作如下定義:poiTR001.PV/100,poiTR001.PV連接的是PLC程序中的WR1軟繼電器,是用來(lái)存儲(chǔ)投入顯示數(shù)據(jù)的,除以100同樣是為了PLC數(shù)據(jù)計(jì)算的方便。這樣就可以用數(shù)碼管來(lái)顯示投入中的幣值。同樣定義消費(fèi)顯示、余額顯示?!斑x擇”按鈕要根據(jù)余額的數(shù)值發(fā)生閃爍和變色。定義過(guò)程如下:雙擊“選擇”按鈕,來(lái)到“動(dòng)畫連接”畫面,在“顏色相關(guān)動(dòng)作”中選擇“閃爍”項(xiàng),分別定義屬性和頻率,在變量選擇中選擇相應(yīng)的指示燈變量。以01商品的選擇指示燈為例,在變量選擇中選擇D01.PV=1,滿足條件時(shí)指示燈變色。這樣就定義好了投幣狀態(tài)的上位機(jī)仿真變量,配合PLC程序可以實(shí)現(xiàn)投幣功能。(3)購(gòu)買狀態(tài)

      定義了投幣狀態(tài),就可以購(gòu)買商品了。當(dāng)選擇指示燈以后,按下它,在出貨口處出現(xiàn)我們要買的商品。這樣定義“選擇”按鈕:雙擊“選擇”按鈕,來(lái)到“動(dòng)畫連接”畫面,選擇“觸敏動(dòng)作”中的“左鍵動(dòng)作”,在動(dòng)作描述中如下定義:按下鼠標(biāo)時(shí),XZ01.PV=1;釋放鼠標(biāo)時(shí),XZ01.PV=0.XZ01.PV與PLC程序中的R205相對(duì)應(yīng),按下可以購(gòu)買商品的選擇鍵,轉(zhuǎn)而執(zhí)行相應(yīng)的PLC程序,同時(shí)消費(fèi)顯示增加相應(yīng)的幣值,余額顯示減少相應(yīng)的幣值,此時(shí)還要在出貨口出現(xiàn)相應(yīng)的商品,這是用“顯示/隱藏”功能來(lái)定義在出貨口中出現(xiàn)相應(yīng)的商品。以01為例,雙擊出貨口處的小商品,來(lái)到“動(dòng)畫連接”,選擇“顯示/隱藏”項(xiàng),定義CX01.PV=1時(shí)顯示。出貨口框架的隱藏/顯現(xiàn)是用程序來(lái)控制的。當(dāng)有一種商品出現(xiàn)在出貨口,就會(huì)顯示

      常工院畢業(yè)設(shè)計(jì)論文

      框架;當(dāng)全部商品均消失后框架隱藏。程序如圖12所示。圖中R210是控制出貨口框架是否出現(xiàn)的繼電器。(4)退幣狀態(tài)

      當(dāng)按下“退幣”按鈕時(shí),PLC進(jìn)行退幣運(yùn)算,所以按下“退幣”按鈕就要與PLC通信,執(zhí)行退幣計(jì)算。下面來(lái)定義退幣按鈕,出現(xiàn)“動(dòng)畫連接”畫面,選擇“觸敏動(dòng)作”中的“左鍵動(dòng)作”,動(dòng)作描述為:按下鼠標(biāo),poiwinJB=0;poiwinTB=1;Tenter.PV=1.釋放鼠標(biāo),Tenter.PV=0;內(nèi)部變量poiwinJB=1是讓投幣框消失,poiwinTB=1是讓退幣框出現(xiàn),Tenter.PV與PLC程序中的R20F對(duì)應(yīng)。退幣框中要有5種硬幣,還要有表示硬幣個(gè)數(shù)的數(shù)字。由于計(jì)算中采用的算法使得退幣時(shí)按照幣值大小順序退幣,例如退5元,只退一個(gè)5元,而不是5個(gè)1元。定義表示硬幣個(gè)數(shù)的變量只用一位數(shù)即可。在退幣時(shí),要退出的硬幣及個(gè)數(shù)顯式,而不退的硬幣隱藏。

      圖12 出貨口框架的隱藏/顯現(xiàn)梯形圖

      定義錢幣時(shí)(以10為例),雙擊10元硬幣,出現(xiàn)“動(dòng)畫連接”畫面,選擇“顯示/隱藏”項(xiàng),在“可見(jiàn)性定義”對(duì)話框中作出的表達(dá)式為TB$100.PV=0。其他硬幣定義方法同上。定義錢幣個(gè)數(shù):雙擊10硬幣個(gè)數(shù)字符“a”,出現(xiàn)“動(dòng)畫連接”畫面,選擇“數(shù)值輸出”中的“模擬”項(xiàng),做出表達(dá)式為TB$100.PV。同時(shí)錢幣個(gè)數(shù)也要定義是否隱藏,定義方法和定義錢幣相同。定義“確認(rèn)”鍵時(shí),按下“確認(rèn)”鍵,代表取走了所有硬幣,完成此次交易,因此退幣“確認(rèn)”的定義很重要。雙擊“確認(rèn)”鍵,出現(xiàn)“動(dòng)畫連接”畫面,選擇“觸敏動(dòng)作”中的“左鍵動(dòng)作”,在動(dòng)作描述欄中定義如下:按下鼠標(biāo)

      常工院畢業(yè)設(shè)計(jì)論文

      poiwinTB=0; 功能:退幣框消失

      TuiBiok.PV=1; 功能:給PLC信號(hào),閉合R0,完成數(shù)據(jù)的初始化

      Poiwindows=0 功能:顯示屏顯示友好界面時(shí)

      為了防止在未取走商品時(shí)退幣,按下“確認(rèn)”鍵又不能返回原始狀態(tài),在描述過(guò)程中加入以下一段程序,強(qiáng)行拋掉以購(gòu)買的商品。CX01.PV=0 CX02.PV=0 CX03.PV=0 CX04.PV=0 CX05.PV=0 CX06.PV=0 CX07.PV=0 CX08.PV=0 釋放鼠標(biāo)時(shí),TuiBiok.PV=0.只是一個(gè)微分信號(hào),不能將R0永遠(yuǎn)置為1。還有一點(diǎn)要注意,“確認(rèn)”鍵也要有隱藏的時(shí)候定義方法如錢幣。

      定義退幣框架:按下“退幣”按鈕后就會(huì)出現(xiàn)退幣框架??梢赃@樣定義:雙擊退幣框架,來(lái)到“動(dòng)畫連接”畫面,選擇“顯示/隱藏”項(xiàng),在“可見(jiàn)性定義”中定義poiwinTB=1時(shí)顯現(xiàn)即可。

      3.5 數(shù)據(jù)連接

      3.5.1 定義I/O設(shè)備

      數(shù)據(jù)庫(kù)是從I/O驅(qū)動(dòng)程序中獲取過(guò)程數(shù)據(jù)的,而數(shù)據(jù)庫(kù)同時(shí)可以與多個(gè)I/O驅(qū)動(dòng)程序進(jìn)行通信,一個(gè)I/O驅(qū)動(dòng)程序也可以連接一個(gè)或多個(gè)設(shè)備。下面創(chuàng)建I/O設(shè)備。(1)在Draw導(dǎo)航器中雙擊“實(shí)時(shí)數(shù)據(jù)庫(kù)”項(xiàng)使其展開,在展開項(xiàng)目中選擇“PLC”項(xiàng)雙擊使其展開后,選擇項(xiàng)目雙擊并定義。(2)單擊“完成”按鈕返回,在“松下電工”項(xiàng)目下增加一項(xiàng)“PLC001”,如果要對(duì)I/O設(shè)備“PLC001”的配置進(jìn)行修改,雙擊項(xiàng)目“PLC001”,會(huì)再次出現(xiàn)PLC001的“I/O設(shè)備定義”對(duì)話框。若要?jiǎng)h除I/O設(shè)備“PLC001”,用鼠標(biāo)右鍵單擊項(xiàng)目“PLC001”,在彈出的右鍵菜單中選擇“刪除”。

      ① 數(shù)據(jù)連接

      剛剛創(chuàng)建了一個(gè)名為“PLC001”的I/O設(shè)備,而且它連接的正是假想的PLC設(shè)備?,F(xiàn)在的問(wèn)題是如何將已經(jīng)創(chuàng)建的多個(gè)數(shù)據(jù)庫(kù)點(diǎn)與PLC聯(lián)系起來(lái),以使這些點(diǎn)的PV參數(shù)值能與I/O設(shè)備PLC進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,這個(gè)過(guò)程就是建立數(shù)據(jù)連接的過(guò)程。由于數(shù)據(jù)庫(kù)可以與多個(gè)I/O設(shè)備進(jìn)行數(shù)據(jù)交換,所以必須指定哪些點(diǎn)與哪些個(gè)I/O設(shè)備建立數(shù)據(jù)鏈接。為方便起見(jiàn),我們將數(shù)據(jù)列整理成如表

      6、表7所示。

      表6 數(shù)字I/O

      常工院畢業(yè)設(shè)計(jì)論文

      續(xù)表 6

      常工院畢業(yè)設(shè)計(jì)論文

      表7 模擬I/O表

      3.5.2 設(shè)計(jì)

      飲料自動(dòng)售貨機(jī)控制要求

      (1)該自動(dòng)售貨機(jī)可以同時(shí)投入5角、1元或5元硬幣,自動(dòng)銷售汽水、果汁和咖啡。

      (2)當(dāng)投入的硬幣總值等于或超過(guò)1.5元時(shí),汽水按鈕指示燈亮;當(dāng)投入的硬幣總值等于或超過(guò)3元時(shí),汽水按鈕和果汁按鈕同時(shí)亮;當(dāng)投入的硬幣總值等于或超過(guò)5元,汽水按鈕、果汁按鈕和咖啡按鈕同時(shí)亮。

      常工院畢業(yè)設(shè)計(jì)論文

      (3)當(dāng)汽水按鈕燈亮?xí)r,按汽水按鈕,則汽水排出10s后自動(dòng)停止,同時(shí)汽水按鈕指示燈閃爍10s。

      (4)當(dāng)果汁按鈕燈亮?xí)r,按果汁按鈕,則果汁排出10s后自動(dòng)停止,同時(shí)果汁按鈕指示燈閃爍10s。

      (5)當(dāng)咖啡按鈕燈亮?xí)r,按咖啡按鈕,則咖啡排出10s后自動(dòng)停止,同時(shí)咖啡按鈕指示燈閃爍10s。

      (6)若投入的硬幣總值超過(guò)所購(gòu)商品的價(jià)格(汽水1.5元,果汁3元,咖啡5元),則找錢指示燈亮,同時(shí)進(jìn)行找錢動(dòng)作。

      圖13 飲料自動(dòng)售貨機(jī)示意圖 I/O地址定義表

      此控制系統(tǒng)可采用自動(dòng)工作方式,輸入信號(hào)為汽水、果汁和咖啡按鈕,5角、1元或5元硬幣投入識(shí)別口記數(shù)手動(dòng)復(fù)位按鈕;出入信號(hào)為汽水、果汁和咖啡排出電磁閥、找錢電磁閥及相應(yīng)指示燈,共7個(gè)輸入點(diǎn),8個(gè)輸出點(diǎn),均為開關(guān)量。I/O地址定義如表8所示。

      表8 飲料自動(dòng)售貨機(jī)控制系統(tǒng)I/O地址定義表

      常工院畢業(yè)設(shè)計(jì)論文 程序設(shè)計(jì)

      常工院畢業(yè)設(shè)計(jì)論文

      3.5.3 運(yùn)行

      保存所有組態(tài)內(nèi)容,然后關(guān)閉所有力控程序。將飲料自動(dòng)售貨機(jī)的PLC程序下傳到PLC裝置中,在切換到離線狀態(tài),然后再次啟動(dòng)力控工程管理器,選擇本工程,并單擊“進(jìn)入運(yùn)行”按鈕啟動(dòng)整個(gè)運(yùn)行系統(tǒng)。

      常工院畢業(yè)設(shè)計(jì)論文 結(jié)束語(yǔ)

      經(jīng)過(guò)幾個(gè)月的學(xué)習(xí)、研究以及吳老師的指導(dǎo),終于按時(shí)完成了畢業(yè)設(shè)計(jì)。設(shè)計(jì)主要研究的是自動(dòng)售貨機(jī)有關(guān)PLC的部分。自動(dòng)售貨機(jī)是由于勞動(dòng)密集型的產(chǎn)業(yè)構(gòu)造向技術(shù)密集型社會(huì)轉(zhuǎn)變的產(chǎn)物。自動(dòng)售貨機(jī)可以充分補(bǔ)充人力資源的不足,適應(yīng)消費(fèi)環(huán)境和消費(fèi)模式的變化,24小時(shí)無(wú)人售貨的系統(tǒng)可以更省力,運(yùn)營(yíng)時(shí)需要的資本少、面積小,有吸引人們購(gòu)物好奇新的自身性能,可以很好地解決人工費(fèi)用的上升的問(wèn)題等各項(xiàng)優(yōu)點(diǎn)。所以說(shuō),自動(dòng)售貨機(jī)是今后飲料銷售方式的一個(gè)很好的發(fā)展趨勢(shì)。它的出現(xiàn)將極大的方便人們購(gòu)買所需的飲品。

      常工院畢業(yè)設(shè)計(jì)論文

      致謝

      經(jīng)過(guò)幾個(gè)月的努力工作,畢業(yè)設(shè)計(jì)在指導(dǎo)老師吳金的悉心指導(dǎo)下終于順利完成了,吳老師他待人和藹可親,在這幾個(gè)月里我們相處的非常融洽,吳老師他社會(huì)實(shí)踐經(jīng)驗(yàn)豐富,工作認(rèn)真踏實(shí),治學(xué)態(tài)度嚴(yán)謹(jǐn),而且他深厚的理論功底及設(shè)計(jì)能力更令我感到欽佩。設(shè)計(jì)期間,吳老師對(duì)我悉心的指導(dǎo),認(rèn)真查閱我的草圖和設(shè)計(jì)說(shuō)明書,令我十分感動(dòng)??傊瑓抢蠋煹娜似芳爸螌W(xué)態(tài)度是我學(xué)習(xí)的楷模和榜樣,在此,我要向指導(dǎo)老師吳金表示感謝。

      在此次設(shè)計(jì)中,也需要感謝的是我的同學(xué)。大家在一起共同奮斗,互相討論,對(duì)我的畢業(yè)設(shè)計(jì)有很大幫助,并且,我們?cè)谝黄鸸餐瑺I(yíng)造了一個(gè)融洽的學(xué)習(xí)生活環(huán)境,建立了良好的友誼。

      參考文獻(xiàn) 程周·可編程序控制器原理與應(yīng)用·北京:高等教育出版社,2003年 2王永華·現(xiàn)代電機(jī)控制及PLC應(yīng)用技術(shù)·北京:北京航空航天大學(xué)出版社,2000年 周美蘭、周封、王岳宇·PLC電氣控制與組態(tài)設(shè)計(jì)·北京:科學(xué)出版社,2003年 吳建強(qiáng)、蔣三勇·可編程控制器原理及應(yīng)用·哈爾濱工業(yè)大學(xué)出版社,2000年 吳中俊、黃永紅·可編程序控制器原理及應(yīng)用·北京:機(jī)械工業(yè)出版社,2003年 張萬(wàn)忠、劉明芹·電器與PLC控制技術(shù)·北京:化學(xué)工業(yè)出版社,2003年 7 王兆義·可編程序控制器教程·北京:機(jī)械工業(yè)出版社,2001年

      第四篇:軟件工程課程設(shè)計(jì)(自動(dòng)售貨機(jī))

      《軟件工程》課程設(shè)計(jì)報(bào)告

      一、問(wèn)題描述

      (一)關(guān)于自動(dòng)售貨機(jī)

      自動(dòng)售貨機(jī)像磁卡電話、銀行柜員機(jī)一樣,以方便、新穎、文明、晝夜服務(wù)等特點(diǎn),成為發(fā)達(dá)國(guó)家不可缺少的便民配套設(shè)施。如今的自動(dòng)售貨機(jī)可以為顧客提供多種服務(wù)。顧客可以根據(jù)自己的需要選擇商品并投入錢幣,售貨機(jī)接收錢幣,售出商品。

      (二)自動(dòng)售貨機(jī)的設(shè)計(jì)

      自動(dòng)售貨機(jī)系統(tǒng)是一種無(wú)人售貨系統(tǒng)。售貨時(shí),顧客把硬幣投入機(jī)器的投幣口中,機(jī)器檢查硬幣的大小、重量、厚度及邊緣類型。有效的硬幣是一元幣、五角幣、一角幣、五分幣和一分幣。其它貨幣都被認(rèn)為是假幣。機(jī)器拒收假幣,并將其從退幣孔退出。當(dāng)機(jī)器接收了有效的硬幣之后,將之送入硬幣儲(chǔ)藏器。顧客支付的貨幣根據(jù)硬幣的面值進(jìn)行累加。

      自動(dòng)售貨機(jī)裝有貨物分配器,每個(gè)分配器中包含0 個(gè)或多個(gè)價(jià)格相同的貨物。顧客通過(guò)選擇貨物分配器來(lái)選擇貨物。如果有貨,且顧客支付的貨幣值不小于該貨物的價(jià)格,貨物將被分配到貨物傳送孔送給顧客,并將找零返回到退幣孔。如果無(wú)貨,則和顧客支付的貨幣值相等的硬幣將被送到退幣孔。如果顧客支付的貨幣值小于所選貨物的價(jià)格,機(jī)器將等待顧客投進(jìn)更多的貨幣。如果顧客決定不買所選擇的貨物,他投放進(jìn)的硬幣將從退幣孔中退出。

      二、需求分析

      (一)UML自動(dòng)售貨機(jī)系統(tǒng)功能需求:

      自動(dòng)售貨機(jī)系統(tǒng)是一種無(wú)一元等3個(gè)硬幣投幣口。顧客確認(rèn)購(gòu)貨后,售貨機(jī)可根據(jù)硬幣的面值進(jìn)行累加。

      自動(dòng)售貨機(jī)裝有貨物分配器。每個(gè)貨物分配器中包含零個(gè)或多個(gè)價(jià)格相同的貨物。顧客通過(guò) 1 選擇貨物分配器來(lái)選擇貨物。如果貨物分配器中有貨物,而且顧客支付的貨幣值不小于該貨物的價(jià)格,貨物將被分配到貨物傳送孔送給顧客,并將適當(dāng)?shù)牧沐X返回到退幣孔。如果分配器是空的,則和顧客支付的貨幣值相等的硬幣將被送加到退幣孔。如果顧客支付的貨幣值少于所選擇的分配器中的貨物的價(jià)格,機(jī)器將等待顧客投進(jìn)更多的貨幣。如果顧客決定不買所選擇的貨物,將所投硬幣從退幣孔退出。

      (二)UML自動(dòng)售貨機(jī)系統(tǒng)控制要求:

      根據(jù)售貨機(jī)自動(dòng)控制系統(tǒng)的流程可以知道自動(dòng)售貨機(jī)的主要系統(tǒng)包括:計(jì)幣系統(tǒng)、比較系統(tǒng)、選擇系統(tǒng)、飲料供應(yīng)系統(tǒng)、退幣系統(tǒng)和報(bào)警系統(tǒng)。

      1.計(jì)幣系統(tǒng):

      當(dāng)有顧額色買飲料時(shí),投入的錢幣經(jīng)過(guò)感應(yīng)器,感應(yīng)器記憶投幣的個(gè)數(shù)關(guān)且傳送到檢測(cè)系統(tǒng)(即電子天平)和計(jì)幣系統(tǒng)。只有當(dāng)電子天平測(cè)量的重量少于誤差值時(shí),允許計(jì)幣系統(tǒng)進(jìn)行疊加錢幣,疊加的錢幣數(shù)據(jù)存放在數(shù)據(jù)寄存器中。如果不正確時(shí),認(rèn)為是假幣。既定出投幣,既定出系統(tǒng),等待新顧客。

      2.比較系統(tǒng):

      投入完畢后,系統(tǒng)會(huì)把錢幣數(shù)據(jù)和可以購(gòu)買飲料的價(jià)格進(jìn)行區(qū)間比較,當(dāng)投入的錢幣小于2元時(shí),指示燈亮,顯示投入的錢幣不足。此時(shí)可以再投幣或選擇退幣。當(dāng)投稿的錢幣在2~3元之間時(shí),汔水選擇指示燈長(zhǎng)亮。當(dāng)大于3元時(shí),汔水和咖啡的指示燈同時(shí)長(zhǎng)亮。此時(shí)可以選擇飲料或選擇退幣。

      3.選擇系統(tǒng):

      比較電路完成后選擇電路指示燈是長(zhǎng)亮的,當(dāng)按下汽水或咖啡選擇時(shí),相應(yīng)的選擇指示燈由長(zhǎng)亮轉(zhuǎn)為以1秒為周期閃爍。當(dāng)飲料供應(yīng)完畢時(shí),閃爍同時(shí)停止。

      4.飲料供應(yīng)系統(tǒng):

      當(dāng)按下選擇按鈕時(shí),相應(yīng)的電磁閥(Y4或Y6)和電機(jī)(Y3或Y5)同時(shí)啟動(dòng)。在飲料輸出的同時(shí),減去相應(yīng)的購(gòu)買錢幣數(shù)。當(dāng)飲料輸出達(dá)到8秒時(shí),電磁閥首先關(guān)斷,小電機(jī)繼續(xù)工作0.5秒后停機(jī)。此小電機(jī)的作用是:在輸出飲料時(shí),加快輸出。在電磁閥關(guān)斷時(shí),給電磁閥加壓作用,加速電磁閥的關(guān)斷。(注:由于該售貨機(jī)是長(zhǎng)期使用,電磁閥使用過(guò)多時(shí),返回彈力減少,不能完全關(guān)斷會(huì)出現(xiàn)漏飲料的現(xiàn)象。此時(shí)電機(jī)Y3和Y5延長(zhǎng)工作0.5秒起到電磁閥加壓的作用,使電磁閥可以完好的關(guān)斷。)

      5.退幣系統(tǒng):

      當(dāng)顧客購(gòu)?fù)觑嬃虾螅嘤嗟腻X幣只要按下退幣按鈕。系統(tǒng)就會(huì)把數(shù)據(jù)寄存器D2內(nèi)的錢幣數(shù)首先除以10得到整數(shù)部分,是1元錢需要退回的數(shù)量,存放在D10里。余數(shù)存放在D11里。再用D11除以5得到的整數(shù)部分是5角錢需要退回的數(shù)量,存放在D12里。余數(shù)存放在D13里。最后D13里面的數(shù)值,就是1角錢需要退回的數(shù)量。在選擇退幣的同時(shí)啟動(dòng)3個(gè)退幣電機(jī)。3個(gè)感應(yīng)器開始計(jì)數(shù),當(dāng)感應(yīng)器記錄的個(gè)數(shù)等于數(shù)據(jù)寄存器退回的幣數(shù)時(shí),退幣電機(jī)停止運(yùn)轉(zhuǎn)。

      6.報(bào)警系統(tǒng):

      報(bào)警系統(tǒng)如果是非故障報(bào)警,只要通過(guò)網(wǎng)絡(luò)通知送液車或者送幣車即可。但是如果是故障報(bào)警則需要通知維修人員到現(xiàn)聲進(jìn)行維修。同時(shí)停止服務(wù),避免造成顧客的損失。

      (三)業(yè)務(wù)流程圖

      錢幣記錄儀對(duì)錢幣前端接受顧客投的進(jìn)行識(shí)別幣判斷退出錢幣發(fā)送信息到分配器判斷沒(méi)有貨物時(shí)發(fā)送信息到前端發(fā)送貨物4

      (四)數(shù)據(jù)流程圖

      錢幣錢幣記錄儀對(duì)分配器反錢幣錢幣進(jìn)行計(jì)算與貨物價(jià)格進(jìn)貨物發(fā)放行比較取走零錢與購(gòu)買的貨物

      三、各種UML圖型及其分析

      (一)用例圖

      1.顧客的用例圖

      inputCoinchooseSodaCustomer

      2.自動(dòng)售貨機(jī)的用例圖

      RegisterDispenserFrontSodaMachine

      (二)類圖

      (三)序列圖

      理想狀態(tài)(不找零錢)的序列圖

      :Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: releaseSoda()8 1.沒(méi)有貨物的序列圖

      :Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: displayPrompt()12: sendReturnCoin()13: returnCoinToFront()14: returnCoin()9 2.3.需找零錢的序列圖

      :Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForChange()13: releaseChange()14: receiveSoda()15: receiveChange()10

      沒(méi)有零錢找給顧客

      :Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForCharge()13: returnNoCharge()14: returnCoinToFront()15: displayPrompt()16: returnSodaToDispenser()17: returnCoin()11 4.5.完整的序列圖

      :Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnNoCharge()6: returnCoinToFront()7: displayPrompt()8: returnCoin()9: End()10: returnSodaFree()11: displayPrompt()12: chooseSoda()13: sendChooseToDispenser()14: checkAvailability()15: returnUnavailability()16: displayPrompt()17: sendReturnCoin()18: returnCoinToFront()19: returnCoin()20: End()21: releaseSoda()22: sendSodaFrice()23: checkForCharge()24: returnNoCharge()25: returnCoinToFront()26: displayPrompt()27: returnSodaToDispenser()28: returnCoin()29: End()30: releaseCharge()31: receiveSoda()32: receiveCharge()33: End()34: receiveSoda()35: End()12

      (四)協(xié)作圖

      1.理想狀態(tài)的協(xié)作圖

      3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer8: sendChooseToDis()2: accept()5: returnSodaFree()1: inputCoin()10: releaseSoda()7: chooseSoda():Front : Customer6: displayPrompt()11: releaseSoda()2.沒(méi)有貨物的協(xié)作圖

      1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()11: displayPrompt()14: returnCoin()13: returnCoinToFront()8: sendChooseToDis()2: accept()5: returnSodaFree()12: sendReturnCoin()10: releaseSoda()3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer 3.需找零錢的協(xié)作圖

      1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()14: receiveSoda()15: receiveChange()13: releaseChange()8: sendChooseToDis()2: accept()5: returnSodaFree()10: releaseSoda()3: getCustomerInput()12: checkForChange()9: checkAvailability()4: checkForSoda():Registe:Dispensrer11: sendSodaPrice()4.沒(méi)有零錢找給顧客的協(xié)作圖

      1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()15: displayPrompt()17: returnCoin()13: returnNoCharge()14: returnCoinToFront()8: sendChooseToDis()16: returnSodaToDispenser()2: accept()5: returnSodaFree()3: getCustomerInput()10: releaseSoda()12: checkForCharge()9: checkAvailability()4: checkForSoda():Registe:Dispensrer11: sendSodaPrice()

      完整的協(xié)作圖

      29: End()33: End()35: End()1: inputCoin()12: chooseSoda():Front : Customer7: displayPrompt()8: returnCoin()11: displayPrompt()16: displayPrompt()19: returnCoin()26: displayPrompt()28: returnCoin()31: receiveSoda()13: sendChooseToDispenser()32: receiveCharge()27: returnSodaToDispenser()34: receiveSoda()10: returnSodaFree()5: returnNoCharge()15: returnUnavailability()6: returnCoinToFront()21: releaseSoda()18: returnCoinToFront()24: returnNoCharge()14: checkAvailability()25: returnCoinToFront()30: releaseCharge()2: accept()17: sendReturnCoin():Dispenser4: checkForSoda()3: getCustomerInput()22: sendSodaFrice()23: checkForCharge():Register15 5.(五)狀態(tài)圖

      提示投幣do/ 請(qǐng)求投幣do/ 提示是假幣假幣do/ 檢查硬幣真幣否購(gòu)買do/ 存儲(chǔ)硬幣,計(jì)算貨幣總值do/ 確認(rèn)投完硬幣有do/ 請(qǐng)求選擇商品選擇貨品do/ 提示無(wú)貨無(wú)貨do/ 檢測(cè)貨品存量有貨計(jì)算小于do/ 比較貨幣總值和貨物價(jià)值do/ 提示貨幣不足不小于確認(rèn)do/ 確認(rèn)顧客購(gòu)買do/ 送出貨品,請(qǐng)求取貨有零錢退幣無(wú)零錢do/ 請(qǐng)求退幣不購(gòu)買顯示do/ 提示交易完成17

      (六)活動(dòng)圖

      1.投幣的活動(dòng)圖

      投幣確認(rèn)投幣完成2.選擇貨物的活動(dòng)圖

      請(qǐng)求選擇輸入貨物確認(rèn)選擇貨物ID 3.前端的活動(dòng)圖

      接受貨幣顯示可購(gòu)顯示面值貨物過(guò)小顯示沒(méi)有該貨物接受飲料顯示沒(méi)有零錢找零錢退貨幣 19

      貨幣記錄儀的活動(dòng)圖

      接受從前端來(lái)的錢幣判斷錢幣發(fā)送信息給分配儀發(fā)送貨物金額給前端返回錢幣計(jì)算零錢20 4.5.分配器的活動(dòng)圖

      接受貨幣啟示錄儀的信息發(fā)送貨物提示沒(méi)有該貨物 21

      (七)組件圖

      CustomerSodaMachineFrontRegisterDispenserDB_0

      (八)配置圖

      Clint數(shù)據(jù)庫(kù)

      (九)數(shù)據(jù)模型圖

      第五篇:畢業(yè)論文-自動(dòng)售貨機(jī)匯總

      畢業(yè)設(shè)計(jì)說(shuō)明書

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      摘 要

      隨著社會(huì)的進(jìn)步,科學(xué)的發(fā)展,生活水平的提高,單一傳統(tǒng)的生活方式已經(jīng)不能滿足現(xiàn)代居民對(duì)高品質(zhì)生活的追求,在這種現(xiàn)象下,許多自動(dòng)化設(shè)備應(yīng)時(shí)代應(yīng)潮流而生。自動(dòng)售貨機(jī)作為自動(dòng)化設(shè)備中的最常見(jiàn)的設(shè)備之一,由于其眾多的優(yōu)點(diǎn),已經(jīng)在世界各地得到了普遍的發(fā)展并且還在不斷地發(fā)展。自動(dòng)售貨機(jī)掀起了繼百貨商店和超市之后的又一零售狂潮,這種智能售貨系統(tǒng)在車站、教學(xué)樓、辦公樓等公共場(chǎng)所有著廣闊的發(fā)展前景。

      本文在對(duì)自動(dòng)售貨機(jī)的背景歷史和發(fā)展趨勢(shì)進(jìn)行了研究介紹之后,對(duì)課題中的自動(dòng)售貨機(jī)系統(tǒng)進(jìn)行了整體的設(shè)計(jì)及規(guī)劃。該自動(dòng)售貨機(jī)控制系統(tǒng)是基于EDA技術(shù)來(lái)實(shí)現(xiàn)的,同時(shí),利用Altera公司的QuartusⅡ14.0作為其軟件開發(fā)平臺(tái),利用VHDL編程語(yǔ)言輸入的方式完成了軟件設(shè)計(jì)。本設(shè)計(jì)方案對(duì)整個(gè)控制系統(tǒng)進(jìn)行了層次化的編寫。把整個(gè)系統(tǒng)劃分為6個(gè)子模塊,分別是找零計(jì)算模塊、確認(rèn)取消控制模塊、找零控制模塊、總錢數(shù)加和模塊、顯示模塊、鎖定模塊,并且對(duì)每一個(gè)子模塊進(jìn)行了詳細(xì)的軟件設(shè)計(jì)。在頂層文件中通過(guò)調(diào)用各個(gè)子模塊來(lái)完成vhdl程序的設(shè)計(jì)。

      最后在對(duì)每一個(gè)子模塊完成了功能仿真測(cè)試驗(yàn)證,同時(shí)也對(duì)整個(gè)系統(tǒng)進(jìn)行頂層設(shè)計(jì)和仿真測(cè)試,測(cè)試結(jié)果表明了整個(gè)控制系統(tǒng)的合理性以及正確性。整個(gè)控制系統(tǒng)設(shè)計(jì)簡(jiǎn)單合理,操作簡(jiǎn)單,滿足售貨機(jī)的基本要求,具有一定的實(shí)用意義。關(guān)鍵詞:自動(dòng)售貨機(jī)、VHDL、EDA、QuartusⅡ

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      Abstract

      Abstract: With the progress of the society, the development of the scientific, and the improvement of living standards, single traditional way of life has not meet modern residents' pursuit of high quality life, under this kind of phenomenon, a number of automation equipment should come into being.Vending machine as one of the most common equipment in the automation equipment, has been develop all over the world and develop constantly because it has many advantages.Vending machines set off after department stores and supermarkets in another retail frenzy, this intelligent vending system has broad prospects for development in the station, school buildings, office buildings and other public places.Based on the background of the vending machine, the article designs and plans the project of vending machine system after introducing the history and development trend.The vending machine control system is based on the EDA technology to realize, at the same time, it used Quarter Ⅱ 14.0 of the Altera corporation as the software development platform, taking advantage of VHDL programming language input completed the software design.The design scheme is hierarchical write for the whole hierarchical control system.The whole system is divided into six sub modules, change calculation module, confirming cancellation control module, the change control module, total amount module, display module, locking module, and each child module software design is design in detail.On the top floor file by calling each module to complete the VHDL program design.Finally, The design scheme completed the function simulation test to verify for each child modules, and conducts Top-level design and simulation test for the whole system, the test results show the rationality and validity of the whole control system.The design of the whole control system is simple and reasonable, the operation is simple, it meets the basic requirement of the vending machine and has certain practical significance.keywords :The vending machine、EDA、VHDL、QuqrtusⅡ

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真 緒論

      1.1課題研究背景

      早在20世紀(jì)30年代,出售香煙的自動(dòng)售貨機(jī)就在美國(guó)被研制出來(lái)了,此后,各類自動(dòng)售貨機(jī)也相繼被研究出來(lái)。到了20世紀(jì)的70年代,自動(dòng)售貨機(jī)在歐美地區(qū)和日本的發(fā)展已經(jīng)相當(dāng)?shù)钠毡椤T缭?998的數(shù)據(jù)統(tǒng)計(jì)中,日本就已經(jīng)有了550萬(wàn)臺(tái)各式各樣各種功能的自動(dòng)售貨機(jī),而美國(guó)所擁有的自動(dòng)售貨機(jī)的數(shù)量更是高達(dá)700萬(wàn)臺(tái),也就是說(shuō)在上個(gè)世紀(jì)末在日本平均23個(gè)人就擁有一臺(tái)自動(dòng)售貨機(jī),而美國(guó)則是平均35個(gè)人就擁有一臺(tái)。

      自動(dòng)售貨機(jī)的優(yōu)點(diǎn)之一就是無(wú)需人工看守,這點(diǎn)在當(dāng)今世界人工勞動(dòng)力成本普遍急劇上升的年代成為了各商家最看重的一點(diǎn),它可以24小時(shí)不斷的進(jìn)行自動(dòng)售貨操作,在為商家降低成本的同時(shí)大大的增加了收益。同時(shí),其操作方便簡(jiǎn)單、占地面積小、全自動(dòng)化等優(yōu)點(diǎn)使其迅速在全世界各地普及開來(lái)。日本作為使用自動(dòng)售貨機(jī)最普遍的國(guó)家,其國(guó)內(nèi)的罐裝飲料有大約70%是通過(guò)自動(dòng)售貨機(jī)來(lái)出售的,銷售額為世界第一;在西班牙,全國(guó)零售業(yè)的銷售額一半以上是由自動(dòng)售貨機(jī)來(lái)完成的,并且每年的速度都在不斷增長(zhǎng)。從這些數(shù)據(jù)可以看出自動(dòng)售貨機(jī)所涉及的行業(yè)在零售行業(yè)中占據(jù)著不可替代的重要作用。

      1.2課題研究的目的與意義

      隨著社會(huì)的不斷發(fā)展與進(jìn)步,城鎮(zhèn)居民的收入日漸增多,生活條件也越來(lái)越好,城鎮(zhèn)居民的消費(fèi)方式和消費(fèi)心理也正慢慢發(fā)生改變??旖葑詣?dòng)化的生活方式正是快節(jié)奏生活下人們所追求的一種高品質(zhì)的生活方式。而自動(dòng)售貨機(jī)作為商業(yè)自動(dòng)化的一種常見(jiàn)設(shè)備,無(wú)論是在國(guó)內(nèi)還是國(guó)外,都深受消費(fèi)者的喜愛(ài),時(shí)代的發(fā)展為自動(dòng)售貨機(jī)提供了良好的發(fā)展條件。然而,我國(guó)的自動(dòng)售貨機(jī)行業(yè)的發(fā)展卻遠(yuǎn)遠(yuǎn)及不上歐美和日本等國(guó)家,究其原因一個(gè)方面是因?yàn)槲覈?guó)的自動(dòng)售貨機(jī)行業(yè)發(fā)展比較晚,另外一方面是因?yàn)槲覈?guó)要普遍發(fā)展自動(dòng)售貨機(jī)也有著技術(shù)的瓶頸。自動(dòng)售貨機(jī)是一種內(nèi)部集成度高、技術(shù)復(fù)雜的高科技設(shè)備,而現(xiàn)在我國(guó)多數(shù)企業(yè)都缺乏自主研發(fā)自主創(chuàng)新的精神,使得自動(dòng)售貨機(jī)的很多關(guān)鍵零件都要從國(guó)外進(jìn)口,因此想要在國(guó)內(nèi)發(fā)展這一行業(yè),解決相關(guān)技術(shù)問(wèn)題自主開發(fā)自動(dòng)售貨機(jī)是最重要的。

      我國(guó)引進(jìn)自動(dòng)售貨機(jī)已有差不多二十年的時(shí)間,然而至今在國(guó)內(nèi)運(yùn)營(yíng)和自主研發(fā)制造自動(dòng)售貨機(jī)的企業(yè)少之又少,國(guó)外的自動(dòng)售貨機(jī)還毫無(wú)疑問(wèn)的占據(jù)著我國(guó)絕大部分的的市場(chǎng)。這種現(xiàn)象嚴(yán)重阻礙了我國(guó)發(fā)展自動(dòng)售貨機(jī)行業(yè)。因此,加快腳步和加大力度去自主研制自動(dòng)售貨機(jī)是很有必要的,同時(shí),更要時(shí)時(shí)關(guān)注最先進(jìn)的科學(xué)技術(shù),盡可能的把這些高科運(yùn)用到自動(dòng)售貨機(jī)行業(yè)中去,只有這樣才能讓該行業(yè)在我國(guó)得到更好更快的的發(fā)展。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      1.3 國(guó)內(nèi)外研究現(xiàn)狀及趨勢(shì)

      目前,自動(dòng)售貨機(jī)已經(jīng)在發(fā)達(dá)國(guó)家得到了廣泛的運(yùn)用,而我國(guó)由于行業(yè)起步較晚的原因使得各方面技術(shù)還不夠成熟,還需要加大力度去積極發(fā)展這一行業(yè)。在2012六月份,我國(guó)各式各類的自動(dòng)售貨機(jī)的總量只有三萬(wàn)臺(tái),而在2013六月份,該數(shù)量已經(jīng)上升至五萬(wàn)臺(tái),增長(zhǎng)幅度高達(dá)差不多50%,當(dāng)然由自動(dòng)售貨機(jī)帶來(lái)的營(yíng)業(yè)額也是非常龐大的。隨著科技的不斷發(fā)展,如今的自動(dòng)售貨機(jī)也越來(lái)越先進(jìn),其中設(shè)備的科技含量也日漸增高。自動(dòng)售貨機(jī)的發(fā)展歷程如圖所示:

      目前我國(guó)生產(chǎn)自動(dòng)售貨機(jī)主要有以下幾家比較知名的廠家:上海艾絲明自動(dòng)售貨機(jī)有限公司,主要生產(chǎn)咖啡機(jī);天津歌德公司,主要生產(chǎn)咖啡機(jī);大連富士冰山公司,主要生產(chǎn)飲料機(jī)。除此之外還有青島澳柯瑪自動(dòng)商用設(shè)備有限公司、天津奧萊特自動(dòng)售貨機(jī)有限公司等公司生產(chǎn)的自動(dòng)售貨機(jī)也是比較常見(jiàn)的。

      自動(dòng)售貨機(jī)的發(fā)展趨勢(shì)是由于社會(huì)的產(chǎn)業(yè)結(jié)構(gòu)發(fā)生變化的產(chǎn)物。由于社會(huì)的消費(fèi)方式、銷售環(huán)境等的變化,自動(dòng)售貨機(jī)的售貨方式作為一種新的流通渠道,自然而然自動(dòng)售貨機(jī)也就應(yīng)時(shí)代發(fā)展而生了。自動(dòng)售貨機(jī)從一開始的功能單一結(jié)構(gòu)單一發(fā)展到現(xiàn)在的功能多元化個(gè)性化,該行業(yè)也成為信息化的一種表現(xiàn)。而且自動(dòng)售貨機(jī)的發(fā)展為了適應(yīng)社會(huì)的發(fā)展也將會(huì)更加合理化人性化,它已不僅僅是一臺(tái)用來(lái)銷售商品的機(jī)器,隨著科技的發(fā)展,通信的發(fā)展,互聯(lián)網(wǎng)的發(fā)展,它也必將向著相互連通的信息生態(tài)圈的方向發(fā)展,必將發(fā)展成為一種集商品銷售、信息流通等于一體的高科技的終端設(shè)備。

      1.4 課題研究的主要內(nèi)容

      本文主要研究利用自動(dòng)售貨機(jī)來(lái)完成商品處理、貨幣找零、出貨操作、led顯示等功能。完成的工作主要包括以下幾個(gè)方面:

      1.對(duì)自動(dòng)售貨機(jī)的歷史及發(fā)展前景做了簡(jiǎn)單的陳述。

      2.對(duì)課題中用的比較多的EDA技術(shù)以及VHDL語(yǔ)言、QuarterⅡ軟件開發(fā)平臺(tái)的相關(guān)知識(shí)做了簡(jiǎn)單的介紹。

      3.在對(duì)自動(dòng)售貨機(jī)的整個(gè)控制系統(tǒng)進(jìn)行了一定的研究和分析之后,提出了整體設(shè)計(jì)方案。

      4.對(duì)各個(gè)子模塊功能的利用vhdl語(yǔ)言程序的輸入的方式進(jìn)行了詳細(xì)的分析設(shè)計(jì),并且對(duì)每一個(gè)子模塊進(jìn)行了仿真測(cè)試,對(duì)其相對(duì)應(yīng)的功能進(jìn)行了驗(yàn)證。最后對(duì)整個(gè)系統(tǒng)進(jìn)行頂層設(shè)計(jì),同時(shí)也對(duì)整個(gè)系統(tǒng)進(jìn)行了仿真,對(duì)整個(gè)自動(dòng)售貨機(jī)的功能進(jìn)行了驗(yàn)證。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真 相關(guān)技術(shù)簡(jiǎn)介

      2.1 EDA技術(shù)

      電子設(shè)計(jì)自動(dòng)化技術(shù)就是常見(jiàn)的EDA技術(shù)的簡(jiǎn)稱,這種技術(shù)在現(xiàn)代電子設(shè)計(jì)中有著非常重要的作用。EDA技術(shù)以強(qiáng)大的計(jì)算機(jī)為依賴,在相應(yīng)的軟件開發(fā)平臺(tái)上,利用硬件描述語(yǔ)言(HDL)來(lái)完成系統(tǒng)的各項(xiàng)功能的邏輯描述。

      EDA技術(shù)有著豐富的內(nèi)容,與電子技術(shù)很多領(lǐng)域有著密不可分的聯(lián)系,所以其發(fā)展同計(jì)算機(jī)輔助工程、電子設(shè)計(jì)技術(shù)以及集成電路的大規(guī)模設(shè)計(jì)技術(shù)等都是同步發(fā)展的。就近30多年來(lái)其發(fā)展可分為以下階段:

      ? 上世紀(jì)70年代可編程邏輯器件開始問(wèn)世,集成電路得到廣泛應(yīng)用,CAD技術(shù)也開始發(fā)展,EDA技術(shù)也就是在這個(gè)時(shí)候開始出現(xiàn)。

      ? 上世紀(jì)80年代進(jìn)入商用的復(fù)雜可編程邏輯器件、FPGA器件的出現(xiàn)、CAD技術(shù)廣泛的應(yīng)用、各類硬件描述語(yǔ)言的相繼出現(xiàn),這些解決EDA技術(shù)要廣泛運(yùn)用過(guò)程中所遇到的各種問(wèn)題,為其規(guī)范應(yīng)用奠定了基礎(chǔ)。

      ? 上世紀(jì)90年代,CAD、CAE等技術(shù)已經(jīng)被廣泛應(yīng)用在電子領(lǐng)域方面。同時(shí),通信技術(shù)的發(fā)展、計(jì)算機(jī)技術(shù)的發(fā)展使得EDA技術(shù)有了更大的發(fā)展空間。

      發(fā)展至現(xiàn)在的EDA技術(shù),CPLD和FPGA等可編程邏輯器件是被應(yīng)用得最多的,這些器件是利用硬件編程語(yǔ)言來(lái)進(jìn)行軟件設(shè)計(jì)以完成功能設(shè)計(jì),這樣的設(shè)計(jì)方式簡(jiǎn)單方便,有著非常大的靈活性??删幊踢壿嬈骷涂删幊陶Z(yǔ)言的發(fā)展改變了傳統(tǒng)的電子設(shè)計(jì)的設(shè)計(jì)方法和設(shè)計(jì)理念,同時(shí)也讓EDA技術(shù)有了更快的發(fā)展。EDA技術(shù)在現(xiàn)代社會(huì)的發(fā)展及應(yīng)用范圍是非常廣泛的,不僅在農(nóng)業(yè)、醫(yī)學(xué)、軍事等領(lǐng)域被應(yīng)用,在通信、化學(xué)、交通、航天等領(lǐng)域更是有著不可替代的重要作用。(EDA技術(shù)與VHDL P1)

      2.2 VHDL VHDL的全稱是Very High Speed Circuit Language,與另一種VerilogHDL語(yǔ)言是現(xiàn)在電子設(shè)計(jì)自動(dòng)化中用的最多的兩種硬件描述語(yǔ)言,現(xiàn)在用的比較多的EDA工具基本都支持這兩種語(yǔ)言,在電子領(lǐng)域中已經(jīng)成為了通用的硬件描述語(yǔ)言。

      VHDL是一種無(wú)關(guān)設(shè)計(jì)平臺(tái)、無(wú)關(guān)具體的硬件電路的語(yǔ)言。跟一般的高級(jí)語(yǔ)言類似,不過(guò)卻有著一般高級(jí)語(yǔ)言沒(méi)有的具有硬件特性的語(yǔ)句,能很好的描述數(shù)字電路的功能和結(jié)構(gòu)。VHDL的結(jié)構(gòu)特點(diǎn)是設(shè)計(jì)一項(xiàng)工程或?qū)嶓w,一個(gè)元件、一個(gè)系統(tǒng)或者一個(gè)電路模塊都可以設(shè)計(jì)成為一個(gè)實(shí)體,被設(shè)計(jì)好的實(shí)體可以很方便的被調(diào)用,這是VHDL很大的一個(gè)特點(diǎn)。

      與其他的硬件描述語(yǔ)言相比,VHDL有以下特點(diǎn):

      ? 設(shè)計(jì)好的模塊可以任意無(wú)數(shù)次的被調(diào)用,很好的做到了資源共享和重復(fù)利用這一點(diǎn),大大減少了設(shè)計(jì)人員的工作量和工作時(shí)間。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      ? 語(yǔ)言的設(shè)計(jì)描述與器件無(wú)關(guān),設(shè)計(jì)人員在進(jìn)行電路的設(shè)計(jì)的時(shí)候,可以把精力放在優(yōu)化電路上而不用先去考慮器件的選擇,VHDL可以采用不同的器件來(lái)實(shí)現(xiàn)已經(jīng)描述好的電路設(shè)計(jì)。

      ? 語(yǔ)言功能強(qiáng)大,設(shè)計(jì)方法靈活,支持各式各樣的設(shè)計(jì)方法,無(wú)論是自頂向下還是自底向上的設(shè)計(jì)方式在VHDL中都可以靈活的被運(yùn)用。同時(shí),模塊化設(shè)計(jì),層次化設(shè)計(jì)等設(shè)計(jì)方法也是被支持的。

      ? 具有很強(qiáng)的移植能力,對(duì)于同一個(gè)VHDL程序,它可以在不同的工作平臺(tái)、綜合器、模擬器之間相互移植。

      一個(gè)完整的VHDL程序代碼結(jié)構(gòu)包括4個(gè)模塊,庫(kù)和程序包的模塊、實(shí)體模塊、結(jié)構(gòu)體模塊、配置結(jié)構(gòu)模塊。其結(jié)構(gòu)圖如圖所示:

      2.3 QuartusⅡ軟件

      QuartusⅡ是由Altera公司開發(fā)的一種EDA工具,是經(jīng)過(guò)A+plus、然后到MAX+plus,再到MAX+plusⅡ發(fā)展而來(lái)的。QuartusⅡ支持多種輸入方式,例如原理圖輸入,硬件編程語(yǔ)言輸入等,在使用QuartusⅡ軟件時(shí),它會(huì)將設(shè)計(jì)人員設(shè)計(jì)好的硬件編程語(yǔ)言或者原理圖等自動(dòng)轉(zhuǎn)換目標(biāo)文件,最后將目標(biāo)文件下載到器件中。通過(guò)DSP Builder工具,QuartusⅡ能很好的跟Matlab、Simulink等結(jié)合起來(lái),從而能夠方便快捷的實(shí)現(xiàn)不同的DSP系統(tǒng)的設(shè)計(jì)。因?yàn)橛兄?jiǎn)單直接的入口和很強(qiáng)的設(shè)計(jì)能力,以及使用靈活、方便快捷的優(yōu)點(diǎn),所以很受廣大設(shè)計(jì)者的青睞。

      QuartusⅡ軟件有以下特點(diǎn):

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      ? 支持多平臺(tái)的設(shè)計(jì)輸入,結(jié)合其處理和驗(yàn)證功能使其成為一個(gè)全集化的開發(fā)平臺(tái),讓開發(fā)周期變短。

      ? 是一個(gè)與結(jié)構(gòu)無(wú)關(guān)的開發(fā)工具,QuartusⅡ通過(guò)把Cyclone、APEX、Mercury等設(shè)計(jì)環(huán)境轉(zhuǎn)化為所需要的格式,真真正正的成為唯一一個(gè)與結(jié)構(gòu)無(wú)關(guān)的開發(fā)工具。

      ? 具有很具有全面的可設(shè)計(jì)開發(fā)資源,是一個(gè)集系統(tǒng)設(shè)計(jì)、軟件開發(fā)、邏輯設(shè)計(jì)于一體的綜合性開發(fā)平臺(tái)。QuartusⅡ的編程設(shè)計(jì)流程圖所示:

      2.4 Modelsim仿真工具

      Modelsim提供了可以與其他EDA工具(如QuartusⅡ)的接口工具。Modelsim支持Verilog、vhdl或者二者相結(jié)合的混合。針對(duì)不同的使用環(huán)境,Modeislm分為不同的版本,常見(jiàn)的版本有:Modelsim AE、Modelsim ASE、Modelsim SE等。在本文的設(shè)計(jì)的版本是Modelsim ASE10.1版本。VHDL的仿真流程如圖所示,首先在VHDl仿真器中對(duì)已設(shè)計(jì)好的VHDL源代碼進(jìn)行編譯,等到代碼被編譯正確后就會(huì)被轉(zhuǎn)換為中間格式,中間數(shù)據(jù)的結(jié)果將會(huì)保存在仿真數(shù)據(jù)庫(kù)中,一般來(lái)說(shuō),VHDL源代碼在編譯好的仿真庫(kù)就是WORK庫(kù)。設(shè)計(jì)者通過(guò)編寫TestBeach文件來(lái)干預(yù)仿真的過(guò)程,在本文的設(shè)計(jì)中,計(jì)時(shí)通過(guò)編寫不同的TestBeach文件來(lái)對(duì)不同的模塊代碼進(jìn)行仿真測(cè)試。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真 系統(tǒng)總體方案

      3.1 設(shè)計(jì)要求

      ? 本文設(shè)計(jì)的售貨機(jī)系統(tǒng)中只有一種,價(jià)格為13元;

      ? 可以投入三種不同的貨幣來(lái)購(gòu)買商品,分別是1元、5元、10元;

      ? 每次只允許購(gòu)買一個(gè)商品,若想要購(gòu)買多個(gè)商品,則需要重復(fù)執(zhí)行購(gòu)買操作; ? 售貨機(jī)的顯示器會(huì)實(shí)時(shí)更新顯示總共投入的貨幣的總額;

      ? 當(dāng)投入貨幣后,如果不想購(gòu)買商品了則可以通過(guò)按取消鍵來(lái)退還投入的貨幣,否則就按確定鍵來(lái)獲取商品;

      ? 設(shè)置兩個(gè)指示燈,分別是購(gòu)買指示燈和取消指示燈,當(dāng)顧客按下確定鍵后購(gòu)買指示燈亮起;若顧客按下取消鍵,則取消指示燈亮起;

      3.2 總體設(shè)計(jì)

      通過(guò)分析系統(tǒng)的設(shè)計(jì)要求以及考慮到系統(tǒng)本身,本文對(duì)整個(gè)總動(dòng)售貨機(jī)系統(tǒng)采用自頂向下的設(shè)計(jì)方法,自頂向下的設(shè)計(jì)方法如圖所示,采用自頂向下的設(shè)計(jì)方法的優(yōu)點(diǎn)是很明顯的。由于系統(tǒng)設(shè)計(jì)從頂層開始,所以在進(jìn)行設(shè)計(jì)時(shí)就清楚實(shí)現(xiàn)整個(gè)系統(tǒng)的性能狀況。隨著設(shè)計(jì)向下一級(jí)進(jìn)行,系統(tǒng)的性能就能進(jìn)一步得到細(xì)化和表達(dá),并且可以根據(jù)個(gè)人需要隨時(shí)修改和調(diào)整,縮短了設(shè)計(jì)周期。

      對(duì)整個(gè)系統(tǒng)的頂層文件進(jìn)行如下端口設(shè)計(jì):

      ? 輸入端口:clk,輸入時(shí)鐘信號(hào);rst,復(fù)位信號(hào);C1,投入一張1元貨幣;C5,投入一張5元貨幣;C10,投入一張10元貨幣;ok_in,確認(rèn)信號(hào);cancel_in,取消信號(hào)。

      ? 輸出端口:led_buy,確認(rèn)購(gòu)買指示燈;led_cancel,取消購(gòu)買指示燈;en_deliver,出貨信號(hào);led1,投入貨幣總數(shù)的個(gè)位數(shù)(單位是元);led10,投入貨幣總數(shù)的十位數(shù)(單位是元)。

      ? 內(nèi)部可讀輸出端口:RC1,1元退幣控制信號(hào);RC5,5元退幣控制信號(hào);RC10,10元退幣控制信號(hào)。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      端口原理圖如圖所示:

      在確定了整個(gè)系統(tǒng)的輸入輸出端口后,給出自動(dòng)售貨機(jī)的系統(tǒng)內(nèi)部的工作原理: 當(dāng)系統(tǒng)接收到復(fù)位信號(hào)后,其他所有的控制信號(hào)和標(biāo)識(shí)信號(hào)都清空為零,系統(tǒng)處于等待指令的狀態(tài)。

      當(dāng)系統(tǒng)接收到相關(guān)信號(hào)輸入時(shí),系統(tǒng)開始工作。顧客確定購(gòu)買商品時(shí),開始投入貨幣,當(dāng)投入貨幣為1元、5元、10元時(shí),將分別產(chǎn)生一個(gè)時(shí)鐘寬度的信號(hào)C1、C5、C10。所投入的貨幣總額會(huì)實(shí)時(shí)計(jì)算并通過(guò)顯示器顯示出來(lái)。

      當(dāng)顧客確定購(gòu)買商品并按下確認(rèn)鍵的時(shí)候,自動(dòng)售貨機(jī)會(huì)產(chǎn)生一個(gè)時(shí)鐘信號(hào)ok_in,而且由led_buy控制的代表確認(rèn)購(gòu)買的指示燈會(huì)閃爍。如果投入貨幣的總額大于商品價(jià)格時(shí),則送出商品并計(jì)算出余額操作退出余額,此時(shí)出貨指示燈閃爍。如果投入的貨幣不足以支付商品價(jià)格,自動(dòng)售貨機(jī)會(huì)退還所有貨幣。

      當(dāng)顧客投入貨幣又不想購(gòu)買商品時(shí),就可以通過(guò)按下取消鍵來(lái)取消購(gòu)買,這時(shí)系統(tǒng)會(huì)產(chǎn)生一個(gè)時(shí)鐘信號(hào)cancel_in,同時(shí)通過(guò)找零控制模塊來(lái)執(zhí)行相應(yīng)操作退還貨幣。如果確認(rèn)鍵或者取消鍵被按下后,自動(dòng)售貨機(jī)會(huì)產(chǎn)生一個(gè)lock_out_entry內(nèi)部信號(hào),當(dāng)發(fā)出信號(hào)后,所有的操作都是無(wú)效的。

      當(dāng)完成所有的操作后,將產(chǎn)生一個(gè)clear清除信號(hào),此時(shí)所有的信號(hào)都會(huì)被清除,自動(dòng)售貨機(jī)開始等待下一次操作。

      整個(gè)系統(tǒng)的投幣購(gòu)物流程如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      將整個(gè)系統(tǒng)劃分成六個(gè)模塊,分別是購(gòu)買余額計(jì)算模塊、找零控制模塊、確認(rèn)取消模塊、總額加和模塊、鎖定模塊和顯示模塊。各模塊的功能:

      余額計(jì)算模塊:當(dāng)顧客確認(rèn)購(gòu)買商品并按下了售貨機(jī)的確認(rèn)鍵后,找零模塊就開始計(jì)算出應(yīng)該退還的余額。

      找零控制模塊:在顧客確定購(gòu)買商品后執(zhí)行找零操作,或者是在顧客取消購(gòu)買后執(zhí)行退還原款操作。

      確認(rèn)取消模塊:顧客在選擇購(gòu)買商品或者取消購(gòu)買商品后,將輸入的確認(rèn)信號(hào)或者取消信號(hào)分別轉(zhuǎn)換成單時(shí)鐘周期的控制信號(hào),并且控制相對(duì)應(yīng)的信號(hào)燈的亮和不亮。

      總額加和模塊:不斷的更新并計(jì)算售貨機(jī)收到的總貨幣數(shù)量。

      鎖定模塊:可以按下確認(rèn)鍵或者取消鍵,當(dāng)其中任意一個(gè)鍵被按下后,整個(gè)自動(dòng)售貨機(jī)系統(tǒng)的按鍵的輸入都是無(wú)效的。

      顯示模塊:通過(guò)控制兩個(gè)顯示器(led1和led10)來(lái)顯示所投入貨幣的總額。整個(gè)自動(dòng)售貨機(jī)的內(nèi)部工作過(guò)程的總體框圖如圖所示:

      對(duì)每一個(gè)子模塊進(jìn)行VHDL設(shè)計(jì),然后對(duì)其進(jìn)行編譯,再編譯沒(méi)有錯(cuò)誤后,通過(guò)編寫TestBeach文件來(lái)對(duì)其進(jìn)行仿真測(cè)試來(lái)驗(yàn)證每一個(gè)模塊的功能是否正確。在頂層文件的

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      vhdl程序設(shè)計(jì)中,通過(guò)特定的例化語(yǔ)句將已經(jīng)設(shè)計(jì)好的6個(gè)子模塊進(jìn)行例化,然后直接對(duì)各個(gè)模塊進(jìn)行調(diào)用,整個(gè)頂層程序的設(shè)計(jì)就是通過(guò)調(diào)用底層的6個(gè)模塊來(lái)實(shí)現(xiàn)的,完成頂層設(shè)計(jì)后再對(duì)整個(gè)系統(tǒng)進(jìn)行仿真測(cè)試。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真 軟件設(shè)計(jì)及仿真測(cè)試

      4.1確認(rèn)取消模塊(ok_cancel模塊)

      4.1.1設(shè)計(jì)思想及工作原理

      在確認(rèn)取消模塊中,顧客可以在投幣之后選擇繼續(xù)購(gòu)買商品或者取消購(gòu)買商品,若確定購(gòu)買則會(huì)產(chǎn)生一個(gè)確認(rèn)信號(hào),而該模塊可以把該信號(hào)轉(zhuǎn)換成單時(shí)鐘的控制信號(hào),同時(shí)確定購(gòu)買led_buy顯示燈會(huì)亮;同樣,若顧客按下取消健,則該模塊會(huì)將輸入的取消信號(hào)轉(zhuǎn)換單時(shí)鐘周期的控制信號(hào),同時(shí)確定購(gòu)買cancel_buy顯示燈會(huì)變亮。

      確認(rèn)取消模塊有以下輸入端口:

      ? 輸入端口:clk,輸入時(shí)鐘信號(hào);rst,復(fù)位信號(hào);clear,清除信號(hào);lock_out_entry,鎖定信號(hào);ok_in,確認(rèn)信號(hào);cancel_in,取消信號(hào)。? 輸出端口:ok,內(nèi)部時(shí)鐘確認(rèn)控制信號(hào);cancel,內(nèi)部時(shí)鐘取消控制信號(hào);led_buy,確認(rèn)購(gòu)買指示燈控制信號(hào);led_cancel,取消購(gòu)買指示燈控制信號(hào)。電路原理圖如圖所示:

      該模塊的工作過(guò)程如下:首先系統(tǒng)復(fù)位,等待確認(rèn)購(gòu)買信號(hào)或者取消購(gòu)買信號(hào)的輸入,當(dāng)收到信號(hào)后,系統(tǒng)會(huì)根據(jù)接收到的信號(hào)立即生成一個(gè)相對(duì)應(yīng)的內(nèi)部控制信號(hào)ok信號(hào)或者cancel信號(hào)。同時(shí),指示燈會(huì)根據(jù)接收到的控制信號(hào)led_buy或者led_cancel來(lái)顯示燈的亮和滅。此過(guò)程中,當(dāng)系統(tǒng)第一次接收到確認(rèn)購(gòu)買信號(hào)或者取消信號(hào)后,將會(huì)岸上產(chǎn)生一個(gè)鎖定信號(hào)lock_out_entry,當(dāng)接收到此信號(hào)后,整個(gè)系統(tǒng)的所有操作都會(huì)無(wú)效,直到系統(tǒng)執(zhí)行完畢,模塊接收到清零信號(hào)后,所有信號(hào)都會(huì)被清空歸零。

      由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.1.2仿真測(cè)試

      對(duì)確認(rèn)取消模塊進(jìn)行仿真測(cè)試后,得到如圖所示的仿真波形圖:

      對(duì)所得到的仿真波形圖進(jìn)行分析:在15ns前,系統(tǒng)復(fù)位;在30ns的時(shí)候,系統(tǒng)接收到一個(gè)確認(rèn)購(gòu)買的信號(hào),此時(shí)會(huì)生成ok信號(hào),即一個(gè)時(shí)鐘的內(nèi)部控制信號(hào),同一時(shí)間,會(huì)發(fā)出一個(gè)控制信號(hào)led_buy,以此來(lái)控制購(gòu)買指示燈亮。在時(shí)間為31ns時(shí),可以看到系統(tǒng)發(fā)出了一個(gè)鎖定信號(hào)lock_out_entry,當(dāng)系統(tǒng)接收到該信號(hào)后,其他所有的按鍵操作都將被視為無(wú)效,所以在40ns時(shí)輸入的cancel信號(hào)不會(huì)被響應(yīng);在60ns時(shí)操作執(zhí)行完畢,系統(tǒng)接收到一個(gè)clear的控制信號(hào),此時(shí)鎖定信號(hào)歸零,同時(shí)led_buy控制信號(hào)歸零。

      4.2找零控制模塊(refund模塊)

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.2.1設(shè)計(jì)思想及工作原理

      找零控制模塊有以下輸入端口:

      ? 輸入端口:clk,輸入時(shí)鐘信號(hào);rst,復(fù)位信號(hào);clear,清除信號(hào);ok,接收到確認(rèn)信號(hào);cancel,接收到取消信號(hào);sum1,表示接收到的投入1元貨幣的信號(hào);sum_5,接收到的投入5元貨幣的信號(hào);sum10,表示接收到的投入10元貨幣的信號(hào);sum,投入貨幣總和信號(hào);Rsum1,退出1元貨幣的數(shù)量;Rsum5,退出5元貨幣的數(shù)量;Rsum10,退出10元貨幣的數(shù)量;

      ? 輸出端口:en_deliver,給貨控制信號(hào);RC1,退幣1元的信號(hào);RC5,退幣5元的信號(hào);RC10,退幣10元的信號(hào)。電路原理圖如圖所示:

      當(dāng)系統(tǒng)接收到確認(rèn)取消模塊發(fā)來(lái)的確認(rèn)購(gòu)買信號(hào)時(shí),則該模塊開始執(zhí)行找零過(guò)程,同時(shí)發(fā)出給貨控制信號(hào)en_deliver,當(dāng)找零操作完成后系統(tǒng)發(fā)出清零信號(hào);當(dāng)系統(tǒng)接收到其他模塊發(fā)出的取消購(gòu)買信號(hào)后,則該模塊開始執(zhí)行退幣操作,模塊會(huì)根據(jù)投入的貨幣發(fā)出不同的退幣控制信號(hào),從而完成所有貨幣的退還,操作完成后系統(tǒng)發(fā)出清零信號(hào)。

      由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.2.2仿真測(cè)試

      對(duì)找零控制模塊的仿真有2種情況:

      1、確認(rèn)購(gòu)買操作;

      系統(tǒng)執(zhí)行取消購(gòu)買操作,得到如圖所示的仿真波形圖:

      分析上圖中的波形圖可以看出:在5ns前,系統(tǒng)復(fù)位;在10ns時(shí),系統(tǒng)接收到確認(rèn)購(gòu)買信號(hào)ok,同時(shí)接收到信號(hào)sum,表示系統(tǒng)收到投入貨幣為15元,在同一時(shí)刻發(fā)出給貨信號(hào)en_deliver;在11ns的時(shí)候,就收到了其他模塊發(fā)來(lái)的退幣信號(hào)Rsum_10,可以看出當(dāng)投入貨幣依次是15、14、13元時(shí),退幣金額分別為2、1、0元;當(dāng)給貨信號(hào)完畢后,該模塊立即產(chǎn)生退幣信號(hào),系統(tǒng)開始執(zhí)行找零操作,操作

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      完成后系統(tǒng)清零。

      2、取消購(gòu)買操作;

      對(duì)系統(tǒng)執(zhí)行取消購(gòu)買操作,得到如圖所示的仿真波形圖:

      對(duì)該波形圖進(jìn)行分析可以看出:在5ns前,系統(tǒng)處于復(fù)位狀態(tài);在10ns的時(shí)候,系統(tǒng)接收到其他模塊發(fā)出的投幣信號(hào),分別投入了一張5元貨幣和一張10元貨幣,同時(shí),接收到別的模塊發(fā)出的信號(hào)sum;在30ns時(shí),系統(tǒng)接收到確認(rèn)取消模塊發(fā)出的取消信號(hào),則該模塊開始執(zhí)行退幣過(guò)程,退幣控制信號(hào)RC50、RC100分別發(fā)出一個(gè)高電平信號(hào),每個(gè)退幣控制信號(hào)代表退出行對(duì)應(yīng)的一種貨幣;在操作完成后系統(tǒng)發(fā)出清零信號(hào)。

      4.3總額加和模塊(sum_cash模塊)

      4.3.1設(shè)計(jì)思想及工作原理

      總額加和模塊有以下輸入端口:

      ? 輸入端口:clk,輸入時(shí)鐘信號(hào);rst,復(fù)位信號(hào);clear,清除信號(hào);C1,投入一元貨幣信號(hào);C5,投入五元貨幣信號(hào);C10,投入十元貨幣信號(hào);RC1,退幣1元的信號(hào);RC5,退幣5元的信號(hào);RC10,退幣10元的信號(hào);lock_out_entry,鎖定信號(hào)。

      ? 輸出端口:sum_1,表示發(fā)出1元貨幣的信號(hào);sum_5,發(fā)出5元貨幣的信號(hào);sum_10,發(fā)出10元貨幣的信號(hào);sum,投入貨幣總和信號(hào); 電路原理圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      當(dāng)系統(tǒng)輸入不同的投幣信號(hào)時(shí),則sum1,sum5,sum10就會(huì)記錄相對(duì)應(yīng)的貨幣的數(shù)量,而sum則記錄了投入貨幣的總額。當(dāng)貨幣投入完畢后,顧客會(huì)選擇確認(rèn)購(gòu)買商品或者取消購(gòu)買,系統(tǒng)會(huì)根據(jù)接收到的不同的信號(hào)來(lái)執(zhí)行相應(yīng)的操作,當(dāng)找零模塊執(zhí)行完找零操作或者退幣操作后總數(shù)加和模塊就會(huì)收到系統(tǒng)的清零信號(hào),所有的內(nèi)部信號(hào)和表示都會(huì)被清除。

      由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.3.2仿真測(cè)試

      對(duì)總額加和模塊進(jìn)行仿真測(cè)試得到如圖所示的波形圖:

      對(duì)圖中波形進(jìn)行分析可以發(fā)現(xiàn),在5ns之前,系統(tǒng)在復(fù)位狀態(tài);在時(shí)間為20ns的時(shí)候,系統(tǒng)接收到C1、C5、C10發(fā)出的3個(gè)投幣信號(hào),30ns時(shí)又收到1個(gè)1元投幣信號(hào),對(duì)應(yīng)的sum1、sum5、sum10記錄了相對(duì)應(yīng)不貨幣的數(shù)量,sum則記錄了投入貨幣的總額;在時(shí)間為40ns時(shí),lock_out_entry信號(hào)變?yōu)楦唠娖?,此時(shí)其他按鍵都會(huì)無(wú)效;當(dāng)系統(tǒng)開始接收到退幣信號(hào)后,相應(yīng)的sum1、sum5、sum10也會(huì)發(fā)生變化,找零結(jié)束后系統(tǒng)發(fā)出清零信號(hào),系統(tǒng)內(nèi)的表示和內(nèi)部信號(hào)都被清除。

      4.4余額計(jì)算模塊(calculator模塊)

      4.4.1設(shè)計(jì)思想及工作原理

      余額計(jì)算模塊有以下輸入端口:

      ? 輸入端口:rst,復(fù)位信號(hào);clear,清除信號(hào);ok,確認(rèn)購(gòu)買信號(hào);輸出端口:sum1,投入1元貨幣的信號(hào);sum5,投入5元貨幣的信號(hào);sum10,投入10元貨幣的信號(hào);sum,投入貨幣總和信號(hào)。

      ? 雙向端口R:sum1,退還1元貨幣的信號(hào);Rsum5,退還5元貨幣的信號(hào);Rsum10,退還10元貨幣的信號(hào)。電路原理圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      余額計(jì)算模塊在收到其他模塊發(fā)出的確認(rèn)購(gòu)買信號(hào)后,就會(huì)開始執(zhí)行操作。根據(jù)所投入的貨幣總額,可以分為3種情況:投入貨幣小于商品價(jià)格,該情況下售貨機(jī)會(huì)退還所有貨幣;投入貨幣剛好等于商品價(jià)格,該情況下退還余額為零;投入貨幣大于商品價(jià)格,該情況則根據(jù)商品的價(jià)格和顧客投入總額的差額來(lái)計(jì)算應(yīng)找余額。由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      4.4.2仿真測(cè)試

      對(duì)余額計(jì)算模塊的仿真有3種情況:

      1、投入貨幣小于商品價(jià)格;

      2、投入貨幣等于商品價(jià)格;

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      3、投入貨幣大于商品價(jià)格;

      對(duì)于第1種情況,得到如圖所示的仿真波形:

      對(duì)于上面的波形圖,可以看出在時(shí)間為5ns前,系統(tǒng)復(fù)位;在10ns的時(shí)候,系統(tǒng)接收到投入一張10元貨幣的信號(hào)和一張1元貨幣,接著在20ns的時(shí)候,系統(tǒng)接收到控制確認(rèn)購(gòu)買的信號(hào)ok,經(jīng)過(guò)計(jì)算最后得到投入的貨幣總額11元小于商品的設(shè)定價(jià)格13元,所以系統(tǒng)將發(fā)出退款信號(hào),Rsum10和Rsum1均被賦值為1,表示要退還10元貨幣和一元貨幣,當(dāng)系統(tǒng)的找零控制模塊接收到此信號(hào)后會(huì)執(zhí)行相應(yīng)操作;在時(shí)間40ns時(shí),發(fā)出清零信號(hào)。

      對(duì)于第2種情況,得到如圖所示的仿真波形:

      對(duì)于上面的波形圖,可以看出在時(shí)間為5ns前,系統(tǒng)復(fù)位;在10ns的時(shí)候,系統(tǒng)接收到投入一張10元貨幣和3張一元貨幣的信號(hào),接著在20ns的時(shí)候,系統(tǒng)接收到控制確認(rèn)購(gòu)買的信號(hào)ok,經(jīng)過(guò)計(jì)算最后得到投入的貨幣總額13元?jiǎng)偤玫扔谏唐返脑O(shè)定價(jià)格13元,所以系統(tǒng)將發(fā)出退款信號(hào),Rsum10、Rsum5、Rsum1均被賦值為0,表示要退還貨幣均為0,當(dāng)系統(tǒng)的找零控制模塊接收到此信號(hào)后會(huì)執(zhí)行相應(yīng)操作;在時(shí)間40ns時(shí),發(fā)出清零信號(hào),清除系統(tǒng)內(nèi)部信號(hào)。

      對(duì)于第3種情況,得到如圖所示的仿真波形:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      對(duì)于上面的波形圖,可以看出在時(shí)間為5ns前,系統(tǒng)復(fù)位;在10ns的時(shí)候,系統(tǒng)接收到投入2張貨幣的信號(hào),接著在20ns的時(shí)候,系統(tǒng)接收到控制確認(rèn)購(gòu)買的信號(hào)ok,經(jīng)過(guò)計(jì)算最后得到投入的貨幣總額20元大于價(jià)格13元,所以系統(tǒng)將發(fā)出退款信號(hào),Rsum10、Rsum5、Rsum1分別被賦值為2、1、0,表示要退還貨幣均為2張1元,1張5元,當(dāng)系統(tǒng)的找零控制模塊接收到此信號(hào)后會(huì)執(zhí)行相應(yīng)操作;在時(shí)間40ns時(shí),發(fā)出清零信號(hào),清除系統(tǒng)內(nèi)部信號(hào)。

      4.5鎖定模塊(lock模塊)

      4.5.1設(shè)計(jì)思想及工作原理

      鎖定模塊有以下輸入輸出端口:

      ? 輸入端口:rst,復(fù)位信號(hào);clear,清除信號(hào);ok,確認(rèn)購(gòu)買信號(hào);cancel,取消購(gòu)買信號(hào)。

      ? 輸出端口:lock_out_entry,鎖定信號(hào)。

      端口原理圖如圖所示:

      當(dāng)該模塊接收到確認(rèn)取消模塊發(fā)出的無(wú)論是確認(rèn)信號(hào)還是取消信號(hào),都會(huì)發(fā)出一個(gè)鎖定信號(hào),從而鎖定整個(gè)系統(tǒng)的其他任何操作。由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.5.2仿真測(cè)試

      對(duì)鎖定模塊進(jìn)行仿真測(cè)試,得到如圖所示波形:

      對(duì)該波形圖進(jìn)行分析:在5ns前,系統(tǒng)復(fù)位;在20ns時(shí),系統(tǒng)接收到確認(rèn)取消模塊發(fā)出的cancel控制信號(hào),此時(shí)該模塊會(huì)立即產(chǎn)生lock_out_entry信號(hào),即按鍵鎖定信號(hào);在40ns時(shí),系統(tǒng)操作結(jié)束,發(fā)出清零信號(hào)。

      4.6顯示模塊

      4.6.1設(shè)計(jì)思想及工作原理

      ? 輸入端口:din,表示收到貨幣總額信號(hào)。

      ? 輸出端口:led1,顯示貨幣的個(gè)位數(shù);led10,顯示貨幣的十位數(shù)。

      顯示模塊會(huì)實(shí)時(shí)顯示售貨機(jī)收到的貨幣總額,并且通過(guò)led1來(lái)顯示投入貨幣的個(gè)位數(shù),led2來(lái)顯示投入貨幣的十位數(shù)。在該模塊中,調(diào)用了一個(gè)數(shù)碼管顯示的元件disp7。

      Lock模塊的端口原理圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      由QuqrtusⅡ軟件內(nèi)部生成的TRL電路圖如圖所示:

      4.6.2七段數(shù)碼管顯示器設(shè)計(jì)

      在元件disp7程序設(shè)計(jì)中,有一個(gè)輸入端口din,一個(gè)輸出端口led。disp7程序的端口原理圖如圖所示:

      該元件設(shè)計(jì)的主要目的是具體定義了從0~9中每一個(gè)數(shù)值所對(duì)應(yīng)的字符串賦值。由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.6.3仿真測(cè)試

      顯示模塊仿真波形圖如圖所示:

      對(duì)該波形圖進(jìn)行分析:當(dāng)顯示模塊接收到用來(lái)控制貨幣總額的信號(hào)din時(shí),兩個(gè)led顯示器會(huì)馬上將貨幣總額顯示出來(lái)。圖中可以看出,投入貨幣總額為15元,則led1應(yīng)顯示為5,led2應(yīng)顯示為1,根據(jù)vhdl程序的設(shè)計(jì),led信號(hào)用字符串“"1111001”來(lái)顯示1,用字符串“0010010”來(lái)顯示數(shù)字5,圖中的波形圖說(shuō)明了顯示器顯示是正確的。

      4.7頂層設(shè)計(jì)與分析

      頂層的設(shè)計(jì)就是對(duì)整個(gè)自動(dòng)售貨機(jī)系統(tǒng)進(jìn)行設(shè)計(jì),為了在整個(gè)系統(tǒng)中達(dá)到連接底層元件從而形成更高層次的電路設(shè)計(jì),在頂層文件的vhdl程序設(shè)計(jì)中使用了例化語(yǔ)句。在程序中利用component語(yǔ)句對(duì)準(zhǔn)備調(diào)用的元件做了聲明,并利用net1~net11十一個(gè)信號(hào)作為系統(tǒng)的內(nèi)部連線。

      顯然,元件例化的實(shí)質(zhì)就是引用一種連接關(guān)系,將之前已經(jīng)設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件,然后把元件與當(dāng)前的設(shè)計(jì)實(shí)體的端口通過(guò)特定的語(yǔ)句連接起來(lái),從而為當(dāng)前的設(shè)計(jì)實(shí)體引進(jìn)新的低一級(jí)的設(shè)計(jì)層次。元件例化是vhdl設(shè)計(jì)實(shí)體完成自上而下層次化設(shè)計(jì)的一種途徑。

      4.7.1設(shè)計(jì)思想及工作原理

      由QuqrtusⅡ軟件內(nèi)部生成的RTL電路圖如圖所示:

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      4.7.2仿真測(cè)試

      對(duì)整個(gè)系統(tǒng)進(jìn)行功能仿真測(cè)試,對(duì)仿真的結(jié)果的其中一部分進(jìn)行分析,對(duì)以下兩種仿真情況進(jìn)行分析:

      1、確認(rèn)購(gòu)買但余額不足

      2、確認(rèn)購(gòu)買且需要找零

      對(duì)第1種情況進(jìn)行仿真得到如圖的仿真圖:

      在該波形圖中可以看出,在5ns的時(shí)候,系統(tǒng)復(fù)位;在時(shí)間為30ns的時(shí)候,系統(tǒng)收到一個(gè)1元貨幣投入信號(hào)和一個(gè)5元貨幣投入信號(hào),緊接著在50ns的時(shí)候又收到一個(gè)一元貨幣投入信號(hào);兩個(gè)顯示器顯示了投入貨幣的總額;在時(shí)間為80ns的時(shí)

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      候,系統(tǒng)收到確認(rèn)信號(hào)ok_in,投幣結(jié)束,開始執(zhí)行找零或者退幣操作;系統(tǒng)內(nèi)部通過(guò)判斷發(fā)現(xiàn)所投入貨幣總額小于商品價(jià)格,所以開始進(jìn)行全額退幣過(guò)程;在90ns的時(shí)候系統(tǒng)發(fā)出同時(shí)退出一元貨幣和五元貨幣的信號(hào)RC1和RC5。系統(tǒng)操作完成,等待下一次的操作。

      對(duì)第2種情況進(jìn)行仿真得到如圖的仿真圖:

      在該波形圖中,在時(shí)間為30ns的時(shí)候,系統(tǒng)接收到一個(gè)投入一元貨幣的信號(hào),在70ns的時(shí)候,同時(shí)收到一個(gè)五元貨幣和一個(gè)十元貨幣的投入信號(hào),顯示器實(shí)時(shí)顯示所投入貨幣的總額;在80ns的時(shí)候收到確認(rèn)購(gòu)買信號(hào)ok_in,由于所投貨幣總額大于商品價(jià)格,則系統(tǒng)開始執(zhí)行找零過(guò)程,并且產(chǎn)生一個(gè)出貨信號(hào)en_deliver和一個(gè)確認(rèn)購(gòu)買信號(hào)led_buy;,在時(shí)間為90ns至120ns,連續(xù)3個(gè)產(chǎn)生退幣信號(hào)退幣信號(hào)RC1;退幣完成后,本次操作完成,等待下一次的操作。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真 總結(jié)

      隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,自動(dòng)售貨機(jī)的發(fā)展方向也必將向著更加智能化和人性化的礎(chǔ)上,從顧客的實(shí)際需要出發(fā),本文在分析了自動(dòng)售貨機(jī)的特點(diǎn)后,完成了自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì),在設(shè)計(jì)的過(guò)程中,主要完成了以下幾個(gè)方面的工作;(1)對(duì)自動(dòng)售貨機(jī)的發(fā)展技術(shù)進(jìn)行了總結(jié)和歸納,經(jīng)過(guò)總結(jié)可以發(fā)現(xiàn)節(jié)能環(huán)保是現(xiàn)在起發(fā)展的一個(gè)重要方向,同時(shí),移動(dòng)商務(wù)也是其發(fā)展的一個(gè)目標(biāo)方向。(2)完成了整個(gè)系統(tǒng)方案的設(shè)計(jì),并且對(duì)整個(gè)系統(tǒng)進(jìn)行了模塊的劃分,將整個(gè)系統(tǒng)劃分成6個(gè)子模塊,對(duì)每個(gè)模塊都單獨(dú)進(jìn)行了功能設(shè)計(jì)。

      (3)利用vhdl語(yǔ)言輸入的方式,對(duì)子模塊進(jìn)行了詳細(xì)的軟件的設(shè)計(jì),并且對(duì)其完成了相應(yīng)的功能仿真測(cè)試,并且對(duì)每次的仿真結(jié)果進(jìn)行分析。最后在頂層文件中將各個(gè)子模塊進(jìn)行例化并對(duì)子模塊進(jìn)行了調(diào)用,并且對(duì)整個(gè)控制系統(tǒng)的仿真,經(jīng)過(guò)仿真測(cè)試的結(jié)果可以看出,整個(gè)控制系統(tǒng)的設(shè)計(jì)達(dá)到了最初的所有設(shè)計(jì)要求,完成了各項(xiàng)功能。

      通過(guò)對(duì)整個(gè)系統(tǒng)的功能測(cè)試發(fā)現(xiàn)該自動(dòng)售貨機(jī)的工作是比較穩(wěn)定和可靠的,而且操作簡(jiǎn)單明了,具有很大的實(shí)用性。由于經(jīng)驗(yàn)不足和時(shí)間原因,本文中對(duì)該自動(dòng)售貨機(jī)系統(tǒng)的設(shè)計(jì)也存在了一些不足之處。在本系統(tǒng)中,只設(shè)定了一種商品,商品選擇功能不完善;購(gòu)買商品后的結(jié)算方式比較單一,只能現(xiàn)金支付,缺少例如IC卡支付等智能支付方式。所有這些問(wèn)題會(huì)對(duì)在相關(guān)知識(shí)進(jìn)行更深入的學(xué)習(xí)后逐一解決,努力對(duì)該控制系統(tǒng)進(jìn)行改進(jìn),使其更加完善。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      致謝

      回首大學(xué)四年,雖有遺憾卻也無(wú)悔。在四年的求學(xué)期間,雖然也曾迷茫彷徨,卻因?yàn)樯磉呉蝗赫d人不倦的老師的引導(dǎo)以及真誠(chéng)、熱心助人的同學(xué)的幫助,重新找到了前進(jìn)的方向以及努力的目標(biāo)。

      在此,要首先感謝在本次畢業(yè)設(shè)計(jì)過(guò)程中從選題開始到論文的完成一直給我很大幫助的段老師,正是因?yàn)槎卫蠋熌托牡膸椭也拍芨玫耐瓿烧n題中的設(shè)計(jì)及論文的編寫。同時(shí),也要感謝本次在畢業(yè)設(shè)計(jì)過(guò)程中給與我?guī)椭钠渌蠋熀屯瑢W(xué)。最后,祝愿所有老師身體健康,桃李天下;祝愿所有同學(xué)前程似錦,工作順利。

      大學(xué)生活即將結(jié)束,我也即將步入社會(huì)這個(gè)人生大舞臺(tái),要學(xué)習(xí)的東西還有很多。在以后的日子里,我將會(huì)更加的努力去面對(duì)生活中所遇到的各種挑戰(zhàn)。

      自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與仿真

      參考文獻(xiàn)

      下載自動(dòng)售貨機(jī)系統(tǒng)程序word格式文檔
      下載自動(dòng)售貨機(jī)系統(tǒng)程序.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        自動(dòng)售貨機(jī)合作合同

        自動(dòng)售貨機(jī)合作協(xié)議書甲 方:南京威汀貿(mào)易有限公司 乙 方:甲、乙雙方本著平等、互惠的原則,經(jīng)過(guò)友好協(xié)商,就合作放置自動(dòng)售貨機(jī)開展的服務(wù) 達(dá)成如下協(xié)議:第一條 綜合條款 1. 甲方......

        基于EDA的自動(dòng)售貨機(jī)系統(tǒng)的設(shè)計(jì) 開題報(bào)告

        畢業(yè)設(shè)計(jì)開題報(bào)告 課題名稱:基于學(xué)院: 專業(yè): EDA的自動(dòng)售貨機(jī)系統(tǒng)的設(shè)計(jì) 電子電氣工程學(xué)院 電子信息工程 一 自動(dòng)售貨機(jī)設(shè)計(jì)簡(jiǎn)介 自動(dòng)售貨是20世紀(jì)70年代在日本、歐美發(fā)展起來(lái)......

        自動(dòng)售貨機(jī)遠(yuǎn)程安全管理系統(tǒng) 高華[大全]

        自動(dòng)售貨機(jī)遠(yuǎn)程安全管理系統(tǒng) 前言 目前國(guó)內(nèi)自動(dòng)售貨機(jī)市場(chǎng)走勢(shì)已逐漸明晰,自動(dòng)售貨機(jī)的普及和應(yīng)用已是必然趨勢(shì),自動(dòng)售貨機(jī)的管理也逐步趨于無(wú)線管理方式,通過(guò)互聯(lián)網(wǎng)和無(wú)線網(wǎng)......

        自動(dòng)售貨機(jī)測(cè)試用例

        題目:有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)......

        2012EDA課設(shè)自動(dòng)售貨機(jī)

        基于VHDL自動(dòng)售貨機(jī)的設(shè)計(jì) 摘要 基于FPGA的自動(dòng)售貨機(jī)的設(shè)計(jì),主要完成的任務(wù)是使用VHDl語(yǔ)言,在MAX+PLUSSII上完成電路的設(shè)計(jì),程序的編譯,基本功能的完善、模擬整個(gè)自動(dòng)售貨機(jī)的......

        基于自動(dòng)售貨機(jī)的軟件工程(精)

        面向?qū)ο蠓治鰧?shí)踐大作業(yè)(40% 下面是自動(dòng)售貨機(jī)系統(tǒng)的需求陳述,請(qǐng) 你: 1. 編寫分析和設(shè)計(jì)報(bào)告; 2. 報(bào)告分需求分析、 系統(tǒng)設(shè)計(jì)和對(duì)象設(shè) 計(jì)三部分編撰, 各部分應(yīng)按相應(yīng)的格式......

        c語(yǔ)言自動(dòng)售貨機(jī)實(shí)驗(yàn)報(bào)告

        課程設(shè)計(jì) 課程名稱 C語(yǔ)言高級(jí)程序設(shè)計(jì) xxx XXX XXX XXX XXX 學(xué) 院 小組成員1 小組成員2 小組成員3 任課教師 2016——2017學(xué)年 第1學(xué)期 1 一. 所選題目與要求 自動(dòng)售貨......

        自動(dòng)售貨機(jī)聯(lián)營(yíng)合作協(xié)議

        自動(dòng)售貨機(jī)聯(lián)營(yíng)合作協(xié)議 甲方: 乙方:*********地有限公司 甲.乙雙方本著平等、互惠的原則,經(jīng)過(guò)友好協(xié)商,就通過(guò)自動(dòng)售貨機(jī)開展經(jīng)營(yíng)活動(dòng)達(dá)成如下協(xié)議: 第一條綜合條款 1. 2. 3.......