基于三菱PLC与MCGS触摸屏的投币洗衣机控制系统设计与调试

发布时间:2026/10/3 21:25:59
基于三菱PLC与MCGS触摸屏的投币洗衣机控制系统设计与调试 前段时间帮朋友的小洗衣房做了套投币洗衣机控制系统用三菱PLC做主控、MCGS触摸屏做人机界面前后从电气设计到调试落地花了一周时间到现在已经稳定跑了快一年。这套系统其实不大但麻雀虽小五脏俱全投币识别、计费判断、水位检测、电机正反转、脱水高速运行、门锁联锁、故障报警整个流程全串在一起非常适合理清PLC项目的完整脉络。这篇文章我就按自己的实际搭建过程把方案思路、硬件选型、程序逻辑、MCGS组态到现场调试的坑全梳理一遍给正在做类似项目或者想练手完整PLC工程的朋友做个参考。1. 项目需求与整体方案思路1.1 投币洗衣机的核心控制需求先搞清楚这台设备要干什么。商用投币洗衣机和家用洗衣机最大的区别在于无人值守和先付费后使用用户投币设备确认金额达到设定值后才允许启动程序运行过程中不需要人工干预进水、洗涤、排水、漂洗、脱水按顺序自动完成遇到异常要能停机保护并给出提示方便管理人员处理。把需求拆成控制功能大致有这么几项投币检测与计数每投入一枚硬币产生一次信号PLC统计投币总数与设定金额比较。运行模式选择标准洗、快速洗、单脱水等不同程序对应不同的时序组合。水位控制检测低水位和高水位控制进水阀和排水阀。电机控制洗涤时低速正反转脱水时高速运转。洗涤电机用的是双速电机需要两个接触器分别接通低速绕组和高速绕组。门锁联锁整个运行过程中门必须锁住尤其脱水阶段没锁门绝对不允许启动高速。显示与操作剩余金额、运行状态、程序选择、故障提示都要能在触摸屏上看到和操作。计费参数可调单次洗衣价格、投币模式1元或者5角累计可以用触摸屏修改不然每次改价格都要改PLC程序太痛苦。I/O点算下来其实不多数字量输入大概六七个输出五六个但控制逻辑有状态转换适合用PLC的步进指令来做。1.2 为什么选三菱PLC加MCGS这个组合市面上能实现这个功能的方案不少单片机、继电器控制系统、工控板都行但商用设备讲究稳定性和后期维护方便PLC是最稳妥的选择。单片机成本低但抗干扰和开发周期不占优势继电器逻辑在这种多状态切换的场合能把人绕晕。PLC这边三菱FX系列在小型设备里占有率很高指令生态成熟网上案例多出了问题也好找资料。具体到控制规模FX3U-16MR或者FX3U-32MR就完全够用没必要上大的。触摸屏选择MCGS一方面是因为它和国产设备配合成熟编程软件使用逻辑直观新手花半天就能上手另一方面MCGS的驱动库里有专门对应三菱FX系列编程口的驱动搞一根编程线就能和PLC通讯不需要额外买通讯模块。整套下来成本控制得很好比用进口品牌HMI便宜不少对小洗衣房这种预算有限的场景非常友好。还有一个原因是MCGS触摸屏的画面组态效率很高按钮、指示灯、数值显示这些常用构件直接拖拽绑定变量即可后期改界面不用动PLC程序。2. 硬件选型与电气接线要点2.1 硬件清单与选型理由我实际用的硬件清单如下都经过现场验证照着买不会出大问题器件型号/规格数量用途说明PLC三菱FX3U-32MR/ES1台主控单元继电器输出型触摸屏MCGS TPC7062KX7寸1台人机交互与参数设置投币器脉冲输出型1元/次1套输出脉冲信号给PLC双速电机洗涤/脱水双速电机1台低速洗涤、高速脱水进水电磁阀220V AC电磁阀1个控制进水排水电磁阀/电机220V AC1个控制排水液位开关浮球式常开型2个低水位、高水位检测电磁门锁12V DC电磁锁1套运行期间锁门交流接触器220V线圈额定电流10A3个主洗正转、反转、脱水中间继电器24V DC线圈若干信号转换与隔离开关电源24V DC 2A1个给PLC输入信号和触摸屏供电选FX3U-32MR而非16点是因为我习惯留出20%左右的备用I/O点以后朋友想加个烘干功能或者照明控制不用换PLC。继电器输出型对这种小功率负载友好触点直接带接触器线圈没问题但严格来说接触器线圈通断瞬间有冲击我建议中间还是加一级中间继电器过渡更稳妥。2.2 主回路和控制回路的接线设计电气接线分成主回路和控制回路两大部分。主回路比较简单总闸下来分一路给电机接触器另一路给进水阀、排水阀。电机回路里主洗正转接触器KM1、反转接触器KM2、脱水接触器KM3三个接触器之间必须做电气互锁和程序互锁防止主洗和脱水同时吸合那等于电机直接烧掉。互锁的做法是KM2的常闭触点串进KM1线圈回路KM1的常闭触点串进KM2线圈回路KM3和另外两个也要互锁。这个环节特别关键我见过不止一次因为接触器互锁没做好导致电机冒烟的事故千万别省。控制回路以PLC为中心。输入回路里投币器输出信号接X0注意投币器一般有两种输出方式一种是脉冲型投一枚币输出一个短脉冲一种是电平型投完币保持一段时间的电平。脉冲型接PLC更省事防抖逻辑在程序里做。水位开关接常开触点低水位开关没水时断开有水时闭合高水位开关水到位置后闭合。门锁位置检测开关串联在门锁回路里PLC读到门锁到位信号才允许进入脱水流程。输出回路里Y0接进水阀Y1接排水阀Y2、Y3分别接主洗正转和反转接触器Y4接脱水接触器Y5接门锁继电器Y6接蜂鸣器。这里我要强调一个细节PLC继电器输出端子在感性负载断开瞬间会产生反向电动势最好在接触器线圈两端并联RC吸收器或者压敏电阻不然长期运行容易打火损坏触点。实际现场空间有限我至少会保证在柜内接线时把PLC输出端子到接触器线圈之间的线尽量短减少分布电感的影响。3. 控制逻辑设计与程序实现3.1 I/O分配与软元件规划写程序之前先把I/O分配和软元件规划做好这一步能省很多后期修改的麻烦。我的分配如下PLC地址信号说明类型X0投币脉冲输入输入信号X1低水位开关输入信号X2高水位开关输入信号X3门锁到位检测输入信号X4手动启动按钮调试用输入信号X5手动停止/复位按钮输入信号Y0进水电磁阀输出信号Y1排水电磁阀/排水泵输出信号Y2主洗正转接触器KM1输出信号Y3主洗反转接触器KM2输出信号Y4脱水接触器KM3输出信号Y5门锁电磁铁输出信号Y6蜂鸣器/故障报警灯输出信号软元件规划上M0是系统运行标志M100是故障标志M101是门锁未到位报警S0是初始状态S10到S50是各运行状态T0用于投币信号防抖T1到T10用于各阶段定时C0用于投币计数D0用来存放触摸屏设定的单次洗衣价格。D0这种从触摸屏写入的数值在三菱里用MOV指令在初始化时赋默认值优雅一些也可以在MCGS里直接给PLC的D0赋值触摸屏断线重连后D0保持不变但第一次上电最好先给D0写个500的默认值代表5元一次不然初始金额是0用户投多少币都启动不了。3.2 投币识别与计费判定的关键细节投币器输出信号看着简单实际上是最容易出幺蛾子的地方。老式投币器内部用的是机械开关或者干簧管硬币滑落时会产生多次抖动PLC直接计数会导致一个币计出两三次那用户还不得找你退款所以必须在程序里做防抖处理。我采用的思路是用X0的上升沿触发一个20ms的定时器T0T0延时结束后再去读取X0的当前状态。如果T0结束后X0仍然保持信号状态才认为这是一次有效投币执行C0加一如果只是瞬间抖动T0结束时X0已经复位直接放弃本次计数。这段逻辑不长但很实用现场实测下来不同批次的硬币都能准确计数没有再出现跳数的情况。计费判定放在启动阶段每次投入硬币后PLC把C0的当前值乘以单枚币面额再和D0里的设定价格比较。达到或超过设定金额后状态指示灯变为可启动这时候用户在触摸屏上按启动按钮才生效。还差金额时触摸屏可以实时显示已投入金额和还需投入多少这个用MCGS做很简单把C0和D0换算到屏上显示即可。多余的投币金额我选择不做找零但允许用户多投运行时间只按设定程序走这是商用设备的常见逻辑避免找回零钱带来的机械复杂度。3.3 洗涤流程的步进状态设计整个洗衣流程属于典型的顺序控制我用三菱的STL步进指令实现状态切换比用一堆辅助继电器M拼逻辑清晰得多。状态定义如下S0初始待机状态。在这里判断投币金额是否足够是否有启动指令。S10进水洗涤状态。Y0进水阀打开同时电机低速正转。当高水位开关置位后关闭进水阀进入洗涤计时。S20主洗计时状态。电机低速正转15秒、停2秒、反转15秒、停2秒循环执行。这里用两个定时器交替切换方向同时记录总的洗涤时间标准洗设定8分钟快速洗4分钟。时间到后进入排水。S30排水状态。打开Y1排水阀或者排水泵电机停转。排水时间设定为30秒或者用低水位开关复位作为排水完成的判定条件我建议用后者更可靠因为排水泵的实际排空时间会随管道情况变化。S40脱水状态。进入前必须检查X3门锁到位信号和S30排水完成标志。确认无误后接通Y4脱水接触器电机高速运转120秒。脱水过程中如果检测到衣物不平衡通过平衡开关信号现场改装时接在电机高速绕组回路立即停止脱水重新进入进水S10做一次短时进水润湿和重新均布然后再排水脱水。S50漂洗状态。脱水结束后打开进水阀S10的流程再走一遍但电机只做低速正反转不加热、不加洗涤剂漂洗2次。S60结束状态。完成最后一次脱水后关闭门锁Y5蜂鸣器响3秒提示用户取衣M0运行标志复位回到S0待机。每个状态之间用条件触发转移例如S10到S20的转移条件是高水位开关X2ONS20到S30的转移条件是洗涤时间继电器T5ON。状态机的好处是任何时候都能清楚当前设备停在哪个环节出故障也好定位触摸屏上把当前状态号直接显示出来维修人员一眼就能判断到哪一步了。3.4 门锁联锁与故障保护逻辑安全逻辑必须单独强调尤其是改装的商用洗衣机原机的安全开关可能没接好这是最大的隐患。我在程序里做了几层保护门锁联锁S20洗涤计时开始之前必须确认X3门锁到位。如果没有到位Y5门锁输出会立即动作同时蜂鸣器报警状态停留在S10。脱水状态S40前更要强制检查门锁如果中途门锁被打开程序立刻停止高速输出同时排水阀打开泄压防止用户在门未锁情况下接触高速旋转的滚筒。不平衡保护脱水过程中如果平衡开关动作说明衣物偏在一侧高速运转会导致剧烈震动。程序检测到该信号后立即断开Y4脱水输出转入S10重新进水均布再次排水后重新脱水。这个逻辑要设定一个重试次数上限比如3次若3次均布后依然不平衡则停在故障状态蜂鸣器持续报警等管理人员处理。实际使用中这个保护很管用不然洗衣房半夜震得跟地震一样邻居迟早投诉。超时保护进水阶段如果持续5分钟没有到达高水位判定为水压异常或者电磁阀故障M100故障标志置位关闭所有输出触摸屏显示进水超时故障代码。出水阶段持续3分钟低水位开关仍然为ON判定排水堵塞同样停机报警。这两种情况都是现场高频故障提前做了程序保护就不用烧保险丝了。4. MCGS组态与触摸屏画面搭建4.1 触摸屏与PLC的通讯配置MCGS和FX3U的通讯用一根编程电缆或者USB转串口线就能建立连接触摸屏通讯参数设置非常简单。在MCGS组态环境里新建工程选择对应触摸屏型号进设备窗口添加设备驱动选三菱FX系列编程口然后配置串口参数波特率9600、数据位8、停止位1、偶校验、PLC站号默认0。这里要注意MCGS和三菱之间走的是三菱FX编程口协议不是标准的Modbus所以驱动一定要选对选成Modbus的话地址映射会全乱。通讯正常之后MCGS会把PLC的X、Y、M、D等软元件直接映射成通道。以我的画面为例X0投币脉冲、X3门锁信号、D0单价、C0投币数量、M0运行标志这些都要在设备窗口里建好对应通道。通道建立后用户窗口里的按钮、指示灯才能绑定到这些通道上。有一点容易被忽略MCGS触摸屏的COM口如果是RS232/RS485一体口接三菱FX编程口线时注意RX/TX交叉方向不同型号的触摸屏对接线定义不太一样。我第一次调试时就是挑了一根普通串口线接上结果通讯超时翻说明书才发现线序不对。建议先确认触摸屏手册里的串口引脚定义再自己做线或者买成品适配线。4.2 主画面设计与变量绑定MCGS的画面设计是所见即所得的拖拽方式我做了三个画面主操作画面、参数设置画面、故障记录画面。主操作画面放这些元素运行状态指示灯绑定M0绿色表示运行中红色表示待机。当前金额显示绑定C0和D0计算显示已投入金额/需投金额。程序选择按钮标准洗、快速洗、单脱水三个按钮分别对应D11、2、3启动时PLC根据D1的值选择不同时序。启动按钮绑定M1瞬时置位PLC在S0状态里检测M1上升沿后启动。停止/复位按钮绑定M2运行中可以暂停报警时用于复位故障。当前状态文本显示把S0到S60的状态编号映射成中文文本比如S10显示进水洗涤中、S20显示主洗进行中这个用MCGS的字符串构件加上脚本判断即可。按钮和指示灯构件的变量绑定在动画连接里做数值显示用表达式比如已投金额 C0*100分。参数设置画面单独设置密码权限防止用户乱改价格参数。我只允许管理员登录后修改D0单次价格和D1程序选择其他画面只读。MCGS的权限管理在用户窗口属性里可以设用户级别入口放一个管理员登录按钮安全实用。参数设置画面的核心是单价设定我用的是数值输入构件绑定D0范围限制在100到2000之间的整数对应1元到20元。同时把所有时间参数比如进水超时时间、脱水时间、洗涤时间全部做成可调参数放在同一屏这样洗衣房管理人员可以根据实际水质和衣物情况灵活调整不用改一行PLC程序。4.3 运行策略与数据导出MCGS的运行策略功能可以用来做定时数据采集和报警记录。我在循环策略里写了一个简单的脚本每秒读取一次PLC的M100故障标志和Y输出状态如果有故障就把故障时间、当前状态号、故障代码写入本地数据库。这个功能不需要额外硬件纯靠MCGS内部的数据组对象完成。关于数据导出MCGS触摸屏支持U盘导出历史数据和报警记录也可以开FTP服务把数据传到局域网服务器。我实际启用的是U盘导出在用户窗口放一个导出历史记录按钮点击后脚本把本地数据文件复制到U盘指定目录电脑上打开就是Excel能看的CSV格式。这样每个月去洗衣房收一次数据能清楚看到每天洗了多少次、单价多少、有没有报警对商家的账目管理很有帮助。FTP功能适合有局域网的场景触摸屏通过网线连到路由器然后在系统设置里配置FTP服务器地址和账号定时把数据文件上传省得每次跑现场插U盘。4.4 程序下载与上传的实操细节MCGS工程做完之后要下载到触摸屏里这个过程我踩过几次坑专门说说。新触摸屏第一次下载时优先用U盘下载最省事先在组态环境里点下载工程到U盘软件会把工程文件打包到U盘根目录然后把U盘插到触摸屏的USB口重启或者按照屏幕提示操作就能完成更新。在线下载也行触摸屏和电脑用USB线连接电脑装好对应的USB驱动后在MCGS软件里选择在线下载传输速度比U盘稍快适合频繁改画面的调试阶段。要特别注意版本匹配问题MCGS组态软件分了网络版和嵌入版触摸屏型号对应不同的软件版本用错版本下载轻则提示版本不兼容重则触摸屏直接白屏。我用的是嵌入版TPC系列所以PC端装的是MCGS嵌入版组态环境下载设备型号要选TPC7062KX。如果电脑软件版本和触摸屏的系统版本不一致先用U盘方式强制升级升级过程不能断电否则触摸屏OS损坏就只能返厂了。关于程序上传这里要给所有做MCGS项目的朋友提个醒嵌入版触摸屏默认不支持从屏内反向读回完整工程只支持上传用户数据、配方和报警记录。所以源工程文件一定要在电脑上留好备份最好在每次修改后都归档一份带日期和版本号的副本。我见过不止一个人只改现场屏不更新电脑工程最后电脑里的工程和现场完全对不上出了故障都没法排查。程序上传这块的U盘上传功能主要用来备份组态工程和用户数据不是用来恢复整个画面的。5. 现场调试流程与高频问题排查5.1 调试步骤和先后顺序整套系统联调的时候我按照先信号、再逻辑、后强电的顺序走避免一上来就通强电把设备烧了。第一步先单独检查PLC输入信号用短接线模拟投币脉冲看X0指示灯是否闪烁手动按水位开关看X1、X2是否正常翻转门锁位置开关开合时X3是否有变化。输入信号全部确认无误再检查输出逻辑在PLC里强制Y0到Y6看对应继电器和指示灯是否动作。第二步做空载逻辑仿真不接主回路光看PLC程序状态切换是否按预期走进水、洗涤、排水、脱水各状态的转移条件是否满足。第三步接电机和电磁阀的空载测试先断开接触器主触点盘动电机确认转向标注无误再接通主回路用手动模式分别测试正转、反转、高速。全部正常后跑一次完整的自动流程。调试过程中最好在PLC程序里留一个调试模式位MCGS画面上放一个调试模式开关调试模式下可以跳过投币金额判断直接启动方便反复测试洗涤时序。这个调试位在现场验证完成之后必须关闭不然商用状态谁都能免费洗衣服损失的是老板的钱。5.2 常见问题速查表问题现象可能原因排查与解决投币后计数不准/乱跳投币器信号抖动、接线接触不良程序增加防抖时间检查投币器输出线缆屏蔽层接地在PLC输入端并联一个小电容如0.1uF吸收毛刺触摸屏经常通讯超时串口参数不对、线缆过长或干扰核对波特率、停止位、校验位尽量使用屏蔽双绞线长度不超过15米检查PLC与触摸屏是否共地进水不停高水位浮球卡死、开关常开常闭接反拆下浮球手动活动测试确认动作方向在程序里增加进水最长时间保护脱水时机器剧烈振动衣物不平衡、平衡开关位置不当检查是否衣物塞太多程序做三次重试均布检查平衡开关安装角度需在振动时可靠闭合启动后没反应投币金额不足、门锁没锁好、启动按钮没触发看触摸屏金额显示是否达到设定值检查X3门锁信号用PLC监控软件查询M1是否被触发触摸屏无法下载程序USB线不是数据线、驱动未装、软件版本不符换高质量数据线安装对应型号的USB驱动确认组态软件版本与触摸屏匹配5.3 调试中踩过的几个具体坑第一个坑是投币器电源问题。刚开始我直接把投币器接到PLC的24V电源上结果投币器工作不稳定频繁误触发。后来查说明书发现投币器内部的传感器是电流型负载对电源纹波很敏感而PLC的24V电源同时供着触摸屏和中间继电器纹波稍大就出问题。解决方法是投币器单独用一个小功率开关电源供电电源负极和PLC电源的COM端还是共地这样干扰问题彻底消失。第二个坑是中间继电器的接线。我用的是24V继电器线圈接PLC输出Y0-Y6触点接220V接触器线圈。第一次接线时把继电器公共端接错了导致Y0输出时Y1也跟着动作控制逻辑全乱。查了半天才发现是继电器底座的正负极标识看反了型号不同底座引脚定义不一样。这个教训提醒我任何继电器、接触器上电前都先用万用表量一遍线圈和触点引脚不要相信铭牌上的序号。第三个坑是排水管虹吸倒灌。洗衣房地面低排水管末端浸在水里设备停止后排空管内的水会通过排水阀倒灌回洗衣机内桶导致低水位开关误动作。处理办法是在排水管出口加一个单向阀或者把排水管抬高到洗衣机内桶最高水位以上再回落形成一个存水弯。这算是机械部分的改造但会直接影响PLC水位逻辑判断工程项目不能只盯着程序看机械配合同样重要。6. 一些现场运行后的体会项目交付后朋友那边陆续跑了大半年总体稳定中间只出过一次进水超时报警检查发现是进水口的滤网被杂物堵住了清理后恢复正常。从这次实际运行来看这套三菱PLC加MCGS的方案对小型商用投币洗衣机来说非常合适成本可控、维护简单、逻辑直观。我个人最大的体会是做这类设备控制程序设计只占一半另一半在硬件的细节处理上。接触器互锁、继电器隔离、电源共地、信号防抖、排水管路每一个看起来不起眼的点都可能在现场给你上一课。调试过程中别怕慢严格按照先信号、后逻辑、再强电的顺序走比反复烧设备换配件效率高得多。如果想在这个基础上扩展可以考虑加远程监控功能用MCGS的网口连接物联网网关把洗衣机的运行状态和收入数据传到手机端。也可以多加几台设备组一个RS485网络用一台触摸屏集中监控整个洗衣房的所有机器性价比更高。这个项目麻雀虽小但完整覆盖了PLC控制系统的典型开发流程有参考价值手头有类似需求的朋友可以直接抄作业遇到具体问题欢迎交流。