ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PLC全自动洗衣机控制系统设计:从状态机到电气互锁的完整实践

PLC全自动洗衣机控制系统设计:从状态机到电气互锁的完整实践 做自动化的这些年经常有学生问我毕业设计该选什么题。如果让我给出一个既有工程含金量、又容易上手、答辩还能讲清楚的题目PLC全自动洗衣机控制系统绝对排在推荐清单的前三名。这个题目看起来只是个家电控制但拆开来看它把电机正反转切换、时序控制、传感器检测、安全互锁这些PLC应用里最核心的知识点全部串了起来而且控制流程直观哪怕是不熟悉工业控制的老师也能快速理解你在做什么。这篇文章我就把自己做这套系统设计的完整思路写出来从控制需求拆解到I/O分配、梯形图状态机设计、电气互锁的细节再到调试和报告写作、答辩准备一次性讲透。这套系统对三类人最有用一是正在准备PLC相关毕业设计的学生二是想用PLC做顺序控制练手的初学者三是需要带学生做课程设计的老师。你不需要有很深的电气基础但最好先了解过继电器控制和简单梯形图指令比如常开常闭触点、定时器、计数器这些概念。如果你连这些都还没接触过也不用担心我会在讲设计思路的时候把必要的原理一并解释清楚。1. 为什么洗衣机控制是PLC入门最值得做的题目1.1 一个看似简单却五脏俱全的顺序控制系统很多同学觉得洗衣机控制太简单了启动、进水、洗、排水、脱水就完了没什么技术含量。但我可以负责任地说这个题目放在工业自动化的背景下本质是一个典型的小型批处理控制系统和制药反应釜的温度-时间顺序控制、化工配料系统的多工位投料控制是同一个路子。你只是把反应釜换成了洗衣桶把温度传感器换成了水位开关而已。全自动洗衣机需要完成的任务大概有这么几项启动后自动进水水位到达指定高度后停止进水并开始洗涤洗涤过程是电机正转、暂停、反转、暂停的循环持续若干个周期洗涤结束后打开排水阀排水排完水进入脱水阶段电机高速旋转甩干最后蜂鸣器提示结束系统复位。如果要做更多的程序段比如标准洗、轻柔洗、单独脱水那也就是在状态序列里加分支而已。这个题目的妙处在于它涵盖了PLC应用中的几大类知识点开关量输入信号的采集与处理、输出对执行机构的驱动、定时器和计数器的组合使用、辅助继电器实现状态记忆、多个输出之间必须做的互锁保护。这些正是PLC工程师日常工作中最常用的基本功。你如果能把洗衣机这套逻辑写得清楚、稳定、有保护那工业现场的大多数顺序控制项目你也能上手了。1.2 从这个题目里能学到的核心能力做完这个设计你收获的不只是一套梯形图程序和一份报告更重要的是建立了一套顺序控制的思维方法。具体来说有几条是平时教程里很少被单独点出来的。第一条是**“状态优先”的编程思想**。很多初学者上来就盯着某个输出线圈写梯形图先写正转、再写反转、然后加定时器结果写着写着逻辑就乱了状态之间互相覆盖。正确的做法是先不管输出纯粹把流程拆成状态节点然后用辅助继电器把这些状态一个一个表示出来最后再把输出接到对应的状态上。这套方法我在后面第3部分详细讲。第二条是硬件与软件的协同意识。比如电机正反转切换如果只是为了毕设演示你当然可以只在程序里写“正转输出Y2、反转输出Y3”但实际工程里接触器之间必须加硬互锁程序里也必须写软互锁双保险缺一不可。这种意识不是看书能看出来的只有真正接过线、跳过闸的人才有体感。第三条是面向答辩的表达能力。这套系统直观、流程清晰你在讲解时可以用“进水-洗涤-排水-脱水”这条主线来组织老师顺着你的逻辑走不会被细节绕晕。相比之下如果你选了一个复杂的闭环控制题目反而可能在答辩时被追问到答不上来。1.3 设计任务书的正确打开方式开题阶段的任务书通常会给一堆要求比如“系统应具有标准、轻柔两种洗涤方式”“洗涤时间可调”“脱水时门盖打开必须停止”等等。拿到任务书不要急着写程序我建议你先做一件事把它翻译成一张控制要求表把“要求”变成“输入信号”和“输出动作”。我以一套比较典型的全自动洗衣机控制要求为例拆解给你看功能要求对应的输入信号对应的输出动作按下启动键开始工作启动按钮X0系统进入待机状态注水至设定水位自动停止高水位检测开关X2关断进水电磁阀Y0洗涤时电机正反转交替运行定时器控制正转接触器Y2、反转接触器Y3洗涤结束自动排水定时器控制打开排水电磁阀Y1排水完成后进入脱水低水位检测开关X3接通脱水接触器Y4脱水时打开门盖立即停止门盖开关X4切断脱水输出Y4运行结束声光提示定时器控制蜂鸣器Y5、指示灯Y6这样一列整个系统要哪些输入点、哪些输出点、中间要哪些定时器心里立刻就有数了。我见过不少同学拿到题目以后直接打开编程软件开始画触点画到一半发现漏了脱水时门开关联锁又回头改反复折腾。先做需求拆解这个动作能帮你省下大量返工时间。2. 硬件选型和I/O分配把控制方案落实到具体器件2.1 PLC选型别在这一步纠结太久选PLC型号主要看三个维度I/O点数、输出类型、编程软件熟悉程度。从点数上估算输入有启动、停止、高水位、低水位、门开关如果再加一个手动/自动选择开关最多也就6个输入输出有进水阀、排水阀、正转接触器、反转接触器、脱水接触器、蜂鸣器、指示灯最多也就7个输出。这样算下来14个点以内所以选一台16点左右的PLC完全够用。多出来的点可以留作备用以后想扩展触摸屏、变频器通信也方便。从输出类型上看洗衣机控制的执行机构是电磁阀和接触器线圈动作频率低、对响应速度不敏感所以选继电器输出型最合适。继电器输出型的优点是可以直接驱动AC220V的小负载接线简单而且每个点的通断状态肉眼就能看出来调试时非常方便。晶体管输出虽然响应快但一般只能接DC24V负载想驱动交流接触器还得加中间继电器徒增成本。型号方面学校实验室用三菱FX系列比较多比如FX3U-16MR/ES-A自带16点、继电器输出价格也适中。西门子S7-200 SMART的SR20也是常见的选项。如果你实验室只有国产PLC比如汇川县川、信捷也完全可以手里有什么就用什么关键是编程思路通用。2.2 I/O分配表每个地址背后都有明确理由我以三菱FX3U为例给出一套完整的I/O分配方案。这套分配方案可以原样照抄到你自己项目里只要你的输入输出点数类似。地址信号名称元件说明X0启动按钮SB1常开按下启动洗涤流程X1停止按钮SB2常开按下停止当前流程X2高水位开关浮球液位开关SQ1水位到达时闭合X3低水位开关浮球液位开关SQ2排水到低水位时断开X4门盖开关行程开关SQ3常开门盖关闭时闭合Y0进水电磁阀电磁阀YV1高电平打开进水Y1排水电磁阀电磁阀YV2高电平排水Y2洗涤正转接触器KM1驱动电机正转Y3洗涤反转接触器KM2驱动电机反转Y4脱水输出接触器KM3电机高速旋转脱水Y5蜂鸣器HA运行结束提示Y6运行指示灯HL指示系统正在运行这里有几个细节值得说一下。高水位和低水位我用的是两个独立的浮球开关而不是一个模拟量液位变送器。有些同学会问为什么不选模拟量模块量水位精度不是更高吗毕业设计这个场景里洗涤控制只需要知道“水满了没有”“水排完了没有”两个节点开关量足够成本低得多编程也简单。工业现场也一样能用开关量解决的问题就不要用模拟量这是做控制方案的常识。门盖开关X4这里用的是常开触点门盖关上时触点闭合X4为ON。为什么不用常闭触点从安全角度考虑常闭触点串联在控制回路里是“断线检测”的思路但在PLC输入电路里你没法直接用它切断接触器主回路还是得靠程序逻辑。所以这里用常开、由程序判断门盖状态是更清晰的做法关键脱水和高速旋转阶段必须把X4串进允许条件里。2.3 执行机构的接线最容易烧毁输出点的一步很多同学把PLC选好了、I/O表也画好了结果一接硬件就把输出点烧了。原因通常是直接把AC220V的电磁阀接到了PLC输出端子上。你要搞清楚继电器输出型PLC的触点虽然有换流能力但触点容量一般只有2A而AC220V电磁阀的启动冲击电流可能超标频繁通断很容易让触点拉弧烧蚀还有感性负载通断时的反向电动势问题。正确的做法是输出点只驱动中间继电器再由中间继电器的触点去控制AC220V的负载线圈。中间继电器选MY2NJ这种DC24V线圈的一头接PLC输出点一头接24V电源它的触点容量足以驱动电磁阀和接触器。这样做还有一个额外的好处万一负载短路烧坏了中间继电器换一个只要几块钱而不是拆PLC送修。洗涤电机这一块我用的是单相电容运转电机加两个接触器来实现正反转。具体接法是在两个接触器的主触点里把电机的主副绕组接线对调KM1闭合时电机正转KM2闭合时反转两个接触器绝对不能同时闭合否则就是相间短路。关于互锁的细节我在第4部分单独展开。3. 核心梯形图状态机设计把流程变成程序的关键思路3.1 状态划分先把辅助继电器当作你的“流程图节点”我前面提到做顺序控制不要直接盯着输出线圈写梯形图而是先把流程拆成状态节点。以一套单次洗涤流程为例我把状态码定义为状态辅助继电器状态含义转入条件M10待机系统上电初始M11进水按下启动X0M12洗涤正转高水位到X2M13暂停正转计时到15sM14洗涤反转暂停计时到3sM15暂停反转计时到15sM16排水正反转循环完成3次M17脱水低水位到X3M18结束提示脱水计时到20s为什么要把状态单独拆出来因为这样每个状态的转移条件一目了然。调试时如果流程卡住了你用编程软件的监控功能看M10到M18哪个是ON马上就知道卡在哪一步不用在几十行梯形图里瞎找。标准洗的完整流程比上面表里要稍微复杂一点因为洗涤结束以后往往还有一到两次漂洗和脱水也就是“进水→洗涤→排水→脱水”这个循环要重复两遍以上。在做状态转移图的时候你可以用计数器C0来记录洗涤循环次数到次数后跳转到漂洗流程或者直接在状态序列里复制一组状态节点。我建议第一次做用复制状态节点的方式虽然程序长一点但直观、不容易乱。3.2 用置位复位指令实现状态锁存状态之间切换我推荐用SET/RST指令而不是传统的自保持触点回路。原因有两个一是程序的阅读性好每个状态的置位和复位条件写得很清楚二是调试的时候你可以在线强制置位某个状态跳过错综复杂的条件单独测试某段逻辑这在用触点自保持的老式写法里非常痛苦。典型的梯形图写法是这样的以状态M11进水为例// 进入进水状态的条件启动命令有效且系统处于待机 LD X0 OR M11 ANI M10 SET M11 RST M10 // 进水状态下的输出 LD M11 OUT Y0这段逻辑看起来简单但有一个地方要特别注意退出当前状态的复位逻辑必须放在进入条件的后面并且要保证每个扫描周期内只有一个状态位为ON。如果你只是单纯地SET新状态、RST旧状态理论上没问题但实际操作中因为有输入信号抖动、定时器触点竞争等情况偶尔会出现两个状态位同时为ON的瞬间。为了防止这种问题最稳妥的办法是每个状态的转移都用“先SET新状态、再RST旧状态”的顺序并且把当前状态的输出互锁条件加上。状态转移条件中使用定时器时建议把定时器线圈和对应的定时器触点做成分离结构。比如洗涤正转计时15秒LD M12 OUT T0 K150 LD T0 SET M13 RST M12T0是100ms单位的定时器K150就是15秒。这里要特别提醒一下三菱定时器的单位T0到T199是100ms单位T200到T245是10ms单位T246到T249是1ms单位。如果你错用了T200K150就变成了1.5秒整个洗涤节奏完全不对。这是新手最容易踩的坑没有之一。3.3 洗涤循环次数与排水、脱水阶段的衔接洗涤阶段必须循环正反转多次我用计数器C0来统计。计数器线圈由状态M13或M15的下降沿来驱动但三菱FX系列的计数器直接接线圈就可以了。一个简单的做法是每次M15反转结束的定时器到点就让C0加1C0的设定值设为3。等C0常开触点闭合就认为洗涤次数够了跳转到排水状态M16。LD M15 OUT C0 K3 LD C0 SET M16 RST M12 RST M14排水状态的判断条件要特别注意。排水阀打开以后什么时候算“水排完了”最稳妥的信号是低水位开关X3从ON变OFF说明水位已经低于低水位探点。但实际调试中发现X3信号在排水过程中会有抖动——水面波动、浮球卡顿都可能导致信号闪烁。我建议程序里不要直接用X3的实时状态判断排水完成而是在排水开始后延时一个基础时间比如10秒然后再检查X3是否已经断开两者同时满足才认为排水完成这样能有效避免误判。脱水阶段的启动条件除了排水完成以外还要加入门盖开关X4的检查。X4为ON才允许Y4输出一旦X4变为OFF立即切断脱水输出并停止计时等门盖重新关好后再继续。这是对人和对设备都至关重要的保护逻辑程序一定要写好答辩时老师也很喜欢从这个问题切入。4. 电机驱动与互锁保护毕业设计考核的高频得分点4.1 洗涤电机正反转的主电路与选型洗衣机洗涤电机的主电路最常见的是单相电容运转电机方案。这种电机有两个绕组一个主绕组、一个副绕组副绕组串联电容之后和主绕组并联。要改变旋转方向只需要将主副绕组的接线对调。为了实现自动换向我用两个交流接触器KM1和KM2它们的输出端分别按正序和反序接到电机程序控制KM1或KM2吸合。主电路里除了接触器还要有熔断器FU作短路保护、热继电器FR作过载保护。热继电器的整定电流按电机额定电流的1.1到1.2倍设置比如洗涤电机额定电流1.5A整定在1.7A左右比较合适。有些同学偷懒不加热继电器程序里也不做过载检测这在答辩时会被老师追问“如果电机卡住了怎么办”很难解释得过去。4.2 电气互锁与程序互锁的双保险正反转切换的互锁是整个系统安全性的核心。接触器KM1和KM2如果同时吸合主电路会发生严重的相间短路轻则跳闸烧保险重则损坏接触器和电机。所以这里必须同时做两道防线。第一道是电气互锁也叫硬件互锁。将KM1的常闭触点串联在KM2线圈回路里将KM2的常闭触点串联在KM1线圈回路里。这样即使PLC程序出了问题两个接触器同时收到吸合指令物理回路也不会让它们同时导通。第二道是程序互锁也叫软件互锁。梯形图中Y3的线圈回路串入Y2的常闭触点Y2的线圈回路串入Y3的常闭触点。写法是LD M12 ANI Y3 OUT Y2 LD M14 ANI Y2 OUT Y3两道防线缺一不可。我带过的项目里就出过这样的问题学生只写了程序互锁结果实验时接触器发生触点熔焊一个接触器断不开程序另一路又发出了吸合指令瞬间短路火花都出来了。从那以后我一直强调凡是涉及正反转、星三角这类会短路的切换电气互锁是底线。4.3 脱水阶段的安全逻辑与优先级脱水的特点有两个一是电机转速高二是必须在水排干之后进行。所以脱水阶段的保护逻辑比洗涤阶段更严格。我设计的逻辑是门盖开关X4必须为ON排水状态已经确认完成且洗涤状态输出全部复位三者同时满足才允许Y4接通。还有一点脱水时如果发生异常比如门盖被打开不但要切断Y4还应该让系统进入一个“暂停待恢复”状态而不是直接回到主流程开头。这样重新关好门盖后系统还能接着脱水用户不用从头再洗一遍。这个“断点恢复”的逻辑虽然简单但写起来要有条理先把Y4断开再去检查门盖状态确认恢复后重新启动脱水计时。除了逻辑方面的安全硬件上也建议给接触器KM3线圈并联一个阻容吸收器RC吸收用来抑制线圈断电时的反向电动势。这个细节很多教材不写但在实验室里非常实用不加的话PLC可能会因为干扰被频繁重启我就吃过这个亏。5. 调试实战从静态检查到完整流程运行5.1 上电前的静态检查接线核对和绝缘测试不管你的程序写得多漂亮接线出了问题一切归零。上电前务必用万用表的通断档和电压档做一轮彻底检查。首先核对PLC的供电端子和COM端子确认输入侧24V电源的极性没有接反然后挨个核对输入元件到输入端子的接线特别是浮球开关这种有两个引出线的要确认常开常闭接对输出侧重点检查中间继电器的线圈和触点分配防止把Y0和Y1接错设备。绝缘和耐压方面主电路和控制电路之间要摇一次绝缘电阻确保没有绝缘破损。这一项在实验室里容易被忽略但真出问题就是大问题。上电后不要着急启动程序先把PLC切到STOP模式在编程软件里强制置位Y0、Y1、Y2等输出点逐个观察对应的中间继电器和接触器是否动作。这样能在不运行程序的情况下验证所有输出回路确保每个回路都通畅。这一步能帮你把“接线问题”和“程序问题”分割开来后面调试会快很多。5.2 程序调试顺序分阶段验证每个状态节点程序调试不要一上来就整机跑全流程一定按阶段来。我的习惯是第一轮把PLC切到运行状态但输出端先不接负载直接在软件里监控M10到M18的亮灭用手动触发输入信号来模拟操作。比如我把X2高水位强制为ON看系统是否从M11跳到M12定时器T0到点后是否进入M13。这一轮的目标是验证状态转移逻辑是否正确时不常会出现定时器到点了状态却没跳的情况原因多半是复位顺序不对或者辅助继电器被另外的线圈重复驱动监控画面上一眼就能看出来。第二轮才把负载接上用真实的水位信号跑流程。这个阶段最容易出现的问题是传感器信号与实际水位不同步。我调试时发现高水位浮球开关安装位置偏高水都溢出来了信号还没闭合调整浮球位置后又把低水位开关装得太低排水排了很久X3还没断开。这些问题都属于安装位置引起的逻辑偏差需要反复调整和确认。5.3 干扰与误动作实验室里最常见的隐形杀手实验室环境里接触器频繁吸合会产生电磁干扰干扰信号可能通过电源线或输入线窜进PLC。最明显的现象就是某个输入点的指示灯莫名其妙闪烁或者状态机毫无征兆地跳变。解决干扰问题有几个实用手段按性价比排序第一给输入端子附近的DC24V电源并一个电解电容通常选100μF/50V用来吸收电压纹波第二把输入信号线用屏蔽双绞线连接屏蔽层单端接地第三在接触器线圈两端并联RC吸收器第四如果干扰依然严重给PLC电源加一个滤波器。这些措施不需要全部做通常做前两个就能解决实验室里95%的问题。调试时还有个小技巧在程序的每个状态转移条件里都加一个10ms左右的延时确认也就是信号来了先确认100ms再跳转用来滤除输入抖动。这个做法在工业现场非常普遍放在洗衣机控制里同样适用。6. 万字报告的结构和答辩准备6.1 报告大纲与章节篇幅分配毕设报告要求一万字左右这个字数看着多其实按合理的框架分下去并不难凑。关键是要有实质内容不要堆废话。我建议的章节和篇幅分配如下章节内容重点篇幅摘要与绪论选题背景、国内外现状、设计任务1200字系统总体方案方案比选、总体结构框图、工作流程硬件设计选型参数、主电路、控制电路、I/O接线图3500字软件设计状态转移图、梯形图、指令表3000字系统调试与分析调试方法、问题现象及处理、运行结果1500字总结与展望收获、不足、改进方向800字写绪论的时候不少同学容易走极端要么抄一段“洗衣机的发展历史”要么大谈物联网智能家居。其实绪论的核心是回答“为什么要用PLC做洗衣机控制”和“整个方案的思路来源”。我建议从洗衣机控制的三种方案对比入手——继电器控制、单片机控制、PLC控制分析各自优缺点最后得出PLC方案在可靠性、维护、教学演示方面的优势这个逻辑既有深度又容易写。6.2 图表规范图纸质量决定老师的第一印象优秀的报告靠图和表说话。电气原理图建议用CAD软件绘制包含主电路图和控制电路图元件代号要规范比如接触器标KM1、KM2熔断器标FU1热继电器标FR1。梯形图不要手画直接从编程软件导出截图再配上标注说明。状态转移图SFC是报告中很重要的图它比梯形图更直观地展示你的控制思路。画的时候把每个状态框内标注对应的辅助继电器编号状态之间的转移线上标注转移条件比如“X2ON”“T0ON”这样老师扫一眼就知道你的逻辑结构。格式规范上图的编号、图名、居中、引用位置都要统一这是最基本的学术规范但是每年都有学生在这里丢分。6.3 答辩高频问题与应答思路答辩环节要提前准备几个老师必问的问题我能想到的高频问题和对策如下为什么选用这个型号的PLC从I/O点数、输出类型、实验室条件、成本四个角度说明切忌只答“实验室有”。正反转是如何实现的讲清楚接触器切换主副绕组、电气互锁和程序互锁的双保险。水位为什么用开关量不用模拟量因为只需判断高低两个节点开关量成本低、逻辑简单符合控制需求。脱水时如何保证安全门盖开关信号串入允许条件门盖打开立即切断脱水输出并进入暂停状态。定时器精度够不够洗涤和脱水对时间精度要求不高100ms定时器足够如果要对时间精度要求高的场合会考虑定时中断或者专用定时模块。如果运行中电机过载会怎样热继电器动作切断主电路程序中也可以串入热继电器常闭触点来形成故障指示。回答问题时注意一个原则不夸大、不编造、不狡辩。你做的系统是什么水平老师一眼就能看出来。老老实实讲清楚思路、原理、调试过程中遇到的问题反而加分。写在最后的一点经验如果让我给正在做这个题目的同学一句建议我想说这个项目真正难的不是写梯形图而是把状态转移逻辑想清楚。我见过太多同学卡壳的场景都是因为直接动手写程序写了一半发现状态冲突或者流程漏了环节。你只要花一个小时把状态转移表画出来后面的编程就像填空一样简单。这个习惯在你以后做任何顺序控制项目——不管是传送带分拣、立体车库还是物料配料——都会让你受益。做完洗衣机之后你会发现自己再看那些所谓的“复杂控制系统”很多本质上都是状态机的不同排列组合罢了。
返回列表