小区泵房改造的案例里,S7-1200一拖三恒压供水几乎是绕不开的一套基本功。三台水泵、一台变频器、一支压力变送器、一个控制器,就能把整个供水系统的出口压力稳稳压住:用水高峰自动加泵,低峰自动减泵,半夜没人用水还能自动休眠。这套配置在中小型生活小区、厂房增压、小型灌溉泵站里出现频率非常高,也是很多刚开始做自动化的朋友第一次独立负责的项目类型。我这两年经手过不少同类系统,趁这次把从方案、接线、程序到调参的完整过程整理出来,给正要上手的同行做个参照。
这套内容适合几类人看:刚接手S7-1200项目还不太熟悉恒压供水逻辑的调试工程师,给老旧泵房做节能改造的电气维护人员,以及想搞明白“一拖三到底怎么做到自动加泵减泵”的初学者。我不打算铺开讲太多理论,直接按实战项目的顺序走一遍,重点放在容易被资料忽略的加泵切换、PID整定和现场坑点上。
1. 项目需求与方案选型:为什么把宝押在一拖三上
1.1 一拖三系统到底是怎么工作的
先说清楚“一拖三”是什么。一套系统里有三台水泵,但只有一台变频器。正常情况下,只有一台泵接在变频器上,由PID调节转速来改变流量和压力;当用水量变大、单台变频泵已经跑到工频50Hz还不够时,系统会把这台泵切换成工频运行,再把变频器切换到下一台泵上,让第二台泵变频调速。如果还不够,再重复这个动作,让第三台泵也加入。这个过程反过来就是减泵:用水量降下来以后,把最后工频接入的泵退掉,只保留一台变频泵。
这套做法的好处是省变频器。三台泵如果每台都配变频器,成本直接翻三倍,而且三台变频器同时运行时的谐波、调试工作量都不小。一拖三只配一台变频器,把“变频调速”和“工频开停”结合起来,既满足了恒压要求的调速能力,又用最低的成本覆盖了多泵并联的流量范围。
1.2 为什么不选一拖一,也不选全变频
做方案的时候甲方先问过两个问题:能不能每台泵都配变频器?能不能用继电器逻辑实现?我直接给出了否定的答案。
每台泵都配变频器的方案,在可靠性上确实是天花板,但成本高、柜体体积大、后期维护点多。全变频还有个容易忽略的问题:三台变频器同时挂在同一个管网上,如果PID参数不一致,或者压力反馈时序有微小差异,容易发生“抢水”式的压力振荡,调试难度比一拖三大不少。所以恒压供水领域,一拖三才是性价比和稳定性最平衡的方案。
至于继电器逻辑实现,老式泵房确实大量存在,但它只能做简单的压力上下限启停,做不到真正的“无级恒压”。压力到了上限就停泵,降到下限再启动,管网压力总是锯齿状波动,管路和设备受到的冲击也大。更重要的是,没有PID调速能力,水泵始终满转速运行,浪费了大量电能。
选择S7-1200做主控,是因为它在小型项目里确实合适:自带PID_Compact功能块,有以太网口,调试软件用TIA Portal统一环境,程序结构清晰,后期维护的人容易上手。相比老一代PLC需要自己手写PID算法,S7-1200把调速控制这件事简化了一大截。而且它的模拟量模块和数字量模块扩展灵活,刚好够这套三泵系统用,留出的备用通道也充足。
2. 硬件配置与电气回路:先把底子搭扎实
2.1 核心器件选型清单
做这类项目,硬件选型不当会导致后期反复折腾。我这里把一套比较标准、也经受过现场考验的清单列出来,供参考:
| 器件 | 规格型号 | 数量 | 作用说明 |
|---|---|---|---|
| PLC控制器 | S7-1200 CPU 1214C DC/DC/DC | 1 | 主控制器,集成14路DI、10路DO |
| 模拟量输入模块 | SM1231 AI 4×13bit | 1 | 采集压力变送器4-20mA信号 |
| 模拟量输出模块 | SM1232 AQ 2×14bit | 1 | 输出4-20mA频率给定给变频器 |
| 压力变送器 | 0~1.6MPa,两线制4-20mA | 1 | 安装在出水总管 |
| 变频器 | 7.5kW,通用矢量型 | 1 | 变频泵调速 |
| 接触器 | 额定电流按泵电机1.5倍选 | 6 | 三台泵的变频/工频回路切换 |
| 热继电器 | 与电机额定电流匹配 | 3 | 工频回路过载保护 |
| 断路器 | 分泵回路和变频器回路配置 | 若干 | 就地保护和检修隔离 |
CPU 1214C本身集成了14个数字量输入和10个数字量输出,这个项目里刚好够用。需要注意的是,集成AI只支持0-10V信号,不能直接接4-20mA的电流型压力变送器,所以一定得扩展SM1231模拟量输入模块。频率给定走SM1232模拟量输出,这也是现场最常用、最直观的控制方式。
2.2 主回路与接触器互锁设计
主回路是整个项目的安全底线。每台水泵需要两个方向的供电回路:一个是变频器输出回路,一个是工频电网回路。所以三台泵对应6个接触器。以1号泵为例,接触器KM1V控制变频器供电,接触器KM1G控制工频供电,2号泵对应KM2V和KM2G,3号泵对应KM3V和KM3G。
这套回路有个必须死守的原则:一台泵的变频接触器和工频接触器绝对不能同时吸合。如果变频器的输出端在运行状态下被接到工频电网,轻则跳闸,重则直接炸掉变频器整流桥。所以硬件上要选带机械互锁的接触器,或者用辅助触点做电气互锁;软件上还要再加一层输出互锁,也就是PLC程序中不允许变频接触器和工频接触器的输出同时为1。双保险缺一不可。
变频器的制动单元在这个项目里不需要配,因为供水泵是平方转矩负载,停机时靠自由停车就可以,系统惯性也不会产生太大反电动势,加了反而容易误报过压。
2.3 I/O分配与屏蔽接地的现场细节
I/O点位的分配建议在一个表格里固定下来,后期查线、查程序都方便。这个项目的分配如下:
| 信号名称 | 模块地址 | 信号类型 | 说明 |
|---|---|---|---|
| 压力反馈 | AI0 | 4-20mA | 0~1.6MPa对应4-20mA |
| 频率给定 | AQ0 | 4-20mA | 对应变频器0~50Hz |
| 启动按钮 | I0.0 | 常开 | 自动模式启动 |
| 停止按钮 | I0.1 | 常闭 | 自动模式停止 |
| 手动/自动切换 | I0.2 | 开关量 | 切换控制方式 |
| 故障复位按钮 | I0.3 | 常开 | 清零报警状态 |
| 1号泵变频接触器 | Q0.0 | 输出 | KM1V |
| 1号泵工频接触器 | Q0.1 | 输出 | KM1G |
| 2号泵变频接触器 | Q0.2 | 输出 | KM2V |
| 2号泵工频接触器 | Q0.3 | 输出 | KM2G |
| 3号泵变频接触器 | Q0.4 | 输出 | KM3V |
| 3号泵工频接触器 | Q0.5 | 输出 | KM3G |
| 变频器启停 | Q0.6 | 输出 | 变频器运行控制 |
| 蜂鸣器/报警灯 | Q0.7 | 输出 | 故障指示 |
现场接线时最容易翻车的是信号线敷设。压力变送器的模拟量信号线必须用屏蔽电缆,而且屏蔽层只能单端接地,通常是在PLC柜这一端接地。信号线要跟动力线分开走线槽,不要捆在一起。我见过一个项目,把压力线跟变频器输出线塞进同一个线槽,结果压缩机一启动,压力采集数值乱跳,PID根本无法稳定。
另外,接触器的线圈两端建议并联阻容吸收器或者浪涌抑制器,否则断电瞬间产生的反向电动势会通过柜内走线干扰PLC,严重的会造成误动作。
3. 控制逻辑与程序实现:加减泵状态机才是灵魂
3.1 压力信号采集与工程量换算
模拟量采集的第一步是把压力变送器的4-20mA信号转换成工程量。S7-1200里可以用一条简单的公式:
实际压力 = (AI原始值 / 27648) × 量程上限
如果量程选的0~1.6MPa,那么27648对应的就是1.6MPa。以设定压力0.45MPa举例,PID的目标值按百分比算就是0.45/1.6=0.28125。用TIA Portal里的NORM_X指令把AI原始值归一化到0~1之间,再乘工程量上限,就得到以MPa为单位的压力值。这步看着简单,但一定要注意:程序里要统一单位,有的工程师习惯用kPa,有的用MPa,调试时来回换单位非常容易出低级错误。
另外一个必须做的处理是压力故障判断。压力变送器断线时,AI原始值会跌到接近0。如果不做判断,PID会认为管网压力为0,然后一路把输出加到100%,导致水泵全速运行,轻则压力过冲,重则把管路憋坏。所以程序里一定要加上下限量程检查:压力低于0.05MPa且持续10秒以上,立即报警停机,并提示检查变送器。
3.2 PID_Compact的组态思路
S7-1200的PID_Compact是官方提供的一个功能块,直接拖进程序就能用。我的组态思路是这样:
PID_Compact输入接实际压力百分比,设定值接目标压力百分比,输出接频率给定。输出范围0~100对应0~50Hz。调用时给一个固定的扫描周期,我用的是500ms。这个周期比较重要,供水管网是大惯性对象,周期太短反而会让PID误判脉动,周期太长又反应迟钝,500ms算是一个比较折中的起点。
在PID_Compact内部,要开启抗积分饱和功能。这个功能很关键:当加泵时压力一直低于设定值,PID积分会越积越大,频率一直顶在100%;等到加泵完成压力回升,需要很长时间才能把积分退回来,造成明显的压力过冲。抗积分饱和打开后,输出被限幅时积分会停止累积,加泵后的恢复速度会快很多。
我建议把PID_Compact放在一个循环中断组织块里调用,比如OB30,设置周期500ms。如果放在主循环OB1里,扫描周期会受程序大小影响,PID的调节周期不稳定,调试时很难判断是参数问题还是周期抖动问题。
3.3 加泵、减泵、休眠、唤醒的时序逻辑
加泵和减泵逻辑是整个程序的核心。我习惯用一段结构化的SCL来描述这套状态机。加泵的核心条件:
IF 变频器输出频率 >= 49.5Hz 且 出水压力 < 设定压力 - 0.01MPa 且 当前工频运行泵数 < 2 且 延时T1(默认10秒)已到 THEN 执行加泵动作 END_IF这里为什么要延时T1而不是立即加泵?因为管网用水量可能有短时波动,如果变频器只是瞬间冲到50Hz就马上加一台泵,很可能加完泵水压又高了,紧接着又要减泵,造成频繁切换。延时10秒相当于一个确认过程,确保确实是“持续不够压”而不是“偶发不够压”。
加泵的动作顺序值得专门说一下。假设当前1号泵变频运行,需要加泵时,正确顺序是:
- 把变频器频率升到50Hz,维持2~3秒;
- 断开1号泵的变频接触器KM1V;
- 合上1号泵的工频接触器KM1G,让1号泵转为工频运行;
- 把变频器输出切换到2号泵的变频接触器KM2V;
- 变频器从0Hz重新开始软启动2号泵,PID继续调速。
这套顺序的核心是“先断后合”,也就是断开变频接触器之后、闭合工频接触器之前,要给变频器留出输出封锁的时间,绝不能边输出边切换。切换间隙很短,泵依靠惯性继续转,压力损失可以接受。有些方案为了追求压力完全不断,采用“先合后断”,我不建议这么做,因为它要求变频器和电网短时间并联,风险太大,一旦接触器动作不同步,代价就是一台变频器。
减泵条件刚好相反:
IF 变频器输出频率 <= 下限频率(30Hz) 且 出水压力 > 设定压力 + 0.03MPa 且 工频运行泵数 > 0 且 延时T2(默认30秒)已到 THEN 停止最后投入的那台工频泵 END_IF减泵延时要比加泵更长,目的就是防止在用水量临界波动时反复加减泵。停止工频泵时,变频泵会立即提速补压,压力波动可以在PID调节下恢复。
休眠和唤醒是针对夜间低流量场景的。当整个系统只剩一台变频泵运行,频率已经降到了休眠阈值(我习惯设为25Hz),而且压力一直保持在设定值附近,持续60秒以上,说明用水量极小,泵继续转下去属于白耗电。这时候系统会停止所有泵进入休眠。休眠后管网压力会缓慢下降,当压力掉到设定值以下0.05MPa时,系统立刻唤醒,重新启动泵补水。
休眠唤醒逻辑里最忌讳的是震荡:压力刚降到唤醒点,泵启动加水,压力升上去了,因为滞回不够,又满足不了休眠条件,然后继续转,转着转着压力又低再启动,如此反复。所以唤醒滞回和休眠确认时间必须设得足够宽,必要时配合最小运行时间,让每次启动后至少运行3~5分钟再允许休眠。
三台泵之间的轮换逻辑也必不可少。每台泵在程序里维护一个累计运行时间变量,启动时优先选择累计运行时间最短的那台,停止时优先停掉累计运行时间最长的工频泵。这样三台泵的磨损基本均衡,不会出现一台泵常年上班、另外两台常年闲着的局面。轮换逻辑只在自动化模式下生效,手动模式下完全由人工选择。
4. 参数整定与在线调试:从振荡到稳定的全过程
4.1 变频器的基础参数怎么设置
程序写完之后,先别急着调PID,变频器的参数如果不对,后面全白搭。这个项目里,变频器几个关键参数这样设置:
- 最大频率:50Hz
- 最小频率:25Hz,防止水泵长期在过低频率下运行导致流量不足、电机过热;
- 加速时间:5~8秒;
- 减速时间:5~8秒,减速太快容易因管道负压造成水锤;
- 频率给定方式:模拟量电流输入4-20mA;
- 启停控制方式:外部端子控制;
- 转矩特性:平方转矩或专用水泵特性曲线,节能效果更好。
这里要特别留意最小频率的设置。恒压供水如果设定频率下限为0Hz,PID一激动就把频率降到10Hz以下,水泵可能根本不出水,但电机还在转,白白发热。把下限限制在25Hz,相当于给PID输出加了个物理约束,睡眠逻辑也更容易判断。
4.2 PID参数试凑法与防积分饱和
PID参数是这个项目里最花时间的环节。不同管道长度、不同水泵特性,参数差异很大,不能照搬。我的经验是先用一个保守的起点,再根据实际曲线微调。
这个项目的起步参数:
- 比例系数P:1.5;
- 积分时间:30秒,对应PID_Compact里I值(增益返算);
- 微分时间:0,供水系统惯性大,一般不启用微分;
- PID输出上限:100%,对应50Hz;
- PID输出下限:40%,对应25Hz频率下限。
参数调整按“先P后I”的顺序来。如果压力曲线出现等幅振荡,就是比例增益太大,把P往下调;如果压力稳定得很慢、误差消除不了,就把积分时间缩短。供水管网的周期长,每次调整后要观察至少5~10分钟,让系统经历一次完整的加泵、减泵过程才能判断效果。
我实际调完以后,最终参数基本落在P=1.0~1.2、积分时间50~60秒这个区间。系统稳定后,压力波动可以控制在正负0.01MPa以内,这个精度对生活供水来说已经足够了。
还有个细节:PID_Compact的输出和变频器频率之间要做一次转换。PID输出0~100对应0~50Hz,而变频器最小频率是25Hz,所以两套下限必须对齐。如果PID输出下限设成0但是变频器最小频率是25Hz,就会出现PID输出已经降到0但变频器还停在25Hz转动,这时睡眠逻辑的判断会出错。把两套下限统一起来,后面的判断才清爽。
4.3 水锤与切换冲击的应对
调试过程中,水锤是绕不开的话题。最明显的表现是加泵瞬间压力表指针猛跳一下,严重时管道会“咚”一声闷响。水锤的来源主要有两个:一个是大泵工频直接启动时流量突增,另一个是泵频繁启停造成压力脉冲。
应对水锤不能光靠程序,还要从切换策略上想办法。加泵时,变频器先升到50Hz、让当前泵接近满载运行,再切换到工频,可以减小切换瞬间的流量变化。第二台泵接入时不要直接工频启动,而是用变频软启动,也就是把变频器接上去以后从低频慢慢升速,让第二台泵平缓并联进入管网。这个过程虽然多了几秒钟,但对管网冲击的改善非常明显。
管网上一定要装止回阀,并且要选带缓闭功能的。普通旋启式止回阀在停泵瞬间容易发生倒流冲击。我建议在泵出口装缓闭消声止回阀,配合软启动逻辑,双重防护下来,水锤问题能基本消除。
另外,减泵时也不要等压力已经明显超压了再去停泵。减泵条件里压力上限阈值可以设得比正常设定值高0.02~0.03MPa,但这个值不能太高,否则管网长期处于超压状态,对管路接头和末端用水设备都不友好。我通常把超压报警阈值设置在设定值的110%左右,一旦超过就触发声光报警。
5. 运行中常见的坑与故障排查速查表
5.1 现场故障记录与排查思路
这类系统交付之后,运行期的问题集中在几个固定方向。我这里按真实发生频率排序,把典型的坑和排查思路整理出来。
第一个坑是变频器报过流故障。有一次现场半夜跳闸,变频器显示OC,查了半天发现是加泵切换时,变频接触器断开不够果断,导致变频器还在输出时工频接触器就闭合了。变频器瞬间承受了电网反送电,过流保护动作。处理办法是调整程序里的切换时序,在断开变频接触器后加入150ms的输出封锁等待时间,再闭合工频接触器。这个时间足够让变频器完成输出封锁,又不会长到让泵转速明显掉下来。
第二个坑是压力值反复跳动。刚开始以为是PID参数不好,后来用万用表量变送器输出,发现4-20mA信号里叠加了大量毛刺。原因是压力线跟接触器线圈控制线走在了同一个线槽里,接触器吸合瞬间的干扰串进了信号回路。把信号线单独走线、屏蔽层单端接地以后,数据一下就干净了。所以排查压力波动不稳时,不要一上来就动PID参数,先确认信号质量,参数调半天不如一根接地线管用。
第三个坑是系统断电恢复后直接自动启动。有些项目要求断电恢复后自动恢复供水,但如果程序没做初始化保护,上电瞬间所有输出点都可能是0,而接触器如果不幸处于吸合状态,就可能造成电机直接全压启动。我的做法是在启动组织块OB100里把所有输出强制清零,延时3秒后才允许程序进入自动控制状态。这个延时是给接触器一个可靠的复位时间,避免上电瞬间误动作。
第四个坑是泵频繁休眠又唤醒。有一次值班室打电话说水泵晚上每隔十几分钟就启停一次。排查时发现是楼内漏水,压力降到唤醒阈值后启动泵补水,补到休眠条件后又停泵,如此循环。这种情况在程序层面能做的就是增大唤醒滞回和延长最小运行时间,但根本解决办法还是要物业查漏点。程序上的保护措施只能避免频繁启停对电机的额外损耗,不能解决漏水本身。
5.2 避坑清单与长期运行建议
把现场遇到过的坑整理成一个速查表,方便大家直接对照:
| 故障现象 | 可能原因 | 处理建议 |
|---|---|---|
| 启动后压力上不来,PID输出100% | 泵反转;进水管没开;压力信号断线;泵腔内气体未排空 | 检查电机相序、进口阀门、信号线;手动排气 |
| 加泵频繁,减泵后压力波动大 | 加泵压力阈值太接近设定值;延时太短 | 把加泵阈值改为设定-0.02MPa,延长确认时间 |
| 两台泵工频运行后压力超高报警 | 减泵条件不触发,工频泵退不下来 | 降低减泵压力阈值,缩短减泵延时 |
| 变频器报过流OC | 接触器切换时序不对;加减泵太频繁 | 调整切换时序,加延时,检查互锁 |
| 休眠后频繁自启动 | 唤醒滞回太小;管网有泄漏 | 增大滞回;排查漏水点 |
| 压力显示乱跳 | 屏蔽接地不良;信号线与动力线共管 | 改独立走线,屏蔽层单端接地 |
| 断电恢复后电机瞬间启动 | 程序初始化不彻底 | OB100中全部输出清零,增加上电延时 |
补充一个运维层面的建议:压力变送器要定期校准。这东西在泵房潮湿环境里漂移比想象中快,半年到一年就可能偏差0.02MPa以上。偏差一旦超过PID死区,系统就只能靠变频器调整频率来修正误差,最终表现为同一个设定值下,频率逐渐升高或降低,能耗悄悄变高。每次巡检的时候,拿一只精密压力表跟变送器比对一下,超出误差范围就重新标定,比什么都省事。
这套系统从接线到稳定运行,前后大概花了两周时间。其中程序框架用了一天写完,剩下大半时间都耗在PID参数整定和切换时序微调上。我个人实际的体会是,恒压供水没有太多玄学,关键就是把加减泵状态机想清楚、把PID参数按管网惯性一点点试出来、把硬件互锁做到无懈可击。前面几步走得稳,后面运行维护就非常省心。中间还有一个小技巧:调参阶段把加泵和减泵的延时先设得长一点,比如30秒起步,确认系统稳定了再逐步缩短,这样可以在最大程度上避免参数调试期频繁切换对管网的冲击。