news 2026/6/23 18:13:12

自动售货机MCGS7.7和西门子S7-1200PLC联机程序博途V14,带注释和IO分配表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动售货机MCGS7.7和西门子S7-1200PLC联机程序博途V14,带注释和IO分配表

自动售货机MCGS7.7和西门子S7-1200PLC联机程序博途V14,带注释和IO分配表

最近在折腾自动售货机的控制系统,用MCGS7.7触摸屏和西门子S7-1200PLC搭了个联机系统。这俩设备的通讯就跟谈恋爱似的,得互相听懂对方的语言才能干活。今天咱们就聊聊这个联机程序怎么配,重点说说程序里那些硬核代码和IO分配。

先说硬件配置,这台自动售货机主要控制货道电机、退币机构、纸币器和硬币器。PLC这边用CPU1214C DC/DC/DC,数字量输入输出各占10个点。IO分配表大概长这样:

DI点:

I0.0 投币信号

I0.1 退币按钮

I1.0 货道1到位

I1.1 货道2到位

DO点:

Q0.0 出货电机

Q0.1 退币电机

Q0.2 找零指示灯

Q1.0 故障报警

TIA Portal V14里新建个工程,先给PLC配个Modbus TCP通讯。这步关键得很,就像给设备办身份证:

MB_SERVER_DB := "Modbus_TCP_Server_DB"; MB_SERVER( REQ := TRUE, MB_ADDR := 1, MB_HOLD_REG := P#DB1.DBX0.0 WORD 10, CONNECT := "TCPServer_1");

这段代码把PLC变成Modbus服务器,MCGS屏作为客户端来读数据。DB1这块数据区专门用来存售货状态,比如当前余额、库存数量这些。

投币检测程序最有意思,得防着熊孩子乱拍按钮。用了个带延时滤波的检测逻辑:

IF "投币传感器" AND NOT "投币锁定" THEN "投币计数器" := "投币计数器" + 1; TON("投币延时", T#200MS); IF "投币延时".Q THEN "当前余额" := "当前余额" + 1; RESET_TIMER("投币延时"); END_IF; END_IF;

这个TON定时器专门对付接触不良产生的抖动信号,200毫秒内重复触发只算一次有效投币。

出货控制部分用了个状态机,比直接写逻辑清晰多了。比如选货电机控制:

CASE "出货状态" OF 0: // 待机 IF "选择货道" <> 0 THEN "出货状态" := 1; "目标货道" := "选择货道"; END_IF; 1: // 启动电机 "出货电机" := TRUE; TON("出货计时", T#3S); IF "货道到位信号" THEN "出货状态" := 2; ELSIF "出货计时".Q THEN "故障标志" := TRUE; END_IF; 2: // 完成出货 "出货计数器" := "出货计数器" + 1; RESET_ALL; END_CASE;

这个状态机把复杂的时序控制拆分成几个明确阶段,比一堆互锁触点靠谱多了。特别是那个3秒超时检测,能有效防止电机堵转。

MCGS那边配置Modbus TCP客户端时,记得把数据地址对齐。比如余额显示对应DB1.DBW0,用个数值显示元件绑定40001地址。要是通讯不上,八成是IP没设对或者防火墙拦了502端口。

调试时遇到的坑也不少。有次退币电机死活不动,查了半天发现是Q0.1输出点烧了。后来学乖了,在程序里加了个输出点自检功能:

// 上电自检 IF FirstScan THEN FOR i := 0 TO 9 DO "输出测试"[i] := TRUE; WAIT TIME T#500MS; END_FOR; "输出测试" := FALSE; END_IF;

这段代码在PLC启动时让所有输出点轮流闪一遍,维修时拿个万用表挨个测电压就行,省得拆线检查。

整个系统调通后实测发现,Modbus通讯周期控制在100ms左右最合适。太快了MCGS容易卡界面,太慢了用户会觉得操作延迟。最后在OB35中断组织块里做的通讯处理,保证实时性。

这项目做下来最大的感悟就是:好的联机程序得像双人舞,PLC负责精准执行,HMI专注人机交互。两者既要独立工作,又要默契配合。下次打算加上支付宝支付功能,到时候再跟大伙分享怎么在工控设备里接物联网模块。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 11:12:20

同花顺平衡多空看图操作多空理论

{}多空:50,COLORFFFFFF,POINTDOT; J:(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*100,colormagenta; K:SMA(J,3,1),colorwhite; D:SMA(K,3,1),coloryellow; 动能:100 * (LLV(LOW,60)-EMA(CLOSE,3))/(LLV(LOW,60)-HHV(HIGH,60)),colorligray,LINETHICK2; 多:IF(动能>多空,动能,DRAWNUL…

作者头像 李华
网站建设 2026/6/15 16:39:33

通达信222222测试帖别下载

{} Z1:STRCAT(【,STRCAT(CODE,STKNAME));Z2:STRCAT( 行业&#xff1a;,HYBLOCK);Z3:STRCAT( 地域&#xff1a;,DYBLOCK);Z4:STRCAT(STRCAT( 概念&#xff1a;,GNBLOCK),】);Z5:STRCAT(Z1,Z2);Z6:STRCAT(Z3,Z4);Z7:STRCAT(Z5,Z6);DRAWTEXT_FIX(1,0.35,0.030,0,Z7),COLORGREEN…

作者头像 李华
网站建设 2026/6/18 0:42:10

通达信大盘个股共振指标公式

{}个股:EMA(100*(C-LLV(LOW,34))/(HHV(H,34)-LLV(LOW,34)),3),COLOR1010FF; 大盘:EMA(100*(INDEXC-LLV(INDEXL,34))/(HHV(INDEXH,34)-LLV(INDEXL,34)),3),COLORE67010,LINETHICK2; STICKLINE(个股>大盘,个股,大盘,1,0),COLORRED; STICKLINE(个股<大盘,个股,大盘,1,0),COL…

作者头像 李华
网站建设 2026/6/23 4:56:20

这些核心特征,让芯片散料转编带设备成行业刚需

在电子制造业向自动化、高精度、规模化转型的过程中&#xff0c;芯片散料转编带设备之所以能成为行业刚需&#xff0c;不仅在于其强大的功能&#xff0c;更得益于一系列贴合行业需求的核心特征。这些特征既是设备技术实力的体现&#xff0c;也是企业提升生产效益的关键所在。高…

作者头像 李华
网站建设 2026/6/23 11:18:56

~给媳妇的新称呼~

1、 干饭冲锋小战士&#x1f35a;2、 追剧上头小狂魔&#x1f4fa;3、 奶茶续命小仙女&#x1f9cb;4、 购物车清空大师&#x1f6cd;️5、 撒娇一级表演家&#x1f618;6、 熬夜冠军候补员&#x1f319;7、 碎碎念小话痨&#x1f4ac;8、 零食库存管理员&#x1f35f;9、 生气…

作者头像 李华
网站建设 2026/6/22 15:26:41

java计算机毕业设计社区服务微信小程序 基于微信生态的社区便民服务平台 SpringBoot+微信小程智慧社区服务系统

计算机毕业设计社区服务微信小程序0ah5c9&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。“用完即走”的微信小程序把居民从 App 的注册、更新、占内存中解放出来&#xff0c;却能…

作者头像 李华