2026/3/28 5:12:44
网站建设
项目流程
做二手网站赚钱不,知名企业vi设计,广州天河区租房,wordpress 插件教程No.867 基于西门子S7-200 PLC和组态王自动售货机5种货物五种大半夜饿得慌#xff0c;站在自动售货机前哐当哐当按按钮的时候#xff0c;有没有想过这铁家伙的大脑是怎么运转的#xff1f;今天咱们就扒开这台基于S7-200 PLC的自动售货机外壳#xff0c;看看它藏…No.867 基于西门子S7-200 PLC和组态王自动售货机5种货物五种大半夜饿得慌站在自动售货机前哐当哐当按按钮的时候有没有想过这铁家伙的大脑是怎么运转的今天咱们就扒开这台基于S7-200 PLC的自动售货机外壳看看它藏着什么硬核操作。先看PLC的I/O分配表就有意思I0.0 硬币传感器 I0.1~I0.5 5个商品选择按钮 Q0.0 退币电机 Q0.1~Q0.5 5路出货电机 M10.0 找零标志位 VD100 当前金额存储核心逻辑其实就三件事收钱认账、给货利索、找零痛快。来看这段关键代码LDN I0.0 // 硬币进来 EU // 上升沿触发 D 1, VD100 // 金额1 MOVW VD100, VW20 // 传给组态王显示 LDW VD100, 3 // 可乐3块钱 A I0.1 // 按了可乐按钮 AN M10.0 // 没找零需求 Q0.1 // 出货电机启动 -D 3, VD100 // 扣款这段STL代码把自动售货机的贪婪暴露无遗——钱到位才给货。特别要注意那个EU指令保证每次投币只加一次钱不然熊孩子拿个硬币在投币口摩擦分分钟刷爆金额计数器。组态王这边搞了个骚操作用用户策略脚本实现库存预警// 商品库存检测脚本 if(\\本站点\可乐库存 5){ SetAlarm(可乐即将售罄,1); } if(\\本站点\金额累计 1000){ FileWrite(销售日志,今日达标); }这脚本每天半夜自动跑搞得售货机比老板还操心库存。那个FileWrite函数生成的日志文件打开全是销售数据的碎碎念。调试时有个坑爹问题出货电机偶尔卡壳。后来发现是PLC的扫描周期搞鬼加了个50ms的定时中断专门伺候出货动作INT_0: // 定时中断程序 LDS Q0.1, 1 // 如果可乐电机启动 TON T37, 50 // 0.5秒定时 LD T37 RST Q0.1 // 强制停止这相当于给电机上了个闹钟到点不管货出没出来都停转硬生生治好了电机的拖延症。最后来个数据统计彩蛋在VD200地址藏了个隐形计数器记录每种商品的销量。组态王画面上长按退币键3秒会弹出个密码框输入1107就能看到各商品的江湖地位。这后门留的比老板的Excel报表有意思多了。说到底这自动售货机就是个严格执行钱货两清原则的铁憨憨。下次买饮料时想想背后这些跳动的寄存器说不定投币的手都会带点敬畏——毕竟你是在跟一套跑了20年还没宕机的PLC程序打交道啊。