很多做水处理的同行跟我说,见过最多的控制系统就是“半自动”:手动开泵、手动开关阀、盯着液位去操作。碰上超纯水这种对水质和连续性要求比较高的系统,人一离开就容易出事——过滤器反洗不及时导致压差升高、RO膜结垢、产水电导率超标,最后整个系统停机,得不偿失。这个项目做的是一套基于三菱FX系列PLC加触摸屏的超纯水系统控制,核心就是“一键制超纯水、一键反洗、一键正洗、无人值守”,把原本琐碎的操作全部状态机化,交给PLC自动判断、自动执行,人在触摸屏上按一下就行。这套方案直接适用于中小型超纯水设备、实验室用水系统、电子清洗用水等场景,也是PLC和触摸屏组态入门到进阶的好案例,水处理设备集成商、电气工程师和自动化爱好者都可以参考。
1. 项目需求与控制逻辑拆解
1.1 超纯水工艺为什么要做自动化
超纯水并不是单纯用反渗透膜过滤一遍就能出来的,真正的工艺通常包含预处理、RO反渗透、脱气、EDI或混床抛光等多个环节。以常见的两级RO加EDI系统为例,原水进入原水箱后,经过多介质过滤器、活性炭过滤器、软化器,再泵入一级RO、二级RO,中间有pH调节,后面接EDI模块,最后产出超纯水产水,电阻率达到18MΩ·cm以上。这套工艺段长度大、阀门多、泵多,如果靠人去手动启停,每天光是开停机、切换阀门、记录水质就要花掉好几个小时,而且反渗透膜和前置过滤器对运行状态非常敏感,手动误操作一次,膜可能就废了。
所以控制系统的核心并不是“能启动泵”这么简单,而是要解决好三件事,第一是顺序,比如开RO高压泵之前必须保证前置供水压力足够、低压保护不触发;第二是时间,反洗、正洗都需要严格定时,时间短了洗不干净,时间长了浪费水;第三是异常处理,无人值守时遇到缺水、低压、漏水、电导率超标,要自动停机并且保留报警信息,不能自己傻跑。
这套项目用一键制水、一键反洗、一键正洗三个模式,把所有联锁和保护都封装到了PLC里。操作工不需要理解每一步的工艺,只需要在触摸屏上选择模式、按下启动,剩下的流程自己跑完。这也是现在工业自动化改造的趋势:把人从重复操作里解放出来,让控制逻辑承担更多责任。
1.2 一键操作背后的状态机设计
要真正做到无人值守,不能写一大坨杂乱无章的梯形图,而是要把系统看成若干个稳定状态,每个状态下只执行固定的输出动作,触发条件满足后再跳到下一个状态。这个思想就是状态机。我一般用三菱PLC的步进梯形图指令来搭,也可以用普通M继电器加互锁,但步进指令更直观,方便调试时监控当前在哪一步。
这套系统的核心状态可以划分为待机、制水、反洗、正洗、停机保护五个大类。待机状态下,所有泵停止,所有阀门处于默认位(常开或常闭按工艺定义),等待触摸屏指令。按下制水按钮后,系统进入制水启动流程,依次启动原水泵、预处理系统,压力稳定后启动增压泵,最后启动高压泵,产水阀打开,废水阀调节开度,直到产水电导率达标才进入稳定制水状态,并保持所有输出不变。反洗状态和正洗状态属于维护模式,通常由定时触发或者人工触发,进入反洗后要先关闭产水阀,打开反洗进水阀和反洗排水阀,然后启动反洗泵,按设定时间运行,结束后自动切到正洗状态,用正常水流方向冲洗,最后回到待机。
这里的关键在于,每个状态之间必须有明确的迁移条件,同时所有迁移条件都要做上升沿捕捉,不能电平触发,否则按钮按住不放就可能反复跳状态。另外状态外面需要包一层总安全条件,只要发生低压报警、液位低报警、紧急停止,无论当前在哪个状态,都要强制跳转到停机保护状态,等复位后才能回到待机。
1.3 无人值守的边界条件
无人值守并不是说设备永远不会出问题,而是出了问题要有正确的“第一反应”,比如原水箱液位低时,不能直接停高压泵了事,而是要先停RO高压泵,再停增压泵,有几十毫秒的延时,防止水锤冲击;电导率超标时,产水阀要关闭,把不合格水排到回收水箱而不是直接浪费掉。这些边界条件需要在设计阶段就明确,否则写程序的时候很容易漏。
我在做这个项目时,把无人值守的保护条件分成三个优先级。第一优先级是设备安全,包括急停、泵过载、膜壳高压保护,一旦触发必须立即停机;第二优先级是工艺安全,包括原水缺水、中间水箱液位低、产水罐满、加药系统故障,这些触发后执行顺序停机并报警;第三优先级是质量保护,包括产水电导率偏高、温度偏高,触发后切换到内部循环回流,等待水质恢复。三个优先级在程序里用不同M线圈表示,互不干扰,但是都具备最高跳转权。
2. 硬件选型与电气设计
2.1 PLC与触摸屏选型
三菱FX系列适合这种中小型水处理控制系统。具体型号我建议根据IO点数和通讯需求选。常规超纯水系统带3台泵、6-8个电磁阀、4-6个压力开关/液位开关、2路模拟量(电导率、流量),那么FX3U-48MT/ES(晶体管输出)就够用,输入输出点数大概30点左右,留20%的余量。如果系统更大,需要更多泵和阀门,可以考虑FX5U-64MT或者FX5U-80MT,FX5U自带以太网口,和触摸屏、上位机通讯更方便,程序容量也更大。
触摸屏方面,我常用的是7英寸或10英寸的触摸屏,国产主流品牌都能和三菱FX走串口或者以太网通讯。选型时注意分辨率最低800×480,另外要有配方功能,因为反洗时间、正洗时间、制水压力上下限这些参数要支持在线修改。三菱的GOT系列当然能配,不过成本高一些,如果不追求同品牌,用国产屏性价比更好,只要通讯协议选三菱FX系列即可。
这里还有个细节,PLC输出的形式会影响阀组接线。FX3U的晶体管输出只能接直流负载,电磁阀如果是AC220V,必须加中间继电器转接。很多新手在这地方踩坑,用继电器输出型PLC直接驱动220V电磁阀也可以,但触点寿命和通断频率不如晶体管加中间继电器的方案稳定。考虑到系统有频繁启停动作,我通常选晶体管输出的PLC,外部全部配中间继电器。
2.2 I/O分配与电气回路
做I/O分配表是电气设计的第一步。我拿一个典型配置举例:
| 输入点 | 说明 | 输出点 | 说明 |
|---|---|---|---|
| X0 | 原水箱低液位开关 | Y0 | 原水泵接触器 |
| X1 | 中间水箱液位开关 | Y1 | 增压泵接触器 |
| X2 | 产水罐高液位开关 | Y2 | 高压泵接触器 |
| X3 | 高压泵低压开关 | Y3 | 反洗泵接触器 |
| X4 | RO高压开关 | Y4 | 原水进水电磁阀 |
| X5 | 急停按钮 | Y5 | 预处理反洗电磁阀 |
| X6 | 手动/自动选择开关 | Y6 | 产水电磁阀 |
| X7 | 制水启动按钮 | Y7 | 不合格水回流电磁阀 |
| X8 | 反洗启动按钮 | Y8 | 冲洗排水电磁阀 |
| X9 | 正洗启动按钮 | Y9 | 加药泵 |
| XA | 漏水传感器 | Y10 | 报警指示灯 |
| XB | 电导率超标信号(模拟量判断) | Y11 | 电铃/蜂鸣器 |
电气回路需要注意几点:所有泵的接触器二次回路必须加热继电器的常闭触点,也就是当热继电器动作后,即使PLC输出了启动信号,接触器也不会吸合,保护电机。这个设计能避免PLC程序扫描不及时导致热保护失效。急停按钮要用常闭触点接入PLC输入,同时用硬件串进泵控制回路,急停按下时直接切断接触器线圈电源,不依赖PLC扫描周期,这才是真急停。
模拟量方面,电导率变送器输出4-20mA信号,接到PLC的模拟量模块,比如FX3U-4AD。地线要用单独接地,不能和电机、泵的电源共地,否则变频器或电机干扰会让采样值乱跳。流量计输出脉冲信号的话接高速计数器,如果只是做累积和显示,用普通模拟量也可以。
2.3 布线施工中的细节
这套系统最容易出现的故障是信号干扰和端子松动。我总结了几条实操经验。
第一,模拟量信号线必须用屏蔽双绞线,屏蔽层在PLC侧单端接地,不要两头接地,因为两头接地会形成地环流,干扰更严重。第二,动力线(泵、电磁阀)和信号线要分两个线槽走,间距大于20cm,交叉时走90度,不能平行绑扎在一起。第三,电磁阀线圈两端要并联阻容吸收或压敏电阻,尤其AC220V电磁阀断开瞬间会产生很高的反电动势,会干扰PLC甚至打坏输出点。第四,所有端子螺丝要紧固并且做标记,调试时如果出现时好时坏的现象,90%是端子松动或者插头氧化。
3. PLC程序设计、触摸屏组态与无人值守实现
3.1 程序框架:用STL步进指令还是M状态继电器
三菱FX系列有两种主流写法,一种是用STL步进指令,另一种是用M继电器配合ZRST区间复位模拟状态机。STL指令的优势是直观、程序流程清晰,适合这种顺序控制明确的工况。它的缺点是状态切换时如果输出没有做互锁,可能会瞬间同时输出两点,比如反洗阀和产水阀同时打开。解决办法是每个状态内的输出都用双线圈互锁,也就是在一个状态下同时将另一个状态的输出复位。比如进入反洗状态时,首先要复位Y6(产水电磁阀),再置位Y5(反洗电磁阀),顺序很重要。
我自己的习惯是用M继电器组做状态机,因为M继电器的逻辑可控性更强,配合定时器和自锁,调试起来更方便。比如定义M10为制水状态,M20为反洗状态,M30为正洗状态。程序分两块,第一块是状态迁移逻辑,第二块是状态输出逻辑,输出用每个状态的M触点驱动,这样就算误触发同一个M,输出也不会乱。
3.2 一键制水程序实现
一键制水按下后,不是简单置位一个M就完了,要做一个“启动序列”。我的程序里把制水状态M10置位后,同时启动一个启动延时计时器T10,延时2秒。这2秒内先开原水泵,再开预处理阀,让水充满管路,稳定后再开增压泵。高压泵的启动要等到低压开关X3有压力信号,也就是X3常开触点闭合且持续3秒,才允许Y2输出。如果3秒内X3没动作,说明泵前没水或者无水,就置位低压报警M50,跳转停机状态。这样可以保护高压泵不被干烧。
制水运行状态下,产水电磁阀Y6打开,不合格水回流阀Y7根据电导率信号切换。电导率信号通过模拟量模块读取,比较数值如果小于设定值(比如0.1μS/cm),则关闭回流阀,开启产水阀;如果超标,则关闭产水阀,打开回流阀,让水回到前置水箱循环。这个闭环调节不需要PID,用滞回比较就可以,比如合格值设为0.1,启动产出条件是低于0.08,停止产出条件是高于0.12,避免频繁开关阀。
3.3 一键反洗与一键正洗程序
反洗是预处理系统的核心维护操作。多介质过滤器和活性炭过滤器运行一段时间后,截留的杂质会越来越多,压差升高,这时候需要反洗。反洗程序是:按下反洗按钮,或者到了触摸屏设定的反洗周期时间,系统先置位反洗状态M20,同时把制水状态M10复位,然后关闭产水电磁阀Y6、原水进水阀Y4,延时1秒后打开反洗进水阀Y5、反洗排水阀Y8,再启动反洗泵Y3,开始反洗。反洗时间T20可调,默认10分钟。反洗结束后,T20计时到,关闭反洗泵和反洗进水阀,自动进入正洗状态M30。
正洗的作用是让过滤层重新压实、冲掉残留在滤层上方的反洗水。进入正洗后,打开原水进水阀Y4,关闭反洗排水阀Y8,打开正洗排水阀Y9(如果系统没有独立正洗排水阀,可以复用产水阀前的排废阀),再启动原水泵Y0,让水从正常方向流过过滤器,把松动的滤层冲实。正洗时间T30默认10分钟,计时到后系统自动回到待机状态,或者如果用户之前启动了连续制水模式,则自动切入制水状态。
这里要注意,反洗和正洗之间存在状态互锁,不允许反洗泵Y3和正洗排水阀Y9同时打开。程序里要加一个互锁梯形图:M20状态下强制复位Y9,M30状态下强制复位Y8。触摸屏上也要配置互锁按钮,手动模式下不允许同时点两个。
3.4 无人值守的报警连锁
无人值守靠的是不算复杂的逻辑,但保护要足够周全。我在整个程序里做了一组总报警线圈M60,任何一个报警条件触发都会置位M60,同时把当前运行状态全部复位,并切断所有泵的输出。报警源包括原水箱低液位、中间水箱低液位、高压泵低压、高压开关动作、漏水检测、电导率持续超标(比如1分钟内多次超标)等。每次报警触发后,触摸屏要显示具体的报警代码和报警时间,方便远程判断。
复位逻辑也很重要。报警后并不是按下复位按钮就能立刻重新启动,而要先确认报警条件消失。比如原水箱液位恢复正常,X0从断开变成闭合,按下复位按钮才有效。我一般会写一个“报警复位使能”条件:报警源对应的常闭触点全部断开,才允许复位。这样防止操作工在故障没排除时就强制复位启动,造成二次损伤。
另外,无人值守还包含自动补水和自动停机。原水箱液位低于下限,自动打开补水阀(如果有);高于上限自动关闭。产水罐满时自动停止制水模式,回到待机。等到产水罐液位降到泵启动液位以下后,如果再检测到“自动运行”标志位为ON,则自动重新启动制水流程。这个功能让系统真正实现无人值守的连续产水。
3.5 触摸屏画面组态
触摸屏画面我一般分四页,第一页是主监控画面,显示系统当前状态、各泵和阀门的运行状态、产水电导率、各水箱液位,还有三个一键启动按钮:制水、反洗、正洗,以及急停和复位。第二页是手动画面,供调试和维修时使用,每个泵和阀门独立按钮,手动模式必须在触摸屏上选择“手动检修”才能进入,而且手动模式下PLC里的部分自动联锁依然有效,比如泵前无压禁止启泵。第三页是参数设置,主要放置反洗时间、正洗时间、制水模式选择、电导率上下限、低压延时时间等。第四页是报警记录,用列表显示历史报警和当前报警。
画面上的按钮需要做“按下弹起”动作,而不是“置位”动作。也就是说,按下一次,PLC收到上升沿,置位状态M,弹起不影响PLC内部保持的状态,直到流程完成或者故障复位才清除。这样可以防止操作工长时间按住按钮导致重复触发。
触摸屏和PLC的通讯参数要一致,常见设置是波特率9600或19200、数据位8位、停止位1位、无校验。如果通讯不稳定,多半是通讯线接线错误或者两端参数不一致。最新款的触摸屏可以和FX5U走以太网,速度快很多,下载程序和在线监控都方便。
4. 现场调试方法与常见问题排查实录
4.1 调试前检查清单
这套系统从写完程序到稳定运行,中间调试花了不少时间。调试前的检查我整理成了一张清单,每项都要打钩再上电。
先核对PLC输入输出接线。输入用万用表通断测试,输出点可以用PLC编程软件的强制输出功能逐个测试,但强制输出时必须确认外部负载不会造成危险,比如强制打开反洗阀之前要确认管路里没有高压水。再检查模拟量接线,电导率变送器给电后,要在PLC监控里看到实际数值,用标准电阻箱或者直接拿探头放纯水里试。
然后检查泵的相序和电机转向,反洗泵反转会导致水泵过载或者没有流量。很多泵空转时转向不对但声音听起来差不多,容易忽略,可以在泵出口加一个流量开关或者观察压力表。最后做一次“全流程低压试运行”,也就是用清水代原水,阀门全开,不带膜,走一遍制水、反洗、正洗流程,确认每个状态迁移正确、每个阀门动作正确,再去接真实膜组件。
4.2 典型问题:状态乱跳和水锤
调试中最容易遇到的一个问题是,反洗切正洗时管路会“咚咚”响,这是水锤。原因是正洗进水阀打开瞬间,管路压力突变,水流冲击管壁。我用的解决办法是,在切阀动作之间增加延时,例如先启动原水泵,再延时2秒打开正洗排水阀,再延时2秒关闭反洗排水阀。也就是泵先建立压力,阀门再动作,这样能大大降低水锤。
另一个常见问题是状态乱跳。比如按下制水按钮,系统不停在制水和报警之间反复跳。后来查出来是低压开关信号抖动,高压泵还没启动时,压力开关因为管路波动瞬间接通又断开,PLC在几十毫秒内收到多个上升沿。解决方案是低压信号要加延时滤波,用定时器做去抖,比如X3持续接通超过0.5秒才算低压正常,持续断开超过0.5秒才算低压报警。这个在程序里加很简单,但能解决大问题。
触摸屏上显示的水质数据偶尔变成异常的大数,比如电导率突然跳到500,过几秒又恢复。排查下来是屏蔽层接地虚接导致的干扰。把所有模拟量屏蔽层重新接到接地排,问题就不再出现。所以在我看来,水处理系统里80%的模拟量漂移问题都是接地问题,不是变送器问题。
4.3 其他坑:手动自动互锁与配方保存
还有两个值得说的点。第一是手动自动切换时,所有输出必须清干净。我用的做法是,当选择开关拨到手动时,PLC立即复位所有自动状态的M继电器,同时关闭所有自动输出的阀和泵。否则手动模式下自动流程还在运行,点动一个阀就可能和自动输出冲突。第二是触摸屏配方参数,比如反洗时间、正洗时间这些参数修改后,要保存到PLC内部掉电保持区,比如设定值放在D寄存器但不是普通D,而是用掉电保持型D8000之后?其实三菱FX3U中,D512以上的某些区域做掉电保持,或者用触摸屏的配方存储功能直接存到屏里。我一般把参数放在PLC的掉电保持寄存器,同时触摸屏每次启动时读取一次,避免屏里的值和PLC里的值不一致。
4.4 无人值守的最终确认
整套系统装好之后,我在现场做了三天的无人值守测试。第一天是模拟产水罐满停机,第二天是模拟原水缺水报警,第三天是模拟电导率连续超标停机。每次模拟故障后我都观察系统的处理动作是不是符合预设:先停高压泵,再停增压泵,延时停原水泵,阀门回到安全状态。测试通过后我才放心交付。
5. 这套方案还能怎么扩展
按这个框架做出来的超纯水控制系统,后续扩展方向也很多。比如可以加远程监控模块,用三菱FX5U的以太网口把数据上传到云端,或者接一个4G物联网盒子,把运行状态和水质数据推送到手机,真正实现无人值守加远程运维。也可以增加变频器控制泵的转速,根据产水流量自动调节高压泵频率,节能效果明显。想要更先进的做法,还可以加一套PID温控,保证超纯水恒温供应,满足精密实验需求。
另外,超纯水系统经常要求打印水质报告或者对接上位机MES,这时PLC里要留出完整的运行记录数据块,比如产水累积量、反洗次数、反洗时间历史记录等,方便上位机读取。这个在程序设计阶段就要预留寄存器区,不然后期加数据会很麻烦。
从我自己的实操体会来说,这种一键自动化的改造,最大的价值不在于省一个操作工,而在于把老师傅脑子里的经验固化到PLC里。什么时候该反洗、反洗多久、什么时候切正洗、什么条件必须停机,这些原本靠人判断的规则变成代码后,设备稳定性会明显提升。调试这个系统时,我踩过的坑也都不难,大多是信号抖动、接地干扰、手动自动互锁这类常见问题,只要按着状态机设计逻辑来,一步一步摸流程,就不会有大偏差。
最后再说一个我一直沿用的习惯:PLC程序里在每个状态的起始和结束位置加一段空操作,并且用注释写清楚这个状态的含义和迁移条件。三菱GX Works2里注释很方便,写清楚之后,哪怕几个月后再打开程序,也能很快看懂当时的设计意图。这对后期维护、改版、故障排查来说,比节省一两行程序有价值得多。