简介:西门子S7-200 SMART恒压供水项目程序包,面向电气工程师、自动化调试人员及水务相关从业者,主要解决多泵恒压供水系统的电机投切、频率调节与压力稳定控制问题。系统采用一台变频器控制一台水泵,共四台主泵、一台辅泵,可根据设定压力自动投切电机、自动升降频率,并通过PID调节维持管网压力恒定;PLC程序与触摸屏程序均带详细注释,界面友好直观,便于二次修改与现场维护。压缩包内共10个文件,包含8张JPG格式电气图纸及操作界面截图、1个TXT说明文件、1个HTML查阅页面,整体大小仅587KB,内容精简,适合快速查阅与部署。当前已有940人学习下载,该方案为实际工程在用,运行稳定可靠。获得后可按电气图纸完成接线,将PLC程序和触摸屏程序分别下载至对应设备,调试即可投入使用,有助于缩短项目开发与调试周期,适合需要快速落地恒压供水系统的技术人员参考。 做供水项目最怕的不是PID调不拢,而是业主一句话:"四台主泵加一台辅泵,一台变频控制一台水泵,你帮我搞稳。"这几乎是中小型恒压供水系统的标准需求——用西门子S7-200 SMART做控制器,配一块西门子触摸屏,再加变频器与水泵组成压力闭环,实现管网压力恒定。这套组合在小区二次供水、小型工厂生产供水、学校宿舍供水里非常常见,也是我这些年做自动化改造项目时接手最多、最考验现场经验的场景之一。
这篇文章我会从硬件选型讲到PID整定,从泵组调度逻辑讲到触摸屏组态,最后把我调过的现场坑一个个列出来。内容按"一拖一+变频主泵+工频辅泵"的架构展开,四台主泵承担主力供水,一台辅泵负责夜间小流量保压,程序思路可以直接套用到大多数S7-200 SMART恒压供水项目里。
1. 需求拆解与硬件选型:五台泵怎么配,比你想的更讲究
1.1 "一台变频控制一台水泵"到底怎么理解
先把这个需求说清楚。标题里那句"一台变频控制一台水泵",在实际项目中通常有两种落地方案:
- 方案A(本文主线):每台泵配独立变频器,1号泵作为变频主泵精确调速,其他泵作为工频泵通过接触器投切。这是一种固定变频泵+辅助工频泵的混合结构。
- 方案B:所有泵都配变频器,四台主泵全部变频运行,程序里做四路PID。这种成本高,一般用在要求特别严格的场合。
我这边按方案A展开,因为它的程序逻辑更典型,也最省成本。如果你做的是方案B,只需要把工频泵投切那一段改成"下一台变频泵投入运行",后续的PID闭环逻辑完全一致。
1.2 四台主泵加一台辅泵的分工逻辑
五台泵不是一拥而上,而是按"量"和"时段"分配:
| 设备 | 数量 | 作用 | 控制方式 |
|---|---|---|---|
| 主泵(1号) | 1台 | 主力变频调速,跟随PID输出 | 变频器直接驱动 |
| 主泵(2~4号) | 3台 | 水量增大时依次投入,辅助升压 | 工频启停+接触器 |
| 辅泵 | 1台 | 夜间小流量保压,防止主泵频繁启停 | 小功率变频器独立控制 |
| 压力变送器 | 1~2台 | 管网压力反馈 | 4-20mA信号进PLC |
辅泵是这个系统的点睛之笔。没有辅泵的话,夜间用水量很小时,主泵变频器会一直在极低频运行,水泵扬程不够、效率低下,PID还会因为压力波动反复调节,搞得泵频繁启停。辅泵功率小,专门解决"大马拉小车"的问题。
1.3 硬件清单与选型理由
这套项目需要的硬件不复杂,但每一样都有讲究:
- PLC:西门子S7-200 SMART CPU SR20或ST20。SR20是继电器输出,ST20是晶体管输出,接触器启停用SR20足够;如果你要直接输出PWM或高速脉冲给变频器,选ST20。
- 模拟量模块:S7-200 SMART本体自带一路模拟量输入,但恒压供水项目建议加一块EM AE01模拟量输入模块,把压力变送器信号和备用信号分开处理。
- 压力变送器:0~1.6MPa、4-20mA两线制,安装在出水母管上。选型关键是量程,工作压力最好不要超过量程的70%,否则PID在高压区不好整定。
- 变频器:品牌不限。我用过ABB、汇川、英威腾,只要支持Modbus RTU通讯或0-10V/4-20mA模拟量给定即可。辅泵变频器可以小一档,比如主泵5.5kW,辅泵用2.2kW就够。
- 触摸屏:西门子Smart Line 700 IE V3,这也是标题里说的"西门子触摸屏"。如果项目现场用了威纶通或昆仑通态,程序思路不变,只是组态软件换成EBPro或MCGS。
2. 恒压控制的底层逻辑:S7-200 SMART的PID回路怎么配才稳
2.1 压力闭环是怎么转起来的
恒压供水的本质是一个典型的负反馈闭环:压力变送器把管网压力变成4-20mA电流信号,PLC通过模拟量输入模块读回实时压力,和触摸屏上设定的目标压力比较,偏差送入PID运算,PID输出值再通过模拟量输出或Modbus通讯写到变频器,改变水泵转速,最终让管网压力稳定在设定值附近。
这句话说起来简单,但现场调试时很多人忽视了两个关键点:
- 采样周期:S7-200 SMART的PID回路中断采样周期建议设500ms~2s。太短,压力变送器信号里的脉动噪声会让输出频繁波动;太长,系统响应慢,泵切时压力掉下去半天拉不回来。我常用1s。
- 输出限幅:PID输出必须限制在0~1之间,映射到变频器频率就是0~50Hz(或0~设定上限)。不限制的话,PID积分项会把输出顶到"爆表",切泵瞬间超压特别严重。
2.2 PID向导配置要点
Micro/WIN SMART软件里,用"工具→PID向导"生成PID子程序,比手写PID指令省事得多。配置时重点填这几项:
- 回路号:PID0/PID1,一个恒压系统用一路PID回路就够。
- 给定方式:选择"内给定",给定值地址设一个V存储区,比如VD100,这个地址要开放给触摸屏,让操作员在画面上直接设定压力。
- 反馈通道:选择AIW16或接压力变送器的那路,工程值下限0、上限16(对应0~1.6MPa)。
- 输出类型:选"模拟量"或"PWM",如果走Modbus通讯写频率,则PID回路表里只取输出值V区地址,再由通讯指令把V值映射到变频器频率。
PID向导生成后,会得到一个PID0_INIT子程序和PID0中断程序。主程序里每个扫描周期调用一次PID0_INIT就行。
2.3 参数整定的现场经验
恒压供水系统的PID整定,我的操作路径是这样的:
- 先纯P控制:把积分时间设到最大值,微分设0。从小到大调P,观察压力曲线。压力开始振荡时,回退30%左右,P就差不多了。
- 再加I:积分时间从300s开始往下减,直到压力在设定值附近缓慢收敛、没有低频波动为止。恒压供水I值一般落在50~200s,具体看管网容量。
- D基本不用:压力变送器信号本来就有噪声,微分项会把高频噪声放大,导致变频器输出忽高忽低。除非你的管网容量极小、滞后严重,否则D保持0。
提示:PID参数不要只给一组。触摸屏上建议做成三组参数(低流量模式、正常模式、高流量模式),根据启泵数量或流量信号自动切换。这个细节在现场非常实用。
3. 泵组调度程序:加减泵、轮换、辅泵介入的状态机设计
3.1 程序整体状态划分
多泵恒压程序最忌讳把所有逻辑一股脑写在主循环里,拆成状态机才是正路。我的程序里至少定义这几个状态:
- 停止态:所有泵停止,系统待机。
- 运行态-单泵变频:PID控制1号主泵变频运行,辅泵待命。
- 运行态-多泵运行:按压力偏差和PID输出,依次投入/退出2~4号工频泵。
- 小流量保压态:辅泵变频运行,主泵全部停止。
- 故障态:检测到变频器故障、泵过载、通讯异常,系统按预设策略切换备用设备或停机报警。
每个状态之间的切换必须有延时条件,不能用一个瞬间的布尔量直接跳,否则泵切瞬间的压力波动会引发连锁误动作。
3.2 加泵与减泵的判定逻辑
加泵和减泵不能只看压力偏差瞬时值,要看PID输出频率是否持续处于高区或低区:
- 加泵条件:变频器运行频率≥49Hz,且持续时间≥30s,同时实际压力仍低于设定值0.02MPa以上——说明一台泵已经全速运转却还顶不上去,此时投入下一台工频泵。
- 加泵动作:先断开PID调节输出(或把PID输出强制到较低值),启动下一台泵工频接触器,延时2~3秒后再恢复PID自动调节。这样做的目的,是防止两台泵同时全力输出,瞬间超压导致水锤。
- 减泵条件:变频器运行频率≤20Hz,且运行泵数>1,持续时间≥60s,同时实际压力高于设定值0.03MPa以上——说明多余的工频泵已经"碍事",需要退出一台。
- 减泵动作:先让PID输出降到接近0,再断开工频泵接触器,延时后再把控制权交回PID。
这个"先撤出调节、再动作、再交回调节"的顺序,是泵切换不掉压的核心。
3.3 辅泵的小流量保压逻辑
辅泵控制分两种情况:
- 有流量信号:用电磁流量计实时检测出水流量,当流量低于某阈值(比如额定流量的10%)且压力稳定时,停主泵,把辅泵变频器接入PID回路继续稳压;流量恢复后切回主泵。
- 无流量信号:用"夜间时段+压力趋势"间接判断。比如设定23:00~5:00,如果此时变频泵运行频率长期低于20Hz、运行泵数=1、压力高于设定值,则判定进入小流量状态,切换为辅泵运行。
辅泵切换回来后,必须有一段保护延时,至少3分钟内不允许再次切换。不然夜间压力稍微一波动,系统就在主泵和辅泵之间反复切,接触器寿命会急剧下降。
3.4 泵轮换与运行时长均衡
四台主泵如果常年只用1号泵,到了高峰季1号泵轴承磨损严重、其他泵闲置,这在设备管理上是不合格的。我在程序里加了泵轮换机制:
- 每次系统从停止态重新启动时,优先启动"上次数控排序里运行时间最短的泵"作为变频泵。
- 每次加泵时,按顺序选择未运行的泵中累计运行时间最短的一台投入。
- 运行计时用V存储区累计,掉电保持功能打开,防止断电丢失数据。
这个逻辑不复杂,但业主非常买账——设备均匀磨损,检修周期拉长,这是"看起来专业"的关键细节。
3.5 故障联锁与备用切换
每台泵的热继电器常闭点、变频器故障输出点全部串进PLC数字量输入。程序里要做两个层面的保护:
- 单泵故障切备:运行中的泵故障,立即断开该泵接触器,自动投入下一台备用泵,同时触摸屏弹出报警窗口。
- 整体联锁:管网压力超高(比如达到设定值1.2倍)、变频器通讯超时、模拟量信号断线,程序应直接停止所有泵并报警,避免干转或超压。
注意:模拟量断线一定要单独处理。压力变送器断线后,反馈值会变成0或满量程,PID会认为压力严重不足,疯狂加泵提速——这种情况我至少见过三次,处理办法是AIW值超过量程上限或低于下限且持续5s,直接判定传感故障并停机。
4. 触摸屏组态与变频器通讯:从HMI画面到数据链路的完整思路
4.1 触摸屏组态的变量规划
西门子Smart Line 700 IE V3在TIA Portal或WinCC flexible Smart软件里组态。它不是简单的"画几个按钮",变量规划是灵魂。我习惯把变量分为四组:
- 设定类:目标压力VD100、PID参数VD104~VD112、启停控制M0.x,这些需要操作员能修改。
- 监控类:实时压力VD120、变频器频率VD124、当前运行泵号VB128,这些只读显示。
- 状态类:泵运行/停止/故障位、报警字,画面上做指示灯。
- 累计类:运行时间、启动次数、流量累计,用于设备管理。
变量地址一多,最容易乱的是V区重叠。我的习惯是做一个"地址分配表"放在项目注释里,每用一段V区就登记一次,这个习惯能帮你省掉至少一半的调试烦恼。
4.2 画面结构与交互设计
触摸屏画面我一般分成三层:
- 主画面:管网压力实时曲线(趋势图)、目标压力设置、手自动切换、泵组状态灯、变频器频率、报警汇总。操作员日常工作90%都在这一页。
- 参数画面:PID参数、泵启停延时、投切压力阈值、辅泵时间设置。这一页建议加一个"管理员密码",防止误改。
- 历史画面:压力历史趋势、报警记录、运行时间统计。方便日后排查"夜里压力为什么突然掉到0.3MPa"这类问题。
Smart Line 700 IE V3和S7-200 SMART用以太网直连非常方便,建立连接时选择S7协议,CPU IP地址固定一个(比如192.168.0.20),触摸屏IP设成同网段即可。
4.3 S7-200 SMART与变频器的Modbus RTU通讯
如果变频器支持Modbus RTU,我强烈建议用通讯方式替代模拟量给定变频器频率。原因很简单:省一根控制电缆,抗干扰更好,还能读回变频器电流、状态、故障码。
S7-200 SMART侧用两个库指令:
- MBUS_CTRL:每个扫描周期调用一次,初始化串口,设置从站波特率(我常用9600或19200)、奇偶校验、超时时间。
- MBUS_MSG:读写变频器寄存器。一条MBUS_MSG只能处理一个从站的一个功能码,四台变频器就要做四条轮询,每条完成后延时50~100ms再发起下一条。
轮询核心代码如下(示意):
// 初始化运行位:SM0.1首次扫描调用MBUS_CTRL // 轮询1号变频器写频率 LD M0.0 EU CALL MBUS_MSG, 1, 1, 40001, 2, &VB200, M1.1, MB10 // 轮询1号变频器读状态 LD M1.1 EU CALL MBUS_MSG, 1, 3, 40010, 4, &VB210, M1.2, MB10 // 轮询2号变频器写频率 LD M1.2 EU CALL MBUS_MSG, 2, 1, 40001, 2, &VB220, M1.3, MB10 // 以此类推每条MBUS_MSG完成后,下一个M点位置位,依次往下轮询。写频率的数值要从PID输出值换算,PID输出0~1对应0~50Hz,对应寄存器值0~5000(0.01Hz精度),换算公式在程序里做一次浮点运算。
4.4 手自动模式与安全互锁
触摸屏上一定要有手动模式,这是检修和试车的基本需求。手动模式下,操作员可以独立启停每一台泵、手动给变频器频率,但PID调节输出和自动加减泵逻辑全部旁路。
手自动切换必须加互锁:自动模式下不允许手动启泵;手动模式下自动逻辑不投切泵;切换瞬间如果泵正在运行,保持当前运行状态不动作,等模式稳定后再按新逻辑处理。否则现场操作员"手痒"切一下模式,泵全停了或全启动了,都是事故。
5. 现场调试的常见坑与排查链路
5.1 PID振荡,压力表曲线像心电图
这是恒压供水项目最常见的坑。振荡的根源有三个方向,按优先级排查:
- 传感器信号有脉动:检查压力变送器安装位置是不是太靠近泵出口。太近的话,泵的脉动直接叠加在反馈信号上,PID必然振荡。处理办法是传感器改到出水母管远端,或者在PLC模拟量通道里做滤波。
- P参数过大:把积分时间调到最大、D设0,P从上一次经验值的50%开始加,观察曲线,振荡就回退。
- 输出频率映射不对:检查PID输出和变频器频率的换算关系。如果50Hz对应满量程而PID输出0.9就到了45Hz,而泵实际只要30Hz就够,系统会在高频区震荡。
5.2 加泵瞬间压力暴跌或水锤
加泵时最忌讳"边加大泵边调频率"。我遇到过现场加泵瞬间压力从0.5MPa掉到0.2MPa,原因就是变频泵还在50Hz运行时,工频泵直接合闸,电网电压瞬间被拉低,两台泵同时抢水。
正确做法的顺序是:
- PID回落到低输出(比如20%对应10Hz);
- 延时500ms,等水泵转速降下来;
- 合闸工频泵接触器;
- 延时2~3s,恢复PID自动调节。
这套流程虽然加泵过程慢几秒,但从头到尾不会出现明显水锤,也不会让电机受冲击。
5.3 辅泵频繁启停,一个晚上动作二十次
辅泵频繁启停的根本原因,是切换阈值和切换延时设置太紧。比如压力一低于设定值就马上启动辅泵,辅泵启动后压力超一点又立刻停止,中间没有死区,系统就会"打摆子"。
我的处理办法是引入双阈值+延时:
- 进入辅泵运行的条件:流量低于阈值(或夜间时段)且压力低于设定值-0.02MPa,持续2min。
- 退出辅泵运行的条件:压力高于设定值+0.02MPa,或辅泵频率达到上限,持续5min。
- 两次切换之间的最小间隔,设定为10min以上。
这样辅泵一天运行次数从二十次降到三五次,接触器和电机寿命都不一样。
5.4 触摸屏变量不刷新或报警不弹
Smart Line与S7-200 SMART通讯出问题,最常见的原因是IP地址冲突或变量地址越界。排查链路是:
- 先Ping CPU地址,确认网络通;
- 再检查组态里每个变量的PLC侧地址是否与程序里V区/M区一致;
- 检查V区是否有地址重叠。PID向导占用的V区是自动分配的,如果你手动给触摸屏变量分配了同一段V区地址,就会出现"程序里这个值明明是0,触摸屏却老是显示1"这种诡异问题。
这个坑特别隐蔽,尤其是PID向导自动分配V区200~399,结果你又在VW300上放了个"泵运行时间"给触摸屏显示,两边的数据互相踩,画面上的值当然乱跳。
5.5 针对这类一拖一系统的选型建议
如果你做的是投标方案或正在给业主提配置,我的建议是:主泵在22kW以下,一拖一加工频泵是最划算的;如果主泵功率很大(30kW以上),建议全部变频化,避免大电机工频启动对电网冲击太大。辅泵的变频器功率选主泵的40%~60%就够,不用等大。
另外,建议在项目里预留一套以太网远程模块(比如Smart无线模块或4G网关),把压力和设备状态上传到云端。业主后期十有八九会提"我在手机上也能看到系统运行状态"的需求,留好接口,到时候加模块就能直接上,不用重新改程序。
做这种恒压供水项目,最核心的从来不是哪条指令怎么写,而是你如何把"压力稳定"四个字翻译成一套完整的逻辑:PID闭环是大脑,泵组调度是手脚,触摸屏是脸面,三者必须配合到位。按这篇文章的思路把状态机搭好,把切换延时刻进骨髓里,再拿现场数据调一轮PID,这套系统基本就稳了。
本文还有配套的精品资源,点击获取