做水处理自动化这行,前前后后也经手过不少项目,但像这种设计规模120吨/小时的脱盐水系统,反渗透加混床双工艺串联,还要求在触摸屏上实现“一键启动”,说实话每次做都有新的心得可以聊。整个系统从原水泵抽水到混床出水,中间隔着多介质过滤、活性炭吸附、保安过滤、RO反渗透膜组、中间水箱、混床离子交换,传统手动操作光是开机停机就得在设备间和二楼主控室之间来回折腾好几趟,更别说混床再生的时候那几十步阀门动作,稍不留神就误操作。
这篇文章就围绕这套系统的实际落地过程来写,重点说清楚几件事:一是这套工艺的控制难点到底在哪,二是西门子博途软件里怎么把“一键流程”编成可靠可维护的程序,三是现场调试时踩过的坑和排查思路。不管你是刚入行的水处理工程师,还是准备做类似项目的自动化同行,这篇应该能帮你少走不少弯路。
1. 项目整体工艺与自动化架构设计
1.1 120吨/小时水处理的核心工艺流程
这套系统处理的来水水质是地表水加部分中水回用的混合水源,电导率波动比较大,在800到1500微西门子每厘米之间浮动。产水目标呢,混床出口电导率要稳定压到0.2微西门子每厘米以下,二氧化硅控制在20微克每升以内,供后续工艺使用。120吨/小时是产水量,也就是RO产水加混床产水的综合出力。
工艺流程大致分三段:
- 预处理段:原水泵提升,经过多介质过滤器(石英砂加无烟煤双层滤料)和活性炭过滤器,去除悬浮物、胶体和部分余氯,然后进入保安过滤器(5微米滤芯)做最后一道保护,防止颗粒物进入RO膜组件。
- RO脱盐段:保安过滤器出水经高压泵加压进入反渗透膜组,RO膜按一级两段排列设计(比如一级两段4比2排列),回收率控制在75%左右。RO产水进中间水箱,浓水排至回收水池。
- 深度脱盐段:中间水箱的水通过升压泵送入混床(阳离子交换树脂和阴离子交换树脂按1比2比例填装),混床出水进入成品水箱。混床运行到终点后自动进行再生,酸碱再生系统配套两个计量箱和两台计量泵,再生废液中和处理后排放。
控制系统的改造目标很明确:把原来分散在现场就地控制的泵、阀、仪表全部收入一套西门子PLC系统,在中控室触摸屏和上位机上进行集中监控。核心功能就是“一键”——操作员只在画面上点一下“系统启动”或“系统停止”,PLC按照预设工艺顺序自动完成所有设备的启停、阀门的开关、参数的调节和联锁保护。
1.2 为什么要做“一键化”控制:从手动到自动的升级逻辑
很多人可能会想,水处理系统用PLC做自动控制不是常规操作吗,何必专门强调“一键化”?但真去过现场就知道,很多中小型水站所谓的自动控制,其实还是半自动——每台泵有个就地按钮,阀门靠人跑去开,液位靠人盯玻璃管,启机的时候操作员要按顺序一个一个送电,停机的时候又得跑一圈去关阀门。这套120吨系统要是还保持这种操作方式,每天启停两次意味着操作员至少要在车间里跑两三个小时,而且非常容易出错。
改造前我也跟业主聊过,他们之前出过一次事故:夜班操作员启动RO高压泵的时候忘记检查进水阀开度,结果憋压,膜壳端盖直接冲开,整个膜组报废,损失不小。这个案例其实特别典型,说明手动流程最大的问题不是“慢”,而是“不可控”——任何一步漏操作、错顺序,都可能造成设备损坏甚至人身安全风险。
一键化控制的价值就在这儿:
- 把标准操作流程固化到程序里,消除人的随机性和疲劳因素;
- 开机、停机、混床再生这种高频操作自动化后,响应速度更快,系统更稳定;
- 每一步工艺动作都有联锁条件保护,条件不满足就拒绝执行,杜绝误操作;
- 操作记录、报警记录自动存储,方便追溯和优化。
当然,一键化不是说完全不让人参与,而是把人从“执行者”变成“监督者”。操作员依然要监视运行状态、确认报警信息、处理突发情况,但那些重复性的、有固定顺序的操作,交给PLC去执行更可靠。
1.3 控制系统的硬件选型与网络架构
这套系统的控制规模属于中等偏上。统计下来,数字量输入DI约96点,数字量输出DO约64点,模拟量输入AI约32点(流量、压力、液位、电导率、pH、温度、余氯等),模拟量输出AO约8点(高压泵变频给定、计量泵冲程调节等)。加上余量,最终IO总点数在220点上下。
CPU我选了西门子S7-1500系列,具体型号是CPU 1511-1 PN。当时对比过S7-1200,但考虑到后续可能需要扩展PROFINET从站,以及程序里PID调节和顺序控制的扫描周期要求,S7-1500余量更足。IO机架采用分布式架构,主站加两个ET200SP从站,分别布置在配电室和膜车间,这样信号电缆不用全部拉回中控室,接线成本省不少。
网络架构是这样:CPU通过PROFINET总线连接两个ET200SP远程IO站,同时连接一块西门子KTP700触摸屏。上位机用WinCC Runtime Advanced跑在一台工控机上,通过以太网与CPU通信。预留了MODBUS TCP接口,方便以后接入厂级管理系统。
硬件选型的时候有几个细节值得注意:
- 模拟量模块要选带诊断功能的,方便排查断线或超量程问题;
- 所有DO输出回路加中间继电器隔离,保护PLC输出点不被现场感性负载反电势打坏;
- 高压泵和加药泵用变频器控制,通信方式采用PROFINET,既省模拟量接线又能实时监控变频器状态。
2. 西门子编程环境搭建与组态要点
2.1 TIA Portal版本选择与硬件组态
软件开发用的是西门子TIA Portal V17,也就是博途平台。这个版本支持S7-1500全系列,也能统一搞定PLC程序、HMI画面和WinCC Runtime组态,不用像老一代Step7那样在几个软件之间来回切换,确实省事不少。
组态的时候有几个关键步骤:
- CPU属性里启用“循环OB”里的周期时间监控,设置最大循环时间150毫秒,避免程序跑飞后系统无响应;
- 创建一个PROFINET网络,把两个ET200SP从站分配上去,设备名称要提前规划好(比如IO-RACK1、IO-RACK2),后面程序里访问IO变量全靠设备名称加模块地址;
- 触摸屏KTP700和其他HMI设备也要挂到同一网络里,分配IP地址,注意和工控机、PLC的IP段保持一致,比如都规划在192.168.0.x网段。
组态完成后再编IO变量表。这一步是基础工作,直接关系到后期编程效率。我有一次贪快没认真规整变量表,到调试阶段找信号就快疯了,后来老老实实定了一套命名规则:设备代号_信号类型_功能描述。比如P101_RUN_FB代表原水泵P101的运行反馈信号,FT201_PV代表流量计FT201的过程值。
2.2 I/O点表规划:把工艺信号变成程序变量
I/O点表是整个系统接线和程序之间的桥梁,务必做细。我习惯先把工艺图纸上的全部仪表和设备清点一遍,然后分类编点表。拿这套120吨系统举例,部分典型点位如下:
| 位号 | 设备/仪表 | 信号类型 | 量程/说明 | 地址 |
|---|---|---|---|---|
| FT101 | 原水进水流量 | AI | 0~200 t/h | IW64 |
| PT201 | RO进水压力 | AI | 0~2.5 MPa | IW80 |
| PT202 | RO高压泵出口压力 | AI | 0~2.5 MPa | IW82 |
| QI301 | 混床产水电导率 | AI | 0~100 μS/cm | IW96 |
| LT101 | 原水箱液位 | AI | 0~4 m | IW112 |
| P101_RUN | 原水泵运行反馈 | DI | 常开触点 | I0.0 |
| P101_FAULT | 原水泵故障 | DI | 常闭触点 | I0.1 |
| HV101_OPEN | 原水泵进水阀开到位 | DI | 常开触点 | I0.2 |
| K101_START | 原水泵启动 | DO | 中间继电器 | Q0.0 |
| HV101_OPEN_CMD | 进水阀开命令 | DO | 中间继电器 | Q0.2 |
点表编制完成后要做三件事:一是跟电气图纸核对地址,确认PLC模块通道和现场端子一一对应;二是把每个模拟量信号的范围、量程、工程单位写清楚,方便后面编程时换算;三是确认远传信号类型,是4到20毫安还是0到10伏,涉及模块量程卡设置。
2.3 模拟量处理与工程量换算
模拟量处理这块,博途里的方法比较灵活。我一般用FC封装一个模拟量标准化功能块,输入原始值IW,输出对应的工程量浮点数,内部做归一化计算。比如4到20毫安信号,数字量0到27648对应量程下限和上限(有些模块以27648对应20毫安,注意不是32767)。换算公式:
工程量 = 量程下限 + (原始值 / 27648) × (量程上限 - 量程下限)
如果用SCL写的话,代码就几行,而且后期复用很方便。我习惯单独建一个“AI处理”FB,把这些公式写到里面,每个模拟量通道调用一个实例,同时做断线检测——如果模块返回十六进制7FFF,说明信号超量程或线路断开,程序里要置报警位。
还有一个小细节:RO系统里的高压泵出口压力值特别关键,量程选大一点(0到2.5兆帕),换算误差控制在0.5%量程以内就足够了。压力信号不光是显示用,还要参与联锁保护,所以滤波时间常数也要设好,我通常用1秒的移动平均滤波,太短容易误动作,太长反应不过来。
3. 一键启停的核心程序实现
3.1 用步进控制搭出“一键启动”主流程
一键启动是整个改造项目最核心的程序功能。工艺顺序控制用“步进”思路实现,这是工业顺序控制的经典方法,比一堆定时器乱跳可靠得多,也方便故障排查。
简单说,就是把整个启动过程拆成若干个状态步,每一部完成并满足条件后“激活”下一步,没完成就停留在当前步并报警。程序用SCL的CASE语句或者梯形图加步号指针都能实现。我习惯用SCL写,因为可读性好,逻辑改动也方便。
一键启动的主流程是这样:
- 系统就绪检查:原水箱液位不低于0.8米、成品水箱液位不高于3.6米、所有阀门处于关位、所有泵处于停止状态、仪表无故障。条件不满足就弹出画面提示,不进入下一步。
- 打开原水泵进水阀HV101,同时打开多介质过滤器的进水阀和排气阀。这个过程要等待阀门开到位反馈,一般给30秒超时,超时报警“阀门开超时”。
- 启动原水泵P101,压力上升后,依次投运多介质过滤器和活性炭过滤器。每台过滤器投运前都要排气,否则憋气会影响过滤效果。
- 确认保安过滤器进水压力正常(大于0.2兆帕)后,打开RO进水电动阀,然后启动RO高压泵。这里要特别小心,高压泵必须在有进水的情况下启动,严禁空载运转。
- 高压泵启动后,PLC通过变频器逐步升频到设定值(比如45赫兹),升频速率不要太快,每秒2赫兹左右,给膜系统一个缓冲时间。
- RO运行参数正常(产水流量、压力、电导率在设定范围)后,打开RO产水阀,RO产水进入中间水箱。
- 中间水箱液位超过1.5米后,打开混床进水阀,启动升压泵,混床开始产水。
- 混床产水电导率稳定(小于0.5微西门子每厘米)后,打开产水阀向成品水箱送水,系统进入正常运行状态。
这套流程里每一步都有明确的启动条件和完成条件,步与步之间用交接条件衔接。实际操作时,操作员只需要在触摸屏上按下“启动”,程序就会自动按顺序跑完。
3.2 泵阀控制FB块与联锁保护逻辑
编程时泵类和阀门的控制逻辑被封装成通用FB块,减少重复代码。比如泵控制FB输入端有启动指令、停止指令、手自动模式、运行反馈、故障反馈;输出端有启动命令、停止命令、故障报警;内部还处理保护联锁逻辑。
泵的保护联锁必须做到“宁可误停不可少停”的原则。以下几个联锁条件我在这套系统里是硬接进程序的:
- 原水泵:原水箱液位低低于0.5米延时3秒跳泵;
- 高压泵:进水压力低于0.1兆帕延时2秒跳泵,出口压力高于1.6兆帕立即跳泵,变频器故障跳泵;
- 升压泵:中间水箱液位低于0.8米延时3秒跳泵,混床进水压力高于0.5兆帕跳泵。
阀门控制逻辑相对简单,但要处理“开到位/关到位”双反馈。现场电动阀执行机构有全开和全关两个限位开关,程序里判断阀门实际状态要等限位到位信号稳定后再采用,避免中间位置误判断。阀门开到位或关到位超时也要报警,时间设定通常是45秒。
RO高压泵的变频控制是整个系统里比较讲究的部分。我用一个PID回路控制高压泵出口压力,反馈值是泵出口压力变送器,给定值是操作员在画面上设定的目标压力(通常在1.0到1.2兆帕之间),输出接到变频器频率给定。PID参数现场整定,我通常用P=0.8,I=10秒/次,D=0,先试运行再调整。变频器加减速时间也设置成10秒,防止压力冲击膜组件。
3.3 混床再生自动化的编程思路
混床再生是整个系统里步骤最多、最容易出问题的环节,也是“一键化”体现价值最明显的地方。手动再生的操作步骤多达三四十步,稍微分心就可能忘记开关某个阀门。自动化后,操作员只需要选择“混床A再生”,程序按固定流程自动执行。
混床再生的标准流程是:反洗 → 沉降 → 进酸 → 进碱 → 置换 → 正洗 → 待运。
程序里我用独立的步序列实现,每一步都定义运行时间和完成判定条件:
- 反洗:打开反洗进水阀和反洗排水阀,启动反洗水泵,反洗流量先小后大,防止树脂冲出。反洗时间15分钟,以出水变清为结束条件(实际上以时间为主,结合出水浊度判断)。
- 沉降:停止反洗,让树脂自然沉降,时间5分钟。这一步不能省,树脂没有沉降好就进酸碱会造成偏流,再生效果大打折扣。
- 进酸、进碱:打开酸、碱计量泵和相应阀门,从混床上下两端分别注入,酸碱浓度通常盐酸3%到5%,氢氧化钠3%到5%,进药时间按树脂体积和药剂浓度计算,一般40到60分钟。
- 置换:关闭酸碱计量泵,用除盐水从混床顶部往下冲洗,把树脂缝隙里的酸碱置换出来,时间15分钟。
- 正洗:加大冲洗流量,洗到出水pH接近中性(6到7),电导率小于5微西门子每厘米,合格后待运。
- 待运:阀门复位,混床进入备用状态,等待投入运行。
再生的每一步之间都有条件衔接和超时报警,如果设备故障会自动停在当前步,并在画面弹出提示,等故障恢复后再继续。这样即使半夜自动再生,也不需要有人专门盯着。
3.4 HMI画面与WinCC Runtime设置
HMI画面的设计直接影响“一键化”的使用体验。KTP700触摸屏上的主画面我规划了四个区域:
- 顶部是系统总貌图标和关键报警灯;
- 中间是工艺流程图,管道、设备、阀门、仪表都用动态色块和数字显示,运行中的设备显示绿色,停止的显示灰色,故障的红色闪烁;
- 底部左侧是一键启动、一键停止、急停三个大按钮,这是操作员使用率最高的控件;
- 底部右侧是参数显示区,实时刷新关键指标。
“一键启动”按钮的脚本逻辑很简单,就是置位一个启动请求位M。PLC里检测到这个请求后,自动推进步骤。同时为了防止误触,按钮按下后弹出确认对话框,要求操作员再次确认才执行。这个设计虽然多了一步,但能有效防止误操作。
WinCC Runtime Advanced的组态与触摸屏类似,但画面更大,信息更全。我习惯在电脑上增加趋势曲线画面和报警记录画面,方便分析运行趋势和查找历史报警。报警记录要设置优先级和分组,紧急报警置顶闪烁,一般报警只在列表里记录。
4. 调试实录与常见故障排查
4.1 现场调试遇到的三个典型坑
这套系统从编程到投入运行,现场调试花了三周时间。大的问题遇到过几个,都很有代表性。
第一个坑是模拟量信号干扰。RO高压泵变频器启动后,触摸屏上进水压力数值跳得特别厉害,从0.3兆帕到1.5兆帕之间来回乱跳,差点触发低压跳泵保护。排查下来是变频器输出电缆和压力变送器信号电缆在同一电缆桥架里敷设,间距太近。后来把信号电缆挪到桥架对侧,并在变送器侧采用屏蔽层单端接地,改造之后信号马上就稳定了。这里要提醒大家:模拟量信号电缆和动力电缆必须分开敷设,间距至少30厘米,屏蔽层按规范单端接地,不要两头都接。
第二个坑是阀门反馈信号抖动。现场电动阀的开到位限位开关在阀门全开后会有轻微抖动,导致程序里阀门状态在“开到位”和“中间位置”之间反复跳动,干扰下一步动作判断。解决办法是在程序里给阀门反馈信号加延时确认,限位信号保持200毫秒以上才认为状态可靠。这个滤波时间不能太长,否则阀门真正卡住时会延迟报警,200毫秒左右比较合适。
第三个坑是混床再生时酸碱计量泵的流量飘移。刚开始用模拟量给定冲程,结果流量和设定值偏差很大,导致进酸碱时间到了但实际药量不够。后来现场校验泵的实际流量,在程序里做了流量累计和校正——设定总注入量,用流量计实时累计,到位后停止。这套方案比定时控制准确得多,现在这类项目我都会用累计流量控制加药。
4.2 常见问题速查表
调试和试运行期间积累了不少现场问题的处理经验,整理成表格方便查阅:
| 现象 | 可能原因 | 排查思路 | 处理措施 |
|---|---|---|---|
| RO产水量下降 | 膜污染或结垢 | 查看RO进水压力和产水压力差,检查进水余氯和SDI值 | 化学清洗或优化预处理加药 |
| 高压泵频繁跳闸 | 超压保护或变频器过流 | 检查出口压力设定、变频器参数、进出水阀开度 | 调整PID设定,检查阀门开度 |
| 混床产水电导率超标 | 树脂失效或偏流 | 检查树脂层高度和布水装置,测定出水电导率趋势 | 提前再生或检修布水装置 |
| 一键启动中途停止 | 某步骤条件不满足 | 查看当前步号、报警信息,定位卡在哪个设备 | 处理报警后继续,或手动复位后重启 |
| 模拟量显示偏差大 | 量程标定错误或信号干扰 | 核对模块量程卡和PLC换算系数,检查屏蔽接地 | 重新标定或改造敷设方式 |
| 远程操作无响应 | PROFINET通信中断 | 检查以太网线连接、IP地址、设备名称 | 恢复通信,重新下载组态 |
一键启动中途停止是操作员最关心的场景。程序里我专门做了“断点续跑”功能——如果启动过程中发生报警停机,操作员处理完报警后可以选择“继续启动”,程序从当前步接着往后执行,不需要全部从头来。这个功能特别实用,能节省大量时间。
4.3 一键自动化系统的运维建议
项目交付后,我还会跟业主强调几件维护上的事情,这些在运行中都是花钱买来的教训:
第一,传感器和仪表要定期校验。系统再智能,采集到的信号不准,所有自动判断都是空中楼阁。压力变送器建议半年校验一次,电导率探头根据水质情况定期清洗,pH计电极每两周校准一次。
第二,阀门的机械维护不能忽视。电动阀、气动阀执行机构的密封圈和限位开关是易损件,遇到开卡或者信号丢失要及时更换。程序判断再精巧,阀门执行机构坏了还是白搭。
第三,程序备份要做到位。每次修改程序后都要用存储卡或者项目档案备份,防止CPU故障或者误操作导致程序丢失。有条件的话把博途项目文件放在网盘或版本管理工具里,做好版本记录。
第四,树脂和膜的耗材管理要有台账。记录每次更换时间、累计运行水量,结合水质数据判断更换周期,避免过度使用导致产水质量下降。
调试和试运行这段时间,我对这套“一键自动化”系统的体会挺深的。做自动化的目标从来不是把流程变复杂,而是把流程变简单,让操作员用得顺手、用得放心。程序里每一步逻辑都要从操作员的角度去想——他打开这个画面第一眼看到什么,误触了会不会出大问题,报警弹出来能不能看懂该干嘛。这套120吨水处理系统交付运行后,业主反馈说原来每天开停机要两个人跑个把小时,现在一个人在中控室点点按钮就全搞定了,混床再生也从原来的人工盯着变成了夜晚自动完成。听到这种反馈,就知道当初折腾的那些日日夜夜都值了。