
做了几年非标自动化项目我印象最深的一次方案讨论就是帮人评估一台洗车装置的控制器选型。机械骨架、水路管路都搭得有模有样偏偏控制柜里堆了一堆中间继电器和时间继电器一上电就出现“该动作的不动作、不该动作的乱动作”。后来整个控制逻辑用PLC重写满打满算三天就把时序理顺了。基于PLC的汽车自动清洗装置设计这个题目听起来像毕业设计或课程设计但实际上它就是一个非常典型的工业现场小项目输入输出点数适中控制流程有明确的先后顺序又涉及电机、水泵、电磁阀、传感器这些最常见的执行件和检测件。把这一套吃透后面再做仓储分拣线、小型包装机、简易焊接工装思路都是通的。这篇文章我按自己实际做项目的习惯来写从方案选型、工艺拆解、I/O分配、程序骨架到现场调试尽量把每一步的“为什么”讲清楚适合自动化专业的学生做设计参考也适合小型洗车设备想从继电器控制升级成PLC控制的工程师。1. 方案选型洗车控制为什么绕不开PLC1.1 继电器柜与单片机方案差在哪先说结论这个项目用继电器控制能做用单片机也能做但都不如PLC做得舒服。继电器控制适合点数特别少的固定逻辑比如就三五个动作互锁接几个中间继电器加两个时间继电器就搞定。一旦动作达到十几步、传感器有十几个继电器柜的接线复杂度会直线上升。想改一个延时时间得拿螺丝刀去拧时间继电器旋钮想改动作顺序就得重新接线调试现场经常是一边查线一边骂人。继电器触点还有寿命问题频繁动作的情况下触点氧化、接触不良只是时间问题。单片机方案则是另一个极端。很多学生朋友觉得单片机便宜、灵活画个板子、写段代码就能控制。但洗车现场水雾大、电机启停频繁、接触器动作会产生很强的电磁干扰单片机系统如果没有成熟的电源隔离、光耦隔离、硬件滤波和看门狗电路很容易出现程序跑飞、I/O误动作。做产品打样可以做一套要在现场长期运行的设备开发周期和可靠性压力都很大。我在某些实训项目里见过学生用单片机控制小水泵模型实验室里一切正常搬到户外一接大电机就死机原因就是电源纹波和干扰没处理好。PLC方案的优势不在硬件成本而在工程效率。梯形图在线监控可以一遍一遍地看程序跑到哪一步、哪个位是1哪个位是0传感器信号不对当场就能看到输入指示灯的状态。维修电工基本都会梯形图后期维护不用依赖当初写程序的工程师。下面这张表是我选型时常做的对比项继电器控制单片机控制PLC控制逻辑修改成本改线低效改代码需重新烧录改程序在线下装抗干扰能力一般需大量外围设计强工业级设计调试手段万用表仿真器/串口调试在线监控程序可维护性差较差好电工可上手适用场景点数少于10的固定逻辑产品量产硬件固定现场型非标设备1.2 洗车现场的“恶劣环境”是选型的第一要素选PLC最直接的理由其实是环境。洗车设备长期在潮湿、水雾、泡沫飞溅的环境里运行电机启停会让电网电压波动接触器吸合释放会产生火花和高频干扰。PLC的输入端做了光电隔离电源模块也有较好的滤波和稳压能力CPU模块本身按工业环境设计防护等级和宽温范围都高于一般消费级控制板。有人会说PLC比单片机贵那么多值吗我的看法是控制器在整个设备成本里占比很小后期调试和维护的人工成本才是大头。一套设备如果三天两头出故障一个技师蹲在现场查两天这个工时费早就超过PLC本身的差价了。基于PLC的汽车自动清洗装置设计本质上是把项目的风险控制在源头。2. 工艺段拆解与执行部件选型2.1 从车辆进来到开走的完整动作链自动洗车装置的工艺动作并不复杂但顺序必须严谨。我在设计时先画了一张动作流程清单把整个过程拆成八个阶段车辆驶入前光电检测到车入口指示灯变绿或抬杆放行。车辆继续前行后光电检测到车已完全进入洗车工位触发停车提示。系统确认车辆到位后启动喷淋泵和喷淋电磁阀对车身进行预湿软化泥沙。预湿完成后启动侧刷电机和顶刷电机进入刷洗阶段。刷洗结束关闭刷洗电机打开冲洗泵和冲洗电磁阀用清水冲掉残余泡沫。冲洗结束关闭水泵启动风机进行风干。风干完成声光提示“洗车完成”允许出口抬杆或车辆驶离。车辆驶离后光电信号消失系统自动复位到待机状态。这一步的要点在于每个阶段都要有明确的进入条件和退出条件不能只靠时间乱跳必须依赖传感器信号和定时器的组合判断。比如预湿阶段光有定时器还不够如果水压不足或者水箱缺水预湿效果会很差所以必须把低液位信号纳入程序联锁。2.2 电机、泵、阀和传感器怎么配执行部件的选型要和工艺需求匹配。我的几项常用配置供参考喷淋泵选用不锈钢离心泵额定流量控制在120L/min左右扬程20米上下电机功率约4kW。不锈钢泵体是为了应对泡沫水的腐蚀普通铸铁泵用几个月叶轮就会被锈蚀破坏。冲洗泵可以和喷淋泵共用一台泵用电磁阀切换水路也可以单独配一台避免频繁切换导致阀芯磨损。我倾向于单独配一台可靠性更高。刷洗电机侧刷左右各一台减速电机功率约1.5kW输出转速控制在60到120r/min。转速太快容易甩泥飞溅太慢刷不干净。风干风机离心风机功率5.5kW左右出风口做成狭缝风刀结构比普通圆管出风的风速高吹水效果明显更好。电磁阀水路用常闭型先导式电磁阀断电断水防止意外断电后水流不停。口径根据泵流量选择一般DN40到DN50。挡杆气缸如果做全自动门禁联动用双作用气缸配合两位五通电磁阀进气、排气各一根管路可以控制抬杆和落杆。传感器方面我在这个项目里主要用了四类光电开关检测车辆位置磁性接近开关检测刷臂上下到位状态浮球液位开关检测水箱高/低液位热继电器的常闭触点作为电机过载信号进入PLC。车辆检测我用的是对射式光电开关因为漫反射式容易受车身颜色和车灯影响深色车吸光、浅色车反光同一套设备不同车会造成信号强弱差异极大。2.3 主电路和保护环节的设计要点主电路的设计原则是“一机一保护”。三相380V电源进来先经过总断路器然后分路给各个电机回路。每个电机支路都需要接触器加热继电器接触器控制电机启停热继电器做长期过载保护。喷淋泵、冲洗泵、侧刷电机、风机各自一路互不干扰。控制回路单独从总断路器的二次侧取电经过开关电源变成DC24V给PLC和传感器供电。PLC的输出公共端回路里我习惯再串一组急停按钮的常闭触点这样可以实现“软硬件双重保护”程序里读急停状态去做逻辑判断硬件上直接把输出电源切断即使程序因为异常没有反应负载也带不上电。选型时有个细节很容易被忽略就是离心泵的电机转向。水泵叶轮反转时流量会大幅下降甚至可能不出水但电机电流却不会明显异常。所以调试时第一次送电必须先点动水泵电机确认转向正确再正式运行。风机也一样反转时风量极小吹干效果会完全失效。3. I/O点表核算与PLC型号落地3.1 输入点传感器、按钮和模式开关的清单定I/O点表是整个设计中性价比最高的一步。把所需信号先列成表格再对照点表选PLC型号可以避免买回来发现点数不够、又要加扩展模块的尴尬。我这套系统的输入点大概是这样规划的地址元件说明X0急停按钮常闭触点断开为急停有效X1启动按钮自动流程启动X2停止按钮自动流程停止X3手动/自动选择开关模式切换X4前光电开关检测车辆进入X5后光电开关检测车辆到位X6刷洗电机1热继电器常闭正常闭合过载断开X7刷洗电机2热继电器常闭正常闭合过载断开X10喷淋泵热继电器常闭正常闭合过载断开X11风机热继电器常闭正常闭合过载断开X12水箱低液位开关液位低时为ONX13水箱高液位开关液位高时为ONX14刷臂上到位限位刷臂在上方X15刷臂下到位限位刷臂在洗车位置X16手动模式喷淋点动按钮调试用X17手动模式刷洗点动按钮调试用X20手动模式风机点动按钮调试用X21故障复位按钮急停后复位表里可以看到热继电器的常闭触点不是直接串到接触器线圈回路而是接到了PLC的输入端。这是很多初学者会想不通的地方既然热继电器本身就是保护元件直接串在接触器回路里不就行了吗当然可以把常闭触点串到接触器自锁回路里也是最常见的做法。但如果接到PLC输入程序就能实时知道电机过载状态从而做更多的逻辑处理比如过载时闪烁警示灯、记录故障次数、禁止自动流程继续运行。代价是程序里必须对这些输入多加一道判断。3.2 输出点接触器、电磁阀和指示信号的控制回路输出点我是这样安排的地址元件说明Y0喷淋泵接触器控制喷淋泵启停Y1冲洗泵接触器控制冲洗泵启停Y2侧刷电机1接触器左前刷Y3侧刷电机2接触器右后刷Y4风干风机接触器控制风机Y5喷淋电磁阀控制喷淋水路通断Y6冲洗电磁阀控制冲洗水路通断Y7运行指示灯设备运行指示Y10完成蜂鸣器洗车完成提示Y11车道入口指示灯车辆可驶入指示Y12挡杆气缸电磁阀选配门禁联动Y13水箱补水电磁阀自动补水控制把所有输入输出加起来输入约21点、输出约13点。常见的小型PLC主机有24点输入和16点输出的规格点数刚好够用还留了一点余量。如果以后想加泡沫功能、打蜡功能或水蜡喷洒需要多几个输出点一般可以通过扩展模块解决选型时主机最好不要卡得刚刚好。3.3 点数余量、输出类型和公共端接线的三个潜在问题选型时同一个坑踩三次就有教训了。第一个是点数余量至少留20%。洗车设备很容易追加功能比如加泡沫喷洒、加轮胎刷、加风干加热没有备用点就只能换机器。第二个是输出类型。继电器输出型和晶体管输出型的区别一定要搞清楚。继电器输出交直流通用带载能力强适合控制接触器和电磁阀但动作频率低晶体管输出响应快适合发脉冲控制变频器或伺服但只能带直流负载。我在这里选继电器输出因为负载全是接触器和交流电磁阀。如果规划中要用变频器调速来控制刷洗电机那么调速指令用的是模拟量输出或通信口和高速脉冲输出是两回事不要混为一谈。第三个是输入公共端和传感器类型的匹配。工业传感器分NPN型和PNP型NPN型输出低电平有效PNP型输出高电平有效。PNP传感器要接PLC的源型输入NPN传感器要接漏型输入搞反了信号永远不亮。洗车设备里NPN型传感器最常见所以我选PLC时特别关注输入是漏型还是源型必要时用公共端跳线切换接好后要逐点测试确认。4. 自动流程编程状态切换、互锁与定时计算4.1 手动调试模式保证安全调试的基础写程序时我坚持先写手动模式再写自动模式。手动模式用来单机调试选择开关拨到“手动”挡时按下喷淋按钮就开喷淋泵按下刷洗按钮就开刷洗电机每一步都是独立的点动控制。这样在设备没有完全调好之前维修人员可以单独试每个动作检查转向、声音、振动和管道连接是否正常不必担心整套流程自动跑起来之后某个环节有问题。手动模式同时也是一个天然的“安全检修模式”它避开了自动流程里的全部互锁和时序逻辑。维护时把模式拨到手动逐台设备试车即使某个传感器坏了也不会导致连锁动作。自动模式程序里必须加一条只有在手动/自动开关处于“自动”位置时才允许自动流程的步进状态被激活。4.2 自动模式的步进控制骨架自动流程本质上是“状态机”。我用辅助继电器表示每个状态位状态位一旦被激活就保持到满足退出条件然后被下一个状态位替代。比如用M10表示“空闲”、M11表示“预洗”、M12表示“刷洗”、M13表示“冲洗”、M14表示“风干”、M15表示“完成等待复位”。程序骨架示意如下// 空闲状态车辆到位且按下启动按钮进入预洗 LD M10 AND X1 AND X4 AND X5 SET M11 RST M10 // 预洗状态打开喷淋泵和喷淋电磁阀10秒后进入刷洗 LD M11 OUT Y0 OUT Y5 OUT T0 K100 LD T0 SET M12 RST M11 // 刷洗状态保持喷淋打开侧刷电机90秒后进入冲洗 LD M12 OUT Y0 OUT Y5 OUT Y2 OUT Y3 OUT T1 K900 LD T1 SET M13 RST M12各个品牌PLC的编程软件和指令格式有差异有的用步进指令有的用顺序控制指令但底层思路都一样用“当前状态只有一个是1”来保证流程不乱。在这里我再强调一下状态位不能出现两个同时为1否则设备会同时执行多个阶段动作。原因就是前面的状态没有及时复位。所以写步进程序时每一条“置位下一个状态”的指令旁边必须同时“复位当前状态”这两句要紧紧挨在一起养成习惯。4.3 互锁逻辑哪些地方必须“先断后合”互锁是洗车设备安全运行的核心我遇到过不少设备故障最后根因都是互锁条件写漏了。这里列出四条我在这个项目里必须写进程序的互锁规则车辆未到位自动流程不能启动刷洗动作。防止设备空转烧刷毛更防止人站在工位里被刷子扫到。喷淋泵没有运行不允许启动刷洗电机。干刷会严重磨损刷毛还会让大量泥沙在车身表面摩擦产生划痕。冲洗阶段必须关闭刷洗电机不能边刷边冲。顺序错开才能保证泡沫先被刷掉再用清水把残余冲干净。洗车过程中出口挡杆不允许提前抬起。车辆必须等风干结束后才能驶离否则带着泡沫水出门毫无意义而且出口区域可能存在安全隐患。除了程序里的软件互锁急停回路还要做硬件互锁。急停按钮的常闭触点串接在输出公共端按下急停后所有输出全部断电这比只靠程序判断可靠得多。程序里我还会做一层“急停记忆”急停触发时置位一个故障标志M100即使急停按钮复位程序也不允许自动恢复运行必须手动按复位按钮清除M100防止操作员误触复位后设备突然重新启动那一瞬间最容易出伤人事故。4.4 定时参数怎么定喷淋、刷洗、风干的时间估算定时参数的设置我一般先粗算再现场微调不拍脑袋。以一组我能估算的数据为例预喷淋时间喷淋泵流量约120L/min喷头按15只、单只流量6L/min计算总需求约90L/min。预喷淋10到15秒耗水约15到22L车身表面刚好均匀湿润又能软化泥沙。时间太短泥沙没泡透刷洗时容易拉伤漆面太长浪费水也拖延节拍。刷洗时间侧刷电机转速在80r/min上下车辆长度按5米估算刷子沿着车身走完一个来回配合车辆缓慢移动大约需要60到90秒。设置太短刷不干净太长除了费时还会增加漆面磨损。我先把初始值定为90秒调试时看清洗效果再逐步下调。冲洗时间冲洗泵流量120L/min打开30秒耗水约60L。加上预喷淋的耗水单台车总用水约80到90L。按水箱3立方容量算大约能连续洗30台左右低液位报警触发时再补水这个节奏对小型洗车场来说很合理。风干时间风机功率5.5kW风刀风速足够的情况下20到30秒能把车身大部分水珠吹走。单台风机能耗约0.04到0.05kWh折合几毛钱电费即使多吹10秒成本也有限。定时器编程时还要注意PLC定时器的单位。同一台PLC内部定时器可能有100ms单位和10ms单位之分。K100在100ms定时器里是10秒在10ms定时器里是1秒编码时最容易出错的就是这种单位换算。每次写完定时器我都要对着PLC手册确认一遍指令参数而不是凭印象写。5. 现场调试流水账与故障排查笔记5.1 上电前检查与三段式调试法设备组装完成后的调试我习惯按“三步走”流程走每步都有明确目的不跳步。第一步上电前检查。用万用表通断挡确认三相电源相间电压正常开关电源输出DC24V正常PLC输入公共端接线无误急停回路断开后PLC输出公共端确实没有电压。还要检查所有电机和传感器的接线端子是否牢固这个环节每多花十分钟后面带载调试就能少折腾一小时。第二步手动模式逐点试车。把模式开关拨到手动点动喷淋泵电机确认叶轮转向与指示箭头一致点动两侧刷洗电机确认方向正确点动风机确认出风方向正常。每台设备独立运转5到10分钟观察有无异响、过热、渗漏。同时逐个模拟传感器信号遮挡光电开关、压下限位开关、拨动液位浮球观察PLC输入指示灯对应变化。第三步空载跑自动流程。不加水、不通水只让设备按自动时序动作观察各状态位切换是否正常每个输出是否能在正确的时机吸合和释放。空载跑顺了再加水带载运行这时候重点看泵出口压力、电磁阀开关是否顺畅、风干效果如何。带载之后暴露的问题往往是机械和水路层面的而不是控制逻辑层面的。5.2 水雾引起的传感器误动作洗车机常见的传感器故障不是传感器坏了而是水雾干扰。漫反射式光电开关容易把细密水雾当成反射物明明工位上没有车PLC却收到“有车”信号自动流程莫名其妙启动。我在设计时直接把车辆检测改成了对射式光电开关发射端和接收端分居通道两侧中间有车体遮光时才触发受水雾影响小得多。如果现场条件不允许用对射式至少要在漫反射光电头上加装遮光罩并把安装位置调整到远离喷头直射的区域。还有一个更隐蔽的问题车辆驶入工位时前光电会被车身持续遮挡几十秒程序如果用“水平触发”来判断启动条件那么在车辆没有完全停稳之前启动按钮就算按下也没用。正确做法是用光电信号的上升沿触发一次启动判定而不是持续电平。很多PLC的编程软件里有前沿微分指令我在程序里对所有车辆检测信号都做了前沿处理确保“进入瞬间捕捉信号”而不是“整个遮挡过程持续信号”。5.3 电气与程序交叉故障的定位思路设备调试中最头疼的往往是程序看起来正确、继电器却不动作。我遇到过最典型的一次启动按钮按下后程序监控显示状态位已经进入预洗、PLC输出指示灯也亮了但喷淋泵接触器就是不吸合。我挨个排查最后发现是PLC输出端子和接触器线圈之间的中间继电器没有来得及释放——之前一个动作残留的电压让中间继电器一直处于半吸合状态。这类问题的排查顺序很重要我的习惯是先看PLC运行指示灯是否正常再看输入指示灯和程序状态位是否一致然后看输出指示灯是否点亮最后才量输出端子和接触器线圈电压。每判断一步就排除一个环节。这样定位能避免在程序里反复修改却找不到真正原因。对于感性负载的干扰问题我通常会在接触器线圈两端并联一个RC阻容吸收器或压敏电阻能明显抑制线圈断电时的反向电动势也能减少对PLC输出的干扰。5.4 热继电器与电机保护参数整定的实操对照热继电器的整定电流是要对着电机铭牌设置的。以380V电压下的1.5kW三相异步电机为例额定电流大约3.2A热继电器整定在3.5A左右比较合适。数值不是越接近越好整定在额定电流的1.0到1.1倍既能保护电机不过载又能防止电机正常启动瞬间误动作。刷洗电机是这套设备里最容易过载的电机。刷毛磨损、车身位置偏移、异物卡进刷臂都会导致负载增大。热继电器跳开后我倾向于把手动复位模式打开不让它自动恢复。自动复位在洗车现场特别危险电机过载跳停后如果操作员没有排查原因热继电器过一会儿又自动吸合电机突然启动很容易把正在检修的刷臂打到人。手动复位模式要求必须人工检查并按下复位按钮这个习惯要在一开始就养成。我最后再分享一个自己总结的小细节写程序时把每个步进状态的辅助继电器和关键定时器全部映射到触摸屏或者组态软件的监视画面上暂时没有触摸屏也提前预留好通信接口。在现场排查问题的时候最难受的不是逻辑写错而是不知道设备到底停在哪一步。有了状态监视画面哪怕是第一次接触这套设备的人也能照着状态位快速定位卡点。这个项目做下来我最大的体会是PLC方案的真正优势不在硬件成本而在调试效率——洗车设备最贵的成本就是技师蹲在柜子前拿万用表反复戳线路的那几个小时。