
你掏出手机扫码付钱车子缓缓往前挪高压水柱“哗”地砸上车身顶刷带着泡沫从车顶滑过去全自动洗车房一气呵成。整个过程你可能在刷短视频但旁边电控柜里那块屏幕泛黄的PLC——我们行内习惯叫它PLC200也就是西门子S7-200——正按着一段梯形图程序把每一步安排得明明白白一秒都没乱过。干这行久了我发现很多人觉得洗车机控制逻辑很神秘其实拆开看就是标准的顺序控制“检测有车→传送带送车→预冲洗→泡沫→顶刷→侧刷→清水→风干→送车驶出”。这套东西用梯形图写核心无非是定时器、计数器、辅助继电器加几个互锁但里面藏着不少老工程师靠时间和事故换来的“小心机”。这篇文章就把整套自动洗车控制逻辑摊开讲从I/O分配讲到每一个关键网络再聊聊那些梯形图里你容易忽略却特别要命的细节希望对做设备维护、调试或者自己折腾PLC的朋友有点用。1. 先搞明白这套PLC到底在管什么1.1 洗车机的流程和PLC的“角色”自动洗车设备不管外形是龙门式还是隧道式归根到底都离不开一套典型的线性工艺流程。车开上输送线被地感线圈检测到然后传送带把车带到刷洗工位车辆停稳后高压水先冲一遍车身把大颗粒泥沙冲掉接着上泡沫让刷子有润滑和清洁剂避免干刷伤漆面然后顶刷下降带着泡沫旋转刷洗车顶和上半部分侧刷从左右两边伸出清理车侧再换清水冲干净残留泡沫最后强风把车身表面水分吹干。一套流程跑完传送带重新启动把车送出去。这套流程里PLC扮演什么角色它就是一个“总指挥”把各个传感器信号拿进来按照程序里写好的顺序决定什么时候开哪台电机、哪个电磁阀。你用普通继电器也能搭出这套逻辑但PLC的优势在于逻辑可以随时改、状态可以监控、报警可以记录而且几十个输入输出点集中在一个小柜子里维护起来舒服得多。1.2 PLC200的底子够不够用很多人一听S7-200就觉得是老古董停产很多年了。但现实是洗车房里存量最大的往往就是它皮实、便宜、梯形图生态成熟小规模顺序控制对CPU性能要求很低。你看这个场景输入输出点加起来可能三十来个程序量几千条指令扫描周期按毫秒算完全够用。S7-200 SMART作为后续替代型号指令和编程思路一脉相承看懂了老款新款上手也就是半天的事。这个应用里真正考验PLC的地方不是性能而是现场环境的可靠性水雾、泡沫、震动、温度变化。PLC本身只要IP等级够一般没事真正容易出问题的都是外围传感器和接线这个后面专门说。1.3 输入输出点的分配思路拿到一台洗车机第一步就是把I/O表列出来这决定了你后面梯形图怎么写。我按S7-200 CPU226的习惯给你列一张典型的自动洗车系统I/O分配表下面的讲解都围绕这个表展开。输入信号地址功能说明信号类型I0.0入口地感线圈检测有车进入常开I0.1到位光电开关车头到达刷洗工位常开I0.2顶刷上升到位限位常开I0.3顶刷下降到位限位常开I0.4左侧刷缩回到位限位常开I0.5左侧刷伸出到位限位常开I0.6右侧刷缩回到位限位常开I0.7右侧刷伸出到位限位常开I1.0急停按钮常闭接入常闭I1.1自动/手动选择开关旋钮I1.2高压水泵过载继电器触点常开I1.3风机过载继电器触点常开I1.4传送带电机过载继电器触点常开I1.5启动按钮常开I1.6停止按钮常开输出信号地址功能说明负载类型Q0.0传送带电机接触器接触器线圈Q0.1高压水泵接触器接触器线圈Q0.2泡沫泵接触器接触器线圈Q0.3顶刷电机接触器接触器线圈Q0.4左侧刷电机接触器接触器线圈Q0.5右侧刷电机接触器接触器线圈Q0.6顶刷下降电磁阀电磁阀线圈Q0.7左侧刷伸出电磁阀电磁阀线圈Q1.0右侧刷伸出电磁阀电磁阀线圈Q1.1风干风机接触器接触器线圈Q1.2清水冲洗电磁阀电磁阀线圈Q1.3绿色运行指示灯信号灯Q1.4红色故障指示灯信号灯Q1.5蜂鸣器报警器这张表建议收藏。做设备维护的人最怕的就是没有图纸没有点位表对着柜子一个一个猜。2. 梯形图核心逻辑拆解一辆车从进门到出门2.1 用“状态继电器”搭一座顺序控制的桥接下来是重点。自动洗车系统的梯形图我推荐用“状态机”的思路来写而不是一上来就把输出线圈直接挂在定时器后面。什么意思就是把整个流程划分为若干个“工步状态”用辅助继电器M1.0到M1.5代表每一个状态同一时间只允许一个状态为ON状态之间靠定时器、限位开关跳转。我见过不少新手写的梯形图一个线圈Q0.1被用了七八个条件并联驱动另外一处又串了条件去断开它。这种写法在简单设备上勉强能跑但一旦出现相互覆盖的逻辑条件排查起来非常痛苦。状态机的好处是思路清晰当前执行到哪一步看哪个M位亮着就知道了改流程也只是改状态跳转条件不用动输出网络。这也是我想说的第一个“小心机”——用置位和复位指令做状态切换而不是用线圈直接驱动。这相当于把一条流水线在程序里复制了一遍每一段有自己的“灯”。哪个环节卡住看灯就知道。2.2 入口检测与传送带的启动停止网络一入口检测。I0.0是地感线圈车辆压上后接线闭合LD I0.0 AN M0.1 // 故障标志急停或过载时为ON AN M2.0 // 完成标志 S M0.0, 1 // 置位“有车请求”只要没有故障、没有完成标志地感有信号就置位M0.0。这个M0.0就是“有车排队进入”的记忆信号。为什么要用置位因为地感线圈检测到车之后车继续往前走就离开了线圈信号会消失但我们需要记住“有一辆车进来了”这个事实直到洗完车才复位。这就是辅助继电器做记忆的基本用法。网络二传送带走带。车辆进来后需要被送到刷洗工位。传送带的输出条件有两个一个是“有车请求且还没到位”另一个是“洗完车送车出去”。我把这两个条件并联LD M0.0 AN I0.1 // 还没到位 LD M2.0 // 完成标志 AN T44 // 送车计时未结束 OLD // 并联两组条件 AN M0.1 // 故障总切断 Q0.0 // 传送带电机I0.1是到位光电车头挡住光路时动作。车没到位传送带一直走车到位I0.1为ON传送带停。这时候车辆正好停在刷洗工位上等待后面的工序。车辆停稳需要一个缓冲直接开始冲洗会晃动所以网络三用T37做2秒延时LD I0.1 TON T37, 20S7-200里T37是100ms分辨率的定时器PT预设值20就是20×100ms2000ms。这里我想提醒你一个坑很多人把定时器预设值当成毫秒填15秒的延时填了15实际运行只等1.5秒洗车节奏全乱。100ms分辨率定时器秒数乘以10才是预设值。S7-200的定时器编号还对应不同分辨率T37到T63是100msT33到T36是10msT32和T96是1ms选哪个要先看编号再算倍数。2.3 预冲洗和泡沫定时器触发状态递进等T37计时到2秒稳定时间结束进入预冲洗状态。我这里用状态继电器M1.0代表“预冲洗阶段”两个网络配合网络四置入预冲洗状态LD T37 AN T38 // 预冲洗未结束 S M1.0, 1网络五预冲洗结束转入泡沫LD T38 // 预冲洗15秒计时到 R M1.0, 1 S M1.1, 1 // 置位泡沫状态T38是预冲洗延时15秒。M1.0为ON期间Q0.1高压水泵得电水柱冲洗车身。当M1.1变成ONQ0.1断开Q0.2泡沫泵得电。顺序必然是“先停高压水、再开泡沫泵”否则泡沫刚喷到车上就被高压水冲走了这一步必须在程序里做成互斥逻辑上就是高压水泵输出串一个M1.1的常闭点泡沫泵输出串M1.0的常闭点。这是第二个“小心机”状态与状态之间天然互斥比你在两个输出之间加一堆互锁要可靠得多。泡沫喷洒10秒由T39计时。时间到后复位M1.1置位M1.2进入顶刷工位。到这里你大概能看出这个状态机的节奏了定时器负责“停留时长”置位复位负责“切换动作”限位开关负责“确认机械到位”三者各干各的活互不越权。2.4 顶刷和侧刷的动作细节顶刷是最容易出事故的工位。刷子要下降贴合车顶如果下降不到位就旋转刷洗可能刷不到下降过头了机械结构会硬压引擎盖轻则划伤漆面重则顶坏刷臂。所以顶刷的下降控制不能用纯定时器必须结合限位开关。M1.2是顶刷刷洗状态网络六控制顶刷下降电磁阀和顶刷电机LD M1.2 // 顶刷状态激活 O M1.3 // 侧刷状态激活顶刷在此期间上升复位 AN I0.2 // 顶刷升到上限位电机停止 AN M0.1 Q0.3 // 顶刷电机这里的逻辑是M1.2期间顶刷电机一直旋转M1.3期间只要没到上限位电机继续转让刷子在上升过程中再“扫”一遍车顶顺便用旋转把泡沫甩匀。我个人认为这种做法最实用的地方在于它不需要额外增加一个“上升状态”继电器只用上限位信号就能让顶刷复位。顶刷下降电磁阀Q0.6就简单得多只在M1.2状态得电。但真正要小心的地方在于刷洗计时不能只看M1.2的进入时间而应该看顶刷是否真正压到了车顶。实际设备上顶刷下降到位信号I0.3动作后才开始计时T40刷洗8秒LD I0.3 // 顶刷下降到位 TON T40, 80 // 刷洗8秒这么写有个好处遇到比较高的SUV或者面包车顶刷下降行程短刷洗时间从到位开始算不会少刷如果限位始终不动作T40不启动系统停在刷顶这一步不会带着错误往前跑。超时报警可以在后面加一个T90延时比如30秒内I0.3还没到位直接置位故障标志报警让操作员来处理。很多人忽略这个保护结果顶刷被车顶异物卡住了还在那硬转。侧刷的逻辑和顶刷对称。M1.3侧刷状态激活后左右侧刷的伸出电磁阀Q0.7、Q1.0同时得电侧刷电机Q0.4、Q0.5运转刷子向车身靠拢。左右两侧都伸出到位后I0.5和I0.7两个信号串联启动T41计时10秒LD I0.5 // 左侧刷伸出到位 AN I0.7 // 右侧刷伸出到位 TON T41, 100 // 刷洗10秒这里写AN我是故意的。侧刷分两侧如果其中一侧伸出不到位说明车辆可能停偏了或者刷子轨道卡滞这时候不应该继续按正常刷洗计时而应该停下来排查。这个“双侧都到位才算开始”的习惯我建议你以后写在所有需要多轴联动的设备里。2.5 清水冲洗、风干与放行侧刷结束后状态进入M1.4清水冲洗。这个阶段和预冲洗不一样的地方是预冲洗用高压水是为了打掉泥沙清水阶段要用干净的常压水把泡沫冲走所以Q1.2清水电磁阀得电同时高压水泵停止。如果你设备里只有一个水泵可以靠阀门切换如果配了专门的低压冲洗泵就把Q0.1替换成冲洗泵接触器。冲洗20秒后T42到状态切换到M1.5风干。风机启动30秒车身残留水分被强风吹掉。风干时间不宜太长太长了浪费时间太短了车开出去还在滴水客户心情会炸。30秒是我在多数场地试出来的折中值具体还要看你风机功率和场地空气流通情况。风干结束T43到这时置位M2.0完成标志先把所有刷洗状态全部复位然后传送带重新启动把车送出去。送车过程用T44计时15秒时间到后复位M0.0和M2.0整个系统回到待机状态等待下一辆车。这样处理后车辆离开的检测就不再依赖到位光电了避免了长车一直遮挡光电导致的逻辑卡死。这是第三个“小心机”送车不用位置传感器判断“走完”用定时器反而更省心。2.6 急停和故障处理是怎么嵌入顺序控制的最后再加一层安全网。M0.1是故障标志它的置位条件包括急停I1.0断开、高压水泵过载I1.2、风机过载I1.3、传送带过载I1.4。任何一路动作都置位M0.1。所有输出网络的末尾都串联了M0.1的常闭点故障发生时全部输出被切断设备立即停止。这里特别要强调急停的接法。我见过太多设备把急停按钮接成常开点程序里用常开条件去触发急停动作这是非常危险的。急停按钮必须用常闭触点接入PLC输入点正常状态下I1.0一直是ON程序里用I1.0的常开触点作为总使能。一旦急停被按下或者急停回路的电线断了I1.0变OFF总使能失效设备停机。这种“断线也安全”的设计原则叫失效安全做设备维护的人一定要理解急停保护的不只是按钮按下那一瞬还包括急停线缆被老鼠咬断的情况。3. 梯形图里的“小心机”老工程师不会明说的细节3.1 为什么要用辅助继电器而不是直接用输出线圈一开始接触梯形图的人最爱犯的毛病是把输出线圈当成“变量”到处用。Q0.1高压水泵需要满足条件A就驱动条件B时又要断开于是两个网络都去操作Q0.1。这会导致什么PLC扫描是从上到下执行的如果前面网络写Q0.11后面网络又写Q0.10最终输出结果取决于扫描顺序逻辑极容易乱。我这套程序里输出网络只有一个地方“看”输出点其他位置的运算全部用辅助继电器M位来记状态。你可以把M位理解成程序员用的“局部变量”输出点只是“接口”。需要开高压水泵时只有状态M1.0是条件其他状态不会直接触碰Q0.1。这个模式在S7-200的梯形图里虽然没法做到完全像高级语言那么整洁但“输出集中控制”的思想值得固定下来长期维护会轻松很多。3.2 互锁的作用防的不是程序是机械梯形图里常说的互锁最经典的就是电机正反转。但在洗车机这种多工位设备里互锁更多是为了防止机械结构互相干涉。举个例子顶刷下降和侧刷伸出如果同时发生左右侧刷会撞上顶刷的支架轻则卡死重则把刷臂掰弯。所以程序里必须在输出条件上加互锁。我在顶刷下降电磁阀Q0.6的输出网络里串了M1.3的常闭点在侧刷伸出电磁阀Q0.7、Q1.0的输出网络里串了M1.2的常闭点。这又是一个状态机的好处M1.2和M1.3天然不会同时置位互锁等于上了双保险。手动调试模式下互锁更不能少。你切到手动模式按一个按钮让顶刷下降同时另一个按钮又让侧刷伸出如果没有互锁设备一样会撞。手动程序里也同样加上互锁条件才能防止操作员误操作——这是拿惨痛教训换来的。3.3 上升沿下降沿的用法用错了就是“幽灵故障”梯形图里很多时候需要“在一个信号变化的那一瞬间做一件事”而不是“信号为ON期间一直做”。典型场景就是我前面复位状态机的时候经常需要在T38计时到的那一个扫描周期里同时复位M1.0和置位M1.1。如果你不用上升沿T38的ON状态会在每个扫描周期都去置位M1.1只要条件一直保持置位就会反复执行。虽然S/R置位指令在同一个状态重复置位没多大危害但如果你用线圈驱动M1.1那就会出问题T38计时到后Q0.2泡沫泵得电但下一个扫描周期如果T38还保持ONM1.1也一直得电看起来没毛病一旦中间某个逻辑导致了输出断开坑就来了。所以我在无特殊说明的情况下状态切换网络建议对定时器触点使用上升沿例如LD T38 EU // 上升沿指令只在一个扫描周期有效 R M1.0, 1 S M1.1, 1这样做的好处是状态的进入和退出只发生在一个瞬间后续扫描周期不再重复触发程序执行路径干净。3.4 手动模式怎么接才安全洗车设备不可能永远全自动运行调试、保养、故障处理都需要手动操作。常见做法是用I1.1旋钮切到“手动”再用一组按钮直接控制各台电机和电磁阀。但在梯形图里手动输出和自动输出不能简单“并联”在一起要通过中间继电器做隔离。具体思路是这样自动逻辑全部输出到M位最后通过“自动模式输出继电器”M3.1把状态传给Q点手动模式下的按钮信号不直接驱动Q点而是通过M3.2传到Q点。Q点的最终输出条件是两个模式结果的“或”。这种结构虽然多写几个网络但切换模式时不会出现状态残留。如果直接让手动按钮和自动状态驱动同一个Q点你切回自动的瞬间某些执行器可能会因为旧状态没复位而突然动作这是很吓人的。3.5 梯形图里加个计数器小事一桩但很实用我已经把计数器C0安排上了每完成一次洗车循环T43的上升沿给C0加1。C0的预设值可以做成“洗满十次免费送一次”的营销参数也可以用来记录设备累计运行次数方便做保养计划。计数器在梯形图里使用很简单LD T43 EU LD C0 CTU C0, 10预设值是10计满后C0线圈变为ON可以在画面上提示“设备已洗车10次请检查刷毛磨损”。这是一件非常小的事但对于门店运营来说特别有价值。维护人员总是凭感觉换刷子按计数提示换刷子就靠谱多了。4. 实操中遇到的常见问题与排查技巧4.1 泡沫和水雾导致的传感器误动作洗车房里的环境对传感器是非常不友好的。泡沫飞溅、高压水雾弥漫光电开关的镜头上一旦蒙上水膜就会产生折射让光路产生误判。最常见的情况是车刚到到位光电位置检测正常洗完车送出去之后光电一直停留在“被遮挡”状态因为镜子被泡沫糊住了结果下一辆车进来传送带不动作。我的经验处理办法有几招第一选对射式光电开关而不是漫反射式水雾对“挡住光线”这种工作模式更友好。第二给光电开关加装遮光罩或者让探头朝下倾斜安装避免泡沫直接滴在镜面上。第三也是最重要的接线时检查光电开关的灵敏度把检测距离调到比实际安装距离富余20%-30%就足够。有些新安装设备把灵敏度调太大了隔着水雾都误触发这种只能慢慢试。如果不方便天天擦探头可以考虑用超声波传感器或者地磁检测来代替光电。虽然贵一点但洗车房这种环境里稳定性高很多。4.2 刷洗不彻底或者刷毛压太紧刷洗效果取决于刷毛对车身的压力。压力太小泥污刷不干净压力太大刷毛磨損快而且容易划伤漆面。很多老旧设备靠限位开关判断刷子位置但不同车型的车身曲面不一样同样位置下有的车被压得很紧有的车只是轻轻碰到。这时候就要靠电机电流判断了。刷子电机碰到车身时阻力增大、电流升高我建议在刷洗输出网络里增加一个电流阈值判断当顶刷电机电流超过设定值确认已经贴合车身。这属于进阶玩法S7-200通过模拟量模块读取电流变送器信号在梯形图里做比较指令。如果设备没有模拟量模块就老老实实把限位调到合理位置然后每天营业前人工检查一下。实话说模拟量方案是更稳定也更省事的前提是你愿意在PLC里多写几十条指令。4.3 接地和布线引发的“幽灵故障”PLC程序看着逻辑完全正确但现场一运行就偶尔乱动作这类“幽灵故障”多半是干扰造成的。洗车房里到处都是电机、变频器、电磁阀这些设备启动和关断瞬间会产生很强的电磁干扰。我见过一个案例侧刷一启动传送带就跟着转一下后来排查发现传送带接触器的控制线缆和侧刷电机的动力线绑在了同一个线槽里侧刷电机启动的瞬间感应电动势直接串到了传送带接触器线圈上。所以布线的时候建议养成几个习惯第一24V信号线和220V动力线绝对不要走同一个线槽间隔距离至少20厘米。第二PLC的24V电源和给传感器供电的24V电源最好分开传感器电源出问题了不会拖垮PLC本身。第三屏蔽线的屏蔽层单端接地多数情况下在PLC柜这一端接地就行两端接地反而容易形成地环流。第四输出继电器线圈要并联续流二极管。电磁阀线圈是感性负载断电瞬间会产生反向电压如果不加续流二极管触点拉弧几次就会坏掉这也是设备用一段时间后输出点频繁报故障的常见原因。这些内容不能说每个都必须做到但做了调试时真的能省下大把时间。4.4 常见故障速查表现象可能原因排查方向有车进入但传送带不启动到位光电被泡沫遮挡/地感信号误触发检查I0.1、I0.0状态清洁光电探头传送带一直走不停到位光电损坏或断线I0.1一直为OFF在线监控I0.1短接输入测试顶刷下降后不刷洗I0.3下限位未到位/限位开关故障查看限位动作微调安装位置泡沫泵和高压水同时开状态继电器切换逻辑异常检查T38和M1.0/M1.1置位复位网络刷洗完侧刷不缩回侧刷缩回限位损坏/气缸卡滞在线监控I0.4/I0.6急停按下后设备还在动输出继电器触点粘连断电测试检查中间继电器触点屏幕显示故障但现场无异常过载继电器误动作/电压波动查看过载继电器整定值检查电源5. 一点经验和扩展想法我自己做这套逻辑的时候见过太多五花八门的洗车机程序了有的写得像毛线团一个输出点被十几个网络操作出了问题根本不敢动。用状态机思路写完之后整个系统像一辆按轨道行驶的小火车每一站都清楚卡在哪一站一看就知道。如果你也想自己写或者改造一套类似的系统我的建议是从小处开始先画流程图把每个工位画出来标清楚每个工位“怎么进、怎么出、卡了怎么办”然后再落到梯形图。顺序控制最忌讳边写边想脑子里的流程不清晰程序肯定乱。最后分享一个小技巧我习惯在程序里加一段“状态显示”的网络把M1.0到M1.5这些状态继电器的状态送到文本显示器上按一下按钮就能看到“当前处于预冲洗”“当前处于泡沫喷洒”。设备出了故障也不用拿电脑在现场蹲半天直接看屏幕就知道是哪一步卡住了。据我所知很多干设备维护的朋友看了这个设计之后都拍大腿——因为排查故障的时间真的能从两小时缩短到两分钟。