三菱FX系列PLC与触摸屏的超纯水系统一键制水、反洗、正洗控制方案
做过水处理自控项目的人都有体会超纯水系统的控制难度不在某一个泵或某一个阀而在于整套工艺动作的编排和异常兜底。我最近完成了一套基于三菱FX系列PLC加触摸屏的超纯水系统控制改造把制水、反洗、正洗三个操作做成了一键触发设备日常运行基本无人值守。这篇文章把整套系统从工艺逻辑、硬件选型、程序架构到现场调试的坑完整梳理一遍给准备做类似设备的朋友一个可以抄作业的参考。这套系统看似只是“三个一键”但真正落地的关键都在细节里状态机怎么切、阀门动作怎么排、液位怎么联锁、定时反洗怎么算时间每一项都直接影响设备能不能长期稳定跑下去。下面按实际项目的推进顺序来讲不绕弯子。1. 项目定位与系统逻辑拆解1.1 超纯水工艺全景还原先说清这套系统服务的工艺场景。超纯水广泛用于半导体清洗、实验室分析、制药配液、光伏切割等场合对水中离子、颗粒物、有机物、微生物都有严格限制。典型的超纯水工艺链大致是原水箱→原水泵→多介质过滤器→活性炭过滤器→保安过滤器→RO反渗透→抛光混床或EDI→纯水箱→用水点。从PLC控制的角度我不会把这套链路看成一个个孤立设备而是分成三段来处理。前处理段原水泵、多介质过滤器、活性炭过滤器。这一段的职责是拦截悬浮物和余氯保护后级RO膜。控制上最麻烦的不是启停而是过滤器的定期反洗和正洗。滤料截留杂质后会板结流量下降、压差升高如果不按时清洗RO膜很快会被污染产水水质也会崩。RO反渗透段高压泵和膜组件。高压泵启停要注意无水保护和压力联锁膜组件的进水压力和产水电阻率是关键监测点。这一段控制相对直接但保护条件必须做全。精处理和储水段抛光混床或EDI、纯水箱。纯水箱液位是整机自动运行的“总开关”液位低的时候系统要自动产水液位高的时候系统要自动停机全程不能靠人去盯。很多人问为什么要把“一键制水、一键反洗、一键正洗”单独拎出来做成按钮因为过滤器的反洗正洗动作恰恰是最容易被现场工人偷懒跳过、又直接影响系统寿命的环节。手动操作时要工人跑到罐区去拧阀门、看压力表、掐时间麻烦不说还容易记混顺序。把这三个动作固化到PLC里让机器自己按标准流程执行这才是无人值守的前提。1.2 “一键”动作背后的状态机设计思路三个一键不能简单理解成三个独立的“启动回路”因为它们共用了同一套水泵和管路动作之间是互斥的。制水的时候不能反洗反洗的时候不能正洗正洗的时候也不能直接制水必须按顺序走完再切换。我在程序里用了一套典型的步进状态机来管理。核心状态定义如下状态编号状态含义说明S0待机所有泵停止阀门处于关位等待命令S10制水运行按顺序启动原水泵、高压泵产出合格水进纯水箱S20反洗流程关闭制水通路启动反洗泵和反洗阀按罐体逐个反洗S30正洗流程反洗结束后按正常流向冲洗滤层排水不进产水箱每个大状态内部再细分子步。比如S20里会先执行多介质罐反洗再执行活性炭罐反洗S30里同样按罐体逐个正洗。这样拆的好处是每一步的进入和退出条件都非常清晰后面加报警、加保护、加定时任务也都方便。状态切换的核心原则只有一条任何切换都必须先满足互锁条件。比如按下“一键反洗”时如果系统正在制水程序不会直接跳过去而是先把制水状态安全退出再进入反洗流程。这个过程必须是无缝的不能让阀门在错误状态下动作更不能让水泵带着压力硬切。我建议在GX Works2环境里用STL步进指令写这套逻辑比用普通M点加置位复位指令直观得多。STL每个状态分支独立程序扫描到哪个步就执行哪个动作排查问题时直接监控当前状态编号一眼就能定位设备卡在哪一步。2. 硬件选型与电气配置2.1 三菱FX系列PLC与扩展模块选型这个项目选择三菱FX系列首先是工程习惯和维护便利性的考量。FX3U在中小型水处理设备里性价比高、指令丰富自带实时时钟正好满足定时反洗的需求如果要走以太网或者后续接入上位机FX5U更合适。我这套用的FX3U所有点为继电器输出型负载控制直接带中间继电器可靠性足够。本系统IO点数不算多数字量输入大约15点、数字量输出约12点基本在FX3U-32MR的范围内。但水质仪表和压力变送器输出的4-20mA信号PLC本体不能直接接收需要加一个FX3U-4AD模拟量模块。电导率或电阻率仪用两路通道压力变送器用一路通道剩下一个通道备用接后续可能要加的流量计。触摸屏配的是三菱GS系列通过串口和PLC通信。实际项目中很多朋友也喜欢用国产触摸屏走Modbus协议来连三菱PLC一样稳定看现场要求来选择就好。核心是通信参数必须一致波特率、数据位、校验位、站号哪一项对不上都连不上这是新手踩坑的重灾区。2.2 IO点表规划与电气控制要点硬件配置前一定要先把IO点表拉清楚这是整个电气设计的骨架。我习惯的做法是先画工艺流程图把每个泵、每个阀、每个仪表的位置标出来再反推需要哪些输入输出。数字量输入点表输入地址信号名称信号来源X0系统启动指令触摸屏按钮/实体按钮X1系统停止指令触摸屏按钮/实体按钮X2原水箱低液位浮球液位开关X3原水箱高液位浮球液位开关X4纯水箱低液位液位开关X5纯水箱高液位液位开关X6原水压力低压力开关/变送器下限X7RO高压泵过载热继电器辅助触点X10手动/自动切换转换开关X11反洗泵过载热继电器辅助触点X12原水泵过载热继电器辅助触点数字量输出点表输出地址信号名称驱动对象Y0原水泵接触器线圈Y1反洗泵接触器线圈Y2RO高压泵接触器线圈Y3进水电磁阀前处理进水Y4多介质反洗阀气动阀电磁先导Y5活性炭反洗阀气动阀电磁先导Y6多介质正洗排水阀气动阀电磁先导Y7活性炭正洗排水阀气动阀电磁先导Y10产水阀去纯水箱通路Y11反洗排水阀反洗废水排地沟Y12运行指示灯面板指示灯Y13报警蜂鸣器声光报警电气控制柜里有一个细节必须强调水泵电机的热继电器辅助触点不要只进PLC做程序联锁还应该串联在对应接触器的控制回路里做成硬联锁。这样即使PLC程序因为某种原因没有及时反应热继电器动作后接触器也会直接断开真正保护电机不被烧毁。模拟量信号全部采用屏蔽电缆屏蔽层单端接地避免变频器干扰导致读数跳动。2.3 仪表与传感器选型连线传感器的选择直接决定自动控制能不能可靠运行。电阻率仪我选的在线式仪表量程0-18.25MΩ·cm输出4-20mA进模拟量模块。这类仪表电极安装在RO产水管路上调试时要注意电极安装方向避免气泡停留在电极表面造成读数波动。压力变送器装在高压泵前和RO膜前量程0-1.0MPa输出4-20mA。程序里设置两个保护点高压泵前压力低于0.1MPa时不允许启动系统运行中低于0.05MPa立即停泵。这个保护非常重要RO高压泵一旦无水空转机械密封几分钟就会损坏。液位开关用浮球式为主。原水箱一组高低液位纯水箱一组高低液位。需要提醒的是纯水箱液位开关安装位置要避开进水管冲击区域不然水流波动会让浮球频繁跳动引起系统误启停。我后来在原水箱又加了一个投入式液位传感器做连续监测触摸屏上能看到实际液位变化趋势对判断进水是否正常很有帮助。3. 三个一键功能的核心实现3.1 一键制水的启动顺序与保护逻辑一键制水看起来就是按一下“制水”按钮但程序内部要做的动作非常多。整个流程在STL里是分步展开的每一步都有明确的进入条件和退出条件。第一步是条件预检查。自动模式下确认无故障、纯水箱低液位、原水箱液位正常、原水压力正常这些条件有一个不满足程序就不会进入制水状态并且在触摸屏上给出不动作原因提示。第二步是预处理启动。先开启进水阀启动原水泵让水流经多介质过滤器和活性炭过滤器。这里有个关键细节如果系统是从停机状态恢复、且距离上次运行超过一定时间我会让前处理先进行一段时间的正洗排水时间一般在30秒左右。为什么因为滤料层长时间静置后表面会积存杂质直接进RO膜会影响膜的进水水质。先排水冲洗一下看到水质稳定了再往下走。第三步是高压泵启动。原水泵运行后压力建立起来程序确认压力正常才会启动RO高压泵。高压泵启动前必须确认RO膜前压力处于正常范围同时产水管路阀门状态正确。启动后先不急着产水让膜组件低压冲洗十几秒排出膜内空气后再进入产水状态。第四步是水质判断。RO产水的电阻率实时送入模拟量模块程序里设定一个判定值比如10MΩ·cm。电阻率达到要求时产水阀打开水进纯水箱不达标时产水排入地沟避免不合格水混入纯水箱污染整箱水质。这个逻辑我见过很多系统不做觉得浪费水但实际中如果不做树脂和EDI的负担会明显增加维护成本更高。第五步是自动停机。纯水箱达到高液位后程序不会立刻关断所有设备而是先停止高压泵延时几秒再停原水泵然后关闭进水阀和产水阀。这样做是为了让系统压力平缓释放避免突然断水断电造成水锤冲击。3.2 一键反洗的流量与时间控制反洗是过滤器维护中最关键的动作。原理不复杂反向通水让水流自下而上通过滤层把滤料层膨胀、松动把截留的悬浮物带出系统。反洗流量太小滤料膨胀不起来清洗效果差流量太大滤料会被冲出罐体直接造成跑料损失。反洗泵选型或者反洗流量设定的时候可以按这个思路粗算一下。以直径1m的多介质过滤器为例罐体截面积 A π × (0.5)² ≈ 0.785 m²反洗强度一般取12L/(m²·s)反洗流量 Q 0.785 × 12 × 3.6 ≈ 34 m³/h。这大概是正常运行流量15m³/h的两倍多。实际调试时我不会直接按理论值锁死而是先泵出口加装手动调节阀观察滤料膨胀情况。理想状态是滤料微微膨胀但不流失大约膨胀20%-30%就够了。反洗动作顺序同样讲究。正确流程是先关闭制水通路上的相关阀门再打开反洗阀和反洗排水阀最后启动反洗泵。千万不能先启泵再开阀否则管路压力瞬间憋高轻则冲击仪表重则爆管。这个习惯我是吃过亏的——早期做一台设备的时侯图省事把顺序写反了调试时反洗管路接头直接崩开现场一片狼藉。程序里的反洗流程按罐体逐个执行先反洗多介质罐再反洗活性炭罐每个罐的反洗时间做成触屏可调默认5到8分钟。反洗结束后不直接进入制水而是必须进入正洗这点后面单独说。3.3 一键正洗与自动切回制水正洗可以理解为“恢复过滤”前的清洗环节。滤层反洗后处于松散状态水质也比较浑浊如果直接进入制水大量杂质会进入RO系统。正洗就是按正常流向进水让水从上往下穿过滤层把反洗后残留的悬浮物冲干净但水流不进入产水箱直接排地沟。正洗时间一般比反洗时间长默认10到15分钟。活性炭过滤器更特殊新装炭的炭粉多刚开始正洗时出水可能是黑色的要冲洗到出水变清才能切产水。我在程序里做了一个提示正洗排污过程中操作员可以打开触摸屏上的监视画面观察排水口情况如果排水一直不清说明滤层内部已经严重污染需要检查前级设备而非无脑延长正洗时间。正洗结束后系统怎么走要看触发来源。如果是手动按下一键正洗流程结束后回到待机如果是反洗流程顺带触发的正洗正洗完成后程序会判断纯水箱液位液位低直接自动切入制水状态液位高回到待机等待下一次制水请求。这个自动判断逻辑是无人值守能够闭环的关键。另外补一个细节正洗和反洗之间要加一个短暂停顿3-5秒左右让管路内压力泄一泄再来一下水锤就轻多了。所有阀门的切换都要避免在管路带压状态下同时开闭这是水处理自控调试中常被忽视的地方。4. 无人值守的关键设计与触摸屏交互4.1 液位联锁与自动启停策略无人值守最核心的不是自动化而是“兜底逻辑”。系统要能自动判断什么时候该干活、什么时候该歇着而且不能在边界状态反复切换。纯水箱液位是产水调度的重要依据。低液位时启动制水高液位时停止制水这很好理解。但实际操作中有个坑液位开关存在动作死区浮球在水面波动时可能反复通断导致系统频繁启停。我的应对办法是在程序里加延时确认高液位信号持续3秒以上才认为真正满水低液位信号持续5秒以上才确认需要启动产水。千万别小看这几秒实际运行稳定性差很多。原水箱液位是另一个保护维度。原水箱低液位时禁止原水泵运行原水泵启动后如果压力一直建立不起来说明进水阀没开或者源头断水程序要能识别这种“启动失败”状态而不是让泵一直空转。我在这里增加了启动失败计时原水泵启动后30秒内压力仍低于下限直接停机并报警。纯水箱高液位停机后整个系统保持在待机状态但模拟量监测和报警监测不停止。触摸屏仍实时显示电阻率、压力、液位一旦发生低压报警或漏水检测报警蜂鸣器照常响。这才是“无人值守”而不是“无人看管”。4.2 定时反洗正洗计划反洗不能全指望操作员去按按钮无人值守更依赖定时任务。FX3U自带实时时钟运行时间信息能直接供程序调用。我在这套系统里设了两类定时任务日常清洗计划每天凌晨2点执行一次标准反洗加正洗流程深度清洗计划每周日凌晨3点执行一次延长反洗反洗时间从默认5分钟拉长到10分钟活性炭罐再额外增加一次漂洗。定时任务触发时有一个优先级问题需要处理。如果系统正在制水不能强行打断否则产水突然中断会影响后端用水。我的处理方式是定时任务只做“请求标记”程序在执行完当前制水流程、纯水箱液位也允许的情况下自动进入反洗流程。如果凌晨2点时正在制水会一直等到制水完成后才启动反洗。这套逻辑跑下来基本不会出现设备半夜“自作主张”突然停机的情况。PLC实时钟还有一个容易被忽视的坑断电时间长了时钟会重置。CPU电池没电后RTC会回到默认时间定时任务就全乱套了。设备交付使用前我一定会把时钟设置好并告知客户如何校准同时在参数画面里放一个当前时间显示方便现场随时发现时钟异常。4.3 触摸屏画面设计与报警体系触摸屏是操作员和设备之间的窗口画面设计直接影响使用体验。我一般分四个画面页主监控画面、操作画面、参数设定画面、报警记录画面。主监控画面是工艺流程图把原水箱、过滤器、RO膜、纯水箱、各个泵和阀门用图形画出来运行中泵是绿色旋转动画阀门开闭用颜色区分管路里设置流动指示。这样操作员一抬眼就知道整个系统当前在哪个环节工作是制水还是反洗、哪个阀门没到位一目了然。操作画面上就三个醒目的功能按钮一键制水、一键反洗、一键正洗下面加一个状态显示窗口。如果操作员按了某个按钮但条件不满足状态窗口直接显示“原因纯水箱液位高不允许制水”之类的提示而不是让操作员自己在现场瞎猜。这个小改动对现场工程师维护帮助很大。报警体系按严重程度分两级。紧急报警包括高压泵过载、原水压力过低、反洗泵过载触发后自动全停并启动蜂鸣器。普通报警包括产水电阻率低于设定值、原水箱液位长时间未恢复触发后画面弹出报警条并存储到报警记录页带时间戳方便工程师事后排查。报警记录页我用触摸屏自带的报警功能实现所有历史报警带时间保存。调试的时候这个记录帮大忙了——现场说“昨天设备半夜报警了”打开报警记录就能看到具体几点几分什么报警不用再让人蹲在现场复现效率提升非常明显。5. 现场调试经验与问题排查5.1 调试中的几个经典坑第一坑水锤。阀门切换太快管路会“咚咚”响。多介质过滤器从制水切换到反洗时如果反洗泵启动的同时关断制水阀管路压力瞬间突变水锤能把压力表指针打得跳起来。解决方法是调整程序顺序先关产水阀保持进水阀短暂开启让压力泄掉再开反洗阀最后启动反洗泵。每一步之间加2到3秒延时让管路有个缓冲。第二坑反洗跑滤料。第一次调试反洗时我打开观察窗看到滤料大量上涌马上意识到反洗流量大了。这时候把泵出口手动阀慢慢关小观察滤层膨胀状态直到滤料只膨胀不流失。理论上算出来34m³/h实际上因为管路阻力差异可能略高或略低现场实测才是准的。设备交付后我在操作说明里专门标注了反洗流量的观察方法让运维人员每隔一段时间确认一次。第三坑液位开关被水垢卡住。纯水箱用了一段时间后浮球杆上升降不灵活高液位信号一直不动作系统就会一直制水纯水箱溢流。后来我把纯水箱的浮球液位开关换成了光电式液位开关不接触水面的机械机构故障率明显下降。如果现场因为成本原因必须用浮球那就要求运维定期清理至少每月一次。第四坑RO高压泵空转。这是我反复强调的硬保护区。程序里做压力联锁是基础我在电气回路上还串联了一个机械式压力继电器压力低于设定值直接切断接触器线圈电源。软件加硬件双重保护就算PLC程序抽风泵也不会空转烧毁。这套系统交付至今高压泵没出过问题。5.2 常见问题速查表按现场几个月跑下来的经验把典型的故障现象、原因和处理方法整理成一个速查表供运维参考。故障现象常见原因处理方法按一键制水无响应纯水箱高液位/原水箱低液位/有报警未复位查触摸屏原因提示对应处理后再启动RO高压泵不启动原水压力低、电源缺相、热继电器动作检查进水阀是否打开、检查泵前压力、复位热继电器纯水箱满水不停机高液位开关故障、浮球卡死、程序延时确认异常清理/更换液位开关监控X5信号是否变化反洗时滤料冲出罐体反洗流量过大、反洗泵扬程过高调小泵出口手动阀观察滤料膨胀状态活性炭出水长期发黑新装炭未充分正洗、炭粒破碎延长正洗时间必要时更换回收触摸屏连不上PLC通信参数不匹配、站号错误、线缆松动检查波特率/数据位/校验位/站号紧固接口定时反洗不动作PLC实时钟错乱、定时比较指令逻辑错误校准RTC检查程序中的时间比较条件产水电阻率波动大电极表面气泡、RO膜污染、进水温度变化检查电极安装位置、观察压力变化、对膜进行化学清洗每一个现象背后都对应一个程序逻辑和一个现场环节。排查的时候先看触摸屏报警记录再看对应IO信号状态基本能快速定位问题。我的经验是现场80%的故障都出在传感器和执行机构上纯程序逻辑引起的故障反而是少数。这套系统后续想继续扩展也很方便一是加远程监控模块把PLC数据传到手机端管理者在外地也能看到水质和运行状态二是加自动加药控制根据进水流量自动投加阻垢剂三是为每支膜做单独的运行时间统计提醒更换周期。状态机框架搭好后加功能只是在原有基础上增加新状态和新的条件判断不需要推倒重来。最后分享一点个人感受做这套系统最大的收获是理解了“无人值守”不是把按钮换成自动而是把所有可能的边界情况都想到、兜住。系统越自动化越要重视保护逻辑和异常提示否则一次小小的液位误判就可能在无人环境下造成很大的损失。这套思路放之四海皆准不管是超纯水、软化水还是废水回用系统把工艺动作模型化、状态化项目就成功了一大半。