做电气这些年,接触过不少拿来练手的经典项目,要说哪个最值得推荐给刚入门PLC的朋友,我第一个提名工业洗衣机控制系统。它的工艺流程明确,输入输出点不多,却把开关量控制里最常见的自锁、互锁、定时器、计数器、顺序控制和联锁保护全部涵盖了,就算以后去做非标设备调试,这套逻辑照样能用得上。这篇文章就以西门子S7-200 PLC为控制核心,把工业洗衣机控制系统的整套设计思路完整梳理一遍,重点放在IO分配表、带解释的梯形图程序,以及主回路和控制回路的接线原理图上,帮你从选型到接线再到调试,一次走通全流程。适合正在做PLC课程设计或毕业设计的学生、刚入行的电气工程师,以及想把传统继电器控制柜升级成PLC控制的一线维修人员参考。
1.1 一次完整的洗涤流程到底分几步
工业洗衣机和家用滚筒洗衣机在原理上并没有本质区别,只是容量更大、工况更恶劣、设备连续运行时间长,对控制的可靠性要求也更高。我们常说这台机器是50公斤的工业洗衣机,意味着一次能洗50公斤布草,内部是卧式滚筒结构,通过内筒正反转带动衣物翻滚,配合水位和温度控制,完成洗涤和脱水过程。
一次完整的洗涤周期大致分为几个阶段:启动后先打开进水阀进水,水位到达高水位开关后停止进水,进入洗涤阶段,洗涤电机低速正转一段时间、停止一段时间、再反转一段时间,这样反复循环;洗涤时间到达后,打开排水阀排水,水位排到低水位以下后进入脱水阶段,此时电机切换为高速运行,把衣物中的水分甩干,同时排水阀保持打开;接下来进入漂洗阶段,再次进水、洗涤、排水、脱水,一般重复两到三遍;最后蜂鸣器提示洗涤完成,整个过程结束。
这几个阶段听起来简单,但用继电器控制柜来实现时,接线会非常复杂,时间继电器和中间继电器用一大堆,而且逻辑一旦确定就很难修改。换成PLC之后,所有逻辑都放在程序里,想调整正反转时间和漂洗次数,直接改定时器参数和计数器预设值就行,这也是这个项目最大的意义所在。
1.2 PLC需要采集哪些信号
先理清楚PLC要接什么,才能规划输入输出点。工业洗衣机的控制对象可以分成两类:开关量的输入信号和执行机构的输出信号。
输入信号这边,主要就是按钮和传感器。启动按钮和停止按钮各一个,这是最基本的操作器件。水位信号用两个浮球式液位开关,一个高水位开关装在水箱上部,一个低水位开关装在水箱下部,用来判断当前水位处于什么区间。门开关装在装衣门附近,用于检测门是否关好,在洗涤和脱水过程中必须保证门被锁住,否则不能启动。温度信号根据具体要求有两种做法:如果洗涤需要加热,可以用温控器直接把温度信号转换成开关量给PLC,也可以用PT100热电阻加温度变送器输出4-20mA,接模拟量模块;做课程设计想省事的话,用温控器开关量信号就够用。
输出信号这边,包括进水阀、排水阀、洗涤电机正转接触器、洗涤电机反转接触器、脱水接触器、加热接触器、门锁电磁铁和蜂鸣器,后面会把这些都规划成PLC的开关量输出点。
1.3 为什么用双速电机而不是变频器
这个问题几乎每次带学生做设计都会被问到。工业洗衣机的洗涤和脱水转速相差很大,洗涤一般只需要几十转,脱水要几百转,如果用一台普通电机,要么达不到脱水转速要求,要么洗涤时转速过高把衣物甩到一边。传统方案用的是双速电机,电机内部有两套绕组:低速绕组供洗涤使用,通过正反转接触器切换旋转方向;高速绕组供脱水使用,转速高,直接带动内筒高速旋转。
用变频器的方案当然也可以,一台变频器加一台普通电机,通过变频调速同时解决转速和方向问题,控制更平滑,启动冲击也小,但成本相对高,而且洗衣机的负载特性比较特殊,低速洗涤时电流波动大,对变频器的选型要求也高。对于课程设计、毕业设计,或者工厂里对成本敏感的批量设备,双速电机加接触器切换是最成熟可靠的方案,这也是接下来接线图和梯形图逻辑都围绕这个方案展开的原因。
2. IO分配与CPU选型:先定下每一个点位再动手
很多人拿到项目第一件事就是打开软件写程序,这是错误的做法。PLC项目的第一步永远是IO分配。IO分配相当于给每个按钮、传感器和执行机构安排一个固定的门牌号,程序里所有逻辑都基于这些地址运行,如果一开始不规划清楚,后面改起来非常痛苦。
2.1 输入信号分配表
我习惯把输入点从I0.0开始依次排列,按钮和关键保护信号放在最前面,因为CPU224和CPU226默认的输入起始地址都是I0.0。下面是我在这个项目里使用的输入分配表:
| 输入地址 | 信号名称 | 说明 |
|---|---|---|
| I0.0 | 启动按钮 | 常开,按下启动整个洗衣流程 |
| I0.1 | 停止按钮 | 常开,按下停止当前流程 |
| I0.2 | 高水位开关 | 水位到达高水位时闭合 |
| I0.3 | 低水位开关 | 水位高于低水位时闭合 |
| I0.4 | 门开关 | 装衣门关到位时闭合 |
| I0.5 | 温控器常开触点 | 温度低于设定值时闭合,需要加热 |
| I0.6 | 急停按钮 | 常闭,用于紧急情况下切断所有输出 |
| I1.0 | 手动/自动切换 | 拨到手动时闭合,用于单步调试 |
这里有几个细节要特别说明。停止按钮和急停按钮的处理方式不一样,停止按钮我用常开接法,在程序里通过常闭触点参与逻辑,这样如果按钮接线断了,PLC仍然认为停止按钮没有按下,设备能正常运行;而急停按钮必须用常闭接法,接进PLC的输入点,程序里直接用它的常开触点,这样一旦急停按钮被按下或者急停回路断线,PLC都能立刻检测到并停止设备,这叫失效安全原则。
低水位和高水位这两个开关,正常洗涤时水位总是介于两者之间,所以低水位开关闭合、高水位开关断开是最常见的状态。排水排到低水位以下后,低水位开关会断开,程序利用这个信号判断水已经排空,可以进入脱水阶段了。
2.2 输出信号分配表
输出点从Q0.0开始分配,因为主要是驱动接触器和阀门,功率不大,而且都是一般的开关量负载,所以全部规划到PLC自带的晶体管或继电器输出点上。输出分配表如下:
| 输出地址 | 信号名称 | 说明 |
|---|---|---|
| Q0.0 | 进水阀 | 电磁阀,得电进水 |
| Q0.1 | 排水阀 | 电磁阀,得电排水 |
| Q0.2 | 洗涤正转接触器 | 控制双速电机低速正转 |
| Q0.3 | 洗涤反转接触器 | 控制双速电机低速反转 |
| Q0.4 | 脱水接触器 | 控制双速电机高速绕组 |
| Q0.5 | 加热接触器 | 控制加热管 |
| Q0.6 | 门锁电磁铁 | 得电锁门,洗涤脱水过程中保持 |
| Q0.7 | 蜂鸣器 | 洗涤完成提醒 |
输出点规划时要重点考虑互锁问题。洗涤正转、洗涤反向和脱水这三个接触器,在物理上绝对不能同时得电,尤其是正转和反转,一旦同时吸合,相当于电机两相之间直接短路,轻则跳闸,重则烧毁接触器和电机。所以在程序设计阶段,必须有软件上的互锁;在接线设计阶段,接触器之间还要有硬件上的电气互锁,形成双重保险。
细心的朋友会发现,我没有给运行指示灯和故障指示灯单独分配输出点,因为在实际项目中可以用PLC输出点直接并联的指示灯,或者把蜂鸣器Q0.7替换成声光报警器,这类细节完全可以根据现场要求增减。
2.3 CPU选型与扩展模块的必要性
S7-200系列最常见的几款CPU型号是CPU221、CPU222、CPU224和CPU226。CPU221只有10个输入、6个输出,本项目需要8个输入点、8个输出点,CPU221点数不够。CPU222是8输入、6输出,输入够用但输出少两个。CPU224自带14个输入、10个输出,点数完全富余,价格也适中,是这个项目最合适的选择。
CPU226有24个输入、16个输出,对普通洗衣机控制来说绰绰有余,一般只有在需要多个扩展模块或者通信接口的场合才会选它。S7-200系列还有一点要注意,它支持的数字量扩展模块EM221、EM223可以按需增加输入输出点数,但如果CPU224的点数已经够用,就不建议为了扩展而扩展,能少一个模块就少一个故障点。
还要提一句,S7-200因为西门子产品线调整,目前新项目里更多使用S7-200 SMART系列替代,但S7-200的编程软件STEP 7 Micro/WIN和S7-200 SMART的STEP 7 Micro/WIN SMART在指令风格上非常接近,梯形图逻辑几乎可以平移到新平台,所以用S7-200做这个学习项目的价值一点都不会过时。
3. 梯形图程序核心环节设计,逐段解释给你听
这部分是整个项目的灵魂。我会把程序拆成几个核心环节,用语句表加文字解释的方式呈现,这样即使你手头没有STEP 7 Micro/WIN也能看懂逻辑,有了软件以后照着输入就能运行。
3.1 启动停止与运行标志位
程序第一个网络是启动停止自锁电路,这是所有PLC开关量控制的基础。逻辑用STL写出来就是下面这段:
网络1 运行标志 LD I0.0 O M0.0 AN I0.1 AN I0.6 = M0.0解释一下这段逻辑。I0.0是启动按钮,按下瞬间会闭合,但PLC扫描一次后它就断开了,如果想让整个流程持续运行,必须靠M0.0这个中间继电器的自保持功能维持。O M0.0就是自锁回路,当M0.0为1之后,即使I0.0恢复为0,M0.0仍然通过自身的常开触点保持接通。AN I0.1和AN I0.6分别是停止按钮和急停按钮的常闭触点,意味着只要这两个按钮任何一个动作,M0.0就被切断,整个洗衣机停止。
这段逻辑对应到梯形图里,左边母线出发,经过启动按钮的常开触点和停止按钮、急停按钮的常闭触点,再经过M0.0的线圈,启动按钮两端并联一个M0.0的常开触点,这是标准的启保停电路,凡是做过电机控制的人都不会陌生。
3.2 进水与排水水位互斥逻辑
进水阀和排水阀这两个执行机构必须严格互斥,不可能一边进水一边排水,那叫洗了个寂寞。在设计里,进水条件设置为:运行标志M0.0为1,高水位开关没到,排水阀没开,且门锁正常,就可以打开进水阀。当水位到达高水位开关后,高水位开关闭合,进水阀立刻关闭。
网络2 进水阀控制 LD M0.0 AN I0.2 AN Q0.1 AN C0 = Q0.0C0是漂洗计数器的常闭触点,后面会说,它的作用是判断整个洗涤周期是否已经完成,如果完成,进水阀不允许再次打开。AN Q0.1是程序上的互锁,默认排水状态下不允许进水,这个互锁虽然简单但非常重要。
排水阀的逻辑是:洗涤时间到达或者漂洗阶段需要排水时,由中间标志位M0.1控制,同时排水过程中不参与进水互锁。排水阀一旦打开,会一直保持到低水位开关断开,表示水位已经低于低水位开关,这时才允许关闭排水阀,进入脱水阶段。
3.3 洗涤正反转定时切换
洗涤阶段是洗衣机最核心的动作。当水位到达高水位并且洗涤时间没有结束,程序控制低速电机正转一段时间,然后停止一段时间,再反转一段时间,如此反复。用代码来表示主要就是三段定时器拼接起来的逻辑:
网络3 洗涤正转 LD M0.2 AN T37 = Q0.2 TON T37, +50 网络4 洗涤反转 LD M0.2 LD T37 A T38 O LD1 ALD = Q0.3 TON T38, +50这段逻辑要稍微绕一下。T37是正转定时器,预设值50表示定时50个0.1秒,也就是正转5秒。洗涤阶段运行标志M0.2为1时,正转接触器Q0.2得电,同时T37开始计时,5秒后T37的常闭触点断开,Q0.2断电,电机停止。同时T37的常开触点闭合,驱动反转接触器的启动条件之一成立,反转定时器T38开始计时,电机反转5秒。T38计时到之后,反转停止,整个周期重新开始。
这个交替逻辑的关键在于T37和T38只有一个能处于计时状态,它们互相置位和复位的关系构成了一个振荡电路,梯形图上看起来就是两个定时器互相咬合,这也是PLC控制里非常经典的闪烁电路。如果你的洗衣机要求正转15秒、停止3秒、反转15秒、停止3秒,只需要在正转和反转之间插入一个停止定时器,逻辑结构相同,多加一步而已。
3.4 加热控制与低水位保护
工业洗衣机如果要洗带有油污的布草,一般需要加温洗涤,温度到设定值后温控器断开,停止加热。加热控制逻辑比较简单:
网络5 加热控制 LD M0.2 A I0.5 A I0.3 = Q0.5I0.5是温控器的常开触点,温度低于设定值时闭合。关键是串联了I0.3低水位开关,要求水位必须高于低水位开关才能加热,这是为了保证加热管完全浸没在水中,否则干烧会把加热管烧毁。这个低水位联锁是加热控制里头等重要的一条保护逻辑,很多实际故障就是因为省略了这一步导致的。
3.5 门锁联锁与故障保护
门锁联锁是洗衣机的安全核心。整个洗涤和脱水过程中,装衣门必须保持锁住状态,一旦门被打开,程序必须立刻切断所有电机输出。门锁逻辑如下:
网络6 门锁控制 LD M0.0 AN I0.4 O M0.3 A I0.4 = M0.3 网络7 电机主控制 LD M0.0 A M0.3 AN I0.6 = M0.2M0.3是门锁吸合保持标志,当运行标志为1且门关到位时,门锁电磁铁得电;如果洗涤过程中门被异常打开,I0.4断开,M0.3被复位,门锁断开,同时M0.2这个电机运行总标志也因为M0.3断开而切断,正转、反转、脱水接触器全部失电,设备安全停下来。
这里要注意,门锁电磁铁Q0.6的输出我没有直接写在程序里,而是在M0.3为1时驱动Q0.6,你可以把这一行加在门锁逻辑之后,这样程序结构更清晰。
另外,急停信号I0.6接的是常闭触点,梯形图里用的是常开触点,它的作用是:正常情况下I0.6为1,常开触点闭合,允许运行;一旦急停按下,I0.6变为0,触点断开,M0.2失电,所有输出全部停止。这是最常用也最稳妥的急停处理方式。
3.6 脱水与漂洗循环计数
洗涤时间结束后,程序进入排水阶段,等低水位开关断开,确认水排空,才能启动脱水接触器。脱水典型时间是30秒到60秒,Q0.4得电后高速绕组工作,同时排水阀继续保持打开。脱水结束以后,漂洗计数器加1,然后程序回到进水阶段开始第二次循环。
网络8 脱水控制 LD M0.4 AN I0.3 TON T39, +300 A T39 = Q0.4 网络9 漂洗计数 LD T39 LD C0 CTU C0, +3脱水定时器T39预设300,即30秒。这里的I0.3是低水位开关,低水位开关断开意味着水已经排空,所以AN I0.3表示只有在水排空状态下才允许脱水。T39计时结束后Q0.4断开,脱水停止,同时计数器C0加一次。C0的预设值是3,表示整个洗涤周期包括三次漂洗,洗完之后C0常闭触点断开,进水阀不再打开,蜂鸣器鸣响,整个程序结束。
计数器CTU是增计数器,每检测到一次T39的上升沿就加1,当C0当前值到达3时,C0常开触点闭合,可以驱动一个完成标志M0.5,再通过M0.5驱动蜂鸣器Q0.7鸣响几秒钟。整个洗衣流程就算闭环了。
4. 接线图与原理图设计要点:怎么把程序落到实际柜子里
梯形图画得再好,如果接线图设计不合理,设备一样跑不起来。这部分讲主回路、控制回路以及安全细节,让你手里的图纸和程序能够完全对应上。
4.1 主回路:双速电机的接触器切换
主回路是强电部分,三相380V电源从总断路器QF接入,经过三组接触器后接到双速电机的两组绕组上。低速绕组由正转接触器KM1和反转接触器KM2控制,高速绕组由脱水接触器KM3控制。
具体接线关系是这样的:QF下端分出三条相线L1、L2、L3接到KM1和KM2的主触点进线端,KM1的出线端按正序接到电机低速绕组的U1、V1、W1;KM2的出线端把其中两相对调,也就是反序接到低速绕组,这样KM2吸合时电机就反向旋转。KM3的主触点则接到高速绕组的U2、V2、W2,得电后电机高速运行。
主回路里面有一个必须强制的设计:KM1和KM2的辅助常闭触点要互相串联进对方的线圈回路,这叫电气互锁。一旦KM1吸合,它的常闭触点断开,KM2线圈回路被切断;反之亦然。就算PLC程序出了Bug,同时输出了正转和反转信号,主回路里也会有一层物理上的保护,不让两个接触器同时吸合。
4.2 控制回路:PLC输出与中间继电器
PLC数字量输出有继电器型和晶体管型两种。S7-200 CPU224常见的是直流24V输入加晶体管输出,但晶体管输出不能直接驱动220V交流接触器线圈,需要中间继电器转换。为了照顾初学者,我建议选用继电器输出的CPU或者外接中间继电器,控制回路设计如下:
PLC的24V直流电源给输入回路使用,按钮和传感器的公共端接24V正极,信号线分别接到对应输入点。输出回路上,PLC输出点的公共端COM接220V电源的N线,每个输出点Q0.0到Q0.4分别接到对应中间继电器KA1到KA5的线圈一端,线圈另一端接L线,中间继电器的常开触点再去控制交流接触器KM1、KM2、KM3和电磁阀线圈。
为什么要多这一层中间继电器?因为PLC输出触点允许的额定电流一般只有2A左右,而接触器线圈在吸合瞬间会产生较大的冲击电流,长期直接驱动会缩短PLC输出触点寿命,甚至把触点焊死。中间继电器起的是电流放大和隔离作用,成本不高,却能让PLC输出点更耐用。这属于很实践性的经验,很多教材里不会专门讲。
接线时还要注意S7-200的输入公共端1M、2M的接法。S7-200 CPU224的输入分为两组,每组公共端可以接24V正极,对应的传感器使用PNP接法。如果你手上的开关是NPN型的,公共端就要接负极。这一点经常把人绕晕,最简单的办法是看传感器标签,棕色线接正极、蓝色线接负极、黑色线是信号,PLC公共端接正极就是PNP接法。
4.3 安全与抗干扰的细节
工业现场最怕干扰和漏电引起误动作。洗衣机的电机启停会产生很强的电磁干扰,PLC的电源不建议直接从接触器主回路旁边穿线走,最好单独从控制变压器取一组220V给PLC供电,控制柜里强弱电分槽走线,强电走一侧,弱电信号线走另一侧。
接触器的线圈两端要并联阻容吸收装置,PLC输出点驱动的中间继电器线圈两端可以反向并联一个续流二极管,吸收断电时的反向电动势。如果输出点是晶体管型,反向并联二极管是必须要加的,否则晶体管很容易被击穿;如果是继电器输出型,二极管的作用相对小一些,但加了总没坏处。
水位开关和门开关这类传感器信号线尽量用屏蔽线,屏蔽层单端接地。洗衣机现场湿度大,接线端子最好选用防锈处理的,柜门密封条要完好,防止水汽进入控制柜导致绝缘下降。
5. 程序下载、调试与常见故障排查
程序写完之后,能不能从电脑下载到PLC,很多时候比写程序本身还考验人。S7-200使用STEP 7 Micro/WIN软件通过PC/PPI编程电缆连接PLC,下载前需要设置通信参数。
5.1 通信设置与下载步骤
编程电缆一端是USB或COM口连接电脑,另一端是485接口连接PLC的通信口,通信口上有明显的Port标识。打开STEP 7 Micro/WIN软件后,在左侧浏览条区域找到设置PG/PC接口,选择PC/PPI cable,点击属性,把传输率设为9.6kbps,这个参数要和PLC实际通信口参数一致。
连接PLC时点击通信图标,双击刷新,软件会自动搜索在线设备。如果搜不到CPU,最常见的原因是通信口波特率不对,或者编程电缆驱动的端口选错了,打开设备管理器确认一下USB转串口占用的端口号,在PG/PC接口设置里手动指定那个COM口。
下载程序前先编译,确认没有语法错误,然后点击下载按钮,S7-200会弹出一个提示框让你确认是否下载运行,确认后程序就写入PLC了。如果PLC里有密码保护,下载会失败,需要用软件里的清除功能先清掉老程序,或者设置新的密码,后面再下载。
5.2 调试前的检查清单
程序下载进去不等于设备能正常跑,很多故障其实是电气接线问题。我调试这类控制柜有一套固定流程,比上来就通电试机省心得多。
第一步,断电状态用万用表蜂鸣档测量主回路各接触器主触点之间的通断,确认没有短路,特别是电机绕组三相对地绝缘情况,用绝缘表摇一摇更稳妥。第二步,合上控制电源,用万用表量PLC输入端子的电压,确认24V供电正常。第三步,把PLC拨到STOP模式,逐个短接输入信号,比如用一根导线把I0.0和24V正极短接,看输入指示灯亮不亮,用这个方法把每个输入点全部确认一遍。
输入点全部确认后,再用强制功能测试输出点。STEP 7 Micro/WIN里右键单击输出地址,选择强制,把Q0.0强制为1,看进水电磁阀是否动作,以此类推逐个测试。这一步千万要在空载或者断掉主回路电源的情况下做,防止设备突然动作造成危险。全部输入输出都确认无误后,才允许拨到RUN模式跑完整的洗衣流程。
5.3 常见故障与排查方法
做这个项目常见的坑,我踩过不少,列几个典型的供你参考。
第一,程序能下载,但PLC运行灯亮,设备完全没有反应。检查运行标志M0.0有没有置位,怎么查?用软件里的状态表监控I0.0、I0.1、I0.6和M0.0的值,如果I0.1显示为1,说明停止按钮回路有问题,或者把停止按钮接到了常闭触点导致程序认为一直在按下。第二,正反转切换正常,但电机方向始终不变,原因多半是主回路KM1和KM2的出线相序接反了,把反转变成了正转,调换KM2主触点的任意两相即可。
第三,水位到了高水位但进水阀一直不关,先看高水位开关本身是否动作,用输入指示灯确认I0.2是否变为1;再检查水位开关浮球有没有被衣物卡住,这在实际使用中经常发生。第四,脱水启动瞬间接触器嗡嗡响但不动作,可能是脱水接触器KM3线圈电压不足,也可能是排水没排净,低水位开关I0.3没有断开,程序里AN I0.3条件不满足导致脱水无法启动,这时候看监控里I0.3的状态就能快速判断。
第五种情况最隐蔽,所有逻辑看起来都对,但偶尔会出现正转接触器跳闸,去了现场发现KM1和KM2之间有飞弧烧黑痕迹,这是接触器容量选小了或者吸合保持电压不稳导致的,换大一规格的接触器才能根治。还有一台设备洗涤时噪音特别大,后来发现是高速绕组的脱水接触器辅助触点错接到了低速控制回路,导致低速运行时高速绕组有一相带电,属于接线图核对不仔细造成的,查图纸才发现问题。
每套设备装好后,我都习惯把IO分配表打印出来贴在控制柜门内侧,调试时看着分配表对信号,效率比对着图纸翻高很多。洗衣机跑完一个完整周期后,可以手动改一下定时器和计数器的参数,比如把正反转时间从5秒改成8秒,漂洗次数从3次改成2次,观察程序响应是否正确,这一步能加深对定时器和计数器工作原理的理解,比单纯看教程有效得多。
做过几个类似项目之后你会慢慢发现,工业洗衣机虽然只是个入门级项目,却把PLC控制里最核心的逻辑都串起来了:启保停电路建立运行状态,定时器实现时间控制,计数器控制循环次数,互锁保证执行机构安全,传感器反馈形成闭环。这当中每一个环节在以后做任何非标设备都会用到,把这套逻辑吃透,面对更复杂的控制系统时就不会发怵。