第一篇:基于EDA的自动售货机系统的设计 开题报告
毕业设计开题报告
课题名称:基于学院: 专业: EDA的自动售货机系统的设计 电子电气工程学院 电子信息工程
一 自动售货机设计简介
自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式,自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,是发达国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明发达程度的重要标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化了城市环境,受到消费者的欢迎。但是在我国自动售货机的普及还不及发达国家,主要原因是我国EDA技术的应用水平长期落后于发达国家。
本设计要实现自动售货机的基本功能,如投币处理、商品选择、购货撤销、异常退币、计算存货等功能。利用Altera公司的开发软件QUARTUS II平台,采用Verilog hdl硬件描述语言编程的设计方法设计系统核心电路的硬件程序,与一般的软件开发不同,Verilog hdl编程更需要熟悉一些底层的硬件知识,特别是数字逻辑电路的设计,因此Verilog hdl编程的方法、思路都要更多的与硬件电路联系起来。完成系统各个功能模块的硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行验证。(1)自动售货机主要功能
自动售货机控制要求对机内商品信息进行识别,对投入的货币进行运算,并根据所投入的货币数值判断是否能够购买某种商品,并做出相应的反应。本文设计的自动售货机控制系统主要可以实现投币处理、计算投币总额、输出商品,输出找零等功能,系统工作流程如图1 所示。
(2)自动售货机的几个过程
在自动售货机控制系统的工作过程中,可分为三个状态:初始状态、投币状态和找零状态。在每一个状态中完成特定的功能。
首先,在初始状态下,自动售货机通电,初始化机内商品信息(包括商品种类、每种商品的数量以及价格)。当顾客购买商品时,可根据自己需要通过按键选择其中一种商品(且只限一种),然后进入下一状态,即投币状态。
在投币状态下,当投入硬币总额大于或等于商品价格,并且按确认购买键后将进入找零状态;若按取消键,售货机退出所投硬币,返回到初始状态。
投币结束,若投入的硬币等于或大于商品单价,且确认购买,则商品将送出送货口,并计算输出找零硬币。出货找零结束时表示一次自动售货过程完成,重新返回到初始状态,计算此时商品信息,并等待下一次售货过程的到来。
(3)自动售货机的基本模块
自动售货机控制系统的功能模块逻辑上划分为商品信息存储模块、商品选择模块、投币处理模块,找零模块和显示模块。商品信息存储模块
该模块的功能是将商品的单价、数量存储到自动售货机中,price、quantity 分别表示商品的单价与数量数据信号,item 为商品的种类。商品选择模块
该模块功能是对商品进行选择与购买。当对四种商品进行选择时,由sel 的选择信号的个数来表示所选择的商品类型。get 为对商品进行确认购买的信号。投币处理模块
该模块是对投入的硬币进行处理的过程,输出参数coin 为投币数值计数器,以0.5 元为单位进行计算。整个模块功能类似于计钱器,可准确计算投入的硬币数,记录并保存投入的总币值。找零模块
该模块主要完成找零操作。通过计钱器coin 计算余额,然后输出找零的控制信号act5、act10。显示模块
该模块用来显示钱数和商品数量。用于钱数显示时,将计钱器coin转换成BCD 码,然后经译码器译码并显示。用于商品数量显示时,将计算得出的最终商品数量quantity 先转换成BCD 码,然后经译码器译码并显示。
二
国内外EDA技术发展简介
EDA概述
人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。2 EDA技术简介
EDA(Electronic Design Automation),即电子设计自动化,是指利用计算机完成电子系统的设计。EDA技术是以计算机和微电子技术为先导的,汇集了计算机图形学、拓扑学、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。设计人员只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率。2.1 EDA技术的发展概况
从20世纪60年代中期开始,人们就不断开发出各种计算机辅助设计工具来帮助设计人员进行电子系统的设计。电路理论和半导体工艺水平的提高,对EDA技术的发展起到了巨大的作用,使EDA作用范围从PCB板设计延伸到电子线路和集成电路设计,直至整个系统的设计,也使IC芯片系统应用、电路制作和整个电子生产过程都集成在一个环境之中。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段。(1)CAD阶段
第一阶段的特点是一些单独的工具软件,主要有PCB布线设计、电路模拟、逻辑模拟、以及版图的绘制等,通过计算机的使用,从而将设计人员从大量繁重重复的计算和绘图工作中解脱出来。20世纪80年代,随着集成电路规模的增大,EDA技术有了较快的发展。许多软件公司等进入市场,开始供应带电路图编辑工具和逻辑模拟工具的EDA软件。这个时期的软件产品主要针对产品开发,按照设计、分析、生产和测试等多个阶段,不同阶段分别使用不同的软件包,每个软件只能完成其中一项工作,通过顺序循环使用这些软件,可完成设计的全过程。(2)CAE阶段
这个阶段在集成电路与电子设计方法学以及设计工具集成化方面取得了许多成果。各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局已齐全。由于采用了统一数据管理技术,因而能够将各个工具集成为一个CAE系统。按照设计方法学制定的设计流程,可以实现从设计输入到版图输出的全程设计自动化。这个阶段主要采用基于单元库的半定制设计方法,采用门阵列与标准单元设计的各种ASIC得到了极大的发展,将集成电路工业推入了ASIC时代。(3)EDA阶段
20世纪90年代以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,此阶段主要出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,不仅极大地提高了系统的设计效率,而且使设计人员摆脱了大量的辅助性及基础性工作,将精力集中于创造性的方案与概念的构思上。它的特征为:第一,高层综合的理论与方法取得较大进展,将EDA设计层次由RT级提高到了系统级(又称行为级),并划分为逻辑综合和测试综合。第二,采用硬件描述语言HDL来描述10万门以上的设计,并形成了VHDL和VerilogHDL两种标准硬件描述语言。第三,采用平面规划技术对逻辑综合和物理版图设计进行联合管理,作到在逻辑综合早期设计阶段就考虑到物理设计信息的影响。第四,可测性设计。第五,为带有嵌入IP模块ASIC设计提供软硬件协同系统设计工具。2.2 EDA技术的基本特征
EDA技术代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件[3]。这样的设计方法被称为高层次的电子设计方法。下面介绍与EDA基本特征有关的几个概念。
(1)“自顶向下”的设计方法
10年前,电子设计的基本思路还是选择标准集成电路“自底向上”(Bottom-Up)的构造出一个新的系统,这样的设计方法就如同一砖一瓦地建造金字塔,不仅效率低、成本高而且还容易出错。(2)高层次设计
高层次设计提供了一种“自顶向下”(Top-Down)的全新的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。(3)硬件描述语言 硬件描述语言(HDL-Hardware Description Language)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
本次设计使用VERILOG HDL语言,Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog发展的国际性组织。1992年,OVI决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功,Verilog 语言于1995年成为IEEE标准,称为IEEE Std 1364-1995。完整的标准在Verilog硬件描述语言参考手册中有详细描述。
下面列出的是Verilog硬件描述语言的主要能力: * 基本逻辑门,例如and、or和nand等都内置在语言中。
* 用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
* 开关级基本结构模型,例如pmos 和nmos等也被内置在语言中。* 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
* 可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
* Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
* 能够描述层次设计,可使用模块实例结构描述任何层次。
* 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。* Verilog HDL不再是某些公司的专有语言而是IEEE标准。
* 人和机器都可阅读Verilog 语言,因此它可作为EDA的工具和设计者之间的交互语言。
* Verilog HDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。
* 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。
* 能够使用内置开关级原语在开关级对设计完整建模。* 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
* Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
* 在行为级描述中,Verilog HDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
* 能够使用门和模块实例化语句在结构级进行结构描述。
* Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
* Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。* 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。
* 可以显式地对并发和定时进行建模。* 提供强有力的文件读写能力。
* 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。
三
本次毕业设计主要内容 四
进度安排
五 主要参考文献
第二篇:自动售货机系统程序
Coin类:
#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
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();//查询当前售货机内的商品
/** 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
double return_yiyoucoins();//统计售货机中已有的货款 void setcurrent_product();//把当前选择的商品代号置为-1 int getcurrent_product();//得到当前选择的商品代号 private: vector
products;int current_product;vector
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<<“已存在该商品,与您输入的价格不同!”< 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 << “对不起,该商品已售完!n”;return false;} } } if(i==products.size()){ cout<<“对不起,不存在该商品!”< double VendingMachine::return_yiyoucoins()//统计售货机当前的金钱总额 { 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 } double m=products[current_product].get_price()-total;if(m>0)return m;else return-1;} double VendingMachine::return_coins()//统计当前投入的金钱总额 { 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<<“暂时没有添加商品!”< int VendingMachine::getcurrent_product(){ return current_product;} Main函数: #include void main(){ vector VendingMachine machine;bool more = true;machine.chaxun_product();while(more){ cout << “a)添加商品 x)查询商品 s)选择商品 p)投币 c)取消 e)查询当前金额 r)取款 q)退出: ”;string command;cin>>command;if(command == “a”){ cout << “商品名: ”;string name;cin>>name; cout << “价格: ”;double price;cin >> price;cout << “数量: ”;int quantity;cin >> quantity;machine.add_product(Product(name, price, quantity));} else if(command == “s”){ double total1; total1=machine.return_yiyoucoins(); if(total1>=5000)//当售货机中的货款大于等于5000时,暂停售货 { cout<<“对不起,现在暂停售货!”< } else { machine.setcurrent_product();cout << “商品名: ”;string name;cin>>name;machine.select_product(name); } } else if(command == “p”){ if(machine.getcurrent_product()!=-1)//如果当前已选择商品,才可以投币 { bool panduan=false;while(!panduan)//多次投币的实现 { cout << “所投钱币名称(以 # 结束投币过程):”;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 << “不存在该货币,请重新投入: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<<“您还没有选择商品!”< { 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<<“暂时没有添加商品!”< 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(“可口可乐 ”,15);fpq[0].sp[2]=new shangpin(“百事可乐 ”,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(“# 欢迎使用自动售货机 System.out.println(”# System.out.println(“# =================”);System.out.println(“=============== System.out.println();System.out.println(”编号tt“+”名称ttt“+”价格tt“+”数量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(“请选择投放钱的类型 ”);System.out.println(“1 表示投放 硬币”);System.out.println(“2 表示投放 纸币”);System.out.println(“请输入您选择的钱的类型 :”); panduan pd=new panduan(); { case 1: System.out.println(“请您投入有效的面值”); if(pd.ying()) { System.out.println(“您投入的是有效地硬币”); System.out.println(); // System.out.println(“^_^ 请选择您所需要的物品^_^”); } else } class chanpin { { System.out.println(“您投入的不是有效地硬币,请您重新投入”); } break; case 2 : System.out.println(“请您投入有效的面值”); if(pd.zhi()) { // } else { } break; default : System.out.println(“请您重新投入有效地货币”); } } System.out.println(“您投入的不是有效的纸币,请您重新投入”);System.out.println(“您投入的是有效的纸币”);System.out.println();System.out.println(“^_^ 请选择您所需要的物品^_^”); } } public static void main(String args[]){ System.out.println(“请输入您想要产品的编码:”);int bianma;bianma=touqian.in();System.out.println(“请输入您想要产品的数量:”);int shuliang;shuliang=touqian.in();System.out.println(“您一共要付:”);double sumjine;sumjine= xianshichanpin xscp=new xianshichanpin();xscp.show(); 常工院毕业设计论文 自动售货机的PLC系统设计 摘要:本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为了几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制在自动售货机忠的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键字 自动售货机;可编程控制器;梯形图 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 常工院毕业设计论文 目录 ·摘要…………………………………………………………………………………1 ·前言…………………………………………………………………………………3 ·第一章 自动售货机的介绍………………………………………………………...4 ·1.1自动售货机功能分析…………………………………………………………..4 ·1.1.1自动售货机的基本功能……………………………………………………...4 ·1.2 PLC的选型原理………………………………………………………………..5 ·1.3 PLC的概论……………………………………………………………………..6 ·1.3.1 PLC的产生…………………………………………………………………...6 ·1.3.2 PLC的定义…………………………………………………………………...6 ·1.3.3 PLC的发展趋势……………………………………………………………...7 ·1.3.4 PLC的特点…………………………………………………………………...8 ·1.3.5 PLC的基本功能……………………………………………………………...9 ·1.4 PLC的基本结构和原理………………………………………………………10 ·1.4.1 PLC的系统结构…………………………………………………………….10 ·1.4.2 PLC各部分的作用………………………………………………………….10 ·1.5 松下电工可编程序控制器产品—FP1-C24介绍……………………………12 ·1.5.1 FP1-C24的组成各部分……………………………………………………..13 ·1.5.2 技术性能……………………………………………………………………14 ·第二章 PLC系统设计………………………………………………………….14 ·2.1 可编程序控制系统设计的基本原则………………………………………...14 ·2.1.1 控制系统设计原则…………………………………………………………14 ·2.1.2 控制系统设计的基本内容…………………………………………………14 ·2.1.3 控制系统设计的一般步骤…………………………………………………15 ·2.1.4 编写梯形图的注意事项……………………………………………………15 ·2.1.5 程序设计的步骤……………………………………………………………15 ·第三章 自动售货机PLC程序设计……………………………………………16 ·3.1 仿真实验中的售货机的分析………………………………………………...16 ·3.2 设计任务的确定……………………………………………………………...18 ·3.3 程序设计部分………………………………………………………………...18 ·3.3.1 程序设计说明………………………………………………………………19 ·3.3.2 PLC 程序设计………………………………………………………………19 ·3.4 仿真界面与PLC……………………………………………………………...28 ·3.5 数据连接……………………………………………………………………...32 ·3.5.1 定义I/O设备……………………………………………………………….32 ·3.5.2 设计…………………………………………………………………………34 ·3.5.3 运行…………………………………………………………………………37 ·4 结束语…………………………………………………………………………38 ·致谢………………………………………………………………………………..39 ·参考文献…………………………………………………………………………..39 常工院毕业设计论文 前言 从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等因素的制约,无人自动售货机作为一种必须的机器便应运而生了。 从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本小、面积小,有吸引人们购物的好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。 据说世界上最早的自动售货机出现在公元前3世纪,那是埃及神殿里的投币式圣水出售机。17世纪,英国的小酒吧里设有了香烟的自动售货机。在自动售货机历史的长河里,日本开发出实用型的自动售货机,那是在进入本世纪后的事。日本第一台自动售货机是1904年问世的“邮票明信片自动售货机“,它是集邮票明信片的出售和邮筒投函为一体的机器。自动售货机的真正普及是在第二次世界大战以后。50年代,”喷水型果汁自动售货机“大手欢迎,果汁杯注入在纸杯里出售。后来,由于美国的饮料大公司进入日本市场,1962年,出现了以自动售货机主体的流通领域的革命。1967年,100日元单位以下的货币全改为硬币,从而促进了自动售货机产业的发展。现在,自动售货机产业正走向信息化并进一步实现合理化。例如实行联机方式,通过电话线路将自动售货机内的库存信息及时地传送到各营业点的电脑中,从而确保了商品的发送、补充以及商品选定的顺利进行。并且,为防止地球暖化,自动售货机的开发致力于能源的节省,节能型清凉饮料自动售货机成为该行业的主流。在夏季电力消费高峰时,这种机型的自动售货机即使在关掉冷却器的状态下也能保持低温,与以往的自动售货机相比,它能够节省10—15%的电力。进入21世纪时,自动售货机也将进一步向节省资源和能源以及高功能化的方向发展。因经济复苏缓慢,社会对扩大就业与工作场所所提供的茶点饮料的福利事业更为关注。自动售货机不仅保障了惬意的工作时间,也是最廉价、提高职工工作效率最有效的手段。特别是在24小时无休工作状态中的办公场所,使用独具魅力的迷你型饮料冲饮机解决了不间断提供咖啡饮料服务的问题,这种服务加速了自动售货机与咖啡饮品服务的融合。1999年的全美自动售货机协会和全美咖啡服务协会的合并使人们更直观地看到了这种融合的现象。 日本是自动售货机的天堂。出了鸡蛋、米饭之外,报纸、杂志、一次性相机、干电池、磁带、刮胡刀、袜子、花及宠物食品等各种商品都通过自动售货机进行销售。连熟知自动售货机的美国游客在日本看到10台自动售货机排成一列的景象后,也是连声称奇。 韩国大约有78万台自动售货机,是除了日本、美国、英国之外自动售货机使用数量最多的国家。从不同的种类来看,咖咖啡茶的自动售货机约占全部售货机的40%以上;另外,还有冰饮料自动售货机、听装饮料自动售货机、成人用品自动售货机、生活用品自动售货机、烟、方便面自动售货机等多种。主要的设置场所包括学校、楼房、公共机关、地铁、公共汽车站、公园、体育场、展示场、工厂等。运营自动售货机产业的公司全国大约有800余个,而销售自动售货机原料、商品流通、机械销售的公司大约达到了1150个。 常工院毕业设计论文 第一章 自动售货机的介绍 1.1自动售货机功能分析 这部分阐述了自动售货机的各种动作功能和控制要求,给出了完整的自动售货机操作规章,并介绍了自动售货机运行系统所包括的人工操作步骤。 1.1.1自动售货机的基本功能 在进行上、下位机程序编写之前,首先要做的工作是确定自动售货机本身所具备的功能及在进行某种操作后具有的状态。 在实际生活照,我们见到的售货机可以销售一些简单的日用品,如饮料、常用药品和小的生活保健用品等。售货机的基本功能就是投入的货币进行运算,并根据货币数值判断是否能够买某种商品,并做出相应的反应。举一个简单的例子来说明,列如:售货机中有8种商品,其中01号商品(代表第一种商品)价格为2.60元,02号商品为3.50元,其余类推。现投入1个1元银币,当投入的货币超过01商品的价格时,01商品的选择按钮处应有变化,提示可以购买,其他商品同比。当按下选择01商品的价格时,售货机进行减法运算,从投入的货币总值中减去01商品的价格同时启动相应的电机,提取01号商品到出货口。此时售货机继续进行等待外部命令。如继续交易,则同上。如果此时不在购买而按下退币按钮,售货机则要进行退币操作,退回相应的货币,并在程序中清零,完成此次交易。由此看来,售货机一次交易要涉及加法运算、减法运算以及在退币时的 出发运算,这是它内部功能。还要有货币识别系统和货币的传动来实现完整的收获、退币功能。自动售货机的工作流程图如图1所示。 常工院毕业设计论文 1.2 PLC的选型原则 当某一个控制任务决定由PLC来完成后,选择PLC就成为最重要的事情。一方面要选择多大容量的PLC,另一方面是选择哪个的PLC及外设。 对第一个问题,首先要对控制任务进行详细的分析,把所有的I/O点找出来,包括开关量I/O和模拟量I/O以及输出是用继电器还是晶体管或者是可控硅型。控制系统输出点的类型非常关键,如果他们之间既有交流220V的接触器、电磁阀、又有24V的指示灯,则最后选用的PLC的输出端数有可能呢大于实际点数。因为PLC的输出点一般是几个一组公用一个公共端,这一组输出只能有一种电源的种类和等级。所以一旦它们是交流220V的负载负载使用,则直流24V的负载只能使用其他的输出端了。这样有可能造成输出点浪费,成本增加。所以要尽可能所则相同等级和种类的负载,比如使用交流220V的指示灯等。一般情况下继电器输出的PLC使用最多,但对于要求高速输出的情况,就要使用无触点的晶体管输出的PLC了。 对于第二问题,则有以下几个方面的考虑:(1)功能方面 所有PLC一般都具有常规的功能,但对某些特殊要求,就要知道所选用的PLC是否有能力控制任务。如对PLC与智能仪表及上位机之间有灵活方便的通信要求;或对PLC的计算速度、用户程序容量等有特殊要求‘或对PLC的位置控制有特殊要求等。这就要求用户对市场上流行的PLC品种有一个详细的了解,以便做出正确的选择。 (2)价格方面 不同厂家的PLC产品价格相差很大,有些功能类似、质量相当、I/O点数相当的PLC的价格能相差40%以上。在使用PLC较多的情况下,这样的差价当然是必须考虑的因素。 (3)PLC主机选定后,如果控制系统需要,则相应的配套模块也就选定了。 常工院毕业设计论文 1.3 PLC的 概述 1.3.1 PLC的产生 20世纪20年代起,人们把各种继电器、定时器、接触器及其触点按一定的逻辑关系联系起来组成控制系统,控制各种生产机械,这就是大家所熟悉的传统继电接触器控制机系统。由于它结构简单,容易掌握,价格便宜,在一定范围内能满足控制要求,因而使用面甚广,在空也控制领域中一直占主导地位。但是继电接触器控制系统有明显的缺点:设备体积大,可靠性差,动作速度慢,功能少,难与实现较复杂的控制,特别是由于它是靠硬连线逻辑构成的系统,接线复杂,当生产工艺或对象改变时,原有的接线和控制盘就要更换,所以通用性和灵活性较差。 20世纪60年代末期,美国的汽车制造业竞争激烈,各生产厂家的汽车型号不断更换,它必要求生产线的控制系统亦随之改变,以及对整个开展系统重新配置,为抛弃传统的继电接触器控制系统的束缚,适应白热化的市场竞争要求。1968年美国通用汽车公司向社会招标,对汽车流水线控制系统提出具体要求,归纳起来是: (1)编程方便,可现场修改程序(2)维修方便,采用插件式结构(3)可靠性高于继电接触器控制系统(4)体积小于继电器控制盘 (5)数据可直接送人管理计算机(6)成本可与继电器控制盘竞争(7)输入可以是交流150V以上 (8)输出为交流115V容量要求在2A以上,可直接驱动接触器、电磁阀等(9)扩展时原系统改变最小 (10)用户存储器至少能扩张到4KB(适应当时汽车装备过程的需要) 十项指标的核心要求是采用软布线(编程)方式代替继电控制的硬接线方式,实现大规模生产线的流程控制。 1.3.2 PLC的定义 美国国际电工委员会(IEC)在1987年对可编程序控制器做出以下定义:可编程序控制器是一类专门为在工业环境下应用而设计的数字式电子系统,它采用了可编程序的存储器,用来在其内部进行存储执行逻辑运算等功能的面向用户的指令,并通过数字式或模拟式的输入或输出,控制各种类型的机械或者生产过程。可编程序控制器及其相关外部设备,都应按照易于与工业控制系统联成一个整体,易于扩展其功能的原理而设计。 定义强调了PLC应直接应用于工业环境,它必须具有很强的抗干扰能力,广泛的适应能力和应用范围。这也是去呗与一般微机控制系统的一个重要特征。定义还强调了PLC是“数字运算操作的电子系统”,它也是一种计算机,它是“专门在工业环境下应用而设计的”工业计算机。这种工业计算机采用“面向用户的指令”,因此编程方便。它能完成逻辑运算、顺序运算、定时、记数和算术运算 常工院毕业设计论文 等操作,它还具有“数字量和模拟量输入和输出”的能力,并且非常容易与“工业控制系统联成一体”,易于“扩充”。 1.3.3 PLC的发展趋势 PLC总的发展趋势是向高集成度、小体积、大容量、高速度、易使用、高性能方向发展。具体表现在以下方面: (1)向小型化、专业化、低成本方向发展 随着微电子技术的发展,新型器件大幅度的提高功能和降低价格,使PLC结构更为紧凑,相当于一本精装书本的大小,操作使用十分方便。PLC的功能不断增加,将原来大、中型PLC才有的功能部分地移植到小型PLC上。(2)向大容量、高速度方向发展 大型PLC多采用微处理器系统,有的采用32位微处理器,可同时进行多任务操作,处理速度提高,特别是增强了过程控制和数据处理的功能。另外,存储容量大大增加。 (3)智能型I/O模块的发展 智能型I/O模块是以微处理器和存储器为基础的功能部件,它们的CPU与PLC的主CPU并行工作,占用主CPU的时间很少,有利于提高PLC的扫描速度。(4)基于PC的编程软件取代编程器 随着计算机的日益普及,越来越多的用户使用基于计算机上的编程软件。编程软件可以对PLC控制系统的硬件组态,即设置硬件的结构和参数,例如设置各框架各个插槽上的模块的型号、模块的参数、各串行通用接口的参数等。(5)PLC编程语言的标准化 与个人计算机相比,PLC的硬件、软件的体系结构都是封闭的而不是开放的。在硬件方面,各厂家的CPU模块和I/O模块互不通用。PLC的编程语言和指令系统的功能和表达式也不一致,因此各厂家的可编程序控制器互不兼容。为了解决这一问题,IEC制定了可编程序控制器标准。标准中共有5种编程语言,允许编程者在同一程序中使用多种编程语言,这使编程能够选择不同的语言来适应特殊的工作。 (6)PLC通信的易用化 PLC的通信联网功能使它能与个人计算机和其他智能控制设备交换数字信号,使系统形成一个统一的整体,实现分散控制和集中控制。(7)组态软件与PLC的软件化 个人计算机(PC)的价格便宜,有很强的数学运算、数据处理、通信和人机交互的功能。 (8)PLC与现场总线相结合 现场总线I/O与PLC可以组成功能强大的、廉价的DCS系统。(9)开发新型特殊功能模块 I/O组件可以提高PLC的智能化、高密集度和增大处理能力。(10)CPU的处理速度进一步加快 目前,PLC的处理速度与计算机相比还比较慢,其中高的CPU也不过80486,将来会全面使用64位的RISC芯片,采用多CPU进行处理、分时处理或者分任务处理方式,将各种模块智能化,部分系统程序用门阵列电路固化,这样可使PLC的处理速度达到纳秒级。 常工院毕业设计论文 1.3.4 PLC的特点 (1)抗干扰能力强,可靠性好 PLC在电子线路、机械结构以及软件上都吸取了生产厂家长期积累的生产控制经验,主要模块均采用大规模与超大规模集成电路。I/O系统设计有完善的通道保护与信号调理电路;在结构上对耐热、防潮、防尘、抗震等都有周到的考虑。具体措施主要有以下几个方面: 1)隔热:这是抗干扰的主要措施之一。PLC的输入、输出接口电路一般采用光电耦合器来传递信号。这种光电隔离措施,是外部电路与内部电路之间避免了电的联系,可有效的抑制外部干扰对于PLC的影响,同时防止外部高电压串入,从而减少故障和误操作。 2)滤波:这是抗干扰的另一个主要措施。在PLC的电源电路和输入/输出电路中设置了多种滤波电路,用以对高频干扰信号进行有效的抑制。 3)对内部电源采用了屏蔽、稳压等保护措施,以减少外界干扰,保护供电质量。另外使输入输出接口电路电源彼此独立,以避免电源之间的干扰。4)内部设置了连锁、环境检测与诊断、WATCHDOG(看门狗)等电路,一旦发现故障或程序循环执时间超过了警戒时钟(WDT)规定时间(预示程序进入了死循环),立即报警,以保证CPU可靠运行。 5)利用系统软件定期进行系统状态、用户程序、工作环境和故障检测,并采用信息保护和恢复措施。 6)对用户程序及动态工作数据进行电池备份,以保障停电后有关状态或者信息部丢失。 7)采用密封、防尘、防震的外壳封装结构,以适应工作现场的恶劣环境。8)以集成电路为基础元件,内部处理过程不依赖于机械触点,以保障高可靠性。而采用循环扫描的工作循环方式,也提高了抗干扰能力。(2)控制系统结构简单,通用性强 PLC及外围模块品种多,可由各种组件灵活组合成各种大小和不同要求的控制系统。 (3)编程方便,易于使用 PLC是面向用户的设备,PLC的设计者充分考虑到现场工程技术人员的技能和习惯,PLC程序的编程,采用梯形图或面向工业控制的简单指令形式。梯形图与继电器原理图类似,这种编程语言现象直观,容易掌握,不需要专门的计算机知识和语言,只要具有一定的电工和工艺的知识的人员都可以在短时间内学会。(4)功能完善 PLC的I/O功能完善,性能可靠,能适应于任何形式和性质的开关量和模拟量的I/O。在PLC内部具有许多控制功能,诸如时序、计算机、主控继电器以及位移寄存器、中间寄存器等。由于采用了微处理器,它能够很方便地实现延时、锁存、比较、跳转和强制I/O等诸多功能,不仅具有逻辑功能、算术运算、数制转换以及顺序控制功能,而且还具备模拟预算、显示、监控、扫描以及报表生成等功能。 (5)设计、施工、调试的周期短 用继电接触器控制完成一项控制工程,必须首先按工艺要求画出电气原理图,然后画出继电器屏的布置和接线图等,进行安装调试,以后修改起来十分方便。而采用PLC控制,由于其硬软件齐全,为模块化积木式结构,且以商品化,故 常工院毕业设计论文 仅需按性能、容量等选用组装,而大量具体的程序编制工作也可在PLC到货前进行,因而缩短了设计周期,使设计和施工可同时进行。(6)体积小,维护操作方便 PLC体积小,质量轻,便于安装。PLC的I/O系统能够直接的反映现场总线信号的变化状态,还能通过各种方式直观地反映控制系统的运行状态。(7)易于实现网络化 PLC可连成功能很强的网络系统。(8)可实现三电一体化 PLC将电控(逻辑控制)、电仪(过程控制)和电结(运动控制)这三电集于一体,可以方便、灵活的组合成各种不同规模和要求的控制系统,以适应各种工业控制的需要。 1.3.5 PLC的主要功能 (1)条件控制功能 条件控制(或称逻辑控制或顺序控制)功能是指用PLC的与、或、非指令取代继电器接触的串联、并联及其他各种逻辑连接,进行开关控制。(2)定时/记数控制功能 定时/记数控制功能是指用PLC提供的定时器、记数器指令实现对某种操作的定时或记数控制,以取代时间继电器和记数继电器。(3)数据处理功能 数据处理功能是指PLC能进行数据传输、比较、位移、数制转换、算术运算、逻辑运算以及编码和译码等操作。(4)步进控制功能 步进控制功能是指用步进指令来实现在有多道加工工序的控制中,只有前一道工序完成以后,才能进行下一道工序的操作的控制,以取代由硬件构成的步进控制器。 (5)A/D与D/A转换功能 A/D与D/A转化功能是指通过A/D、D/A模块完成模拟量和数字量之间的转换。 (6)运动控制功能 运动控制功能是指通过高速记数模块和位置控制模块等进行单轴或者多轴运动控制。 (7)过程控制功能 过程控制功能是指通过PLC的PID控制指令或模块实现对温度、压力、速度、流量等物理参数的闭环控制。(8)拓展功能 拓展功能是指通过连接输入输出拓展单元(即I/O拓展单元)模块来增加输入输出点数,也可通过附加各种智能单元及特殊功能单元来提高PLC的控制功能。(9)远程I/O功能 远程I/O功能是指通过I/O单元将分散在远距离的各种输出、输入设备与PLC主机相连接,进行远程控制,接收输入信号、传出输出信号。(10)通信联网功能 通信联网功能是指通过PLC之间的联网、PLC与上位机的链接等,实现远程 常工院毕业设计论文 I/O控制或数据交换,以完成较大规模系统的复杂控制。(11)监控功能 监控功能是指PLC能监视系统各部分地进行状态和进程,对系统中出现的异常情况进行报警和记录,甚至自动终止运行;也可在线调整、修改控制程序中的定时器、记数器等设定值或强制I/O状态。 1.4 PLC的基本结构及原理 1.4.1 PLC的系统结构 目前PLC种类繁多,功能和指令系统也都各不相同,但都是以微处理器为核心用做工业控制的专用计算机,所有其结构和工作原理都大致相同,硬件结构与微机相似。主要包括中央处理单元CPU、存储器RAM和ROM、输入输出接口电路、电源、I/O拓展接口、外部设备接口等。其内部也是采用总线结构进行数据和指令的传输。 如同2所示,PLC控制系统由输入量—PLC—输出量组成,外部的各种开关信号、模拟信号、传感器检测的各种信号均作为PLC的输出量,它们经PLC外部输入端子,作为PLC的输出量对外围设备进行各种控制。由此可见,PLC的基本结构由控制部分输入和输出组成。 1.4.2 PLC各部分的作用 (1)中央处理器 CPU是由控制器和运算器组成的。运算器也称为算术逻辑单元,它的功能就是进行算术运算和逻辑运算。控制器的作用是控制整个计算机的各个部件有条不紊地工作,它的基本功能是从内存中取出指令和执行指令。他的重要功能如下: ① 诊断PLC电源、内部电路的工作状态及编程中的语法错误。 ② 采集由现场输入装置送来的状态或数据,并送入PLC的寄存器中。③ 按用户程序存储器中存放的先后顺序逐条读取指令,进行编译解释后,按指令规定的任务完成各种运算和操作。④ 将存于寄存器中的处理结果送至输出端。⑤ 应各种外部设备的工作请求。 常工院毕业设计论文 (2)存储器 PLC的存储器分为两大部分: 一大部分是系统存储器,用来存放系统管理程序、监控程序及其系统内部数据。二大部分是用户存储器,包括用户程序存储区及工作数据存储区。(3)输入输出接口电路 PLC通过输入输出(I/O)接口电路实现与外围设备的连接。输入接口通过PLC的输入端子接受现场输入设备的控制信号,并将这些信号转换成CPU所能接受和处理的数字信号。(4)电源 PLC的电源是指将外部输入的交流电经过整流、滤波、稳压等处理后转换成满足PLC的CPU、存储器、输入输出接口等内部电路工作所需要的直流电源电路或电源模块。 (5)输入输出I/O拓展接口、若主机单元的I/O点数不能满足输入输出点数需要时,可通过此接口用扁平电缆线将I/O拓展单元与主机单元相连接。(6)PLC的基本工作原理 PLC采用的是循环扫描工作方式。对每个程序,CPU从第一条指令开始执行,按指令步序号做周期性的程序循环扫描,如果无跳转指令,则从第一条指令开始逐条顺序执行用户程序直至遇到结束信号后又返回第一条指令,如此周而复始不断循环,每一个循环称为一个扫描周期。PLC的扫描全过程如图3所示。 ① 输入刷新阶段 在输入刷新阶段,CPU扫描全部输入端口,读取其状态并写入输入状态寄存器。完成后关闭输入端口,转入程序执行阶段。② 程序执行阶段 在程序执行阶段,根据用户输入的控制程序,从第一条开始逐条执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器和输出状态寄存器。③ 输出刷新阶段 常工院毕业设计论文 当所有指令执行完毕后,将输出状态寄存器中的内容,依次送到输出锁存电路,并通过一定输出方式输出,驱动外部相应执行元件工作,这才形成PLC的实现输出。 显然扫描周期的长短取决于程序的长短。扫描周期越长,响应速度越慢。由于每一个扫描周期只进行一次I/O刷新,即每一个扫描周期PLC只对输入、输出状态寄存器更新一次,故使系统存在输入、输出滞后现象,这在一定程度上降低了系统的响应速度。由此可见,若输入变量在I/O刷新期间状态发生变化,则本次扫描期间输出会相应地繁盛变化。反之,若在本次刷新之后输入变量才发生变化,则本次扫描输出不变,而要到下一次扫描的I/O刷新期间输出才会发生变化。这对于一般的开关量控制系统来说是完全允许的,不但不会造成不利影响,反而可以增强系统的抗干扰能力。这是因为输入采样仅在输入刷新阶段进行,PLC在一个工作周期的大部分时间里实际上是设隔离的。而工业现场的干扰常常是脉冲式的、短时的,由于系统相应较慢往往要几个扫描周期菜响应一次,而多次扫描后,因瞬间干扰而引起的误操作将会大大减少,从而提高了系统的抗干扰能力。但是对于控制时间要求较为严格、响应速度要求较快的系统,就需要精心编制程序,必要时采用一些特殊功能,以减少因扫描周期造成的响应滞后等不良影响。 1.5 松下电工可编程序控制器产品—FR1-C24介绍 经过从功能和价格两个方面的考虑,发现松下电工可编程序控制器产品—FR1-C24比较适合自动售货机。因为它是一种功能很强的小型机,在设计的过程中采用先进的方法及组件使其通常只有在大型PLC中才具有的功 常工院毕业设计论文 能,且具有其他控制器所不具备的功能。虽然是小型机,但是其功能较完善,性能价格比高,较适合自动售货机。 现在就对FR1-C24的组成各部分和技能做一个简单介绍。在松下电工公司生产的FR系列产品中,FR1属于小型的PLC产品,其中C24是具有高级处理功能的型号。从型号可以看出FR1-C24可编程序控制器的输入输出点数(即I/O)之和为24.1.5.1 FR1-C24的组成各部分 (1)RS232 该端口能于PC机通信编程,也可连接其他外围设备。(2)运行监视指示灯 ① 当运行程序时,“RUN”指示灯亮; ② 当控制单元终止执行程序时,“PROG”指示灯亮; ③ 当发生自诊断错误时,“ERR”指示灯亮; ④ 当检测到异常的情况时或出现“Watchdog”时,“ALARM”指示灯亮。(3)工作方式选择开关 ①“RUN”工作方式 当开关扳到这个档位时,控制单元运行程序。②“REMOTE”工作方式 在这个工作方式下,可以使用编程工具改变可编程序控制器的工作方式为“RUN”或“PROG”工作方式。③“PROG”工作方式 在此方式下可以编辑程序。若在“RUN”工作方式下编辑程序,则按出错对待。可编程控制器鸣响报警,提示编程者将方式选择开关切换至“PROG”工作方式。④输出端子 C24型的输出端子有8点。该端子板为两头带螺钉可拆卸的板。⑤直流电源输出端子 在FP1系统主机内部均配有一个供输入端使用的24V直流电源。⑥输入端子 C24型的输入端子有16点。输入电压范围为直流12~24V。该端子板为两头带螺钉可拆卸的板。⑦编程工具连接插座(RS422口) 可用此插座经专用外设电缆连接编程工具。⑧波特率选择开关 有19 200bp和9 600sbps两档,当可编程控制器与外部设备进行通信时,应根据不同的外设选定波特率。⑨电位器(V0、V1) 电位器(V0、V1)这两个电位器可用螺丝刀进行手动调节,实现外部设定。当调节该点位器时,PLC内部对应的特殊数据寄存器DT9040和DT9041的内容在0~255之间变化,相当于输入外部可调的模拟量。C24有两个(V0、V1)。 常工院毕业设计论文 ⑩ I/O点状态指示灯和拓展单元接口插座 用来指示输入/输出的通断状态,当某个输入触点闭合时,对应于这份触点编号的输入指示发光二极管点亮(下一排);当某个输出继电器接通时,对应这个输出继电器编号的输出只是发光二极管点亮(上一排)。拓展单元接口插座用以连接FP1拓展元件及A/D、D/A转换单元、链接单元。 1.5.2 技术性能 FP1—C24的主机I/O点数为16/8;最大I/O点数为104;运行速度为1.6μs/步;容量为2720步;基本指令数为80;高级指令数为111;内部继电器为1008点;特殊内部继电器为64点;定时器/记数器为144点;数据寄存器为1660字;特殊数据寄存器为70字;索引寄存器为2字;主控指令为32点;跳转标记数为64点;步进数为128级;子程序个数为16个;中断个数为9个程序;输入滤波时间为1—128ms。 第二章 PLC系统设计 2.1 序控制系统设计的基本原则 2.1.1 控制系统设计原则 任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。因此,在设计PLC控制系统时,应遵循以下基本原则: (1)最大限度地满足被控对象的控制对象。设计前,应深入现场进行调查研究,收集资料,并与机械部分的设计人员和实际操作人员密切配合,共同拟定电气控制方案,协同解决设计中出现的各种问题。 (2)在满足控制系统要求的前提下,力求使控制系统简单、经济、使用及维修方便。 (3)保证控制系统的安全、可靠。 (4)考虑到生产的发展和工艺的改进,在选择PLC容量时,应适当留有余量。 2.1.2 控制系统设计的基本内容 PLC控制系统是由PLC与用户输入、输出设备连接而成的,因此,PLC控制系统设计的基本内容应包括: (1)用户输入设备(按钮、操作开关、限位开关、传感器等)、输出设备(继电器、接触器、信号灯等执行元件)以及有输出设备驱动的控制对象(电动机、电 常工院毕业设计论文 磁阀等)。这些设备属于一般的电气元件,其选择的方法在其他有关数据中已有介绍。 (2)PLC的选择。PLC是PLC控制系统的核心部件,正确选择PLC对于保证整个控制系统的技术经济性能指标起到重要作用。选择PLC,应包括机型选择、容量的选择、I/O模块的选择、电源模块的选择等。(3)分配I/O点,绘制I/O梯形图。 (4)设计控制程序。包括设计梯形图、语句表(即程序清单)和控制系统流程图。控制系统程序是控制整个系统工作的软件,是保证系统工作安全、可靠的关键。因此,控制程序的设计必须经过反复调试、修改,知道满足要求为止。(5)必要时还需要设计控制台。(6)编制程序系统的技术文件。 2.1.3 控制系统设计的一半步骤 (1)根据生产的工艺过程分析控制要求。 (2)根据控制要求确定所需的用户输入、输出设备,以此确定PLC的I/O点数。(3)选择PLC系统。 (4)分配PLC的I/O点,设计I/O接线图。 (5)进行PLC程序设计,同时可进行控制大的设计和现场施工。 2.1.4 编写梯形图的注意事项 (1)输入/输出继电器、内部辅助继电器、定时器。记数器等器件的触点可以多次重复使用,无需复杂的程序结构来减少触点的使用次数。 (2)梯形图每一行都是从左母线开始,线圈终止于右母线。触点不能放在线圈的右边。除步进程序外,任何线圈、定时器、记数器、高级指令等不能直接与左母线相连。如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或者一个没有使用过的内部继电器的常闭触点来连接。(3)在程序中,不允许同以编号的线圈两次输出。(4)不允许出现桥式电路。 程序的编写顺序应该按照自上而下、从左至右的方式编写。为了减少程序的执行步数,程序应为“左大右小,上大下小”。 2.1.5 程序设计的步骤 (1)对于较复杂的控制系统,需绘制系统控制流程图,用以清楚地表明动作的顺序和条件。 (2)设计梯形图。是程序设计的关键一步,也是比较困难的一步。(3)根据梯形图编制程序清单。(4)用编程器将程序输入到PLC的用户存储器中,并检查输入的程序是否正确。(5)对程序进行调试和修改,知道满足要求为止。 常工院毕业设计论文 (6)带控制台及现场施工完成后,就可以进行联机调试。若未满足要求,再从新修改程序或检查接线,知道满意为止。(7)编写技术文件。(8)交付使用。 控制系统设计步骤流程图如图4所示。 第三章 自动售货机PLC程序设计 3.1 仿真实验系统中售货机的分析 由于售货机的全部功能时在上位机上模拟的,所以售货机的部分硬件是由计算机软件来模拟 常工院毕业设计论文 图4 PLC 控制系统设置 替代的。如钱币识别系统可以用按压某个“仿真对象”输出一个脉冲直接给PLC发布命令而传动系统也是由计算机来直接模拟的,这些并不会影响实际程序的操作,完全能模拟现实中自动饮料售货机的运行。(1)试验状态假设 由于是在计算机上模拟运行,试验中有一些区别于实际情况的假设,本试验中假设: ① 自动饮料售货机只可售8种商品。 ② 自动饮料售货机可识别10元、5元、1元、5角、1角硬币。 ③ 自动饮料售货机可退币10元、5元、1元、5角、1角硬币。 常工院毕业设计论文 ④ 自动饮料售货机有液晶显示功能 ⑤ 实验中售货机忽略了各种故障以及缺货等因素。(2)一次交易过程分析 为了方便分析,我们以一次交易过程为例。 ① 初始状态。由电子标签显示各种商品价格,显示屏显示友好界面,此时不能购买任何商品。 ② 投币状态。按下投币按钮,显示投币框,按下所投币值显示屏显示投入、消费、余额数值,当所投币值超过商品价格时,相应价格选择按钮发生变化,提示可以购买。 ③ 购买状态。按下可以购买的选择按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。 ④ 退币按钮。按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。 到此为止,饮料自动售货机的一个完整工作过程结束。 3.2 设计任务的确定 在清楚饮料自动售货机运行工作过程的基础上,制定出设计方案,确定任务的目标,以设计出合理的仿真系统。 首先,应该做上位机与下位机的任务分工:上位机主要用来完成仿真界面的制作过程,而下位机则主要用来完成PLC程序的编写。其次,要分别对上位机和下位机进行资料的查找与收集。例如在进行仿真界面的设计时可以去观看一下真正售货机的外观,必要时可以借助一些宣传图片来设计饮料自动售货机的外型:在进行PLC程序的编写时需要先分配PLC的I/O点,确定上、下位机的接口。然后,对上、下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计。 另外,上位机与下位机的设计工作是紧密配合的。它们无论在通信中使用的变量,还是在仿真中控制的对象都应该是一致的。总体上讲,仿真界面是被控对象,利用PLC来控制这个仿真的饮料自动售货机,仿真的饮料自动售货机接受PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真饮料自动售货机的运行,都是由组态界面所提供的命令语言来完成的。这是整个仿真系统内部各大部件之间的内在关系。 我主要是对饮料自动售货机中的下位机,也就是主要是对PLC在其中的程序进行设计。仿真程序只做了解,虽然只做了解,但是也将在下面有所介绍。清楚了仿真试验的整体设计思路,下面就可以开始着手设计了。 3.3 程序设计部分 这个部分内容是整个系统设计的主体部分。所要完成的任务是仿真系统的上位机与下位机的程序设计,即在上述功能分析的基础上,有针对地进行设计。 常工院毕业设计论文 3.3.1 程序设计说明 下位机程序的编制则是利用松下PLC专用编程软件FPWIN-GR完成的。 在设计的过程中,就像上面所叙述的那样,并非孤立的分别进行上位机和下位机的设计工作,而是互相配合的。因此在以下的详细设计过程中,并没有将上位机的设计与下位机的设计整体分开来写,而是相互交替,同时尽量清晰的叙述,在相应的设计部分中注明是上位机的设计还是下位机的设计。 3.3.2 PLC程序设计 可以把一次交易过程分为几个程序块:运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。(1)运行初期电子标签价格的内部传递程序的设计 仿真系统运行初期,要由PLC向仿真画面相应对象传递已存储好的价格,还要给投入显示、消费显示以及余额显示存储器清零,同时也要给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令F0,同时在上位机上ForceControl中,必须定义相应的变量,来实现与PLC程序的对接。所定义的变量如表1所示。 表1初始状态变量表 根据表1编制PLC程序如图5所示。 常工院毕业设计论文 图5 运行初期电子标签价格的内部传递程序 在梯形图程序图5中,系统初始化时,通过运行初期闭合继电器R9031在第一次扫描时将数值传递给上位机。给WR1-WR11及SV0-SV4赋初值,赋值功能通过高级指令F0实现,至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍他们的作用。(2)投币过程 在投币过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样币制。先建立变量表,在编写程序。变量表如表2所示。对应的梯形图程序如图7所示。 表2 投币过程变量表 在图中,当按下投入1角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下 去。投入1角要投入显示、余额显示 常工院毕业设计论文 都相应增加相同数值,加法是由16位加法指令E20来实现的。投入5角、1元、10元,原理同上。(3)价格比较过程 价格的比较要贯穿实验的始终,只要余额大于某种商品价格时,就需要输出一个信号,图7 投币过程梯形图 提示可以购买。这里只要选择灯代表此信号。所建立的变量表如表3所示。 表3 价格比较过程变量表 常工院毕业设计论文 根据变量表和控制要求编写程序如图8所示。 在梯形图8中,为了实现数据的实时比较,用了一个特殊内部继电器R9010,在程序执行过程中,R9010始终保持闭合,F60是16位数据比较指令,用它来比较余额和商品价格,R900A是大于价格,R900B是等于标志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。 常工院毕业设计论文 图8 价格比较过程梯形图 (4)选择商品过程 当投入的币值可以购买某种商品时,按下相应的“选择”按钮即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格相比较,判断是否能继续 购买。出现在出货口的商品在没有取走之前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口的商品隐藏。建立的变量表如表4所示。对应的梯形图程序如图9所示。 常工院毕业设计论文 表4 选择商品过程变量表 在梯形图9中,一是要使商品出现在出货框中,而是要实现内部的货币运算。以第一步为例,按下选择01 商品键,相当于给R205加一个信号(只接受一次脉冲,所以用DF微分指令),当Y0接通(01商品灯亮)时,则系统显示可以购买01商品,购买成功。当按下取01商品按钮时,R230断开,不能输出Y8,代表01商品被取走。内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,显示消费的币值。加法由F20指令实现,减法由F25实现。 常工院毕业设计论文 常工院毕业设计论文 (5)退币过程 常工院毕业设计论文 在退币过程中,最主要的是完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要使用到的某些寄存器重新赋零,所建立的变量如表5所示,对应的梯形图程序如图10所示。 表5 退币过程变量表 整个退币过程在按下按钮(即R20F接通时)时执行,同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。F32是除法指令,第一次将余额的币值除以1000,商存储于SV0中,作为退币10的输出值。余数则存储于特殊数据寄存器DT9015中,下次将不能被1000(10元)整除的余数除以100(5元),商且存储于SV1中,余数继续下传,直至被1角除过,由于所投币值最小是1角,并且商品价格也确定在整角,所以最终能被1角整除。在程序的初始化时曾给WR13、WR15、WR17、WR19和WR20赋零,WR13、WR15、WR17、WR19和WR20是程序的中间量,为的只是程序在使用过程中能稳定执行,避免出现退币错误。 为什么要除以1000呢?这主要是考虑到PLC的主要特点是执行过程稳定可靠,但执行速度较慢,在计算时尽量将数值作为整数计算,因为是在计算机上模拟,可以把一部分功能交由计算机来实现,这里把1角当作 10、把5角当作50、1元当作100、5元当作500、10元当作1000,可以避免把这些数据当作有小数点的实数计算,这同前面的加1角等于10(K10)是相同的道理。至于交由计算机的任务将在以后叙述。 退币过程结束后,PLC要将寄存器中的数值置回原定得初值0,完成一次交易,防止下一次交易时出错,还将中间量WR13、WR15、WR17、WR19和WR20清零。完成了以上5个过程,自动售货机的PLC控制程序基本完成,程序可以控制售货机实现各种要求的功能。 常工院毕业设计论文 图10 退币过程梯形图 3.4 仿真界面与PLC的配合定 在这一段中,将仔细分析仿真界面各部分是如何与PLC连接的。分析过程是按照一次交易的实际情况来进行的,即有初始状态、投币状态、购买状态、退币状态到交易结束。(1)初始状态 通过分析得知,当电子标签显示各商品的价格、显示屏显示友好界面时,不能购买任何商品。因此先让变量poiwindows=0(系统默认)。 电子标签中的字符„J.01‟(以01商品为例)对应的变量JG01.PV与PLC程序中的地址WR4相匹配,WR4中的存储器据为250,即让字符显示2.5元。对应的梯形图如 常工院毕业设计论文 图11所示。(2)投币状态 当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢?双击汉字“投币”来到“动画连接”画面,选择“触敏动作”框中作如下定义:按下鼠标时,poiwinJB=1,poiwinJB这个变量是控制投币框的,当poiwinJB=1时,出现钱币和提示框:poiwinJB=0时,钱币和提示框隐藏。 图11 数据初始化梯形图 下面分别定义提示框和钱币以及“确认”按钮,双击提示框,来到“动画连接”画 常工院毕业设计论文 面,定义poiwinJB=1时显示,各硬币也用同样的方法定义,这样就使在按下汉字“投币”时,变量poiwinJB=1,从而出现投币框,以及硬币等。我们只是定义了投币框的显示状态,用鼠标点击代替 了实际过程中的钱币投入动作,最重要的任务是钱币运算,下面介绍钱币的定义方法。 以10为例:双击10硬币,开到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义:按下鼠标时,poiwinJB=1;TR$100.PV=1时给PLC发出一个接通信号,由于TR$100.PV对应的PLC地址是R204,使得204继电器导通,转而执行相应的加10元程序。同样定义其他钱币,注意其对应的PLC软继电器。最后还要定义“确认按钮”。要实现的功能是按下“确认”按钮时,所有的钱币以及提示框均消失。当投币以后,显示屏要及时反映出投币情况,同时“选择”指示也要相应变化。下面来定义显示屏和“选择”按钮。 显示屏要显示3种数据,分别为:投入显示、消费显示、余额显示。三种显示均用力控软件自带的附件—数码管来显示。现在工具箱中点击“选择子图框”,在子图框中找到仪表中的数码管,放在显示屏中,作为投入显示,再复制两个,分别作为消费显示、余额显示。双击数码管来到数码管属性设置画面,在表达式中作如下定义:poiTR001.PV/100,poiTR001.PV连接的是PLC程序中的WR1软继电器,是用来存储投入显示数据的,除以100同样是为了PLC数据计算的方便。这样就可以用数码管来显示投入中的币值。同样定义消费显示、余额显示。“选择”按钮要根据余额的数值发生闪烁和变色。定义过程如下:双击“选择”按钮,来到“动画连接”画面,在“颜色相关动作”中选择“闪烁”项,分别定义属性和频率,在变量选择中选择相应的指示灯变量。以01商品的选择指示灯为例,在变量选择中选择D01.PV=1,满足条件时指示灯变色。这样就定义好了投币状态的上位机仿真变量,配合PLC程序可以实现投币功能。(3)购买状态 定义了投币状态,就可以购买商品了。当选择指示灯以后,按下它,在出货口处出现我们要买的商品。这样定义“选择”按钮:双击“选择”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义:按下鼠标时,XZ01.PV=1;释放鼠标时,XZ01.PV=0.XZ01.PV与PLC程序中的R205相对应,按下可以购买商品的选择键,转而执行相应的PLC程序,同时消费显示增加相应的币值,余额显示减少相应的币值,此时还要在出货口出现相应的商品,这是用“显示/隐藏”功能来定义在出货口中出现相应的商品。以01为例,双击出货口处的小商品,来到“动画连接”,选择“显示/隐藏”项,定义CX01.PV=1时显示。出货口框架的隐藏/显现是用程序来控制的。当有一种商品出现在出货口,就会显示 常工院毕业设计论文 框架;当全部商品均消失后框架隐藏。程序如图12所示。图中R210是控制出货口框架是否出现的继电器。(4)退币状态 当按下“退币”按钮时,PLC进行退币运算,所以按下“退币”按钮就要与PLC通信,执行退币计算。下面来定义退币按钮,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,动作描述为:按下鼠标,poiwinJB=0;poiwinTB=1;Tenter.PV=1.释放鼠标,Tenter.PV=0;内部变量poiwinJB=1是让投币框消失,poiwinTB=1是让退币框出现,Tenter.PV与PLC程序中的R20F对应。退币框中要有5种硬币,还要有表示硬币个数的数字。由于计算中采用的算法使得退币时按照币值大小顺序退币,例如退5元,只退一个5元,而不是5个1元。定义表示硬币个数的变量只用一位数即可。在退币时,要退出的硬币及个数显式,而不退的硬币隐藏。 图12 出货口框架的隐藏/显现梯形图 定义钱币时(以10为例),双击10元硬币,出现“动画连接”画面,选择“显示/隐藏”项,在“可见性定义”对话框中作出的表达式为TB$100.PV=0。其他硬币定义方法同上。定义钱币个数:双击10硬币个数字符“a”,出现“动画连接”画面,选择“数值输出”中的“模拟”项,做出表达式为TB$100.PV。同时钱币个数也要定义是否隐藏,定义方法和定义钱币相同。定义“确认”键时,按下“确认”键,代表取走了所有硬币,完成此次交易,因此退币“确认”的定义很重要。双击“确认”键,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述栏中定义如下:按下鼠标 常工院毕业设计论文 poiwinTB=0; 功能:退币框消失 TuiBiok.PV=1; 功能:给PLC信号,闭合R0,完成数据的初始化 Poiwindows=0 功能:显示屏显示友好界面时 为了防止在未取走商品时退币,按下“确认”键又不能返回原始状态,在描述过程中加入以下一段程序,强行抛掉以购买的商品。CX01.PV=0 CX02.PV=0 CX03.PV=0 CX04.PV=0 CX05.PV=0 CX06.PV=0 CX07.PV=0 CX08.PV=0 释放鼠标时,TuiBiok.PV=0.只是一个微分信号,不能将R0永远置为1。还有一点要注意,“确认”键也要有隐藏的时候定义方法如钱币。 定义退币框架:按下“退币”按钮后就会出现退币框架。可以这样定义:双击退币框架,来到“动画连接”画面,选择“显示/隐藏”项,在“可见性定义”中定义poiwinTB=1时显现即可。 3.5 数据连接 3.5.1 定义I/O设备 数据库是从I/O驱动程序中获取过程数据的,而数据库同时可以与多个I/O驱动程序进行通信,一个I/O驱动程序也可以连接一个或多个设备。下面创建I/O设备。(1)在Draw导航器中双击“实时数据库”项使其展开,在展开项目中选择“PLC”项双击使其展开后,选择项目双击并定义。(2)单击“完成”按钮返回,在“松下电工”项目下增加一项“PLC001”,如果要对I/O设备“PLC001”的配置进行修改,双击项目“PLC001”,会再次出现PLC001的“I/O设备定义”对话框。若要删除I/O设备“PLC001”,用鼠标右键单击项目“PLC001”,在弹出的右键菜单中选择“删除”。 ① 数据连接 刚刚创建了一个名为“PLC001”的I/O设备,而且它连接的正是假想的PLC设备。现在的问题是如何将已经创建的多个数据库点与PLC联系起来,以使这些点的PV参数值能与I/O设备PLC进行实时数据交换,这个过程就是建立数据连接的过程。由于数据库可以与多个I/O设备进行数据交换,所以必须指定哪些点与哪些个I/O设备建立数据链接。为方便起见,我们将数据列整理成如表 6、表7所示。 表6 数字I/O 常工院毕业设计论文 续表 6 常工院毕业设计论文 表7 模拟I/O表 3.5.2 设计 饮料自动售货机控制要求 (1)该自动售货机可以同时投入5角、1元或5元硬币,自动销售汽水、果汁和咖啡。 (2)当投入的硬币总值等于或超过1.5元时,汽水按钮指示灯亮;当投入的硬币总值等于或超过3元时,汽水按钮和果汁按钮同时亮;当投入的硬币总值等于或超过5元,汽水按钮、果汁按钮和咖啡按钮同时亮。 常工院毕业设计论文 (3)当汽水按钮灯亮时,按汽水按钮,则汽水排出10s后自动停止,同时汽水按钮指示灯闪烁10s。 (4)当果汁按钮灯亮时,按果汁按钮,则果汁排出10s后自动停止,同时果汁按钮指示灯闪烁10s。 (5)当咖啡按钮灯亮时,按咖啡按钮,则咖啡排出10s后自动停止,同时咖啡按钮指示灯闪烁10s。 (6)若投入的硬币总值超过所购商品的价格(汽水1.5元,果汁3元,咖啡5元),则找钱指示灯亮,同时进行找钱动作。 图13 饮料自动售货机示意图 I/O地址定义表 此控制系统可采用自动工作方式,输入信号为汽水、果汁和咖啡按钮,5角、1元或5元硬币投入识别口记数手动复位按钮;出入信号为汽水、果汁和咖啡排出电磁阀、找钱电磁阀及相应指示灯,共7个输入点,8个输出点,均为开关量。I/O地址定义如表8所示。 表8 饮料自动售货机控制系统I/O地址定义表 常工院毕业设计论文 程序设计 常工院毕业设计论文 3.5.3 运行 保存所有组态内容,然后关闭所有力控程序。将饮料自动售货机的PLC程序下传到PLC装置中,在切换到离线状态,然后再次启动力控工程管理器,选择本工程,并单击“进入运行”按钮启动整个运行系统。 常工院毕业设计论文 结束语 经过几个月的学习、研究以及吴老师的指导,终于按时完成了毕业设计。设计主要研究的是自动售货机有关PLC的部分。自动售货机是由于劳动密集型的产业构造向技术密集型社会转变的产物。自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购物好奇新的自身性能,可以很好地解决人工费用的上升的问题等各项优点。所以说,自动售货机是今后饮料销售方式的一个很好的发展趋势。它的出现将极大的方便人们购买所需的饮品。 常工院毕业设计论文 致谢 经过几个月的努力工作,毕业设计在指导老师吴金的悉心指导下终于顺利完成了,吴老师他待人和蔼可亲,在这几个月里我们相处的非常融洽,吴老师他社会实践经验丰富,工作认真踏实,治学态度严谨,而且他深厚的理论功底及设计能力更令我感到钦佩。设计期间,吴老师对我悉心的指导,认真查阅我的草图和设计说明书,令我十分感动。总之,吴老师的人品及治学态度是我学习的楷模和榜样,在此,我要向指导老师吴金表示感谢。 在此次设计中,也需要感谢的是我的同学。大家在一起共同奋斗,互相讨论,对我的毕业设计有很大帮助,并且,我们在一起共同营造了一个融洽的学习生活环境,建立了良好的友谊。 参考文献 程周·可编程序控制器原理与应用·北京:高等教育出版社,2003年 2王永华·现代电机控制及PLC应用技术·北京:北京航空航天大学出版社,2000年 周美兰、周封、王岳宇·PLC电气控制与组态设计·北京:科学出版社,2003年 吴建强、蒋三勇·可编程控制器原理及应用·哈尔滨工业大学出版社,2000年 吴中俊、黄永红·可编程序控制器原理及应用·北京:机械工业出版社,2003年 张万忠、刘明芹·电器与PLC控制技术·北京:化学工业出版社,2003年 7 王兆义·可编程序控制器教程·北京:机械工业出版社,2001年 自动售货机 信息1101 施敏宇 18号 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。 面向对象的分析 面向对象分析方法的核心思想是利用面向对象概念和方法为软件需求构造一组相关模型(对象模型,动态模型和功能模型),来获得关于问题域的全面认识。 这三个模型从不同的角度对系统进行描述,其中:对象模型描述了系统静态的、结构化的数据性质;动态模型描述了系统顺势的、行为化的控制性质;功能模型描述了变化的系统的功能性质。这三个模型都涉及到数据。控制和操作等共同的概念,但每种模型描述的侧重有所不同。它们各自以不同侧面反应系统的实质内容,综合起来则全面反映了目标系统的需求。 对象模型是三个模型中最关键的。它的作用是描述系统的静态结构,包括构成系统的类和对象、它们的属性和操作以及它们之间的联系。UML中类图适用于建立对象模型,状态图适用于建立动态模型。每个类的动态行为用一张状态图来表示,各个类的状态图通过事件合并起来,构成系统的动态模型。也就是说,动态模型是基于事件共享而相互关联的一组状态图的集合。建立对象模型大体上按照下列顺序进行:寻找问题域内的对象,识别出对象间的关系、定义属性和服务。事实上,分析工作不可能严格按照预定顺序进行,系统的模型往往需要反复构造多遍才能建成。 注:对象硬币计算器和对象硬币检测器可以作为对象自动售货器的一部分,它们的属性作为自动售货器的属性。 建立动态模型 对于仅存数静态数据的系统来说,动态模型并没有什么实际意义。然而在开发交互式系统时,动态模型却起着很重要的作用。如果收集输入信息是目标系统的一项主要工作,则在开发这类应用系统时建立正确的动态模型是至关重要的。 建立动态模型的步骤: (1)编写典型的对话脚本; (2)从脚本中提取出事件,联系该事件与其目标对象; (3)组织事件的顺序和状态(采用状态图描绘); (4)比较各个不同对象的状态图,检查对象之间的一致性,确保事件之间的匹配。 提示投币投币购买提示是假币,退币假币检查硬币否真币存储硬币,计算货币总值确认投完硬币是请求选择货物选择货物检测货物存量无货提示无货计算比较货币总值和货物价格确认确认顾客购买小于提示货物不足,确认顾客购买不购买送出货物,请求取货不购买退币请求取退币提示显示交易完毕 功能模型 功能模型描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。功能模型由多张数据流图组成。数据流图用来表示从源对象到目标对象的数据值的流向,它不包含控制信息,控制信息在动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。 数据流图中包含有处理、数据流、动作对象和数据存储对象。 1.处理 数据流图中的处理用来改变数据值。最低层处理是纯粹的函数,一张完整的数据流图是一个高层处理。 2.数据流 数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。在一个计算机中,用数据流来表示一中间数据值,数据流不能改变数据值。 3.动作对象 动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。 4.数据存储对象 数据流图中的数据存储是被动对象,它用来存储数据。它与动作对象不一样,数据存储本身不产生任何操作,它只响应存储和访问的要求。 有效币特征假币退假币假币检查硬币有效币硬币送入硬币储藏器计算面值货物价格有货货币总值硬币顾客投币顾客不足等待顾客投币顾客取消购买,退币顾客判断货币是否足够足够选择货物判断分配器货物存量无货分配货物,找零货物,硬币硬币退币 自动分捡系统设计开题报告 一、课题介绍 1.课题名称:自动分捡系统设计 2.课题背景: 自动分拣系统(Automated Sorting System)是二次大战后率先在美国、日本的物流中心中广泛采用的一种自动化作业系统,该系统目前已经成为发达国家大中型物流中心不可缺少的一部分。该系统的作业过程可以简单描述如下:流动中心每天接收成百上千家供应商或货主通过各种运输工具送来的成千上万种商品,在最短的时间内将这些商品卸下并按商品品种、货主、储位或发送地点进行快速准确的分类,将这些商品运送到指定地点(如指定的货架、加工区域、出货站台等),同时,当供应商或货主通知物流中心按配送指示发货时,自动分拣系统在最短时间内从庞大的高层货架存储系统中准确找到要出库的商品所在位置,并按所需数量出库,将从不同储位上取出的不同数量的商品按配送进点的不同运送到不同的理货区域或配送站台集中,以便装车配送。 3.国内外发展现状: 纵观国内外物料自动分拣系统的应用情况可以发现,国外发达国家的物料自动分拣系统倾向于采用自动化程度很高的物料自动分拣系统。而在我国,由于起步晚,物料自动分拣系统中人工作业的比例也较高。国外物料自动分拣系统的广泛使用,以美国、日本及欧洲为代表的发达国家,在物料自动分拣系统的应用上呈现出自动化程度越来越高的特点。物料自动分拣系统已成为发达国家工业自动化不可缺少的一部分。主要应用在大中型物流中心、配送中心、流通中心、邮局分拣信件等等随着交流自动控制技术的发展,特别是电子技术的迅速发展,计算机的广泛应用。自动分拣技术在20世纪70年代被引入国内,我国的邮政系统最早并已多年使用自动分拣设备,并在长期的实践中不断创新、不断进步。例如,邮电部相关部门相继开发和研制出具国际水平的CORE-NT物料自动分拣系统,性价比很高的扁平邮件高速物料自动分拣系统;上海邮政通用技术设备公司研制成功了速递邮件网络化物料自动分拣系统等。邮政系统还推出了新的信封标准以更好的配合自动化的信件物料自动分拣系统。 3.1 国内发展现状 在物流中心分拣系统的研究中,主要有三方面内容。一方面是物流分拣设备和控制技术的研究,如用于邮政系统的交叉带式分拣机研究、应用于烟草行业的通道式分拣机研究等等。第二方面是对物流中心存储策略和分拣路径优化的研究,如用BOM表进行仓储位置优化的研究,用蚁群算法实现分拣路径的优化等等。第三方面是对分拣作业数据信息与分析决策问题,华南理工大学、中国人民大学、华中科技大学、浙江大学等国内高等院校的学者都进行了定性与定量的研究。如马士华、文坚的分批策略根据时间延迟思想,综合考虑了拣货作业环节和分拣包装环节的工作效率,提出了一种消除因时窗分批不平衡而导致的等待时间和闲忙不均的动态时窗设计与判断方法,从而保证分拣系统的连续性和均衡性。李凯就卷烟分拣的几种优化模型展开了较深入的探讨,并以仿真的手段进行了验证。朱岩就卷烟分拣机的控制策略和不同设备参数下的分拣系统整体性能进行了研究,并通过仿真程序模拟验证。 如今,国际竞争日益加剧,为了发展我国物流业,国内的许多企业和政府部门也在做更大的努力,也已取得了一定的成效。例如,邮电部相关部门相继开发和研制出具国际水平的CORE-NT物料自动分拣系统,性价比很高的扁平邮件高速物料自动分拣系统;上海邮政通用技术设备公司研制成功了速递邮件网络化物料自动分拣系统等。邮政系统还推出了新的信封标准以更好的配合自动化的信件物料自动分拣系统。太原刚玉仓储设备公司和贵阳普天通信机械厂已设计生产货架电子标签拣选系统、小车式数字显示拣选系统、邮件自动分拣系统等;珠海普天慧科信息技术有限公司研发出PTL(Pick-to-light&Put-to-light)电子标签拣选系统,除具备电子标签拣选系统的一般优点之外,还具有弹性控制拣货作业流程、即时现场监控、紧急订单处理和缺货通知等强大的功能。 虽然在邮政系统外的其它行业,国内对物料自动分拣系统的使用还非常少,但有关部门和企业正在为此做出不懈的努力。可以肯定,随着物流大环境的逐步改善,物料自动分拣系统在我国流通领域一定会大有用武之地。3.2 国外研究现状 以美国、日本及欧洲为代表的发达国家,在分拣系统的应用上呈现出自动化程度越来越高的特点。自动分拣系统已成为发达国家大中型物流中心、配送中心或流通中心不可缺少的一部分。在分拣系统等物流中心子系统规划设计中,各发达国家的规划原则有很大的差异。日本的物流中心大都规模适中,采用先进的自动分拣系统和无线通讯设备,美国主要采用立体仓库以节约地价支出,但分拣等设备大都采用机械化或半自动化,不盲目采用全自动设备。他们共同的特点是均实现较成熟的电脑网络化管理,保证了配送的及时准确性,节约劳动力成本。国外的学者专家如Goetschalckx和Ratliff提出利用动态规划法来求解宽通道内的拣货路径问题,Roodbergen和Koster研究在多横向通道仓储系统环境下,针对各种分拣策略比较在不同通道数目、不同货物品项及不同通道宽度的拣货路径的问题,Elizabeth Jewkes等对商品储存位置等对分拣的影响展开研究,Loon C.Tang等论述了分批与存储分配策略对分拣的影响,Richard L.Daniels等对仓库订单分拣的研究,M.I.Johansson对货物存储位置的分配对减少分拣时间的作用进行了研究,美国麻省理工学 院 Dimitris.Bertsimas 和 Robert.M.Freund 和March.J.G.A),W.L.Winston,Jeremy.Shapiro,Lacksonen T).Whitley等学者也做了部分相关内容的研究工作。 就目前来讲,国外的自动分拣系统发展极为迅速。如:Aughan,Mark将分拣系统归纳为5个子系统:订单挑选、感应、合并前聚集、合并、搬运分拣,以此使订单与不同传送带有机地的结合起来,形成一个高效的物料分拣系统。MaselD.T研究了如今关于评估环形物料分拣系统的分拣时间的解析公式,这个类型的分拣系统主要是用来分拣固定形状的货物;NormanSaeneJR从配送中心里物料搬运这个方面研究了如何构建物料分拣系统传送带、如何搭配传送带以及如何构建一个良好的物流分拣搬运系统。 4.工作内容和要求:(拟设计方案) 系统利用各类传感器对待测材料进行识别并分类。当材料经由下料装置进入传送带,依次由各类传感器检测。如果被某种传感器测中,通过相应的气动装置将其推入料箱;否则,继续前行。其控制要求有如下9个方面: (1)系统送电后,光电编码器便可发生所需的脉冲(2)电机运行,带动传输带传送物体向前运行(3)有物料时,下料汽缸动作,将物料送出(4)当电感传感器检测到铁物料时,推汽缸1动作(5)当电容传感器检测到铝物料时,推汽缸2动作(6)塑料物料在传送带运动到尾端时,掉入料槽;(7)汽缸运行应有动作限位保护(8)下料槽内无下料时,延时后自动停机 4.1本课题的研究思路和方法 本系统能对不同的材料如物料性质(铁、铝、塑料)的材料进行传送和分拣。整个系统的控制由一只可编程控制器,可以实现自动控制和无人化管理。传送带用一只三相异步电机拖动,电机使用变频器驱动,可以实现无级调速,加快分拣时的效率。物料性质的判断及机械部件的情况由传感器检测出并将信息传送给PLC。分拣部件使用气缸,结合气动系统的优势。本设计加入了人机界面,充分实现与自动化设备相接轨。 4.2.本课题的预期效果 1、研究物料自动分拣系统的特点及主要应用的场合; 2、本系统可以完成的任务要求:物料自动分拣系统能高速对不同的材料如物料性质(铁、铝、塑料)的材料进行传送和分拣; 3、本系统制作完成后的实物示意图1; 图1 4、制作并调试,使之能完成规定的工作任务及要求; 5、整理制作调试过程资料,完成毕业论文的编写。 5.课题的重点和难点: 主要解决问题: 1、控制系统设计; 2、解决三相异步电动机变频调速控制的原理,会设置变频器的参数; 3、了解气压传动的原理和特点; 4、机械安装; 5、了解传感器的原理及分类; 6.可能用到的主要知识和技能: 设计过程中电动机的控制需用到单片机和计算机编程的知识,结构设计及零件设计需用到机械原理和机械设计等知识,部件图及装配图绘制需用到工程图学和CAD,三维模型建立需掌握CATIA建模技能 工作计划(进度安排) 第七学期 第10教学周:完成并提交外文翻译; 第15教学周:完成并提交文献综述; 第20教学周:完成并提交开题报告。第八学期 第7教学周:完成总体设计、计算或数学、仿真模型; 第12教学周:完成图纸绘制或仿真分析; 第14教学周:完成设计说明书或论文撰写; 第15教学周:准备答辩。 二、参考文献 (1)黄启明贵州大学机械工程学院2010..3.2 王海华物流分拣系统的设计硕士学位论文,鞍山鞍山钢铁学院,2001(2)范启印.成品烟配送中心分拣系统的研究【硕士学位论文】,昆明:昆明理工大学,2004(3)游道明。物流系统中的路由规划和存储规划问题研究:【硕士学位论文】,上海:上海海运学院,2002(4)李庆磊,吴耀华.物流中心存储策略.物流月刊,2005,11:76~78(5)Che-Hung Lin,Luan-Yuan Lu.The procedure of determining the order picking strategies in distribution center.International Journal of production Economics,1999,60:301~307(6)S.Hsieh and K.C.Tsai,“A BOM Oriented Class-Based Storage Assignment in an Automated Storage/Retrieval Syatem”,the international journal of advance manufacture technology.2001,(17):683~691(7)宁春林.基于蚁群算法立体仓库分拣路径优化问题的研究.[硕士学位论文],济南:山东大学,2002(8)宁春林,田国会,尹建芹等.Max-Min蚁群算法在固定货架拣选路径优化中的应用,山东大学学报[工学版],2003,33(6):676~680(9)叶广宇,徐学军.生产运作战略实施和监控方法探讨.工业工程与管理,2001,(2):42~44(10)(11)(12)诸福灵.美国配送中心类型与作业流程.中国流通经济,1997,(3):38~40 姚颖颖,朱民富.生产监控与管理系统.工程建设与设计,2003,(1)30~31 扬明辉,熊容,韩斌.基于网络的数据查询与生产监控.自动化与仪器仪表,2001,(6)20~21(13)(14)(15)(16)文坚,马士华.基于时间延迟的订单分批策略研究.物流技术与应用,2005,(4):92~95 马士华,文坚.基于时间延迟的订单分批策略研究.工业工程与管理,2004,(6):1~4 李凯.自动卷烟分拣机的控制策略优化与仿真.[硕士学位论文],济南:山东大学,2006 朱岩.卷烟分拣系统协同工作策略研究与仿真分析:【硕士学位论文】,济南:山东大学,2007(17)(18)(19)栗野赖明.高速自动分拣系统.中国储运,2003,(2):46~50 吴泽锋.对日本大规模配送中心的事例研究.物流科技,2005,28(7):93~95 Willian Hoffman.rolling the dice.United States,Las Vegas Nevada:Traffic Worid,2005(20)A literature survey on planning and control of warehousing systems.IIE Transacrtion,1999,31(21)Goetschalckx,M.and Ratliff,H.D.,“An efficient algorithm to cluster order picking items in a wide aisle,”Engineering Costs and Production Economics,1998.263~271(22)Kees Jan Roodbergen.Routing order pickers in a warehouse with a middle aisle.European Journal of Operational Research.2001,133:32~43(23)Elizabeth Jewkes, Chulung Lee,Ray Vickson.Product location, allocation and server home base location for an order picking line with multiple servers.Computers and Operations Research.2004, 31:623~636(24)Ek Peng Chew, Loon Ching Tang.Travel time analysis for general item location assignment Research in a rectangular warehouse.European Journal of Operational Research.1999, 112: 582~597(25)Charles G.Petersen, Gerald Aase.A comparison of picking, and routing policies in manual order picking.International Journal of Production Economic.2004, 92:11~19(26)Loon Ching Tang, Ek Peng Chew.Order Picking Systems: Batching and Assignment Strategies.Computers&Industrial Engineering.1997, 33:817~820(27)Richard L.Daniel, Jeffrey L.Rummel, Robert Schantz.A model for warehouse order picking.European Journal of Operational Research.1998, 105: 1~17(28)H.Brynzer, M.I.Johansson.Storage location assignment: Using the product structure to reduce order picking times.International Journal of Production Economics.1996, 46~47: 595~603(29)Dimitris Bertsimas David Gamarnik Jay Sethuraman.From fluid relaxations to practical algorithms for high-multiplicity job-shop scheduling: the holding cost objective.Operations Research 2003(30)Dimitris.Bertsimas} Rober.M.Freund} Data.Models and Decisions: the Fundamentals of Management Science.北京:中信出版社,2001(31)March.J.G.A.Primer on Decision Making: How Decisions Happen.New York: The Free Press 1994(32)W·L.Winston.Operations research:Applications and Algorithms.3d ed.Belmont.CALF: Duxbury Press 1994(33)Lacksonen T.Empirical comparison of search algorithms for discrete event simulation.Computers&Industrial Engineering 2001,40: 133148(34)Whitley D.An overview of evolutionary algorithms: practical issues and common pitfalls.Information and Software Theory 2001,43:817~831第三篇:自动售货机的PLC系统设计
第四篇:软件工程_自动售货机
第五篇:自动分拣系统开题报告解析