☰
西门子S7-200洗车机PLC梯形图顺序控制逻辑解析
2026/10/3 9:55:56 网站建设 项目流程

你掏出手机扫码付钱,车子缓缓往前挪,高压水柱“哗”地砸上车身,顶刷带着泡沫从车顶滑过去,全自动洗车房一气呵成。整个过程你可能在刷短视频,但旁边电控柜里那块屏幕泛黄的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, +20

S7-200里T37是100ms分辨率的定时器,PT预设值20就是20×100ms=2000ms。这里我想提醒你一个坑:很多人把定时器预设值当成毫秒填,15秒的延时填了15,实际运行只等1.5秒,洗车节奏全乱。100ms分辨率定时器,秒数乘以10才是预设值。S7-200的定时器编号还对应不同分辨率,T37到T63是100ms,T33到T36是10ms,T32和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变成ON,Q0.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.1=1,后面网络又写Q0.1=0,最终输出结果取决于扫描顺序,逻辑极容易乱。

我这套程序里,输出网络只有一个地方“看”输出点,其他位置的运算全部用辅助继电器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还保持ON,M1.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这些状态继电器的状态送到文本显示器上,按一下按钮就能看到“当前处于预冲洗”“当前处于泡沫喷洒”。设备出了故障,也不用拿电脑在现场蹲半天,直接看屏幕就知道是哪一步卡住了。据我所知,很多干设备维护的朋友看了这个设计之后都拍大腿——因为排查故障的时间,真的能从两小时缩短到两分钟。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询