干污水处理自控这些年沉淀池加V型滤池这套深度处理组合在提标改造项目里实在太常见了。前年底我们接手一个县城水厂的中控改造规模不大2万吨/天的设计水量原工艺是“初沉池AAO二沉池”提标后上了“高密度沉淀池V型滤池”随之而来的就是成套的控制系统改造。项目定方案时甲方对品牌没有硬性要求但我们几个老伙计一商量还是定了西门子S7-300做下位机、组态王做上位机。这套搭配在市政水处理行业里保有量极大会的人多备件好买后期维护压力小。调试完成至今系统稳定运行了两个多月把中间踩过的坑、解决过的怪问题整理出来给正在做类似水厂自控改造的朋友做个参考。这篇文章围绕S7-300与组态王这套控制方案讲清楚工艺控制逻辑、硬件配置、上位机开发以及现场调试的真实经验。1. 工艺背景沉淀池和V型滤池在污水厂里扮演什么角色1.1 从二级出水到深度处理滤池为什么绕不开很多朋友一听到“V型滤池”第一反应是自来水厂的东西。实际上随着污水排放标准从一级B提到一级A甚至部分地方提到准四类污水厂就必须在二级处理后面加深度处理段。V型滤池因为滤速高、截污能力强、出水水质稳定成了近年来污水厂提标改造的标配。它靠均质石英砂滤料拦截悬浮物配合“气冲气水联合冲水冲”的三阶段反冲洗方式能把滤料冲洗得非常干净。沉淀池在这里面的角色就是给滤池“减负”。高密度沉淀池通过混凝、絮凝、斜管沉淀把二级出水中大部分悬浮固体、总磷、部分COD先干掉让进入滤池的水浊度降到5NTU左右。V型滤池再兜底把出水浊度稳定控制在1NTU以下。工艺上这两个单元是串联关系但自控上它们是两个相对独立又需要联动的子站。沉淀池出水量波动直接决定滤池进水水量滤池反冲洗时排水量大又会影响沉淀池的水力负荷。这套控制系统如果不把这些关联考虑进去调试阶段大概率要返工。1.2 这套控制系统到底要管住哪些现场设备有些刚入行的朋友以为滤池自控就是控制几个阀门开关其实真正列起设备清单来相当庞杂。以我们这个项目为例现场主要分为两大部分。沉淀池部分设备进水电动蝶阀、混合搅拌机、絮凝搅拌机、斜管沉淀池刮泥机、排泥泵、污泥浓度计、泥位计、池内液位计、出水调节堰门。V型滤池部分设备滤池进水电动阀、清水出水阀、反冲洗气冲阀、反冲洗水冲阀、初滤废水排放阀、鼓风机、反冲洗水泵、滤池液位计、出水浊度仪、滤池差压变送器。光滤池我们就做了六格每格上面这些阀门都要独立控制全项目统计下来数字量输入输出点大约60点模拟量点16点左右。控制对象多、阀门执行器分散是这套系统最直接的痛点。阀门分布在几十米长的滤池廊道两侧执行器接线、限位反馈、故障信号都要可靠地进PLC哪个信号没接对调试时就是半个小时起步的排查时间。所以做这类项目IO点表和端子接线图必须提前做细现场施工队才不容易错。2. 为什么选S7-300加组态王硬件选型与控制架构2.1 S7-300在自控系统里的不可替代性说实话现在西门子推S7-1200/1500推得很凶新项目用1200的也越来越多。但污水处理行业有一大批老站、老中控室运行维护人员的知识库还是建立在S7-300和组态王上。S7-300的优势在于模块化程度高、DI/DO/AI/AO模块任意组合、机架扩展灵活而且几十年的市场沉淀让它的故障率低、替换件便宜。用CPU 315-2PN/DP这种带PN口的CPU一个网口就能和组态王走以太网通讯不用额外配CP343-1通讯处理器硬件成本也下来了。很多人纠结S7-300是不是老掉牙了。我的看法是水厂这种工艺环境控制逻辑并不复杂真正重要的是稳定。S7-300的循环扫描机制非常成熟梯形图/语句表编程资料满天飞项目移交给甲方后他们自己的电工也能看懂程序做修改。这一点在县城水厂尤其重要。甲方技术员翻着老旧的手写图纸长大你给他一套TIA Portal加1500他反而不知所措。所以方案选型不能只追新要考虑设备生命周期里的维护成本。2.2 控制柜的IO配置与点位估算点位估算是设计阶段最重要的一步。我们项目按40%余量来配IO点宁可柜子里多点空位不要后面想加点位却没法扩展。DI估算按每台电动阀3点开到位、关到位、故障算六格滤池阀门多再加上风机泵类的手动/自动/运行/故障信号DI合计45点。DO按每台电动阀2点开、关加风机泵启停合计30点。AI主要给液位计、泥位计、浊度仪、差压变送器合计16点。AO主要给鼓风机和反冲洗水泵的变频调速4点。这样算下来实际模块配置是这样的模块类型型号参考数量通道数实际占用余量电源模块PS307 5A1---CPUCPU 315-2PN/DP1---数字量输入SM321 DI16348453数字量输出SM322 DO16232302模拟量输入SM331 AI8216160模拟量输出SM332 AO41440这个配置里AI刚好没有余量后来现场浊度仪又补了一台只好在预留的第二机架上加了一块SM331。所以IO配置的教训是模拟量点位一定要多留几路仪表这东西现场最容易新增。2.3 下位机程序的结构设计含反冲洗步序逻辑S7-300的程序我习惯采用OB1加FC/FB的结构主程序里只做块调用和总联锁具体功能拆开。沉淀池和滤池是两个独立的大块沉淀池块管搅拌机、刮泥机、排泥泵滤池块按“六格单格控制”来做每一格滤池用同一个功能块FB复用块内通过背景数据块区分格号程序量小还便于维护。滤池反冲洗是整个控制系统的核心逻辑上必须做到无扰动切换。每格滤池反冲洗触发条件有两个一是运行时间到达设定周期比如24小时二是滤池差压到达设定上限比如0.08MPa两者取“或”关系。反冲洗过程我用一个整数步序字来管理每个步序一个数字程序里的定时器负责每步延时阀门到位反馈负责步序推进条件。步序表如下步序名称进水阀出水阀气冲阀水冲阀废水阀说明0过滤开开关关关正常运行1准备关开关关开停进水池内落水2落水关关关关开液位降至滤料面上3气冲关关开关开风机启动约3分钟4气水联合关关开开开风机水泵约5分钟5水冲关关关开开只水冲约4分钟6初滤开关关关开恢复进水初期水排放7恢复过滤开开关关关初滤完成切入正常运行这里有个很关键的细节步序推进的条件必须是“上一步的目标阀门全部到位”而不是“时间到了就切”。如果气冲阀开到位信号没来程序就在第3步卡住并报警宁可停下来等人处理也不能硬着头皮往下走否则轻则冲洗不干净重则水气串漏损坏滤头。沉淀池排泥控制相对简单采用“定时泥位”双重控制。每个排泥支管电动阀依次轮巡开启开启时间可调默认90秒同时污泥浓度计高报时优先启动排泥泵刮泥机与排泥泵之间加联锁刮泥机停时排泥泵禁止运行防止污泥板结在池底。3. 组态王上位机开发从通讯建立到画面组态3.1 通讯方式选择与“创建协议组件失败”的坑组态王和S7-300通讯有多种方式老项目常用MPI编程电缆速度慢但稳定新项目强烈建议走以太网前提是CPU带PN口或者柜内配了CP343-1。组态王里设备驱动选择“西门子S7-300TCP”填上CPU的IP地址机架号默认0槽号默认2端口102。如果用的是老式机架加CP343-1槽号要按硬件组态里的实际槽位填很多人在这里填错导致通讯一直建立不起来。通讯参数里有两个容易忽略的选项“尝试恢复间隔”和“命令超时时间”。现场如果交换机比较忙或者PLC站比较多把超时时间从默认的3秒适当提高到5秒能避免偶发性的通讯闪断报警。还有一个经验组态王的变量采集频率不要全都设成100毫秒模拟量设500毫秒到1秒就足够了采集太快反而消耗PLC通讯资源影响程序扫描周期。很多新手都会遇到“创建协议组件失败”这个报错。我这几年见过不下十次原因五花八门但最常见的是安装组态王时被杀毒软件拦截了部分组件或者系统缺少VC运行库。处理办法分几步走先用管理员身份运行组态王看问题是否消失不行就进入组态王安装目录下的驱动文件夹把S7 TCP驱动对应的DLL文件用regsvr32手动注册一遍还不行干脆卸载重装装的时候关掉杀毒软件。另外系统时间不对导致软件授权失效也会报这个错调准系统时间即可。3.2 变量管理与核心画面布局组态王里变量定义是最基础也最影响后续开发效率的环节。I/O变量必须和PLC地址一一对应绝不能靠“记得”去填。我习惯在Excel里做一张地址映射表PLC的I/Q/M/DB地址、组态王变量名、设备中文描述、量程上下限全部列成一张表先审查再录入。数字量连接PLC的I点和Q点模拟量连接PIW地址S7-300的模拟量输入从PIW256开始每通道间隔2个字变量数据类型要选对PIW读出来是0到27648的原始值量程转换就靠这个原始值按比例映射。画面布局上主画面是工艺总览把进水、沉淀池、滤池、清水池用统一的流程图符号串起来管道走向必须和现场一致。双击任意阀门能弹出操作面板面板上有“开/关/自动”三个按钮能显示阀门的实时状态。滤池控制画面单独做一张六格滤池并排显示每格上方画上液位、差压、浊度实时值反冲洗时用颜色动画区分气冲、水冲、气水联合冲三个阶段值班人员远远扫一眼就知道当前哪格在洗、洗到哪一步了。报警画面和趋势曲线是我每次评审必查的内容。报警变量要设置报警级别、报警死区防止阀门反馈信号抖动导致频繁报警。历史趋势曲线绑定关键模拟量出水浊度、滤池差压、反冲洗水流量这几条是运行人员每天都要看的必须保证有历史数据。变量属性里记得勾选“记录历史数据”否则趋势画面里查不到任何历史曲线。3.3 脚本联动与安全互锁怎么落地我在组态王里写脚本有一个原则能不放逻辑就不放逻辑。组态王的脚本能力确实强但它本质上是事件驱动的组态王一重启脚本逻辑全部消失。污水处理这种不能停电停机的场合联锁和时序必须放在PLC里兜底组态王只做操作面板、显示和报警。实际操作中组态王脚本用得最多的是“一键自动反洗”的操作提示和参数下发。比如运行人员在画面上点击“1号滤池反洗申请”脚本先检查当前是否有其他滤池正在反洗如果有就弹窗提示排队没有就通过置位PLC里的一个M点触发反洗流程。真正的反洗时序完全由PLC执行组态王只负责显示当前步序。这样即使组态王死机了PLC照常按步序跑完反洗不会卡在半空中。安全互锁方面有几条是绝对不能少的滤池处于过滤状态时反冲洗气冲阀和水冲阀必须强制关闭同一时间最多允许两格滤池同时反洗且两格不能同时进入水冲阶段否则反冲洗水泵变频会互相抢水鼓风机启动前必须确认气冲阀至少开了一个否则风机憋压损坏反冲洗废水阀没有打开时禁止进行任何冲洗步序。这些互锁我在PLC程序里用硬逻辑实现组态王里的按钮只是触发条件即使误操作PLC也会拒绝执行。4. 现场调试实录与常见问题排查4.1 调试时会遇到的典型问题调试阶段几乎每天都有新问题挑几个有代表性的写出来。第一个是反冲洗步序卡死。投运第三天2号滤池反洗走到气冲步序后迟迟不切到气水联合触摸屏上报“2号滤池气冲阀开反馈超时”。到现场检查发现气冲阀电动执行器已经开到全开位置但开到位限位开关没有压到位反馈信号一直是0。这种问题最容易出现在电动执行器行程调整不细致的现场。处理办法是重新调执行器行程把限位开关安装位置调整到准确触发的位置再用万用表确认反馈端子导通。后来我们要求施工队对每台阀门做“全行程开闭三次”的出厂测试到场后还要逐一核对反馈信号大大减少了这类问题。第二个是泥位计信号跳变。沉淀池泥位计装在刮泥机附近信号电缆和动力电缆一开始走了同一根桥架泥位值在画面上上下乱跳幅值能差出一两米。解决办法是把仪表信号电缆从动力桥架里抽出来单独走弱电桥架屏蔽层单端接地PLC柜内加装信号隔离器组态王侧对模拟量变量再设10秒平均值滤波。这套操作下来泥位信号基本稳定了。所以电缆敷设阶段强弱电分离这条纪律必须执行到位否则后期排查信号干扰的工时损耗远比省那一点桥架钱大。第三个是组态王历史数据不记录。这个问题的原因很隐蔽变量定义时没有勾选“记录历史数据”或者组态王的安装路径和数据库存储路径在C盘系统盘运行久了磁盘空间不够。检查发现是存储间隔设置得太密16个模拟量全部100毫秒存储一天就产生大量数据。后来把存储间隔改成5秒历史趋势曲线完全够用磁盘负担也下来了。这里有个实用技巧出水浊度、滤池压差这类缓变量5秒存一个点完全满足工艺分析需要不需要追求毫秒级存储。4.2 故障排查速查表把两年自控项目里遇到过的常见故障整理成一个速查表格现场排查时照着这个思路走能省一半时间。故障现象可能原因排查步骤组态王和PLC通讯中断IP地址冲突、网线松动、驱动组件失效先ping PLC的IP看网络通不通再查组态王设备通信状态最后看驱动DLL是否注册阀门动作但反馈不显示限位开关未调好、接线松动、DI点烧毁万用表测反馈端子通断短接测试检查PLC对应输入点指示灯模拟量数据显示满量程或零信号线断路/短路、量程卡插错位置、组态王量程设置错误用信号发生器在PLC柜侧加4-20mA信号核对AI模块通道灯和原始值反洗步序不推进到位反馈缺失、定时器冲突、程序步序字被异常改写查报警记录确认当前步序对应阀门反馈状态组态王按钮操作无反应M点地址冲突、PLC程序里互锁条件不满足先查PLC强制表再确认组态王变量写入值是否映射到正确地址鼓风机启动后立刻跳停气冲阀未开、风机出口压力过高、热继电器动作检查气冲阀状态和压力表确认启动互锁条件满足还有一条独家经验S7-300的程序在线监视功能在调试时一定要用起来。组态王显示的东西再花哨最终判断逻辑对不对直接看PLC里的状态字和M点最靠谱。我调试时习惯在程序里留一个DB数据块专门存放每格滤池的步序、时间戳、当前状态字在线监视这个DB整个反洗流程一目了然。5. 运行效果复盘与后续扩展5.1 投运后的数据变化系统正式投运后最明显的变化是滤池反洗周期稳定了。之前人工操作时运行人员怕出水超标往往保守地每10个小时就手动反洗一次不仅费水费电滤料还容易板结。自动控制投用后根据差压和时间双重条件触发反洗平均反洗周期拉长到22小时左右反冲洗水量和电耗都降下来了。出水浊度稳定在0.3到0.8NTU之间远低于设计要求的小于1NTU。沉淀池排泥自动化之后污泥浓度控制在正常范围刮泥机不再长时间空转设备损耗也小了。值班人员从原来每班2人盯着现场跑变成1人轮巡加中控室监盘用户对整体效果很满意。这套系统做下来我最大的体会是污水厂自控项目的成败七分在现场仪表和阀门选型安装三分在PLC程序和上位机画面。很多项目程序写得花里胡哨结果阀门反馈接错、仪表装在扰动大的位置整套系统照样跑不起来。S7-300和组态王这套组合虽然看起来没什么新意但胜在稳定、易维护、技术门槛低特别适合中小规模的市政污水厂。如果你也在做类似的水厂提标改造项目建议把精力多花在前期仪表选型、电缆敷设、执行器行程调试这些“笨功夫”上最后通电能顺顺利利远比临时救火查故障要踏实得多。