目录
一、实现要求
二、I/O分配表
1、输入信号
2、输出信号
3、定时器
三、程序设计
四、程序说明
1、投币处理
2、饮料选择与条件判断
3、退币
4、20 秒无操作报警
五、McgsPro组态软件配置
六、总结
一、实现要求
自助贩卖机
1.共有矿泉水、可乐、咖啡、三种饮料;
2.矿泉水2元,可乐3元,咖啡7元;
3.投币口有1元,5元,10元;
4.金额大于等于2元,可选择矿泉水,大于等于3元可选择可乐和矿泉水,大于等于
7元全部可选。
5.选择对应饮料,总金额减少,对应饮料阀门开启5S后关闭,购买完成后,选择退
币按钮退还剩余金额,5s后退还显示的金额清零。
6.投币后20S无操作,红灯闪烁报警。
7.三种饮料不可同时排料
编写相应的程序、触摸屏页面动画设计
二、I/O分配表
1、输入信号
地址 | 名称 |
|---|---|
m2.0 | 1 元投币 |
m2.1 | 5 元投币 |
m2.2 | 10 元投币 |
m2.3 | 选择矿泉水 |
m2.4 | 选择可乐 |
m2.5 | 选择咖啡 |
m2.7 | 退币按钮 |
2、输出信号
地址 | 名称 |
|---|---|
Q0.0 | 矿泉水阀门 |
Q0.1 | 可乐阀门 |
Q0.2 | 咖啡阀门 |
Q0.3 | 红灯(报警) |
3、定时器
定时器 | 功能 |
|---|---|
DB4、DB5、DB6 | 阀门开启 5s |
DB1、DB2 | 退币清零 5s |
DB8 | 超时报警 20s |
三、程序设计
四、程序说明
1、投币处理
1、检测投币: 使用P_TRIG(上升沿触发)指令检测%M2.0(1元)、%M2.1(5元)、%M2.2(10元) 的按下信号。
2、金额累加: 当检测到投币信号时,通过MOVE指令将固定金额值(存于%MW18)传送给累加变量(%MW10,%MW2,%MW4),实现总金额的计算。
3、超时计时启动: 投币动作会触发TON定时器(位于程序段3),若后续20秒内无操作(投币或选饮料),则启动报警逻辑。
2、饮料选择与条件判断
比较指令: 使用
>=(大于等于)比较指令,判断当前总金额是否满足各饮料的价格要求。矿泉水(2元):金额 >= 2
可乐(3元):金额 >= 3
咖啡(7元):金额 >= 7
互锁机制: 程序段5中使用了
SUB(减法)指令扣除相应金额,并通过TON定时器(DB4, DB5, DB6)控制阀门开启时间(5秒),确保三种饮料不会同时排料(互斥输出)。输出驱动: 满足条件下,输出对应的阀门信号(
%Q0.0,%Q0.1,%Q0.2)。
3、退币
触发条件: 按下退币按钮(
%M2.7)。金额清零: 退币完成后,通过定时器(DB1, DB2)控制金额显示区域在5秒后清零。
金额回退: 程序中虽未直接展示退币金额的输出逻辑,但通过减法操作实现了内部金额的清零处理。
4、20 秒无操作报警
定时器: 使用
TON定时器(DB8),设定时间为T#20s。报警输出: 当投币后20秒内没有任何有效操作(投币或选饮料),定时器
Q端输出为1,驱动%Q0.3(红灯)闪烁报警。
五、McgsPro组态软件配置
六、总结
本自助贩卖机系统通过PLC实现了完整的售买流程控制,逻辑严谨,涵盖了投币、选饮、出饮、退币及报警等核心功能。配合McgsPro组态软件,构建了直观的人机交互界面。程序设计中注重细节(如上升沿触发、定时器复位、互锁),保证了系统的稳定性和可靠性,完全满足了所有功能要求。