当前位置: 首页 > news >正文

基于西门子PLC与组态王的自动饮料贩卖机控制系统设计与仿真

饮料售货机仿真,全自动售货机模拟,基于西门子PLC与组态王的自动饮料贩卖机控制系统设计, 此价格包含plc电气plc原理图,组态王仿真界面,io表,流程图,(文章说明书另加点)

楼下那台破可乐机又卡货卡疯了——雪碧按钮按了三分钟,出货口只冒了个气泡糖屑,气得我差点掏出当年大三做的西门子S7-200 SMART仿真灌进去。哦对了那个练手但五脏俱全的小项目,到现在还躺在我组态王旧安装包的备份文件夹里,今天刚好翻出来唠唠怎么搭个“不卡货、不吞钱、还会找钢镚儿模拟器”(对,是硬币!仿真里找钢镚音效比哗啦啦的纸币解压100倍)。

先说最最底层的骨架——IO表,这个不管是练手还是毕设真的是第一步,连输入输出都没理清楚就写梯形图,最后肯定像一团乱掉的薯片包装袋。我当年选的是SMART ST20,完全够用,不用搞太高端的CPU。别搞太复杂的货道和投币,就3种饮料(可乐3元、雪碧3元、橙汁5元),2种投币(1元硬币Q0.0对应脉冲计数、5元纸币MW0直接加5——仿真里加识别太麻烦,直接模拟按键投就行,反正验证逻辑够了),3个核心输出:Q0.1-Q0.3分别对应三个货道的脉冲马达、Q0.4是找零1元的那个“叮铃哐当”马达、Q0.5和Q0.6就随便设成两个小指示灯,一个亮显示“可购买”,一个亮“请取货/找零”。

哦对了IO表大概列个草稿:

//西门子S7-200 SMART IO分配表(练手简化版) 输入区(DI,传感器/按键模拟): I0.0:投1元硬币脉冲(每次按相当于识别到1元) I0.1:投5元纸币(长按1秒算识别防止误触?练手也可以不加,短按就行) I0.2:按钮选择可乐 I0.3:按钮选择雪碧 I0.4:按钮选择橙汁 I0.5:复位退币+清故障(真售货机的退币杆,练手加个) 输出区(DO,马达/指示灯/蜂鸣器选亮): Q0.1:1号货道可乐出货马达(脉冲2秒够模拟推货) Q0.2:2号货道雪碧出货马达 Q0.3:3号货道橙汁出货马达 Q0.4:找零1元脉冲马达(每次脉冲0.5秒,找几次就通断几次MW2寄存器) Q0.5:可购买绿灯(MW10≥3就亮,5元≥5才亮橙汁对应的可选择灯?对哦加个小MW1对应三种饮料的按钮灯?我当年做组态王把这个按钮灯做进界面了,PLC里省掉了但想加也可以补) Q0.6:请取货找零黄灯(出货或找零期间亮30秒)

接下来写梯形图的核心逻辑块——别一开始就整货道脉冲,先搞投币计数和退币!这个卡钱逻辑要是没写好,楼下破可乐机就是你的下场。投币的话用SM0.1(首次扫描)把MW0、MW2、MW10这些临时变量清零。然后投币的话很简单,I0.0(硬币)上升沿触发一次ADDI 1 MW0,I0.1(纸币)上升沿触发ADDI 5 MW0——对了练手用整数就行,不用浮点数,全按1元倍数来。退币更爽,I0.5(复位退币)只要按下,就把MW10直接赋给MW2,然后启动找零子程序(单独做个子程序梯形图清晰,不会乱成薯片条)。

找零子程序当年我琢磨了好一会儿,到底是用循环指令还是定时循环触发?SMART ST20的循环指令没问题,但定时循环触发的话,找零的“叮铃哐当”间隔更顺,不会卡成一团硬币。我当年选的是T37(100ms定时器),定时500ms,每次T37接通的上升沿:先判断MW2是不是大于0,大于的话Q0.4通100ms(不对不对刚才草稿里Q0.4是0.5?随便,自己调着爽就行),然后SUB_I 1 MW2;如果MW2等于0,就关Q0.4和请取货找零的黄灯T38(刚才草稿漏了T38,补一个30秒亮灯定时器,出货或者找零一开始就触发T38)。对了梯形图里用T37和T38配合的时候,记得不要用双线圈!Q0.4和Q0.6只能在一个地方输出,我当年一开始犯了这个低级错误,找零的时候黄灯一会亮一会灭。

然后是购买逻辑!这个要加互锁!互锁!互锁!重要的事情说三遍!不然同时按可乐和橙汁就会同时推货,赔死老板。互锁的话很简单,在每个货道选择按钮的回路里,把另外两个按钮的常闭触点加进去就行。比如可乐按钮的回路是:I0.2 AND (NOT I0.3) AND (NOT I0.4) AND (MW10≥3)——对了还要加钱够不够的判断。然后这个回路接通的话,先做减法:SUBI 3 MW10,然后触发可乐货道的T39(推货2秒定时器),Q0.1跟着T39通断,同时还要启动刚才的请取货找零的T38,不管有没有找零都亮灯提醒。橙汁同理,减法是SUBI5,互锁加另外两个。

饮料售货机仿真,全自动售货机模拟,基于西门子PLC与组态王的自动饮料贩卖机控制系统设计, 此价格包含plc电气plc原理图,组态王仿真界面,io表,流程图,(文章说明书另加点)

哦对了刚才说的MW10是什么?哦我刚才的IO草稿写错变量了!临时投币数是MW0,可购买判断和减法的是MW1——对哦MW0是“已经投的钱”,如果有人先投了钱,然后犹豫要不要换个饮料,MW0应该保留,MW1才是“当前订单可用的钱”?哦对哦当年我也一开始搞错了,后来修改了逻辑:首次扫描或者退币成功后,MW0=MW1=0;按投币键的时候,同时加MW0和MW1;按下购买按钮互锁通过钱够的话,只减MW1,MW0保留着下次用;如果按下复位退币,就把MW0赋给MW2找零,然后同时清零MW0和MW1。这个修改后的逻辑才是楼下正常售货机的逻辑对吧?不然你买完可乐剩两块,换个地方投币两块钱就没了。

最后是组态王界面!这个是练手的灵魂,不能只有干巴巴的梯形图。我当年做的界面很简陋但很解压:

  1. 背景是一张自动售货机的贴纸,抠掉按键和出货口的地方;
  2. 三个圆形按钮对应三种饮料,按钮上贴雪碧可乐橙汁的图片,按钮里关联I0.2-I0.4的模拟开关(组态王叫“按钮”,属性里选“数据改变命令语言”或者“鼠标左键按下”连接IO寄存器),按钮灯的话,关联MW1≥3就显示亮的图片,MW1≥5同时显示橙汁的亮图;
  3. 左侧两个小方块是投币口,分别贴1元硬币和5元纸币的图片,点击也关联模拟开关;
  4. 中间是两个数字显示框,分别显示“已投币数”MW0和“剩余可用数”MW1;
  5. 右侧一个大箱子是出货口,关联Q0.1-Q0.3的通断,只要有一个通,箱子里就弹出对应的饮料图片,30秒后自动消失;
  6. 找零口在出货口下面,关联Q0.4的通断,每通一次就掉一个1元硬币的图片,堆在找零口里,点一下找零口或者复位退币成功后自动清空;
  7. 右上角两个小指示灯,可购买绿灯关联MW1≥3,找货/取货黄灯关联T38;
  8. 最后加个小复位退币杆,关联I0.5的模拟开关。

哦对了组态王和PLC的通讯用的是PPI协议?SMART的话其实用TCP/IP更方便,插上网线设个IP地址就行,不用USB-PPI电缆。当年我宿舍没有网线,借了个学长的USB-PPI电缆,差点没折腾死我,PPI协议老是掉,后来跑到学校的开放实验室插网线连TCP/IP,一下子就连上了。

至于PLC电气原理图和流程图?电气原理图我当年用的是AutoCAD Electrical,很简单,就是电源(AC220V转DC24V)、PLC主机、输入按钮(并联下拉电阻或者用传感器模拟常开常闭)、输出继电器线圈(控制24V的马达和指示灯)、急停按钮(串联在PLC的电源输入端或者加个I0.6做急停互锁)——练手的话急停可以加但不用太复杂。流程图用的是Visio,从首次扫描开始,到投币、犹豫、购买、推货、找零、结束,画成一条线或者一个循环就行。

哦对了当年我还差点忘了给货道脉冲加延时保护!比如推货2秒不管有没有推出来都要停止,不然真马达会烧坏。练手的话加个T39定时器就够了,不用太复杂的货道检测传感器(仿真里加传感器也麻烦)。

那个小项目最后答辩得了优,老师说逻辑清晰、组态王界面解压,就是贴纸贴得太歪了。现在想想其实当年可以做得更完善,比如加个货道缺货检测、纸币识别超时报警、投币满50自动退币之类的,但练手的话,能做到“不卡货、不吞钱、会找零、界面能玩”就已经够了。

http://www.cnnetsun.cn/news/1640134.html

相关文章:

  • Pixel Epic · Wisdom Terminal部署教程:国产昇腾910B芯片适配实践分享
  • 5个高效步骤:WeChatExporter实现微信聊天记录数据备份与导出
  • 如何在 ASP.NET Core 中实现终极自动化 API 文档生成:Swashbuckle.AspNetCore 与 XML 注释集成指南 [特殊字符]
  • Spring Boot中高效解析YAML配置:从嵌套Map到扁平化键值对的实战指南
  • 快速上手Scribble Diffusion:5分钟从零开始创建你的第一幅AI艺术作品
  • 开发者专属:千问3.5-9B调试OpenClaw执行日志
  • 不止是打字机效果:手把手教你用SpannableStringBuilder打造Android富文本AI对话界面
  • 【SAP工作】2.ECC与S4HANA的Tcode对比
  • Pixel Fashion Atelier部署案例:云服务器上运行双GPU锻造服务的完整配置
  • 千问3.5-2B效果实测:100张测试图中,主体识别准确率92.7%,OCR字符准确率86.4%
  • 面向 Java 企业的大模型接入方案:稳定、工程化、低成本
  • cv_resnet101_face-detection_cvpr22papermogface真实应用:社区门禁抓拍图自动人数统计
  • Graphic Walker快速开始:如何在React应用中轻松嵌入数据可视化组件
  • Phi-4-mini-reasoning应用场景:医疗指南条款冲突逻辑自动识别系统
  • 幻境·流金企业应用案例:中小设计工作室降本提效的AI影像工作流
  • 提升GitHub访问效率的实用方案
  • Wan2.2-I2V-A14B部署教程:混合云架构下边缘节点视频生成能力下沉
  • Scarab:智能依赖解析破解空洞骑士模组管理困境的技术方案
  • Janus-Pro-7B实操手册:批量处理百张教育习题图并导出结构化答案JSON
  • Phi-4-mini-reasoning逻辑推理效果展示:图灵测试级数学对话与错误自检能力
  • 无GPU环境应急方案:OpenClaw远程调用百川2-13B-4bits量化版API
  • 告别慢查询:用快马ai智能生成高效mysql语句与索引方案
  • 利用人工智能优化毕业论文答辩:10款高效工具(包括爱毕业aibiye等)及权威答案模板测评
  • 【独家】C语言100篇:从入门到天花板 第4篇 输入输出函数
  • 直方图均衡化VS线性变换:Matlab图像增强效果对比实验报告(含Lena图测试数据)
  • Claude Code源码深度解析:当51万行代码敞开,我们看到了什么?
  • SAP BP主数据保存后自动发送外围系统的一种方式
  • 浏览器扩展工具BewlyBewly:从安装到个性化设置的全攻略
  • 任务栏透明工具TranslucentTB个性化设置方案
  • Voron 2.4开源3D打印机全栈构建指南:从设计理念到社区实践