三菱FX3U PLC与触摸屏的超纯水系统一键控制:从硬件配置到无人值守逻辑
1. 项目概述为什么给超纯水系统加一套“会自己干活”的控制中枢这两年我陆续经手过几套超纯水系统的电气改造坦白讲大部分中小型水处理设备的控制逻辑并不复杂真正的问题出在“人”身上。操作工今天漏开一个阀门明天忘记切换反洗状态后天又把正洗时间设错了结果就是产水电阻率忽高忽低RO膜寿命被硬生生砍掉一半。所以当那位做水处理的客户找到我提了一个很明确的需求——“能不能用三菱FX PLC加一块触摸屏把纯水机做成全自动按键一点就完事最好能做到无人值守”时我几乎没犹豫就接了下来。这个项目标题里提到的东西本质上就是一套以三菱FX系列PLC为大脑、以触摸屏为人机界面的超纯水制备控制系统。核心功能高度聚焦一键制超纯水、一键反洗、一键正洗再加上自动化程度很高的无人值守运行模式。用大白话说就是把原来需要操作工盯着仪表、手动拧阀门的那套流程全部交给PLC按预设程序去执行操作工只需要在触摸屏上按一个按钮系统就会按照我们写好的时序逻辑自动完成从原水进水、多级过滤、RO膜处理、离子交换/EDI提纯到水箱满水停机再到定期反洗、正洗恢复膜通量等一系列动作。这篇文章我想围绕这套系统的设计全过程来写。从控制对象和I/O分配到程序流程图设计再到触摸屏画面组态以及我在调试现场踩过的那些坑全部摊开来聊。适合正在做水处理电气配套的工程师、准备给自己设备升级自动化的机械设计人员以及想入门PLC项目开发的电气新手。你不需要有多深的编程底子但至少要明白阀门、泵、液位开关、电导率仪这些基本元件是干什么用的。注意本文涉及的程序逻辑和参数都是我基于实际项目经验整理的通用框架具体到不同产水量的设备容量和时间参数需要按现场情况重新计算。2. 系统整体设计与控制思路拆解2.1 超纯水制备工艺到底在做什么要写好控制程序首先得搞清楚你控制的对象是什么。超纯水制备和普通的净水器原理上类似但精度和复杂度完全是两个量级。一套典型的超纯水系统工艺流程大致是自来水原水 → 预处理机械过滤器活性炭过滤器软化器→ 精密过滤器 → RO反渗透膜 → 脱气/EDI模块或混床离子交换→ 抛光混床 → 终端精密过滤 → 产水点在纯水系统的外围还有几个关键辅助装置原水泵、高压泵RO泵、清洗泵以及各种电动球阀/电磁阀分布在预处理罐进出口、RO膜进水侧、浓水侧、产水侧。另外必须有的传感器包括原水压力、泵后压力、RO膜前后压差、产水电导率或电阻率、水箱液位低/中/高液位开关或连续液位变送器。我在设计这套控制系统时把工艺流程分成了三个独立的自动运行模式对应标题里的三个按键一键制水模式系统按正常产水流程运行从原水进水开始经预处理、RO过滤、后级提纯最终将合格纯水送入水箱。水箱满后自动停机进入待机状态。一键反洗模式当RO膜压差升高或产水量下降时系统会以反向水流冲洗RO膜表面污染物。反洗期间产水阀门关闭浓水侧排水水从膜产水侧反向注入冲刷膜表面。一键正洗模式反洗结束后必须进行正洗目的是把膜表面松动的污染物从浓水侧冲走同时排出管路中残留的气体和清洗液使膜组件恢复正常产水状态。这三个模式的共同点在于每一种模式启动后都不需要人工干预阀门开闭顺序、泵启停时机、运行持续时间全部由PLC内部定时逻辑完成。而整台设备的所有控制权限集中在触摸屏上的三个“一键”按钮和一个急停开关上。2.2 为什么选三菱FX系列PLC而不是其他方案控制方案的选择客户其实给了几个潜在方向用通用单片机自己搭、用普通继电器电路实现或者用PLC。单片机方案适合量产定型产品但项目初期改动频繁开发周期不可控。继电器逻辑电路在跑通顺序控制时非常繁琐几十个中间继电器加时间继电器柜内布线堪比蜘蛛网后期维护更是噩梦。所以最终选择了PLC方案具体型号是三菱FX3U系列理由很实在第一FX3U的指令集完善尤其是步进梯形图指令STL和定时器指令非常适合写顺序控制程序。整个系统的三个模式本质上就是三段时序流程用步进指令写起来逻辑清晰、便于排查故障。第二FX3U的性价比在中小型系统中非常合适。I/O点数在几十点以内时整机成本可控而且三菱PLC在国内工控市场的普及率很高客户的电气维修人员多少都对它有了解后续维护门槛低。第三FX系列扩展灵活。系统如果后来要增加模拟量模块比如接入连续液位变送器、电导率仪RS485信号直接扩展一个FX3U-485-BD通讯板或者模拟量模块就能搞定不需要换平台。当然选型时也有人问为什么不直接用FX5U。FX5U性能更强但在这种I/O规模不大、逻辑不算复杂的项目中FX3U完全够用还能省一点成本。如果真要考虑国产化替代某些兼容FX3U的国产PLC也能跑同款程序但三菱原厂在稳定性和指令兼容性上更有保障调试阶段的疑难杂症也更少。2.3 无人值守模式的设计逻辑“无人值守”这四个字写起来简单落实在程序里要注意的细节可不少。我设计的无人值守逻辑包含几个层次第一层制水满水箱自动停机。当水箱液位达到高液位开关位置PLC自动关闭原水泵和高压泵延时数秒后关闭RO系统相关阀门设备进入待机。液位降到低液位开关以下再自动重新启动制水。这样水箱始终保持在一个合理的储水区间不会溢流也不会抽干。第二层自动轮换。像活性炭过滤器、软化器这类设备如果长期不运行滤料容易板结。我在程序里加入了简单的运行计时累计功能每次设备待机超过设定时间后才再次启动时PLC会先执行一段短时间的自动正洗把滤料冲开后再正常制水。第三层防呆自锁。任何一个模式运行期间触摸屏上的其他模式按钮都会被程序锁定。比如反洗过程中如果操作工误触了“制水”键PLC不会响应防止在膜两侧造成异常压差损伤RO膜。这套设计做完之后日常运行状态下的操作量基本归零。操作工每天只需要看一眼触摸屏上的运行画面确认产水电阻率在正常范围内就足够了。3. 硬件配置与I/O点表解析用什么器件各自的职责是什么3.1 整体硬件组成控制柜内部的核心硬件按照我的习惯性做法大致如下PLC主机三菱FX3U-32MR/ES16点输入16点继电器输出。继电器输出型在驱动中小功率电磁阀时不需要外加中间继电器直接在PLC输出端接电磁阀线圈比较方便。另一个选择是晶体管输出型如果后面要接步进电机或高速脉冲控制必须选晶体管型但这个项目用不上所以选了继电器型。触摸屏某国产7寸触摸屏带RS485接口通过三菱FX编程口协议与PLC通讯。型号具体是什么品牌其实不重要关键是选支持FX3U通讯协议的屏组态时直接选“三菱FX系列”协议就能通信。开关电源24V/2A左右的明纬开关电源给触摸屏、传感器供电。电磁阀如果是AC220V的直接接PLC输出回路。低压电器断路器、接触器、热继电器用于泵类电机的主回路保护。FX3U输出点不能直接驱动大功率泵需要通过接触器控制回路间接驱动。传感器与液位开关浮球式液位开关3个高、中、低压力开关2个原水低压、产水低压电导率/电阻率变送器1个输出4-20mA模拟量信号接入PLC模拟量扩展模块。3.2 I/O点分配表具体的I/O分配这是个很枯燥但无比重要的环节。分配不合理写程序的时候会到处碰壁接线和程序互相将就。我习惯先在纸上把I/O表列出来再开始画图写程序。| 输入信号 | 地址 | 说明 | | --- | --- | --- | | X0 | 急停按钮 | 常闭触点接入按下时断开 | | X1 | 原水低压开关 | 进水压力过低报警 | | X2 | 原水泵运行反馈 | 接触器辅助触点 | | X3 | 高压泵运行反馈 | 接触器辅助触点 | | X4 | 水箱高液位 | 浮球开关 | | X5 | 水箱低液位 | 浮球开关 | | X6 | 制水模式启动按钮触摸屏内 | 软元件M0 | | X7 | 反洗模式启动按钮触摸屏内 | 软元件M1 | | X10 | 正洗模式启动按钮触摸屏内 | 软元件M2 | | X11 | RO膜压差高报警 | 压力开关 | | X12 | 热继电器过载信号 | 泵保护 || 输出信号 | 地址 | 说明 | | --- | --- | --- | | Y0 | 原水泵接触器 | | | Y1 | 高压泵接触器 | | | Y2 | 进水电磁阀 | 预处理进水口 | | Y3 | 预处理反洗排水阀 | 反洗时开 | | Y4 | RO进水阀 | 膜组件前 | | Y5 | RO产水阀 | 纯水进水箱 | | Y6 | RO浓水排放阀 | 排放浓缩水 | | Y7 | 反洗泵 | 反洗时单独运行的泵 | | Y10 | 冲洗排水阀 | 正洗时排水 | | Y11 | 报警指示灯 | 触摸屏画面同步显示 |参考这张表有一点需要特别提醒触摸屏上的一键启动按钮其实并不是真正物理接入X端子的。在程序里我通过触摸屏内部软元件M0、M1、M2对应实现按钮功能PLC读取到M信号后进入对应状态机。X0-X12这些物理输入点主要用于接入急停、液位开关、泵反馈等关键保护信号保证即使触摸屏黑屏或通讯异常安全保护逻辑依然独立可靠。这个“硬件安全软件操作”的分离设计是我做这类项目时坚持的原则。3.3 电气接线中的几个关键细节硬件接线本身不复杂但有几个细节直接影响后期调试效率值得单独说一下。第一PLC的COM端子接线必须仔细核对。FX3U继电器输出的COM端通常分为两组Y0-Y7共用COM1Y10-Y15共用COM2两组之间是隔离的。如果电磁阀回路里既有AC220V又有DC24V负载务必分组接入不同COM端子不能混接否则容易造成烧毁或干扰。第二液位开关接入PLC输入时要根据是常开还是常闭触点合理配置。水箱高液位我通常接常闭触点正常状态一直闭合到达高液位时断开这样即使液位开关断线系统也会误以为满水而停机不会发生溢水事故。这是fail-safe的思路虽然简单但能防住不少麻烦。第三泵的运行反馈信号要接到PLC输入不要只用接触器线圈电压判断泵是否在运行。因为接触器线圈得电不代表电机真正转起来了比如热继电器跳闸或者缺相接触器吸合了但泵不转光看PLC输出状态根本发现不了问题。4. 核心程序逻辑三个“一键”背后的状态机设计4.1 程序整体框架PLC程序我用GX Works2编写整体框架非常简单清晰第一段初始化逻辑。上电后清除所有输出复位所有模式标志位设备进入待机状态。第二段硬件自检。检查急停信号、液位状态、压力开关状态任何一项异常都禁止启动。第三段三个模式的状态机主体。使用步进梯形图指令STL编程用S0-S49各步代表模式内的不同阶段。第四段公共报警处理。包括超时报警、液位异常报警、压差报警、故障停机处理。第五段触摸屏数据交互。将运行状态、报警信息、累计运行时间等发送给触摸屏显示。整套程序大概不到300步梯形图指令工作量并不大但设计状态机转移条件时需要把工艺条件和安全条件都考虑进去。4.2 一键制水的程序时序制水模式启动后状态机依次经历以下步骤第一步预处理进水。先打开进水电磁阀Y2延时3秒后启动原水泵Y0。之所以先开阀再启泵是为了避免泵空转或憋压。原水泵启动后压力开关应该能在数秒内检测到压力建立如果在10秒内仍检测不到压力系统报警停机。这是判断前级断水、滤芯堵塞的重要手段。第二步预处理运行时间。系统进入“预处理工作”阶段水经过机械过滤器、活性炭过滤器通过进水阀进入RO膜进水侧。这个阶段的持续时间我一般设定为30秒缓冲同时用来稳定流量和压力。第三步RO膜启动。预处理压力稳定后打开RO进水阀Y4启动高压泵Y1。高压泵启动后要先让RO膜系统建立压力延时10-20秒后再打开产水阀Y5。为什么不能同时打开因为如果产水阀过早打开RO膜进水侧压力尚不够产水量会很低大量的水从浓水侧流走白白浪费能耗和时间。第四步正常产水。产水阀打开后系统按设定好的浓水排放比例通常为回收率50%-75%对应调节浓水阀进入正常产水状态。此时触摸屏上实时显示系统运行时间、当前产水电阻率并监测水箱液位。第五步水箱满自动停。当X4高液位开关动作水箱满水状态机进入停机关阀步骤先关闭高压泵延时10秒让膜组件泄压再关闭原水泵最后关闭进水阀和产水阀。这样做的目的一是防止管路中残留高压水对膜造成水锤冲击二是让膜组件在停机后保持湿润状态避免干膜。整段流程用步进梯形图写下来其实就是围绕着“延时启动、顺序关停、条件互锁”的典型时序。搭配触摸屏上“运行状态”指示灯操作人员可以清楚地看到当前系统处于哪一步。4.3 一键反洗的程序细节反洗和正洗这两个模式常常被轻视但恰恰是延长RO膜寿命的关键。很多设备七八个月就换膜往往是反洗程序没做好。反洗模式的设计思路是在RO膜产水侧注入清洁水反向穿过膜表面把膜表面积累的污染物冲刷下来从浓水侧排放掉。程序流程如下第一步系统转入反洗准备状态。先关闭产水阀Y5和进水阀Y4停止高压泵。这一步必须保证反洗启动前整个RO膜系统处于低压待机状态否则反向压力会直接损伤膜结构。第二步打开反洗排水阀和反洗进水阀。这部分要根据现场管路具体布局调整阀门逻辑。典型做法是打开清洗水箱到膜产水侧的管路阀门同时打开膜浓水侧排水阀让反洗水流方向与产水方向相反。第三步启动反洗泵Y7。反洗泵启动后将清洗水箱中的纯水以低速低压反向注入膜组件。反洗压力一般控制低于正常运行压力这个压力不能靠PLC调节而是靠泵和管路特性物理保证。我在设计时选配了低压反洗泵并设置管路溢流保护阀防止误操作引起高压。第四步反洗时间控制。PLC内部用定时器设定反洗时长通常在10-30分钟之间具体依污染程度调整。反洗时间到自动停泵关阀。第五步自动切换正洗模式。反洗结束后系统自动进入正洗状态不需要操作工再按一次正洗键。这个自动衔接逻辑能避免现场操作人员忘记执行正洗而直接切回制水模式的危险操作。4.4 一键正洗的程序细节正洗模式和反洗的本质区别是水流方向与制水方向一致但压力较低。目的是洗掉反冲洗下来的污染物。正洗流程相对简单打开正洗进水阀启动原水泵或高压泵低扬程状态下同时打开正洗排水阀Y10。管路中的水流以低压大流量的方式把反洗松动后的污染物从膜表面冲刷到浓水侧排出。正洗时间通常设定为5-15分钟。时间到后如果是在“反洗-正洗”联动模式下系统自动进入待机状态如果操作工在反洗前单独按了正洗键程序会在正洗结束后自动回到制水待机状态等待下一次启动指令。之所以要强制“反洗后必须正洗”正是因为反洗过程中膜表面的污染物虽然被冲起来但还悬浮在膜组件内部如果不及时用正洗将污染物彻底带走污染物会在膜表面重新沉降等于白洗。4.5 程序中的互锁与保护逻辑控制系统的安全性最终体现在互锁逻辑上。这套系统的互锁主要有几个层面模式互锁制水、反洗、正洗三个模式之间互锁任何时刻只能激活一个模式。触摸屏按钮在条件不满足时显示灰色PLC端再做一层软元件判断双保险。泵阀互锁任何泵启动前相关阀门必须先打开任何阀门关闭前相关泵必须已经停止。这个逻辑主要在状态的进入和退出条件里保证。液位联锁水箱低液位时禁止制水模式启动防止泵抽空高液位自动停机。低液位启动、高液位停机这是整个无人值守运行的核心依据。压力保护原水低压时制水模式自动报警停机反洗模式下泵后压力过高触发泄压或停泵。超时保护状态机内每一步设置超时定时器。比如“打开进水阀后3秒内应建立压力”“启动高压泵后15秒内产水阀管路应充满”如果超时PLC认为管路故障或传感器异常立即停机和报警并在触摸屏上显示具体超时步骤。提示超时保护逻辑特别重要尤其对于无人值守设备。很多设备夜间故障就是因为缺乏超时判断泵“空转”了一整夜磁力泵干磨烧毁的事件不在少数。5. 触摸屏画面组态从按键到可视化的操作逻辑5.1 画面结构规划触摸屏的组态我用的是组态软件里自带的通信驱动关键是选对PLC协议和站号。画面结构我分了四个页面首页模式选择界面三个大大的按钮——制水、反洗、正洗以及急停状态显示。这是操作工平时只需要面对的画面。运行监控界面显示系统当前所处模式、运行步骤、各泵阀状态、液位状态、产品水电阻率、累计产水时间等信息。供日常巡检和排查用。参数设置界面密码权限登录后才能进入。这里可以修改反洗时间、正洗时间、缓冲延时、超时定时等参数。正式交付后建议把密码交给现场负责人避免操作工乱调。报警历史界面记录并显示历史报警事件带时间戳方便维护人员回顾设备故障原因。5.2 一键操作的人机交互设计在设计三个一键按钮时我的习惯是加一个确认弹窗。手抖误触在车间现场太常见了一个确认弹窗能避免很多不必要的麻烦。比如操作工在制水过程中无意触到“反洗”按钮如果直接执行反洗轻则打断正常生产重则憋压损伤管路。具体的交互流程是按下“制水”键 → 触摸屏弹出确认窗口“确认启动制水模式”点击“确认” → PLC收到M0信号进入状态机点击“取消” → 不执行任何动作回到待机界面另外触摸屏里还要给三个按钮的状态做条件显示。比如当系统处于“产水运行中”时反洗和正洗按钮是灰的操作工自然就知道当前不允许切换。这个可以从PLC状态字映射到触摸屏位指示灯来实现。5.3 通讯设置触摸屏和三菱FX3U的通讯一般用RS422或RS485。实际操作中我推荐用触摸屏的RS485口直接用两线接PLC的485BD板。通讯参数设置要注意两点第一PLC侧的通讯参数包括波特率、数据位、校验位必须和触摸屏组态软件里设置的完全一致。默认情况下三菱FX3U编程口的波特率可能是96008位数据偶校验1位停止位具体以编程口参数设置为准。第二触摸屏组态时选的“三菱FX系列”协议通常默认站号为0如果没有特殊原因不要随便改成其他站号。跑不通时先查这两项八成问题都在这里。6. 实测运行与常见问题排查记录6.1 调试初期遇到的现象第一台设备通电调试时遇到的第一个问题就让人印象深刻。触摸屏上按“制水”泵不启动屏幕上却显示“原水泵已启动”。排查了半天发现问题出在泵运行反馈信号的采集方式上。现场电工把接触器辅助触点接到了PLC输入端但接触器辅助触点供电时产生抖动PLC在几毫秒内误判了反馈信号。当时程序里泵启动后要检测反馈信号上升沿结果因为抖动检测到的上升沿不被程序确认导致状态机卡死在启动步骤。解决方法是程序里对反馈信号做了50ms的去抖延时处理这在工业现场非常常见。PLC不是单片机不需要追求微秒级响应几毫秒的去抖窗口能滤掉绝大部分触点抖动。6.2 反洗压力莫名的偏高第二个问题出现在反洗管路调试期间。反洗泵一启动管路压力就异常升高如果把反洗泵出口阀门开大压力会更高几乎接近正常产水压力非常危险。排查后确认问题出在管路设计上反洗管路与RO高压泵出口管路之间没有加装止回阀高压泵运行时的高压水倒灌至反洗管路把止回阀顶开了导致压力串联。解决方案也很简单在反洗泵出口增加一个止回阀同时在反洗管路上安装压力表方便现场观察反洗压力是否正常。这件事给我的教训是程序写得再严谨硬件管路上的防护缺失一样会出大问题。做水处理系统设计一定要懂得管路工艺而不只是懂PLC逻辑。6.3 触摸屏偶尔通讯中断调试现场还出现过触摸屏偶尔显示通讯故障的问题。排除接线问题后发现是PLC编程口与触摸屏通信线距离过长现场布线柜内线管长达20米而且线缆没有采用屏蔽双绞线。重新换成屏蔽双绞线后把屏蔽层单端接地故障彻底消失。注意FX3U的编程口电缆如果超过3米最好用RS485接口连接触摸屏不要靠编程口直连。编程口适合短距离调试长距离通信稳定性一般容易出现偶发断线。这是经验之谈。6.4 无人值守模式的夜班考验真正验证无人值守逻辑有效性的是设备投用之后的第一个月。客户反馈非常好夜班不再需要有人专门守在设备边上了。水箱满水自动停机低液位自动启动产水电阻率稳定维持在16兆欧以上。唯一一次报警是预处理过滤器压差过高系统自动停机并触摸屏上弹出了维护提示操作工第二天换了滤芯重新开机一切正常。这说明程序里的维护提醒功能效果符合预期。我在系统里加了“预处理使用累计时间”寄存器每运行1小时累加1超过预设值后触摸屏提醒更换滤芯。这种主动维护提示让设备从“坏了再修”变成了“到期维护”客户非常认可。6.5 常见问题速查表现象可能原因排查思路制水启动后泵不转液位低联锁未解除、急停被按下、原水低压报警查看PLC输入状态按顺序解除联锁条件高压泵启动后产水量小浓水排放阀开度过大、RO膜堵塞检查浓水阀开度记录正常值对比反洗时压力异常升高管路止回阀方向接反、阀门未正确切换检查管路切换阀逻辑对照I/O表确认输出触摸屏直接黑屏电源损坏、通讯故障、背光板故障先量24V电源再排查通讯阻值系统自动关机没有报警水箱高液位触发正常停机检查触摸屏报警历史看停机前是否有预报警产水电阻率持续偏低RO膜破损、预处理失效、EDI模块老化分级取样测各段水质锁定问题段位7. 实操过程中的几个经验心得整套系统从设计到调试交付前后花了不到两周的时间。回想整个过程有几个经验值得特别强调。第一程序是辅助工艺是根本。PLC程序只是把水处理工艺人员脑子里那套流程固化下来写程序之前必须吃透工艺。我不建议电气工程师不懂水处理就贸然开写每个延时、每次开关阀的先后顺序背后都是工艺逻辑。最稳妥的办法是先和工艺工程师把流程图画清楚双方签字确认再动手写程序。第二程序设计要尽量简单可读。之前看过一些老师傅写的PLC程序大量使用辅助继电器步进指令跳来跳去别人很难维护。我的原则是能用一个步骤说明白的绝不用三个辅助继电器绕来绕去。设计时多花半小时想清楚逻辑调试时能少花一整天排查故障。第三触摸屏操作权限要做分级。参数设置页一定要加密码锁。不加密码的后果是操作工可能会因为今天产水慢了就把正洗时间调到10分钟明天又把反洗时间从20分钟改成50分钟整个运行参数变得一团糟最后设备坏了还怪控制系统不行。第四设备投产前务必给客户操作人员做一次系统的现场培训。不是发一份操作手册就完事而是把三个模式挨个演示一遍再让他们自己操作一遍。无人值守的前提是操作人员理解系统什么时候会自动干预什么时候需要他来处理培训到位能省掉后续大量售后电话。最后再分享一个小技巧。我在触摸屏的首页加了一个“今日产水时间”的显示框用PLC内部时钟每天自动清零。客户每天上班扫一眼这个数字就能判断出昨天晚上设备是否正常运转。有了这个直观的反馈设备运行状态一目了然。很多看似不起眼的小功能实际使用中对用户体验的提升非常明显。