[工学]基于软PLC的自动售货机控制系统设计.doc

上传人:sccc 文档编号:4532676 上传时间:2023-04-26 格式:DOC 页数:43 大小:1.29MB
返回 下载 相关 举报
[工学]基于软PLC的自动售货机控制系统设计.doc_第1页
第1页 / 共43页
[工学]基于软PLC的自动售货机控制系统设计.doc_第2页
第2页 / 共43页
[工学]基于软PLC的自动售货机控制系统设计.doc_第3页
第3页 / 共43页
[工学]基于软PLC的自动售货机控制系统设计.doc_第4页
第4页 / 共43页
[工学]基于软PLC的自动售货机控制系统设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《[工学]基于软PLC的自动售货机控制系统设计.doc》由会员分享,可在线阅读,更多相关《[工学]基于软PLC的自动售货机控制系统设计.doc(43页珍藏版)》请在三一办公上搜索。

1、 本 科 毕 业 论 文(设 计)题目(中文): 基于软PLC的自动售货机控制系统 (英文): Soft-PLC Control System for Vending Machines 学 院 信息与机电工程学院 年级专业 08级电气工程及其自动化 学生姓名 朱佳琪 学 号 080145057 指导教师 谭永红 完 成 日 期 2012年 4月摘要自动售货机在当今被普遍地应用在各大现代化都市的街道及便利店中,正逐渐地成为商业自动化的代表性设备。它能够在无人操作的情况下根据程序自动地销售商品。自动售货机不受工作时间及地点限制的特点,使其实现了一种提高营业额的同时又降低了成本的销售模式。软PLC是

2、一种基于PC机开发结构的控制系统,它和传统PLC一样具有在功能、可靠性、速度、故障查找等方面的优点。利用软件技术可以将标准的工业PC转换成全功能的PLC过程控制器。本文介绍了自动售货机的现状及前景,以及软PLC的基本原理及功能。利用德国倍福公司的嵌入式PC和I/0模块及基于PC的自动化控制技术设计了自动售货机的PLC控制系统。程序以符合IEC61131-3标准的结构体文本(ST)及连续功能图(CFC)作为编程语言。包含了商品选择、找零计算、后台管理,销售统计等实用功能。关键词:自动售货机;倍福自动化;软PLC;嵌入式PC;结构体文本;连续功能图;PLC控制AbstractIn recent t

3、imes, vending machines are widely used at roadsides and in conveniences stores in each modernize cities, and they are gradually becoming typical devices of Business Automation. Without human beings control , a vending machine can sale goods automatically according its program inside. Vending machine

4、s working can be not limited by time and place, so these features make it possible to develop a new sales model which can not only increase turnover but also reduce cost as well.The Soft- PLC is a control system based on PC development structure, it has same characteristics like functionality, relia

5、bility, speed, fault-finding and others as a traditional PLC , the use of software technology can convert a standard industrial PC into a fully functional PLC process controller.This article describes the present situation and prospects of the vending machine, as well as the basic principle of the s

6、oft PLC and its function. Using Germany Beckhoff Embedded PC, I / 0 modules , and PC-based automation technology to design a PLC control system of a vending machine. The program meet the standard of IEC61131-3, and use the Structure Text (ST) and the Continuous Function Chart (CFC) as programming la

7、nguages. The Program contains a selection of merchandise, change calculation, background, management, sales statistics and other useful fuctions.Keywords: Vending machines; Beckhoff Automation; Soft PLC; embedded PC; structure text; continuous function chart; PLC control38目 录上海师范大学本科毕业论文(设计)诚信声明 I上海

8、师范大学本科毕业论文(设计)选题登记表II上海师范大学本科毕业论文(设计)指导记录表中文摘要及关键词 英文摘要及关键词 VI1 自动售货机简介11.1 自动售货机的历史11.2 自动售货机的在国内的现状及前景11.3 自动售货机的功能22 软PLC简介22.1 软PLC与传统硬PLC的比较22.2 软PLC的软件的组成52.3 软PLC的优势63 硬件选型63.1 硬件系统63.2 IPC选型73.3 输入模块选型93.4 输出模块选型103.5 按键面板114 软PLC的软件选择114.1 TwinCAT简介114.2 结构化文本(ST)125 PLC控制程序设计135.1 PLC控制要求1

9、35.2 主程序145.2 商品子程序175.3 零钱计算子程序195.4 后台管理子程序225.5 交易成功画面子程序255.6 按键输入及指示灯输出265.7 输入输出变量与I/O端子的连接326 HMI设计336.1 TwinCAT Visualization336.2 HMI界面337 仿真运行368 总结与体会361 自动售货机简介1.1 自动售货机的历史自动售货机是能根据投入的钱币自动给出客人所选货物的机器。自动售货机是一种常用的商业自动化设备,它是不受时间,地点的限制,可以节省人力,简化交易。公元1世纪,世界上第一台自动售货机由希腊人希罗制造,人们将硬币投入机器就可以得到一瓶“圣

10、水”。1925年美国研制出了自动售烟机,随后又涌现了自动邮票机,自动车票机等各种现代化自动售货机。现代自动售货机的发展日新月异,其种类、结构和功能主要依据出售的物品而异,例如食品、饮料、香烟、卡票、成人用品、日用百货等等。自20世纪70年代,市面上出现了采用微机控制的各种新型自动售货机。随着互联网及计算机技术的发展,在一些微机控制的自动售货机上,实体钱币已经可以被信用卡替代并且将销售信息实时地反馈给主控计算机形成一个规模化的无人销售网络,例如无人超市、地铁无人售票系统、大型无人停车场及银行的自动取款机等。作为一种全新的商业零售形式,自动取款机在重视科技自动化与市场结合的美国及日本应用得极为广泛

11、。日本罐装饮料销量的七成是以自动售货机为零售渠道。而美国可口可乐公司在全球拥有50万台饮料自动售货机。1.2 自动售货机的在国内的现状及前景在国内,自动售货机在一些像北京、上海、广州这样的大城市中比较常见,通常被放置在商场、影院、火车站、飞机场、旅游景点等人流较密集的场所。早在1993年,中国自日本和韩国引进了自动售货机,1995年北京自主生产了我国第一台自动售货机,1999年国产自动售货机形成规模化生产并批量投放市场。目前,中国的自动售货机拥有量约为2万台,相对于13亿的人口,这个数字微不足道。即使是按现在中国城市人口3.9亿人计算,平均每20000城市人口中才有一台自动售货机,而在日本,平

12、均每25人就拥有一台自动售货机,美国是平均每40人一台,欧洲则是每50到120人一台。在一些国家,自动售货机的商品销售额占全国零售业的六成以上,并以每年10%的速度递增。据预测未来中国市场将每年增加510万台自动售货机,发达城市将有3.5亿人经常使用自动售货机,市场潜力巨大。有关专家指出,自动售货机具有技术含量高、销售方式新、市场潜力大、商品货真价实等优点,使得它的应用模式更为灵活,发展的空间也更大。而且,它可以与电子商务、多媒体广告等相关产业有机结合,创造出巨大的商机。中国自动售货业发展缓慢的原因较多。一般认为最大的障碍是消费者普遍对自动售货机的可靠性、易操作性的认可度较低。此外,自动售货机

13、出售的商品往往是单一的,价格也高于超市、便利店中的同类商品,大部分机器只收硬币和小额纸币,也影响到消费者的选择。1.3 自动售货机的功能本自动售货机拥有市面上一般售货机常有的基本功能,如:商品选择、状态指示、投币计数、找零退币等等。此外,还添加了一些特有功能,如:商品复选、支持多种面值、购物清单模式、管理员后台、销售统计、库存统计、价格设定等等,以满足不同类型商品的市场需求。本售货机的控制系统自带可视化界面,用户的整个购买过程可以通过触摸屏完成,也可以通过实体机身上安装的按键面板完成,十分方便。迎合了自动售货机这一设备在广大消费者心目中科技含量高、创新性强的形象,促进了客户的购买欲望及消费体验

14、。2 软PLC简介2.1 软PLC与传统硬PLC的比较软PLC是一种基于PC的自动化控制技术,它可以通过软件形式来模拟传统PLC的功能,在某些操作系统上实现计算、存储、编程和控制等功能,并且通过现场总线方式与外部设备进行通信或控制。图1为传统PLC控制系统和基于PC的软PLC控制系统的结构图示:图 1上图中左边蓝色部分所示为传统PLC控制系统结构,顶层为一台工业PC,主要用于处理一些操作系统、人机界面、数据存贮以及编程之类的任务,下部控制柜,包含了电源及控制板卡。事实上,PC并不能直接应用在自动化控制任务中,需要额外的处理器来完成,因此,实际的PLC或NC控制的运算是独立于IPC而在外设的PL

15、C/NC板卡中完成的,再由I/O端口连接到目标设备上。这样的系统结构具有相互分散独立的不止一个运算单元。运算量最大的控制任务未配置给运算能力最强的IPC,资源集中利用率不高,且结构较复杂。上图右边绿色部分为基于PC的软PLC系统结构,它需要由四个标准组件组成,分别为:工业PC、提供给I/O连接的开放总线系统、支持HMI的标准Windows NT操作系统、软PLC软件(本设计所用的是德国倍福公司开发的TwinCAT软件,符合IEC61131-3标准)。PLC和NC控制运算以及总线协议通过软件形式集成在一台IPC中,也就是说所有的自动化任务都在一个单处理器模式下运行,并且通过现场总线与外部I/O及

16、设备通信。这样配置的优点显而易见,简化了硬件结构的同时也极小了设备发生错误的可能性。图 2图2所示为传统PLC的运行周期。传统PLC的运行周期分为三个阶段即:读输入、程序运算和写输出。每个PLC周期的时间不一定相同,主要原因在于程序运算所占用的时间可能不同。图 3图3所示为软PLC的运行周期。前面提到,软PLC需要在某些操作系统上运行(如Windows NT或Windows CE系统)以完成一些通信和可视化界面的任务。那么,在使用同一个处理器的情况下,就需要对实时的PLC任务和非实时的操作系统任务进行CPU资源上的分配。如图3所示,在每个PLC周期开始时,CPU优先执行PLC任务,在完成了读输

17、入、程序运算、写输出三个阶段后,才把该周期内剩余的CPU资源交付给操作系统和HMI程序。因此,对于每个PLC周期而言,它每次执行的时间间隔是固定的,从而保证了实时性,同时剩余的CPU资源也满足了操作系统及HMI的需要。2.2 软PLC的软件的组成软PLC的软件结构可分为开发系统(编译环境)和运行系统(运行环境)两大部分。软PLC的开发系统其实就是兼具编译和调试功能的PLC编程器,具有五大功能: 符合IEC61131-3标准的PLC编程语言,支持IL,ST,LD,FBD和SFC等多种编程语言且可相互转换 丰富的控制模块,支持多种PID算法(如常规PID控制算法、自适应PID控制算法、模糊PID控

18、制算法、智能PID控制算法等等),还包括目前流行的一些控制算法,如神经网络控制 开放的控制算法接口,支持用户嵌入自己的控制算法模块 仿真运行,实时在线监控,在线修改程序和编译 强大的网络功能。支持基于TCPIP网络,通过网络实现PLC远程监控,远程程序修改。软PLC运行系统是软PLC的核心,完成输入处理、程序执行、输出处理等工作。通常由六大部分组成: IO接口,可与任何IO系统通信,包括本地IO系统和远程IO系统,远程IO主要通过现场总线InterBus,ProfiBus,CAN等实现。 通信接口,通过此接口使运行系统可以和开发系统或HMI(或MMI)软件按照各种协议进行通信,如下载PLC程序

19、或进行数据交换。 系统管理器,处理不同任务和协调程序的执行,而且从IO映像读写变量 错误管理器,检测和处理程序执行期间发生的各种错误。 调试内核,提供多个调试函数,如重写、强制变量、设置断点、设置变量和地址状态。 编译器,通常开发系统将PLC源程序编译为中间代码,再运行系统编译器将中间代码翻译为与硬件平台相关的机器可执行代码(即目标码)。2.3 软PLC的优势软PLC这种基于PC的开发理念导致了其在结构上与传统PLC的诸多不同,随着市场的发展与技术的不断成熟,相比之下前者显示出了许多优势。例如,软PLC集成了了PC与PLC两种先进技术,提高了PC硬件的利用率,减少了硬件组件,经济型更加。软PL

20、C支持丰富的OPC、ActiveX组件以及VB、C+等高级语言开发的第三方软件接口,具有较高的灵活性和可拓展性。软PLC硬件结构开放,用户可根据实际需要自由搭配,且在未来需要扩展时改动较少。PC生产商众多,不存在传统PLC领域中几大厂家垄断的情况,价格上更具竞争力,随着PC技术的快速发展,软PLC的性能也与日俱增。3 硬件选型3.1 硬件系统本设计中硬件组成部分主要为:IPC、电源模块、输入I/O模块、输出I/O模块、红绿按钮灯等。图 4图4为IPC及所有模块的俯视图,从左到右划分为5个部分,分别是:a) CX1020-N001:USB2,DVI1b) CX1020-N000:以太网口2c)

21、CX1020-0000:CPU单元和散热板,含LED诊断指示灯及CF卡槽d) CX1100-0002:电源模块(K-Bus),为CPU及I/O端子模块供电e) KL*:K-Bus总线I/O端子模块,本例中为KL1104和KL24083.2 IPC选型整个硬件系统中最为核心的部分当属IPC,本设计选用的是德国倍福公司(Beckhoff)出产的CX1020嵌入式PC。CX1020 基本 CPU 模块通过一个功能更为强大的 600MHz Intel CPU 对现有CX 系列产品进行了扩展。虽然具有更高的性能,该控制器却无需风扇或者其它旋转部件。除了 CPU 和芯片组之外,CX1020 模块还包含各种

22、尺寸的主内存,标配为 256MB 的 DDR RAM,它可以扩展为 512MB 或者 1GB。控制器从 CF 卡启动。TCX1020 的标准配置包括一个 64MB 的 CF 卡以及两个以太网 RJ 45 接口。这两个接口与一个内部交换机相连,用户可以在不使用额外以太网交换机的情况下简便地创建线型拓扑结构。所有其它的 CX 系列组件都可通过设备两端的 PC/104 接口连接。无源冷却模块包含在供货范围内。操作系统可以是 Windows CE 或嵌入式 Windows XP。TwinCAT 自动化软件将 CX1020 系统转化为一个功能强大的 PLC 和运动控制系统,可以在带或者不带可视化功能的情

23、况下进行操作。与 CX1010 不同,CX1020 还可以通过 TwinCAT NC I 完成带插补的轴运动。用户也可以在基本 CPU 模块中添加更多系统接口或者现场总线接口。CPU 模块需要一个 CX1100 型电源模块。CX1020 可以和所有 CX1500 系列现场总线模块以及 CX 系列的所有 CX1100 电源模块配套使用。CX1100-0004 电源模块在 CX1020 和 EtherCAT 端子模块之间提供了一个直接接口。CX1020、EtherCAT 和 TwinCAT 的组合能够使系统的周期和响应时间小于 1 微秒。倍福 CX1020嵌入式PC的技术参数如下:表 1 倍福嵌入

24、式PC CX1020 技术参数处理器Intel Celeron M ULV,1 GHz 时钟频率闪存64 MB CF 卡主内存256 MB DDR RAM(可以扩展到 512 MB,1GB)接口2 x RJ 45(以太网,内部交换机)诊断 LED1 x 电源,2 x LAN 链接/功能,TC 状态,1 x 闪存存取扩展槽1 x I + II 型 CF 卡,带弹出装置时钟由内部电池供电的时钟,用于显示时间和日期操作系统Microsoft Windows CE 控制软件TwinCAT PLC run-time系统总线16 位 ISA(PC/104 标准)电源通过系统总线供电(通过 CX1100-x

25、xxx 电源模块)最大功耗11 W(包括 CX1020-N0xx 系统接口)尺寸(W x H x D)96 mm x 112 mm x 98 mm重量约 550 g工作温度/储藏温度0+50 C/-25+85 C相对湿度95 %,无冷凝抗振动/抗冲击性符合 EN 60068-2-6/EN 60068-2-27/29 标准抗电磁干扰/静电放电符合 EN 61000-6-2 /EN 61000-6-4 标准防护等级IP 203.3 输入模块选型本设计中涉及到的输入量均为数字量,因此选用倍福K-Bus系列总线端子模块中的KL11044通道数字量输入模块。图 5图5为KL1104的俯视图及接线图:KL

26、1104数字量输入端子模块从处理层获得二进制控制信号,并以电气隔离的形式将这些信号传输到更高层的自动化单元。KL110带有不同速度的输入滤波。每个总线端子模块含有 4 个通道,每个通道都有一个 LED 用来显示其信号状态。KL1104特别适合安装在控制柜内,以节省空间。3.4 输出模块选型本设计中涉及到的输入量均为数字量,而且输出点数较多,因此选用倍福K-Bus系列总线端子模块中的KL24088通道数字量输出模块。KL2408(正向开关)数字量输出端子模块以电气隔离的形式将自动化单元传输过来的二进制控制信号传到处理层的执行器上。KL2408具有极性反接保护功能。它们通过具有过载和短路保护功能的

27、输出端子模块处理负载电流。每个总线端子模块含有 8 个通道,每个通道都有一个 LED 用来指示其信号状态。它们特别适合安装在控制柜内,以节省空间。这种连接技术特别适用于单端输入。所有组件所使用的参考点必须与 KL2408的参考点相同。电源触点连成回路。在 KL2408 中,由 24 V 电源触点为输出端子模块供电。图6为KL2408的俯视图及接线图:图 63.5 按键面板本设计包含了一个按键面板,供用户进行购买时的操作,如图7所示:图 7图7中,上排ae每种商品都有绿、红各一个LED指示灯,绿色表示有货,红色表示缺货。且绿色灯可以被按下,选择商品并确定购买数量。下排两个绿色可按灯(确定/取消)

28、用以确认购买和退出购买。4 软PLC的软件选择4.1 TwinCAT简介TwinCAT是德国倍福公司以基于PC的控制技术为核心开发的一套自动化软件。本设计即采用TwinCAT软件作为软PLC的开发及运行平台。倍福(Beckhoff)的TwinCAT自动化软件具有良好的开放性及可升级性,是PC控制系统的核心部分。该软件由Runtime内核和PLC编程平台(PLC Control)、诊断和配置平台(System Manager)构成。作为一种纯粹的软PLC,TwinCAT PLC允许在一个PC上实现4个虚拟的“PLC CPU”,每个最多可运行4个用户任务。TwinCAT编程语言符合IEC61131

29、-3国际标准,可以使用IL(指令表)、LD(梯形图)、FBD/CFC(功能块图)、SFC(顺序功能图)或ST(结构体文本)中的任意一种语言编程,而且可以相互转换。4.2 结构化文本(ST)本设计中PLC编程所采用的编程语言为基于IEC61131-3国际标准的“结构化文本(ST)”。结构化文本是一种高级编程语言,可以创建表达式、条件判断语句、循环语句和调用功能块等。尤其适合应用在较复杂的数学计算中。结构化文本也适用于结构化编程。亦即ST为诸如编程循环等这些常用的结构提供预先规定的结构。这样做好处是可以降低出现差错的可能性,并提高程序的可读性。表2为按照操作符的优先级大小列出的ST操作符表:表 2

30、 ST操作符表操作符号优先级至于括号内(表达式)0(最高)功能调用功能名(参数表)1幂运算EXPT2负值-3建立补偿NOT4乘*5除/6取模MOD7加+8减-9比较,=10等于=11不等于12布尔“与”AND13布尔“异或”XOR14布尔“或”OR15(最低)表3为ST的指令表:表 3 ST指令表指令示例赋值A:=B; CV:=CV+1; C:=SIN(X);调用功能块CMD_TMR(IN:=%IX5,PT:=300);A:=CMD_TMR.Q;RTTURNRETURN;IFIF D0.0THEN C:=A;ELSIF D=0.0THEN C:=B;ELSE C:=D;END_IF;CASEC

31、ASE INT1 OF1:BOOL1:=TRUE;2:BOOL2:=TRUE;ELSEBOOL1:=FALSE;BOOL2:=FALSE;END_CASE;FORFOR I:+1 TO 100 BY 2 DOIF ARR1=70THEN J:=1;EXIT;END_IF;END_FORWHILEWHILE J=100 AND ARRJ 70 DOJ:=J+2;END_WHILE;REPEATREPEAT J:=J+2;UNTIL J=101 OR ARRJ=70END_REPEAT;EXITEXIT;空指令;5 PLC控制程序设计5.1 PLC控制要求本自动售货机的工作流程图如图8所示:图 8

32、本设计中的自动售货机采用购物车的形式,即:从欢迎界面到商品列表界面后,选择商品类型,然后进入该商品的介绍页面,选择购买的数量,最后点击确认,可回到商品列表继续选择其他商品,所有商品都选购完后,则可进入购物清单界面,投入钱币后即可付款完成交易和取货。5.2 主程序主程序是整个PLC控制程序的核心部分,主要完成当前状态的检验、调用各个子程序、控制ADS通信等。程序如下:PROGRAM MAINVARCostAll: REAL;(*消费总额*)Shortage: REAL;(*差额*)MoneyEnough: BOOL;canpay : BOOL;canntpay:BOOL;DONE: BOOL;T

33、ON1: TON;tof1: TOF;a: BOOL;FB_SlotState1: FB_SlotState;(*ADS读取功能块*)FB_SlotCmd1: FB_SlotCmd;(*ADS写入功能块*)stcmd1: st_SetCmd;(*结构体定义*)TP1: TP;b: BOOL;END_VAR(*可视化界面初始化,默认为欢迎界面*)IF DONE=FALSE THENCURRENTVISU:=TC_VISU;DONE:=TRUE;END_IF(*合并可视化界面中的两个退出按钮*)quit:=quit1 OR quit2;(*子程序调用*)manage();(*后台管理子程序*)ke

34、y();(*指示灯输出及按键输入子程序*)cargoA();(*商品A子程序*)cargoB();(*商品B子程序*)cargoC();(*商品C子程序*)cargoD();(*商品D子程序*)cargoE();(*商品E子程序*)change_calculate();(*找零计算子程序*)paid();(*付款成功子程序*)CostAll:=Cost_a+Cost_b+Cost_c+Cost_d+Cost_e; (*消费总计*)(*判断已投入金额是否足够*)IF CostAll , ET= );TOF1(IN:=ton1.Q , PT:= t#15ms, Q=a , ET= );FB_Slo

35、tState1(NETID:=192.168.1.105.1.1,PORT:= 801,UPDATE:= a,stSlot=stslot1 ,bBusy= ,bError= ,nErrId= );cash:=stslot1.nBanknote05Num*5+stslot1.nBanknote10Num*10+stslot1.nBanknote20Num*20+stslot1.nCoin05Num*0.5+stslot1.nCoin10Num*1;TP1(IN:=pay OR quit, PT:=t#20ms , Q=b , ET= );IF b=TRUE THENstcmd1.bCmdSet:

36、=TRUE;stcmd1.bCmdExitCoin:=TRUE;stcmd1.nBanknote05Num:=0;stcmd1.nBanknote10Num:=0;stcmd1.nBanknote20Num:=0;stcmd1.nCoin05Num:=OutputHalf;stcmd1.nCoin10Num:=Output1;ELSEstcmd1.bCmdSet:=FALSE;stcmd1.bCmdExitCoin:=FALSE;END_IFFB_SlotCmd1(NETID:= 192.168.1.105.1.1,PORT:= 801,bUpdate:=b ,stCmd:=stcmd1 ,b

37、Busy= ,bError= ,nErrId= );5.2 商品子程序本设计中,有A、B、C、D、E共5种商品,每个商品均有一个独立的子程序,判断当前商品的库存,并给出相应的指示灯信号。当画面切换到该商品的购买界面时,根据按键变更选购的数量,计算价格。在确认购买后,提交到购物清单中。下面以商品A为例,程序段如下:PROGRAM cargoAVARAvailiable: BOOL;(*有货*)Stockout: BOOL; (*缺货*)Cost: REAL; (*价格*)Number: WORD; (*购买数量*)ADD1: BOOL; (*购买量+1*)sub1: BOOL; (*购买量-1*

38、)CTUD1: CTUD; (*加减计数器*)Cart1 : BOOL; (*加入购物车(HMI)*)cart: BOOL; (*加入购物车*)CANCEL1: BOOL; (*取消(HMI)*)Cancel: BOOL; (*取消*)NotBuying: BOOL;TP1,tp2: TP;END_VAR(*判断库存*)IF Quantity_a0THEN Stockout:=FALSE;Availiable:=TRUE;ELSEStockout:=TRUE;Availiable:=FALSE;END_IF;-(*根据面板上的按键和HMI中的+-按钮来加减购买数量*)CTUD1(CU:=(ad

39、d1 OR key.adda) AND NOT ctud1.QU ,CD:=sub1 ,RESET:= Quit OR cancel OR pay ,LOAD:= ,PV:=Quantity_a,QU=,QD= ,CV=Number );(*计算当前价格*)Cost:=Price_a*Number;(*确认购买后,当前价格才生效,可视化跳转回商品选择界面*)cart:=cart1 OR key.carta;TP1(IN:=cart , PT:=t#300ms , Q= , ET= );IF Cart=TRUETHEN Cost_a:=Cost;END_IF;IF tp1.ETt#250ms T

40、HEN currentvisu:=SELECTING;END_IF;(*取消,清零购买数量和价格,可视化跳转回商品选择界面*)cancel:=cancel1 OR key.cancela;IF Cancel OR Quit=TRUETHEN Cost_a:=0;Number:=0;END_IF;TP2(IN:=cancel , PT:=t#300ms , Q= , ET= );IF tp2.ETt#250ms THENcurrentvisu:=SELECTING;END_IF(*控制选择界面中元素的显示,非主要功能*)IF Cost_a0 THENNotBuying:=FALSE;ELSE N

41、otBuying:=TRUE;END_IF;5.3 零钱计算子程序本设计中的自动售货机找零的币种为1元和5角的两种硬币,考虑到若添加纸币的退币机构将大大增加硬件投资,故按行业一般标准设计,只找零硬币。但是程序中预留了多币种的找零算法,方便日后升级,找零程序如下:PROGRAM change_calculateVARxx: REAL;x: REAL;ChangeEnough: BOOL;END_VARIF change=0THEN changeEnough:=TRUE;ELSEx:=change;xx:=x;(*面值为100-5的纸币均屏蔽,只留1元和5角作为找零钱币*)(*(*100*)WHI

42、LE xx=100DO xx:=xx-100;n100:=n100+1;END_WHILEIF n100=Change100THEN n100:=Change100;xx:=x-n100*100;x:=xx;ELSE x:=xx;END_IF(*50*)WHILE xx=50DO xx:=xx-50;n50:=n50+1;END_WHILEIF n50=Change50THEN n50:=Change50;xx:=x-n50*50;ELSE x:=xx;END_IF(*20*)WHILE xx=20DO xx:=xx-20;n20:=n20+1;END_WHILEIF n20=Change20

43、THEN n20:=Change20;xx:=x-n20*20;ELSE x:=xx;END_IF(*10*)WHILE xx=10DO xx:=xx-10;n10:=n10+1;END_WHILEIF n10=Change10THEN n10:=Change10;xx:=x-n10*10;ELSE x:=xx;END_IF(*5*)WHILE xx=5DO xx:=xx-5;n5:=n5+1;END_WHILEIF n5=Change5THEN n5:=Change5;xx:=x-n5*5;ELSE x:=xx;END_IF*)(*1*)WHILE xx=1DO xx:=xx-1;n1:=n1+

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号