做了几年非标自动化项目,我印象最深的一次方案讨论,就是帮人评估一台洗车装置的控制器选型。机械骨架、水路管路都搭得有模有样,偏偏控制柜里堆了一堆中间继电器和时间继电器,一上电就出现“该动作的不动作、不该动作的乱动作”。后来整个控制逻辑用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方案的真正优势不在硬件成本,而在调试效率——洗车设备最贵的成本,就是技师蹲在柜子前拿万用表反复戳线路的那几个小时。
做了几年非标自动化项目,我印象最深的一次方案讨论,就是帮人评估一台洗车装置的控制器选型。机械骨架、水路管路都搭得有模有样,偏偏控制柜里堆了一堆中间继电器和时间继电器,一上电就出现“该动作的不动作、不该动作的乱动作”。后来整个控制逻辑用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方案的真正优势不在硬件成本,而在调试效率——洗车设备最贵的成本,就是技师蹲在柜子前拿万用表反复戳线路的那几个小时。