PLC设计一个自动售货机退币程序

本人在做PLC的课程设计,但其中有个程序不会如下:系统退币箱中有5角,1元的硬币。退币时系统根据剩余金额首先退1元的,1元的用完后所有的找余都是5角。各位大侠帮帮忙。

(内容做删节,图表数据无法贴上来)

PLC程序设计
可以把一次交易过程分为几个程序块:运行初期电子标签价格的内部传递;投币过程;价格比较过程;选择商品过程;退币过程。
(1) 运行初期电子标签价格的内部传递程序的设计
仿真系统运行初期,要由PLC向仿真画面相应对象传递已经存储好的价格,还要给投入显示、消费显示及余额显示存储器清零,同时也要给存储退币币值的存储器清零。程序编制过程中,要用到运行初期闭合继电器R9013、16位数据传送指令FO,同时在上位机ForceControl中,必须定义相应的变量,来实现与PLC程序的对接。所定义的变量如表1所示。
在梯形图程序图5中,系统初始化时,通过运行初期闭合继电器R9013在第一次扫描时将数值传递给上位机。给WR1-WR11及SV0-SV4赋初值,赋值功能通过高级指令FO实现。至于为什么要加入WR13、WR15、WR17、WR19及WR20,在以后的程序中将介绍它们的作用。
(2).投币过程
在投币的过程中,每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样币制。先建立变量表,在编写程序。变量表如表2所示。对应的梯形图程序如图7所示。
在图中,当按下投入1角时,相当于让R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去。投入1角要投入显示、余额显示都相应增加相同数值,加法是由16位加法指令E20来实现的。投入5角、1元、5元、10元,原理同上。
(3)价格比较过程
价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,
为了实现数据的实时比较,用了一个特殊内部继电器R9010,在程序执行过程中,R9010始终保持闭合,F60是16位数据比较指令,用它来比较余额和商品的价格,R900A是大于价格,R900B是等于标志。当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品
(4)选择商品过程
当投入的币值可以购买某种商品时,按下相应的“选择”按纽即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格相比较,判断是否能继续购买。出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。建立的变量表如表4所示。对应的梯形图程序如图9所示。

(5)退币过程
在退币过程中,最主要的是完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要使用到的某些寄存器重新赋零。所建立的变量如表5所示。对应的梯形图程序如图10所示。
表5 退币过程变量表
完成了以上5个过程,自动售货机的PLC控制程序基本完成,程序可以控制售货机实现各种要求的功能 具体可以参考:www.jzjoys.com 极致嘉仕售后研发中心
温馨提示:答案为网友推荐,仅供参考
相似回答