当前位置:文档之家› 简单自动售货机VerilogHDL程序

简单自动售货机VerilogHDL程序

简单自动售货机VerilogHDL程序
简单自动售货机VerilogHDL程序

自动售货机VerilogHDL程序

一个简单的自动售卖饮料机的程序。该机器具有投币,显示余额,购买六种饮料,退钱等功能,为了更具实用性,增添了饮料选择允许提示和投币允许提示的功能。具体形容,可投入一元、五元、十元和二十元面值的钱币,显示出当前的余额,并根据当前的余额提示能购买哪些饮料,选择某种饮料,则输出选定的饮料,同时余额减去相应的金钱。若选择退钱,机器就退出所有的钱,余额清零。

下图为功能示意图:

程序的状态表:

程序中包含了一个状态机,定义了一个任务(task)和函数(function),用该任务调用了该函数,使用若干分支语句,详见附后源程序和测试程序。

附上程序编译仿真图:

源程序如下:

`define one 3'b001

`define five 3'b010

`define ten 3'b011

`define twenty 3'b100

module automart(money,state,moneyout,coinable,adrkable,bdrkable,

cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5,

drkout6,coin,clk,reset,moneyback,choice1,choice2,

choice3,choice4,choice5,choice6);

input[2:0] coin;//投币输入,分为1、5、10、20元四种输入

input clk,reset,moneyback,choice1,choice2,choice3,choice4,

choice5,choice6;//moneyback为退钱输入,choice1~6是饮料选择output moneyout,coinable,adrkable,bdrkable,cdrkable,drkout1,

drkout2,drkout3,drkout4,drkout5,drkout6;

//依次为退钱输出,投币许可提示,饮料选择许可,6种饮料输出output[2:0] state;//状态记录

output[7:0] money;//余额显示

reg[7:0] money;

reg[2:0] state;

reg moneyout,coinable,backable,adrkable,bdrkable,cdrkable;

parameter A=3'b000, B=3'b001, C=3'b010,D=3'b011, E=4'b100;

assign drkout1=choice1&adrkable;

assign drkout2=choice2&adrkable;

assign drkout3=choice3&bdrkable;

assign drkout4=choice4&bdrkable;

assign drkout5=choice5&cdrkable;

assign drkout6=choice6&cdrkable;

always@(posedge clk)

repeat(1)@(posedge clk)

if (!reset)

begin

state<=A;money=0;moneyout=0;

end

else

begin

case(state)

A: begin//初始状态A,可投币进入别的状态

coinable=1;backable=0;adrkable=0;bdrkable=0;cdrkable=0;

end

B: begin//状态B,只能买1元的饮料,可退钱或投币

coinable=1;backable=1;adrkable=1;bdrkable=0;cdrkable=0;

end

C: begin//状态C,可买1或2元的饮料,退钱或投币

coinable=1;backable=1;adrkable=1;bdrkable=1;cdrkable=0;

end

D: begin//状态D,可买三档价格饮料,可退钱或投币

coinable=1;backable=1;adrkable=1;bdrkable=1;cdrkable=1;

end

E: begin//状态E,可买三档价格饮料,可退钱,不可继续投钱coinable=0;backable=1;adrkable=1;bdrkable=1;cdrkable=1;

end

default: state=A;

endcase

condition(money,state,coin,coinable);//调用任务

end

always@(negedge drkout1 or negedge drkout2)

money=money-8'h01;//买1元的饮料,余额减1元

always@(negedge drkout3 or negedge drkout4)

money=money-8'h02;//买2元的饮料,余额减2元

always@(negedge drkout5 or negedge drkout6)

money=money-8'h04;//买4元的饮料,余额减4元

always@(negedge moneyback)

begin

if(backable)

begin

moneyout=1;

money=0;//选择退钱,则推出金钱,余额清零

end

else

money=money+0;

end

task condition;//该任务可以判断余额的改变,状态切换

inout[7:0] moneycon;

inout[2:0] statecon;

input[2:0] coincon;

input coinablecon;

begin

if (coinablecon)//允许投币时

begin

case (coincon)//根据投币面值改变余额,切换状态

`one : moneycon=moneycon+8'h01;

`five : moneycon=moneycon+8'h05;

`ten : moneycon=moneycon+8'h0a;

`twenty : moneycon=moneycon+8'h14;

default: moneycon=moneycon+0; //无投币则余额不变

endcase

statecon=condition_s(moneycon);//调用函数

end

else if (moneycon<8'h14)//不允许投币时,根据余额变化

statecon=condition_s(moneycon);//直接切换状态

end

endtask

function [2:0] condition_s;//根据余额的值切换状态的函数

input [7:0] money_s;

reg [7:0] money_s;

begin

if (money_s==0)

condition_s=A;

else if(money_s==8'h01)

condition_s=B;

else if(money_s==8'h02||money_s==8'h03)

condition_s=C;

else if(money_s>=8'h04&&money_s<8'h14)

condition_s=D;

else condition_s=E;

end

endfunction

endmodule

测试程序如下:

`timescale 100ns/1ns

`define clk_cycle 50

module test;

reg moneyback,choice1,choice2,choice3,choice4,choice5,choice6; reg [2:0] coin;

reg clk,reset;

wire[7:0] money;

wire[2:0] state;

wire moneyout,coinable,adrkable,bdrkable,cdrkable,drkout1,

drkout2,drkout3,drkout4,drkout5,drkout6;

parameter one=3'b001,five=3'b010,ten=3'b011,twenty=3'b100;

always #`clk_cycle clk= ~clk;

initial

begin

coin=0;

moneyback=0;clk=0;

choice1=0;choice2=0;choice3=0;choice4=0;

choice5=0;choice6=0;

reset=1;

#10 reset=0;

#200 reset=1;

#400 coin=one;//投币1元,

#220 coin=0;

#200 coin=one;//投1元,余额2元

#220 coin=0;

#200 coin=five;//投5元,余额7元

#220 coin=0;

#200 coin=twenty;//投20元,余27

#220 coin=0;

#200 choice1=1;//买1元饮料,余26

#220 choice1=0;

#200 choice3=1;//买2元饮料,余24

#220 choice3=0;

#200 choice4=1;//买2元饮料,余22

#220 choice4=0;

#200 choice5=1;//买4元饮料,余18

#220 choice5=0;

#200 choice6=1;//买4元饮料,余14

#220 choice6=0;

#200 choice6=1;//买4元饮料,余10

#220 choice6=0;

#200 choice6=1;//买4元饮料,余6

#220 choice6=0;

#200 choice6=1;//买4元饮料,余2

#220 choice6=0;

#200 coin=five;//投5元,余7

#220 coin=0;

#200 moneyback=1;//退钱

#220 moneyback=0;

end

automart m(.money(money),.state(state),.moneyout(moneyout), .coinable(coinable),.adrkable(adrkable),

.bdrkable(bdrkable),.cdrkable(cdrkable),.drkout1(drkout1),

.drkout2(drkout2),.drkout3(drkout3),.drkout4(drkout4),

.drkout5(drkout5),.drkout6(drkout6),.coin(coin),.clk(clk),

.reset(reset),.moneyback(moneyback),.choice1(choice1),

.choice2(choice2),.choice3(choice3),.choice4(choice4),

.choice5(choice5),.choice6(choice6));

endmodule

自动售货机控制系统的设计(最终版)

课程设计任务书 设计题目:饮料自动售货机PLC控制系统设计 学院:机械工程学院 专业:机械测控 班级: 姓名: 组员: 指导老师:

【摘要】 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:This paper introduces the basic principles of vending machines, as well as workflow, and then to a transaction process as an example, the transaction process is divided into several blo ck, and then the block were programmed. Specify the PLC in the r ole of vending machines. Procedures related to the work of the va st majority of vending machine process. PLC control of the use of vending machines enhance the stability of the system to ensure t hat vending machines capable of long-term stable operation. Key words:Vending machines; PLC; Ladder Diagram 一.PLC的概述 1.1 PLC的产生

新产品开发部门工作流程图

新产品开发部门工作流程图 新产品开发策略 要紧方式 呈 报 时期性工作总结 新产品样品开发 新产品开发过程

附件一:内部治理制度 新产品开发工作,是指运用国内外在基础研究与应用研究中所发觉的科学知识及其成果,转变为新产品、新材料、新生产过程等一切特不规性质的技术工作。新产品开发是企业在激励的技术竞争中赖以生存和进展的命脉,是实现“生产一代,试制一代,研究一代和构思一代”的产品升级换代宗旨的重要时期,它对企业产品进展方向,产品优势,开拓新市场,提高经济效益等方面起着决定性的作用。因此,新产品开发必须严格遵循产品开发的科学治理程序,即选题(构思。调研和方案论证)样(模)试批试正式投产前的预备这些重要步骤。 一、调查研究与分析决策 新产品的可行性分析是新产品开发中不可缺少的前期工作,必须在进行充分的技术和市场调查后,对产品的社会需求、市场占有率、技术现状和进展趋势以及资源效益等五个方面进行科学预测及技术经济的分析论证。 (一)调查研究: 1、调查国内市场和重要用户以及国际重点市场同 类产品的技术现状和改进要求;

2、以国内同类产品市场占有率的前三名以及国际 名牌产品为对象,调查同类产品的质量、价格、 市场及使用情况; 3、广泛收集国内部外有关情报和专刊,然后进行 可行性分析研究。 (二)可行性分析: 1、论证该类产品的技术进展方向和动向。 2、论证市场动态及进展该产品具备的技术优势。 3、论证进展该产品的资源条件的可行性。(含物 资、设备、能源及外购外协件配套等)。 (三)决策: 1、制定产品进展规划: (1)企业依照国家和地点经济进展的需要、从企业产吕进展方向、进展规模,进展水平和技 术改造方向、赶超目标以及企业现有条件进 行综合调查研究和可行性分析,制定企业产 品进展规划。 (2)由研究所提出草拟规划,经厂总师办初步审查,由总工程师组织有关部门人员进行慎密

基于PLC的自动售货机的设计

一、绪论 自动售货机是可完成无人自动售货,集光、机、电一体化的商业自动化设备。自动售货机不受任何场地限制,方便快捷,可以每天24h售货,因此深受上班族的欢迎。很多城市的公共场所里面都放置有自动售货机。出售的商品五花八门,从饮料、零食、香烟、糖果、牙刷、方便面、自动照相机。近年来,我国的自动售货机行业突飞猛进:在汽车总站、商厦、医院、小区、学校等地区都能找到自动售货机的踪迹。这种方便快捷的购物方式越来越受到人们的青睐,同时也是现代化城市配套设施的需求。传统的自动售货机控制系统采用单片机作为控制核心,这样不仅会在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。可编程序控制器(PLC)是综合了计算机技术、自动控制技术和通讯技术而发展起来的一种新型的工业控制装置,它具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛地应用。因为自动售货机作为社会上完成商品零售和综合服务的独立设施,要求它的结构必须可靠、稳定和执行效率高。本论文就详细地介绍一种用PLC实现的自动售货机控制系统的硬件设计和软件设计。 (一)自动售货机的应用与研究现状 自上世纪70年代以来,自动售货机在国际上迅速发展起来而成为一个新兴的产业,特别是在服务和商业领域日益发展。随着自动售货机的普及,也逐渐被应用于其他的领域。 随着中国经济的发展、行业运作的变革和入世的到来,自动售货机在中国的普及和应用是必然趋势。纵观近年来国内自动售货机市场,从92年开始从日、韩等国引进旧机器摆放国内市场以来,到自行研制和生产国产化自动售货机,各厂家、商家蹒跚起步、艰难守业,已为国内零售业撑起一片蔚蓝的晴空。据来自国内自动售货机市场行情分析报告表明:目前国内自动售货机市场走势已逐渐明晰,自动售货机逐步从沿海经济发达地区和各大中城市向内陆和次发达地区延伸,逐步从高级宾馆、地铁、机场等豪华高档场所向高中档社区普及,大有星火燎原之势。 自动售货机的普及在某种程度上能反映一个国家的科技发展水平,是一个国家文明程度的象征。实践和直觉告诉我们,自助服务在中国的横空出世,必将为国内的电信、公用事业、食品、香烟、饮料等诸多行业发展带来新的契机,中国的现代文明又将自助服务设备的应用和普及开启一个新的里程碑!

基于plc的自动售货机程序设计

题目:基于plc的自动售货机程序设计 1 PLC的硬件组成 PLC的硬件主要由中央处理器(CPU)、存储器、输入单元、输出单元、通信接口、扩展接口、电源等几部分组成。其中,CPU是PLC的核心;输入单元/输出单元是CPU 与现场输入/输出设备之间的接口电路;通信接口用于连接编程器、上位计算机等外部设备,其硬件构成图如图1-1。 图1-1 PLC硬件结构图 2 PLC控制自动售货机的主要硬件及选型 2.2.2自动售货机I/O点的分配 输入/输出单元通常也称I/O单元或I/O模块,是PLC与工业生产现场之间的连接部件。PLC通过输入接口可以检测被控对象的各种数据,以这些数据作为PLC对被控对象进行控制的依据;同时PLC又通过输出接口将处理的结果送给被控对象,以实现控制目的。本次自动售货机I/O点的分配表如表3-1所示。 输入信号PLC地址输出信号PLC地址 找零按钮x0 找零y0 一元饮料按钮x1 咖啡出口y1 五元饮料按钮x2 汽水出口y2 十元元饮料按钮x3 汽水指示灯y3 咖啡饮料按钮x4 咖啡指示灯y4

2.2.3自动售货机的I/O接口图 此次自动售货机的I/O接口如图3-1所示,SB2-SB7是物品选择按钮,当投入货币物品绿灯亮(Q1.0-Q1.5)。按下SB2-SB7其中一个,对应的KM线圈得电,电机转动出相应的物品(Q0.1-Q0.6);当有物品售完,其行程开关断开,物品绿灯不亮并同时向总部发送物品销售完的信息;当购买物品总值低于投入总值时,可按找零按钮SB1后KM1得电,电机转动找零(Q0.0)。 图3-1自动售货机PLC控制I/O接口图 4.1.2 数学运算指令 在梯形图中,整数、双整数与浮点数的加、减、乘、除指令(见表4-2)分别执行下列运算:IN1+IN2=OUT,IN1-IN2=OUT,IN1*IN2=OUT,IN1/IN2=OUT。 在语句表中,整数、双整数与浮点数的加、减、乘、除指令分别执行下列运算:IN1+OUT=OUT,OUT-IN1=OUT,IN1*OUT=OUT,OUT/IN2=OUT。 表4-2 加减乘除指令

基于plc的自动售货机设计报告

课程设计课程名称:工控组态软件控制设计 题目:自动售货机PLC控制 专业班次: 姓名: 指导教师: 日期:

摘要 自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。自动售货机是可完成无人自动售货,集光、机、电一体化的商业自动化设备。近年来,我国的自动售货机行业突飞猛进:在汽车总站、商厦、医院、小区、学校等地区纷纷涌现出自动售货机的踪迹。这种方便快捷的购物方式越来越受到人们的青睐,同时也是现代化城市配套设施的需求传统的自动售货机控制系统采用单片机作为控制核心,这样不仅会在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。可编程逻辑控制器(Programmable Logical Controller),简称PLC。可编程序控制器是综合了计算机技术、自动控制技术和通讯技术而发展起来的一种新型的工业控制装置,它具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛地应用。因为自动售货机作为社会上完成商品零售和综合服务的独立设施,要求它的结构必须可靠、稳定和执行效率高。PLC是以CPU为核心, 综合了计算机技术和通信技术发展起来的一种通用的工业自动控制装置, 是现代工业控制的三大支柱(PLC、机器人和CAD/CAM) 之一。PLC 的工作原理与计算机的工作原理基本是一致的。但是PLC也有它自己的特点, PLC在确定了工作任务, 装入了专用程序后成为一种专用机, 它采用循环扫描工作方式, 系统工作任务管理及应用程序执行都是用循环扫描方式完成的。目前,可编程控制器在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保等各行各业。

基于自动售货机的软件工程

面向对象分析实践大作业(40%) 下面是自动售货机系统的需求陈述,请 你: 1.编写分析和设计报告; 2.报告分需求分析、系统设计和对象设计三部分编撰,各部分应按相应的格式编写,并包含用例图、顺序图、类图、业务流程图、系统结构图等; 3.大作业的结构为: A项目需求说明 B需求分析报告 C系统设计报告 D对象设计报告 E分析设计过程说明:这部分介绍分析

和设计过程中使用了什么技术 需求陈述: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值 进行累加。 自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返还到退币孔。如果分

配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。 参考资料:《软件工程》张海藩清华大学出版社 2009年第一版 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模 型: 自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、五分币、二分币、一分币。其他货币被认为是假币。机器拒绝接受假币,并将其从退币孔退出。当机器接受了有效的硬币之后,就把硬币送入硬币储藏

基于PLC控制的自动售货机毕业设计

摘要 基于PLC控制的自动售货机 摘要 本文设计一套基于PLC的自动售货机控制系统,阐述了自动售货机的发展背景与前景,详细分析其功能和特点,提出了总体设计方案;选用型号为L293D 的步进驱动电机,设计了平面式贮币、电磁阀退币的货币处理装置,双螺旋式的送出机构,为降低成本和开发周期,创造性的选用了集成键盘、显示、设置功能的控制面板;以三菱FX2N-32MR型PLC为主控制器,基于FXGP/WIN-C编程软件,采用顺序控制的程序设计思路,设计了系统控制程序,包括投币程序、比较选择购买程序和退币程序。 该设计提高了自动售货机的可靠性和执行效率,且系统维护容易,维修简单,有一定的市场推广价值。 关键词:自动售货机,可编程序控制器,梯形图

Based on PLC automatic vending machine system design ABSTRACT Chooses PC machine in the design to take the host workstation on position machine, the lower position machine uses PLC to make the controller, three PLC controllers respectively be from the workstation 1, from the workstation 2, from the workstation 3, in the article exhaustively introduced the automat various hardware composition, and has completed the PLC exterior wiring diagram. In the article has manufactured on the position machine user management contact surface. The present paper key point places the PLC various hardware part the design and the introduction, the PLC trapezoidal chart Defers to in the ov erall design process “asks the question, the analysis question, solves the problem” the guiding ideology, has made the careful elaboration to the overall system design work. KEY WORDS: the vending machine,Programmable controller,Ladder diagram

自动售货机程序

重庆科技学院 《C语言程序设计》 课程设计报告 学院:_电气与信息工程学院_ 专业班级:测控1302 学生姓名:张宇学号: 2013441294 设计地点(单位)_____重庆科技学院___ ________ __ 设计题目:_____________自动售货机系统________________ 完成日期: 2014 年 07月 04 日 指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

重庆科技学院 课程设计任务书设计题目:自动售货机系统

2014年6月02日

摘要 有史以来,人类发明了无数的信息技术来扩展自身的信息交流、处理和记忆能力。然而,以1946年世界第一台电子计算机的出现为开端,信息技术开始走向一个全新的数字时代。50年多年来,计算机技术飞速发展,日新月异。人们发现起初为解决计算问题而发明的计算机用途越来越广,几乎渗透到涉及信息活动的一切领域。计算机软件的开发更是帮助到各个领域对计算机的使用,更加优化了计算机的功能。 根据本次课程设计内容及要求,完成自动售货机系统的设计。这种无人值守自动售货机贩卖价值为A、B、C的三种商品,价格分别为2元,3元和6元。顾客投入10元的纸币,然后选择购买3种商品之一,自动售货机吐出商品,并且找给用户零钱。如果商品已经卖完,或者无法找零,则给出用户一个提示,商品已售完,并且退还纸币。 在自动售货机系统中,数据的固化采用.out文件格式进行储存。 关键词:计算机自动售货机储存

基于PLC的自动售货机的设计说明

一、实训题目: 自动售货机控制 实训目的及要求: 1、掌握欧姆龙PLC的指令,具有独立分析和设计程序的能力 2、掌握PLC梯形图的基本设计方法 3、培养分析和解决实际工程问题的能力 4、培养程序设计及调试的能力 5、熟悉传输带控制系统的原理及要求 实训设备:PLC设备器 二、总体方案设计 自动售货机设计中,从控制角度来说可采用继电器控制、单片机控制和可编程控制器控制。 (一)方案论证 1.方案一继电器控制 它的控制思想是以继电器为核心,采用硬接线方式把各种继电器、定时器、接触器及其触点按照一定逻辑关系连接起来组成控制系统,控制相关生产机械工作。例如要通过接触器实现两台电机设备的同步运行,采用继电器控制,其控制系统简图如图1。 SF1 KF 电电 源源 母母 线线 图1 继电器控制系统简图

由图可知它的三条支路是并行工作的,当按下按钮SF1,中间继电器KF得电,KF的两个触点闭合,接触器QA1、QA2同时得电并产生动作,所以其控制逻辑关系为由继电器、接触器硬接线(硬件)方式。 2.方案二单片机控制 它的控制系统是基于芯片级的系统,设计开发一个单片机系统,需要先设计硬件系统,画硬件电路图,制作印刷电路板,购置各种所需的电子元器件,焊接电路板,进行硬件调试,进行抗干扰设计和测试的大量工作;需要使用专门的开发装置和低级编程语言编制控制程序,进行系统联调。 3.方案三可编程控制器控制 它的控制思想是采用可编程的存储器,用来在其部存储逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式和模拟式的输入和输出,控制各种类型机械的生产过程。PLC是一种工业控制计算机,故它的工作原理是建立在计算机工作原理基础之上,即通过执行反映控制要求的用户程序来实现的,这种方案的控制功能接线图如图2。

自动售货机管理程序

1引言 21世纪,我们已经进入了信息时代,计算机的使用大大方便了我们的日常生活,超市和网上购物已经不能满足我们对便利生活的要求,不能随时随地购物的缺点不能克服的。在此情况下,就需要一个程序化的自动售货机来满足人们日常生活的需求。在C语言的平台下实现,用户可以方便的进行各项购物操作。 C语言是一种程序设计语言,早在20世纪90年代,C语言表现出了强劲的生命力,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此可以广泛地移植到了各类型计算机上,从而形成了多种版本的C语言。 采用输入函数和输出函数方式,可以完成对待售物品的名称、数量、价格的输出、顾客所选物品的输入、以及其它购物信息显示。

在对自动售货机管理程序进行需求分析的过程中,需要确定系统的主要功能,对程序开发的主要目的、程序的使用领域和有关该程序开发的软硬件环境进行详细的分析。下面从系统概述、功能模块描述两个方面进行需求分析。 2.1程序概述 自动售货机管理程序是运行于Windows系统下的应用软件,主要用于对待售商品的品名、价钱、数量、生产日期、保质期、编号进行输出等操作。 2.2功能需求 自动售货机管理程序为路边的行人提供了一个随时随地进行购物的平台,给消费者提供了一个简单友好的购物窗口,功能需求如下: (1)输出模块 程序在消费者购物前将所售商品的品牌输出以供消费者选择品牌,然后将消费者选择的品牌下的商品信息输出让消费者选择所需的商品,最后输出“请你付款班级”提示消费者完成购物。 (2)输入模块 让将消费者选定的商品的编码输入程序中然后进行价格的输出,以上述的方式让消费者把购物数量输入进程序中,最后将消费者付款金额输入,进而完成找钱。 (3)返回模块 如果消费者所输入的商品编码自动售货机上没有,则程序自动跳转到商品品牌的选择,提示消费者输入正确的商品编码。并且如果消费者输入的购买数量大于库存数量,程序将自动返回到商品的数量选择界面下,还有如果消费者的付款金额小于消费金额时,程序将自动返回到付款界面。 (4)找钱模块 将消费者付款金额进行判断后,进行一定运算后按50元、20元、10元、1元的分类分别找对。 程序由上述几个模块组成,能帮助消费者以自助的方式完成所需商品的购买并且有效地减少购物时间。另外还能节省售货者的管理时间,大大的提高管理的效率。

基于PLC的自动售货机设计

基于PLC的自动售货机设计

————————————————————————————————作者: ————————————————————————————————日期: ?

电气控制课程设计 评语: 考勤(10) 守纪(10) 过程(40)设计报告(30)答辩(10) 总成绩(100) 专业: 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2014年07月11日

基于PLC的自动售货机的设计 1问题描述 一台用于销售汽水和咖啡的自动售货机,具有钱币识别、币值累加、自动售货、找钱等功能,此售货机可接受的钱币为1元、5元和10元。汽水的售价为12元,咖啡的售价为15 元。在该机中有两种已经配制好的饮料液,一种为汽水,另一种为咖啡。 控制任务和功能要求: (1)此自动售货机可以投入1元、5元或10元钱币,可以判断钱币真伪,若为假币,退出假币,5秒后复位。 (2)当投入的钱币总值超过12元时,汽水指示灯亮,当投入的硬币总值超过15元时,汽水和咖啡的指示灯都亮。 (3)当汽水指示灯亮时,按汽水按钮,则汽水从汽水出口排出,8s后自动停止,并且排出时相应指示灯闪烁。 (4)当咖啡指示灯亮时,按咖啡按钮,则咖啡从咖啡出口排出,8s后自动停止,并且排出时相应指示灯闪烁。 (5)当按下找钱按钮后,如果投入的钱币总值超过所需钱数时,找钱指示灯亮,售货机自动退出多余的钱。 (6)具有销售数量度和销售金额的累加功能。 (7)由于本设计受时间化条件的限制,设计中忽略了各种故障以及缺货等因素的影响。 2 PLC选型及硬件配置 采用S7-300硬件配置如表1所示。 表1PLC选型及硬件配置 插槽模块订货号MPI地址I地址Q地址 1PS307 10A 6ES7307-1KA00 -0AA0 2CPU3146ES7 314-1AE01-0AB 0 2 3 4DI16×DC24V 6ES7 321-1BH10-0 AA0 0……1 5DO16×DC24V/0. 5A 6ES7322-1BH00- 0AA0 4 (5) 3编程元件的地址分配 编程元件地址分配如表2所示。 表2编程元件地址分配

基于PLC的饮料自动售货机控制系统设计

毕业设计(论文) 基于PLC的饮料 自动售货机控制系统设计 专业(系)电气工程系 班级铁道自动化101班 学生姓名 指导老师 完成日期2013.6月

2013届毕业设计任务书 一、课题名称:基于PLC的饮料自动售货机控制系统设计 二、指导教师:陈庆 三、设计内容与要求 1、课题概述: 本课题采用三菱FX2N系列PLC对饮料饮料自动售货机控制系统进行设计,首先对饮料饮料自动售货机结构进行简单介绍,然后根据系统的设计要求对饮料自动售货机控制系统、检测系统进行分析,给出饮料自动售货机控制系统的总体设计思路,并通过I/O列表、I/O接线图、梯形图、指令表等对其控制系统进行了程序设计,控制程序经上机调试运行,其结果基本符合要求。 2、设计内容与要求: 1)简单介绍饮料自动售货机结构; 2)分析饮料自动售货机的控制系统、检测系统,确定其控制系统的总体设计思路; 3)采用FX2N系列PLC作为饮料自动售货机控制PLC,正确选取PLC型号,设计出其控制程序。 4)控制程序上机调试。 5)所设计的饮料自动售货机控制程序,应符合饮料自动售货机运行规则。如饮料自动售货机收到识币信号后,自动进行累计、外部金额显示、顾客按键后自动推出商品和发出退币找零等信号的电控系统。 6)设计说明书要有硬件原理连接图,I/O分配图,程序梯形图、指令表及相应的说明。要求文字流畅,图形清晰,便于阅读。有条件的设计方案要求在实验室验证其正确性。

四、设计参考书 1、《PLC控制系统设计与维护》刘小春华满香主编高等教育出版社 2、《流行PLC实用程序及设计(三菱FX2系列)》贺哲荣主编西安电子科技大学出版 3、《三菱FX系列PLC设计与开发--原理、应用与实训》张还主编机械工业出版社 五、设计说明书要求 1、封面 2、目录 3、内容摘要(200~400字左右,中英文) 4、引言 5、正文(设计方案原理、特点、分析、比较、论证,PLC程序的设计及调试,调试结果的说明及特点,实验结果的说明及特点) 6、结束语 7、附录(参考文献、图纸、材料清单等) 六、毕业设计进程安排 第1周:资料准备与借阅,了解并熟悉课题思路。 第2周:设计要求说明及课题内容辅导。 第3-6周:进行毕业设计,完成说明书初稿。 第7周:第一次检查,了解设计完成情况。 第8周:修改完善设计,并作好毕业答辩准备。 七、毕业设计答辩及论文要求 1、毕业设计答辩要求 答辩前三天,每个学生应按时将毕业设计说明书或毕业论文、专题报告等必要资料交指导教师审阅,由指导教师写出审阅意见。 学生答辩时对自述部分应写出书面提纲,内容包括课题的任务、目的和意义,所采用的原始数据或参考文献、设计的基本内容和主要方法、成果结论和评价。 答辩小组质询课题的关键问题,质询与课题密切相关的基本理论、知识、设计与计算方法、实验方法、测试方法,鉴别学生独立工作能力、创新能力。 2、毕业设计论文要求

简单自动售货机VerilogHDL程序

自动售货机VerilogHDL程序 一个简单的自动售卖饮料机的程序。该机器具有投币,显示余额,购买六种饮料,退钱等功能,为了更具实用性,增添了饮料选择允许提示和投币允许提示的功能。具体形容,可投入一元、五元、十元和二十元面值的钱币,显示出当前的余额,并根据当前的余额提示能购买哪些饮料,选择某种饮料,则输出选定的饮料,同时余额减去相应的金钱。若选择退钱,机器就退出所有的钱,余额清零。 下图为功能示意图: 程序的状态表:

程序中包含了一个状态机,定义了一个任务(task)和函数(function),用该任务调用了该函数,使用若干分支语句,详见附后源程序和测试程序。 附上程序编译仿真图:

源程序如下: `define one 3'b001 `define five 3'b010 `define ten 3'b011 `define twenty 3'b100 module automart(money,state,moneyout,coinable,adrkable,bdrkable, cdrkable,drkout1,drkout2,drkout3,drkout4,drkout5, drkout6,coin,clk,reset,moneyback,choice1,choice2, choice3,choice4,choice5,choice6); input[2:0] coin;//投币输入,分为1、5、10、20元四种输入 input clk,reset,moneyback,choice1,choice2,choice3,choice4, choice5,choice6;//moneyback为退钱输入,choice1~6是饮料选择output moneyout,coinable,adrkable,bdrkable,cdrkable,drkout1, drkout2,drkout3,drkout4,drkout5,drkout6; //依次为退钱输出,投币许可提示,饮料选择许可,6种饮料输出output[2:0] state;//状态记录 output[7:0] money;//余额显示 reg[7:0] money; reg[2:0] state; reg moneyout,coinable,backable,adrkable,bdrkable,cdrkable; parameter A=3'b000, B=3'b001, C=3'b010,D=3'b011, E=4'b100; assign drkout1=choice1&adrkable;

新产品开发工作流程

新产品开发工作流程1.流程工作内容

2.流程具体实施要求 新产品的开发流程根据以下几个阶段来考虑完善(顾客有明确要求的汽车主机厂整车付新产品开发执行APQP程序): 顾客要求评审(合同评审) 2.1.1顾客要求评审的输入有三种: 1)顾客新要求,评审依据:《顾客要求评审表》; 2)产品变更要求,评审依据:《产品变更通知单》; 3)顾客确认不合格,评审依据:《新产品开发样品顾客确认通知单》。 2.1.2顾客要求评审的输出有三种: 1)顾客要求明确,公司有能力达到,纳入开发计划; 2)顾客要求不明确,需进一步沟通后纳入开发计划; 3)顾客要求明确,但公司没有能力达到,暂不纳入开发计划。 2.1.3技术部是新产品开发顾客要求评审(合同评审)的组织者。评审的模式及时间节点:销售部将《顾客要求评审表》或《产品变更通知单》《新产品开发样品顾客确认通知单》传递给技术部 1)简单产品(比如单口型挤出、单件产品、不涉及外协加工等),技术部根据以往经验和当前公司能力初步判定能否满足顾客要求;如无法独自判定,则组织生产、供应和相关人员进行评审确定。能够开发的项目,技术部进行产品工艺分析,确定原材料、工艺流程和技术文件完成时间并编制《新产品开发计划》交生产部及责任车间评审开发各阶段的完成时间。

技术部根据开发计划的评审时间确定产品交付时间,填写完成《顾客要求评审表》或《产品变更通知单》。最终将单据交回销售部。销售部将经过审批的单据分发到相关部门。如果进行开发,技术部据此组织开发计划实施。 时间节点,技术部自接单时刻计算,两个工作日完成(当日下班前一小时的接单计入次日)。特殊情况,技术部在接到销售部单据两个工作小时内销售部提出延长评审时间的要求,销售部同意或请示上级领导同意后,按同意的时间节点完成。 2)复杂项目或整车付产品项目的开发,技术部组织相关技术人员、供应部、生产部、质保部和生产车间召开项目开发评审策划专题会议,对开发项目进行评审策划,将最终结果填写在《产品开发项目评审记录表》与《项目开发评审策划书》上,形成评审结论。 根据评审结论,《顾客要求评审表》要求的相关部门填写完成此单据,在规定的时间前返回销售部。如果进行开发,技术部据此编制开发计划和技术文件。 时间节点,技术部自接单时刻计算,五至七个工作日完成(当日下班前一小时的接单计入次日)。特殊情况,技术部在接到销售部单据两个工作小时内销售部提出延长评审时间的要求,销售部同意或请示上级领导同意后,按同意的时间节点完成。 编制新产品开发计划 2.2.1新产品开发计划的输入有四种: 1)《顾客要求评审表》; 2)《产品变更通知单》; 3)《质量问题反馈单》中涉及到需要进行产品开发(完善)的相关措施; 4)经过顾客确认上次开发样品不合格的《新产品开发样品顾客确认通知单》。 2.2.2新产品开发计划的输出:项目负责人编制新产品开发试制技术文件和开发计划的实施。 2.2.3新产品开发计划的编制 技术部根据上述“输入”编制新产品开发计划。 1)对于前述第1种评审模式确定的开发计划的编制 技术开发部确定开发计划中的具体工艺流程项目,根据顾客要求数量(主要是根或套),由技术部在开发计划中增加相应的余量(余量的目的是为了留样和车间的损耗,从而保证最终入库的数量满足顾客要求)。采用x+x的格式,例如顾客数量要求5套,开发计划上可能是5+5套,后者的+5为挤出车间的余量,故挤出车间要按10套进行生产。材料数量由技术部在开发计划上注明实际用量和种类,由生产部根据生产情况进行适应的调整。由生产部组织相关责任车间评审各阶段的具体实施和完成时间,相关责任车间负责人分别在《新产品开发计划》签字,《新产品开发计划》经技术部负责人(或其代理人)批准后下发到生产部和相关责任车间。 2)对于前述第2种评审模式确定的开发计划的编制 技术部根据《项目开发评审策划书》直接编制《新产品开发计划》经技术部负责人(或其代理人)批准后下发到生产部和相关责任车间。 编制新产品试制技术文件

自动售货机控制系统的设计最终版

精品文档 课程设计任务书 PLC控制系统设计设计题目:饮料自动售货机 学院:机械工程学院 机械测控专业: 班级: 姓名: 组员: 指导老师:

精品文档 摘要】【本文介绍了自动售货机的基本原理以及工作流程,然后以一 次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程。具体说明了可编程序控制器在自动售货机中的作用。程序涉及到了自动售货机工作的绝大部分过程。利用PLC控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词:自动售货机;可编程序控制器;梯形图 Abstract:This paper introduces the basic principles of vending machines, as well as workflow, and then to a transaction process as an example, the transaction process is divided into several block, and then the block were programmed. Specify the PLC in the role of vending machines. Procedures related to the work of the vast majority of vending machine process. PLC control of the use of vending machines enhance the stability of the system to ensure that vending machines capable of long-term stable operation.

c语言自动售货机实验报告

课程设计 课程名称C语言高级程序设计学院xxx 小组成员1 XXX 小组成员2 XXX 小组成员3 XXX 任课教师XXX 2016——2017学年第1学期

一.所选题目与要求 自动售货机 问题情景: 分析学校教学楼自动售货机的功能,设计一个自动售货系统。 功能要求: 1.系统能提供所售商品的清单(编号,名称,单价,数量) 2.客户输入商品编号及购买数量,系统显示应付的金额,输入客户实付的钱数,系统计算应找的钱数系统如果没有足够的库存或零钱时,现实应返还客户已付的金额。(不考虑用支付宝付款的情况) 3.可增加商品种类,增加商品库存,查询商品库存,查询商品销售量及销售额。 成果要求: 通过网络教学平台中的“研究型教学”建立分组,每组2-3人,通过小组讨论,确定每人的分工,并确定系统设计方案。 各小组成员在网络教学平台上进行讨论、并完成最终的报告,整个过程作为小组及个人工作评价的重要依据。 各小组成员根据系统设计方案分模块进行编程,在系统各模块编码完成后集成调试,并最终完成整个系统的测试。 根据下面的报告模板完成综合实验总结报告,并打印成纸质报告,作为大作业课程结束时上交。 附:综合实验总结报告应包含的内容: 1. 系统功能说明 2. 程序结构 程序结构说明 重要数据说明 函数清单 /* 每个函数的书写格式 */ 函数名:所在文件名 函数功能

参数说明 算法描述或程序代码 3. 系统运行结果 4. 系统设计难点及其解决方法 5. 不足之处 6. 人员分工说明 二.问题分析及算法设计 主函数 void main() //主函数模块 { do{ system("pause"); show(); //显示屏幕函数,商品清单 loop1:printf("现在你有%.1f元\n你可以选择商品序号开始选购或按0 退出\n",M); input(); //输入函数 if(M-goods[n-1].price>v) {t=0;printf("对不起,售货机没有足够的零钱了\n谢谢光临!退还%.1f元\n",M);break;} //判断售货机是否有足够的零钱,0表无if(n==0){ //确认用户是选择离开还是买东西开始购买 t=1; change(M);} //找零函数 else { loop2:sell(n,M,1,1); //购买函数 if(A==0)//货没有了怎么办 input(); //输入函数………………………………………………………………………..

基于PLC自动售货机的系统设计(精)

I 基于 PLC 的自动售货机系统设计 摘要 本论文基于西门子 S7-200 系列 PLC 进行自动售货机控制系统的设计,阐述了自动售货机系统设计的基本原理及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,分别对程序块进行编程。在 PLC 梯形图的编写时,文中采用的是西门子 PLC 梯形图专用编译软件 STEP7来进行编写,并完成了 PLC 外部接线图。利用 PLC 控制的自动售货机提高了系统的稳定性,保证自动售货机能够长期稳定运行。 关键词 :PLC ;自动售货机;控制系统 1、格式存在错误,如段前段后间距、字体大小等等 2、整个文章太简单,基本上没什么内容,可以适当填充 3、总结有错 4、参考文献有错 The System Design for Automatic Vending Machine Based on PLC Tutor: Guilin liu II Abstract Professional Electrical automation 2008 No.200812713 Name :wei yuan The design of this paper is based on Siemens S7-200 series automatic vending machine PLC control system, explains the vending system design principle and workflow, and then to a course of dealing, for example, the transaction process is divided into several blocks on blocks, respectively. In the preparation of the PLC ladder diagram, the text is a Siemens PLC

自动售货机系统源代码

#include #include #include #include "goods.h" bool GetCharge(int Sum,int Money); void Getsmalcharge(int Money,int *ChargeNum); int KouLing(); char ChooseJieMian(); char SaleCenter(); void loadGoodsFromFile(Goods* gs); char ManageCenter(); void KunCun(); void Sale(); void ShangJia(); void TongJiFun(); Goods goods[3]; TongJi tj[3]; void init(){ for(int i = 0; i < 3; ++i){ tj[i].jrxl = 0; tj[i].jrzje = 0; } } void main() { //初始化 init(); int op = 0; //读取商品信息 loadGoodsFromFile(goods); char c = ChooseJieMian(); while(true) { system("cls"); if( c == '1'){ c = SaleCenter(); }else if(c == '2'){ op = KouLing(); if(op == 1){ //进入管理界面 c = ManageCenter();

//system("pause"); } else if(op == 0){ //进去销售界面 c = SaleCenter(); } } } } //---------------------------------------------------- /** * @return 1销售界面2管理界面 */ char SaleCenter() { char state='N'; int Sum=0; char Pro = 'd'; // printf("\n********************************\n"); while(true) { state='N'; Sum=0; while(!(Pro == 'c' || Pro == 'a' || Pro == 'b' || Pro == 'q')) { system("cls"); printf("\n\t*******************************************"); printf("\n\t*********顾客您好,请选择商品**************\n"); printf("\n\t·a·商品%s ·b·商品%s ·c·商品%s ·q·管理\n",goods[0].name,goods[1].name,goods[2].name); printf("\n\t -%d- -%d- -%d- (单位:件)",goods[0].totalCount,goods[1].totalCount,goods[2].totalCount); printf("\n\t*******************************************\n\t\t"); Pro = getchar(); } if(Pro == 'q') break; switch(Pro) {

相关主题
文本预览
相关文档 最新文档