ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

一控三恒压供水系统设计与调试全记录:从S7-200到现场实战

一控三恒压供水系统设计与调试全记录:从S7-200到现场实战 做这个三泵恒压供水项目之前我以为一控三就是一台变频器加一个PID回路的事。真正动手选型、接线、写程序、跑到现场调试完一整轮才明白这系统最难的从来不是PID而是泵与泵之间的关系什么时候加泵、什么时候减泵、工频切变频的瞬间怎么不让水压崩掉、反馈线断了之后系统该怎么办。这篇文章就把我这个项目从头到尾怎么手搓出来的过程记录下来从S7-200的选型、控制柜搭建、PLC程序逻辑到现场调试中实打实踩过的坑。如果你准备做小型泵房恒压供水改造或者想搞明白一控三恒压供水系统的控制逻辑这篇应该能帮你少走不少弯路。1. 一控三恒压供水盘工艺比写程序更重要1.1 恒压供水系统的目标稳住的是出口压力不是流量很多刚接触这个领域的人一开始会把注意力放在流量上觉得供水就是用户要多少水水泵给多少水。实际做系统的时候会发现恒压供水控制的从来不是流量而是出口管网的压力。家庭和工业用水的管网压力如果忽高忽低末端出水明显不稳定淋浴忽冷忽热、高层用户白天没水、夜间水压又过高这些投诉都是压力不稳的直接表现。恒压供水的控制回路其实不复杂压力传感器检测出口管网压力PLC里的PID指令把实测压力和设定值做运算运算结果作为频率给定送给变频器变频器调电机转速。用水量大了压力下降频率升高泵转速加快用水量少了压力升高频率降低泵转速变慢。这就是所有变频恒压供水的基本闭环也是整套系统最基础的一条控制链路。但这里有个容易被忽略的点被控对象是压力执行机构是泵转速中间隔着管网、阀门、止回阀和一大段管道。从变频器频率变化到压力反馈变化中间有数秒甚至十几秒的滞后和惯性。这个特性决定了PID参数不能照搬教科书也决定了加泵减泵动作不能太快否则整个系统就振荡给我们看。后面调试部分我会详细说这个事。1.2 单泵变频的局限性为什么必须引入工频泵配合既然一台变频器加一台泵就能稳住压力为什么还要搞三泵原因是单泵的变频调节范围有限覆盖不了全天候的用水需求。我现场用的是7.5kW水泵额定流量大约50m³/h。白天高峰时段小区综合用水流量能到100m³/h以上单台泵哪怕满频运行也供不上管网压力必然往下掉。有人会说选大泵不就行了但选一台120m³/h的大泵夜间小流量时即使变频器把频率压到最低25Hz出水量可能依然大于管网消耗压力持续升高系统只能频繁启停。水泵频繁启停对电机、接触器、变频器的冲击都很大日子久了设备寿命基本报废。所以现实工程里几乎都采用多泵并联方案平时一台变频泵在小流量下工作高峰用水时再加一台、两台泵作为工频泵直接投入。一台变频器控制三台泵就是标题里说的一控三也常被叫做一拖三、三泵恒压供水。这个方案成本低但对应的控制逻辑复杂度要高不少。1.3 三泵系统的运行形态谁变频、谁工频、谁停机一控三系统的核心特征是整个系统里只有一台变频器通过接触器切换来控制三台水泵。任意时刻最多一台泵处于变频运行状态其余运行中的泵都直接接工频电网运行。我现场配的是三台同功率水泵日常按两用一备管理高峰期可以三台全投。整个系统的运行形态是这样一条循环系统启动后先让选定的泵变频启动频率逐渐上升压力逐渐接近设定值。当PID输出长时间接近最大值说明一台泵已经供不上水了就把这台泵切到工频同时变频器重新启动第二台泵如果还不够第二台也切工频变频器再启动第三台。用水量减下来之后PID输出下降依次切除工频泵让最后一台泵保持变频运行。这个变频启动→转工频→再变频启动下一台的循环是整个系统的核心动作。把这条工艺链路盘清楚后面的PLC程序其实就是把这段自然的语言翻译成梯形图和指令而已。这也是我做完这个项目最大的体会程序逻辑复杂不是难点难的是先把现场工艺吃透。2. S7-200和外围硬件的搭配决定调试时的心情2.1 为什么要用一台停产多年的老PLC现实权衡先说实话S7-200在2013年前后西门子就正式停产了替代产品是S7-200 SMART。如果是一个全新项目我不会主动推荐拿S7-200来做。但这个项目是泵房利旧改造原来控制柜里就是一台S7-200和一台旧变频器业主不想整体换新旧PLC拆下来直接复用成本几乎为零。S7-200虽然停产多年但市面上的保有量极大二手市场几百块就能收到CPU 224Micro/WIN V4.0 SP9中文版编程软件也还能正常使用。对这种不涉及安全联锁的民用泵房项目老平台完全够用。不过我也给业主讲清楚了风险备件只能靠二手拆机件真坏了一时半会不一定能找到替代件所以程序里我特意多留了诊断信息方便快速定位问题。如果你是自己做新项目我建议直接上S7-200 SMART或者其他主流PLC没必要照着老方案攒一套二手件。选择老平台是现场条件下的务实妥协不是最优解。2.2 CPU选型与模拟量通道分配S7-200的CPU型号不少本项目的关键需求是模拟量通道一路压力反馈输入一路变频器频率给定输出。如果选CPU 224XP它自带2路AI和1路AO点数刚好够用如果选CPU 226这类不带本体模拟量的型号就得扩展EM235模块。我现场用的是CPU 224XPAIW0接压力变送器AQW0接变频器频率给定。这里有个非常容易被新手忽略的细节S7-200本体的AI输入只支持0-10V电压信号不能直接接4-20mA电流信号而市面上绝大多数压力变送器输出是4-20mA。解决方案有两个一是选电压输出型变送器输出0-10V直接进PLC二是在PLC的AI端子并一个250Ω精密电阻把4-20mA转成1-5V再进AIW0。我选的是第二种方案因为电流信号本身抗干扰能力强适合变频器附近这种干扰大的环境。并了250Ω电阻之后要注意4mA对应1VAIW读数是320020mA对应5VAIW读数是16000。这个换算关系跟使用EM235模块时AIW范围0-32000的算法完全不同程序里千万不能搞混。2.3 主回路切换与接触器互锁比程序逻辑更早确定主回路的设计直接决定系统安全这块我在搭建电柜的时候花了不少心思。三台水泵每台配两个接触器一个接变频器输出端我命名为KM_VF1、KM_VF2、KM_VF3一个接工频电网命名为KM_DR1、KM_DR2、KM_DR3。这两个接触器在任何一台泵上都必须是硬件互锁加程序互锁绝对不允许同时闭合。原因很简单如果先吸合了变频接触器变频器正在输出电能这时候工频接触器也吸合相当于把380V电网直接接到变频器输出端轻则炸模块重则伤到人。控制回路里我用接触器辅助触点串入对方线圈回路实现硬互锁同时在PLC程序里又加了一层软互锁双重保险。变频器的启动信号、接触器线圈的驱动都不要直接用PLC的DO点去带统一经过中间继电器隔离。接触器吸合瞬间的浪涌电流对PLC输出点冲击很大不加隔离时间长了DO点损坏率会明显偏高。2.4 压力变送器和变频器接线中的抗干扰细节压力变送器选的是量程0~1.6MPa、4-20mA输出的标准变送器设定压力0.4MPa这样算下来PID给定值就是0.4/1.60.25正好落在归一化的0~1范围内程序处理起来很舒服。接线方面有几点现场验证过的心得。信号线必须用屏蔽双绞线屏蔽层在PLC侧单端接地不要两端都接地否则会跟地网形成环路反而把干扰引进来了。信号线走线要远离变频器输出电缆至少保持20cm以上距离有条件的话穿金属管走独立的桥架。变频器的接地端子单独接到接地排不能跟PLC的24V电源地混接。给PLC和传感器供电的24V开关电源尽量用可靠的品牌纹波小的电源对模拟量读数的稳定性帮助很大。最后变频器到水泵电机的输出电缆屏蔽层在变频器侧接地电缆中间不要有接头这些细节在调试时会省下大量时间。3. 程序实现PID闭环、加减泵切换与轮换逻辑3.1 PID指令的回路表、归一化和向导用法程序设计核心是PID回路。S7-200的PID指令用回路表保存所有参数回路表起始地址自定一个VB区比如VB100回路号从0开始。回路表里顺序存放过程变量PV、给定值SP、输出值、增益Kc、采样时间Ts、积分时间Ti、微分时间Td等参数具体偏移地址以手册为准我实际使用Micro/WIN自带的PID向导来生成不用自己手填回路表。在这里最值得强调的一点是PID运算的PV和SP都必须归一化到0.0~1.0之间不是直接把AIW的原始值扔进去。以我的现场为例压力变送器量程0~1.6MPa设定压力0.4MPaSP就是0.4/1.60.25。反馈值PV需要单独写一个转换子程序处理因为信号是通过并250Ω电阻进本体的AIW0实际范围是1~5V对应的3200~16000所以PV(AIW0-3200)/(16000-3200)再限幅到0~1。如果用EM235的4-20mA通道则是PV(AIW0-6400)/(32000-6400)。这两种换算在程序里只能有一种写错了反馈要么偏小要么直接被限幅顶死系统表现就是压力无论如何都稳不住。PID向导生成子程序后我在向导界面直接写目标值调试时用一个VD区作为目标值输入方便在线监控修改不用每次改程序重新下载。PID的定时执行由向导自动配置在定时中断里采样时间我设了1秒对这个响应偏慢的供水系统足够。3.2 加减泵逻辑不能只做上下限判断加减泵逻辑如果只写输出大于95%就加泵、输出小于35%就减泵现场十有八九会振荡。为什么因为加泵后流量猛增PID输出会快速下降减泵条件可能马上就满足结果刚加上去的泵几十秒后又切掉反复循环接触器频繁吸合压力也在波动。我的做法是持续时间和回差双重约束。PID输出大于90%对应频率大约45Hz并且持续30秒才允许加泵PID输出小于35%对应频率大约17.5Hz并且持续60秒才允许减泵。持续时间用TON定时器累加条件一旦不满足就复位这样瞬时扰动基本上都被过滤掉了。这两个时间参数不是随手拍的。加泵条件持续30秒是考虑到管网容积和用水变化周期太短容易误动作太长高峰时段压力会先掉下去很久才补泵。减泵条件持续60秒是因为低峰期用水量下降是个缓慢过程需要观察一段时间才能确认确实不需要当前数量的泵。这类参数我在现场观察了几次用水波动后微调最终定下加泵30秒、减泵60秒的组合。3.3 切换瞬间的频率让步与重启窗口真正让很多新手翻车的是切换瞬间的频率处理。以1#泵变频运行、PID输出接近满量程为例现在要加2#泵如果直接断开1#泵的变频接触器并闭合工频接触器再让变频器启动2#泵这中间有几百毫秒的转换窗口管网压力会明显跌落。更麻烦的是1#泵刚切到工频2#泵立刻变频启动PID输出如果还是刚才接近满量程的值2#泵就会高速冲起来两泵叠加压力瞬间冲高然后PID又疯狂往下调整个系统来回震荡。我这里的处理是加泵成功后立即把PID输出值乘以0.6写回输出寄存器相当于人为降速不让新启动的变频泵满频运转然后交给PID慢慢重新调节。减泵时反过来切掉一台工频泵之后把PID输出临时抬高5%到10%补偿压力跌落。这一降一抬的幅度和持续时间是防止切换振荡的关键也是整段程序里最值得反复推敲的地方。另外切换时还有一个细节切泵瞬间要把当前变频器的运行频率保存下来让下一台泵以这个频率附近的初值重新启动而不是从0Hz开始爬。从0Hz重新建压太慢压力跌落会更明显。我在程序里加了一个重启频率预置功能块切换时直接把保存的频率作为新泵启动的初始给定。3.4 泵组轮换、运行时间统计与断电保持轮换的作用是让三台泵磨损均衡。如果没有轮换逻辑1#泵永远是变频泵2#、3#泵只在高峰时启动几年下来1#泵的轴承磨损会明显比另外两台严重故障率也会高出很多。我用V区寄存器记录每台泵的运行小时数变频运行和工频运行分别累加达到1小时就累加一次。每次系统启动前比较三台泵的累计运行时间时间最短的那台作为本轮变频启动泵工频泵的投入顺序也按累计时间从少到多排确保各台泵的工作量尽量一致。这里有个坑必须提醒S7-200的V区默认断电不保持不设置的话现场停一次电累计运行时间就清零了轮换逻辑马上失效。需要在系统块的保持范围设置里把存放运行时间的V区地址设置为断电保持。这个设置非常不起眼但直接影响轮换功能的效果。4. 现场调试踩坑从反馈跳变到切换掉压4.1 压力反馈值上下跳先查线再查程序第一次上电做静态测试把压力打到0.3MPa电脑在线监视AIW0数值在8800到12000之间乱跳可压力表明明很稳。我当时第一反应是变送器坏了换了一个新的还是一样。最后排查下来问题出在信号线我图省事把信号线跟变频器输出线绑在同一个线槽里变频器一上电电磁干扰直接耦合进信号线。这个故障花了我大半天时间走完整个排查链路之后总结出来的经验是模拟量读数不稳定先查物理层别急着调PID和滤波。屏蔽层是否按要求接地、信号线是否与动力线分开走、24V电源纹波是否超标这些基础工作没做好后面所有调试都会变得极其痛苦。之后我把信号线重新独立穿管屏蔽层在PLC侧单端接地再在程序里对AIW0做了移动平均值滤波数值才真正稳定下来波动范围控制在正负十几个字以内。4.2 PID参数整定的实测手记PID参数整定是这个项目里最需要耐心的一步。我习惯从纯比例开始设定SP0.25Kc从0.3开始Ti0Td0观察压力在设定值附近怎么变化。这个系统惯性很大从变频器频率变化到压力反馈变化有数秒甚至十几秒的滞后。如果压力围绕设定值做衰减振荡说明Kc还可以继续加大如果变成等幅振荡就把Kc乘0.6再试如果没有振荡但稳态误差明显再加积分项。我这个现场最后Kc落在1.2左右Ti大约15秒Td保持0不启用。供水系统不建议加微分压力反馈里混着各种杂波微分会把高频噪声放大更容易引发自激振荡。这套参数只针对我这个现场的管网特性。不同泵组、不同管径、不同用水模式PID参数差异很大照抄没有任何意义。关键是掌握整定节奏从纯比例开始观察振荡形态按固定比例调整最后加积分消除稳态误差。整个过程不复杂但需要耐心。4.3 工频泵投入时水压暴跌的完整排查最让我头疼的是加泵瞬间的压力跌落。现场现象是2#泵工频接触器一吸合出口压力表指针先猛掉0.08MPa左右然后慢慢爬回来高峰时段甚至直接触发低压力报警。这个现象非常影响用户体验必须解决。我先怀疑是工频泵启动电流太大把电网电压拉低了导致所有泵转速下降。查了进线电压波动只有2%这个假设被排除。接着怀疑是变频器在切换过程中电流保护动作查了变频器故障记录没有报任何故障。最后我在程序里逐步加断点一点一点压缩切换窗口终于定位到问题根源1#泵变频接触器断开之后变频器要经过减速、停机、再启动2#泵的完整流程中间有接近1秒的真空期。在这个窗口里1#泵已经断电2#泵还没转起来管网失去了主要动力源压力当然往下掉。针对这个根因我做了两处调整。一是压缩切换过程1#泵变频接触器断开的同时变频器立刻以保存的运行频率重新启动2#泵中间不做减速停机让2#泵无缝接管动力。二是每台泵出口加装缓闭式止回阀切换瞬间减少水路倒流冲击。改完再测试切换瞬间的压力降从0.08MPa压到了0.02MPa以内完全在可接受范围。4.4 反馈断线这种小故障必须有兜底保护反馈断线保护本来不在最初方案里是调试过程中偶然发现的。有次我把压力变送器信号线拆了没插回去监视程序时发现PID输出直接跑到100%系统全速加压。当时泵出口阀门关着发现问题不算迟但如果是正常运行状态下发生断线后果就是管网压力不断升高甚至可能打爆管道。断线之后PV被当成0PID认为压力严重不足拼命加频率这个控制逻辑本身没有错错在系统没有对反馈真实性做判断。后来我在程序里加了三层保护第一层AIW低于量程下限的3%也就是1V以下约对应4mA时判定反馈断线或传感器损坏直接停所有泵并报警第二层AIW高于量程上限超过5%判定传感器漂移同样报警停机第三层PID输出长期超过95%且压力反馈始终上不去判定管网异常限制加泵次数并提示现场检查。这套边界保护看着不起眼但真到了现场价值比PID参数整定还大。所有模拟量闭环系统都必须优先处理反馈类故障这是做控制系统的基本功。5. 运行一年后的复盘哪些逻辑能留下哪里需要改5.1 可靠性表现与接触器损耗这套系统投运一年多整体稳定性不错。最典型的高峰时段两台泵运行一台变频一台工频出口压力稳定在设定值正负0.02MPa以内。低峰时段单泵变频运行能耗比以前恒速泵加节流阀的方案省了大约30%。用户那边的反馈也从频繁投诉水压不稳变成了基本没人提。但我在定期巡检时发现一个隐患工频泵切换频率较高的那台接触器触头已经有明显烧蚀。这个其实符合物理规律接触器在带负荷情况下分合电弧对触头寿命影响很大。后来我做了几项改进接触器选型比电机额定电流放大两档触头氧化情况明显好转每月巡检时检查触头表面状态发现烧蚀严重就提前更换泵的切换顺序按运行时间轮换避免同一台泵的同一个接触器天天动作。这些维护经验从成本角度看比换一块高端PLC实在得多。5.2 我会给下一套系统额外加上的保护复盘整个项目如果还有下一套系统我会主动多加上这几样东西。一是水源缺水保护。我现在的系统只检测了出口压力没有检测进水状态如果进水管网本身缺水水泵会处于空转状态长时间空转会损坏机械密封。可以在进水母管上加一个液位开关或者压力开关低于阈值直接停泵。二是变频器故障后的自动旁路逻辑。现在的系统变频器一旦报故障整个系统就全停了。如果这个泵房属于不能长时间停水的场合可以在控制逻辑里增加旁路功能检测到变频器故障后系统自动切到工频直接带一台泵维持供水同时报警通知维护人员。这个功能相当于给系统增加了一个降级运行模式。三是在现场增加简单的人机交互界面。S7-200本身不擅长做HMI但可以通过串口接一个小型文本显示器把加泵、减泵、故障、运行时间等信息实时显示出来。没有这个显示器现场维护人员只能靠听声音和看压力表判断系统状态效率低也不直观。5.3 从S7-200迁移到S7-200 SMART需要注意的差异如果这套系统将来要整体更新迁移到S7-200 SMART是比较顺的路线。两者的LD编程思路和PID向导用法高度相似大部分逻辑可以平移。但有几个点必须注意。首先SMART的SR40、ST40这类CPU本身没有本体模拟量需要额外扩展EM AM06模拟量模块程序里AIW、AQW地址规划要重新分配。其次SMART的PID指令虽然还是基于回路表但向导生成方式不同参数要重新配置一遍。第三SMART标配以太网通信口在线监控、下载程序比老S7-200用PPI电缆方便太多这对后期维护是巨大的体验提升。我更想强调的是迁移的时候加减泵切换、频率让步、防振荡、轮换、断线保护这套经过现场验证的运行逻辑一定要原封不动带过去。PID参数可以重新整定但控制思路是这套系统的核心资产。换什么PLC、用什么变频器最后都只是载体。我个人在这些年做过的泵站项目里最深的一条体会就是控制系统值钱的永远是那些运行逻辑和边界故障处理硬件平台只是放这些逻辑的地方。
返回列表