☰
西门子200smart PLC的3托3全变频恒压供水系统设计与调试
2026/9/29 17:32:42 网站建设 项目流程

前阵子刚把一个恒压供水项目收尾,现场是3台水泵全部配置独立变频器,也就是圈子里常说的“3托3”结构,控制核心用的是西门子200smart PLC。整体调试差不多花了一周,时间主要耗在PID参数整定和加减泵逻辑上。今天把方案架构、选型配置、程序思路和调试中的坑一次性整理出来,给正在做供水、泵站控制的朋友一个可以直接参考的样板。

这个项目本身不算复杂,但要把它做稳定却有不少细节。尤其3托3全变频结构,和常见的一拖二、一拖三逻辑不完全一样,启动、轮换、减泵的判断都得重新考虑。如果你接触过供水项目就知道,恒压供水最怕的不是硬件不行,而是逻辑不严密、参数没整定好,导致压力来回震荡、泵频繁切换,现场根本没法交工。下面我把项目从需求到调试完整过一遍,重点讲为什么这样做、怎么做的、以及实测中会遇到哪些问题。

1. 项目需求与“3托3”方案解读

1.1 为什么选3托3全变频架构

接到这个项目时,业主给的需求很明确:现场有3台水泵,要求管网压力恒定,设定压力在0.4到0.8MPa之间可调,流量变化范围比较大,白天用水高峰和夜间低谷差别悬殊,要求水泵能自动加减泵、自动轮换,尽量减少人工干预。

一开始也考虑过传统的一拖三方案,也就是1台变频器轮流带3台泵,其他泵工频运行。这种方案成本最低,但有个硬伤:工频泵投入时是直接启动,会对管网造成冲击,轻则压力波动,重则水锤。而且一拖三意味着任何时候只有一台泵在变频调节,加减泵瞬间要靠切换接触器实现,切换过程存在短暂断流风险,这在供水要求高的场合是不太能接受的。

所以最后定下来的是3台水泵各自配1台变频器,也就是3托3全变频方案。三台泵可以同时运行、同时变频,频率给定统一来自PID输出,加减泵时不需要切换接触器,泵是软启动投入、软停机退出,对管网和电网都友好得多。代价是设备投资高一些,但换来的是控制质量和水泵寿命,长远看这笔投入值得。

1.2 3托3的控制要求与运行模式

3托3结构下,控制逻辑要和运行模式严格对应。这个项目定义了三种模式:手动模式、自动单泵模式、自动全变频模式。

手动模式用于调试和检修,操作员可以在触摸屏上直接启停任意一台泵,频率也可以在触摸屏上手动给定,不经过PID。自动单泵模式适合夜间小流量工况,系统只启动一台泵,由PID直接调节这一台泵的频率。自动全变频模式是主力运行模式,系统根据PID输出自动判断需要投入几台泵,所有运行泵接收同一个PID频率给定,同时升速或降速。

之所以保留自动单泵模式,是因为全变频模式下三台泵同时启动的话,夜间小流量时频率会跌到很低的区间,不仅效率差,还可能触发变频器的低频保护。我见过不少项目把加减泵逻辑写得太激进,结果夜间水泵频繁启停,变频器报警一大堆。所以在逻辑设计上先把工况分清楚,再写加减泵判断,这是后面所有程序的基础。

2. 硬件选型与系统构成

2.1 PLC与扩展模块的配置思路

控制核心用的是西门子200smart,具体型号选了CPU SR40,因为统计完输入输出点之后,需要24点数字量输入、16点继电器输出,SR40本体刚好匹配,不需要再挂数字量扩展模块,省了一个模块的柜内空间和成本。

但要提醒一句,选型时一定要把备用点算进去。这个项目DI用了18个点,DO用了14个点,如果把泵的故障、手自动状态、变频器准备就绪、远程模式、还有触摸屏的预留按钮全算上,余量就非常紧张。如果当初只数实际点位就下单,后期肯定要返工。我习惯在统计结果上至少预留20%的点位余量。

模拟量方面,压力变送器输出的是4到20mA两线制信号,需要1路模拟量输入。变频器频率反馈本来打算也用模拟量读,但后来决定全部走Modbus通讯,所以模拟量输入模块只需要1路。这里用了200smart的模拟量扩展模块EM AM06,带4路模拟量输入和2路模拟量输出,输入输出都有富余。如果只是接一路压力信号,也可以选更小的EM AE01,但AM06多出来的模拟量输出点以后可以扩展用途,比如接记录仪或者做备用输出,一步到位更省事。

2.2 变频器与传感器选型考虑

3台变频器选的是市场上非常常见的通用型变频器,这里要根据水泵电机功率选型。现场单台泵电机是11kW,所以变频器选15kW规格,留了一些余量。选变频器时有一个很容易忽略的点:供水泵通常是大惯量负载,变频器默认的转矩提升和加速时间设置不一定合适,出厂后需要手动调整。

压力变送器的选择也有一点讲究。供水管网压力测量一般用扩散硅压力变送器,量程选择要按实际工况来。现场要求的压力设定范围是0.4到0.8MPa,为避免传感器输出接近量程上限导致信号饱和,选了0到1.6MPa量程的变送器,4到20mA输出,实际压力0.8MPa时对应12mA,正好在信号范围的中间位置,线性度最好,也为上限留足余量。

变频器和PLC之间的通讯采用的是Modbus RTU协议,这个后面专门讲,因为涉及到200smart的通讯端口配置和程序编写,是很多新手容易卡住的地方。

2.3 电气原理与接线实操注意点

接线上面有几个细节值得单独说。第一是压力变送器的供电,项目里用的是24V直流电源,注意变送器是两线制还是四线制,如果是两线制,正极接24V,负极同时接到PLC模拟量模块的AI通道和模块的COM端,电流信号才能形成回路。接反了或者COM端没接好,读出来的数值就是乱跳的。

第二是模拟量信号的屏蔽线。虽然压力变送器到PLC的距离不长,也就十几米,但柜内有变频器这个强干扰源,所以模拟量电缆必须用屏蔽双绞线,屏蔽层在PLC端单端接地,不能两端都接,更不能让屏蔽层悬空。现场调试时就发现,屏蔽层没接的时候,AIW读出来的压力值波动能达到0.05MPa以上,接好屏蔽层后波动立即降到0.005MPa以内,前后的差别非常明显。

第三是变频器到电机的输出线,务必和模拟量信号线分槽走线,不要绑在一起。变频器输出侧是高频PWM波,对模拟量信号的干扰是灾难性的。有些项目为了走线美观把动力线和信号线放在同一个线槽里,结果压力信号跳动,PID根本稳不住,最后只能重新布线。

第四是Modbus通讯线的连接。200smart的RS485接口是九针D型口,3号脚是B(负),8号脚是A(正),这个和很多变频器端子标注可能不同,接线前一定要核对变频器的A/B定义,接反了通讯直接不通。通讯线要用屏蔽双绞线,屏蔽层单端接地,通讯波特率根据距离选定,45米以内的距离用9600或者19200都可以,这个项目用的是9600。

3. 程序设计:PID与轮换控制逻辑

3.1 200smart中PID向导的配置方法

200smart编程软件STEH 7-Micro/WIN SMART里有PID向导,这是做恒压供水必须用好用的工具。打开向导后,选择PID回路编号,设置回路参数、给定值和过程值的范围、输出类型,然后向导会自动生成一个PID子程序,在梯形图中直接调用它,每N个扫描周期调用一次即可。

这个过程参数设置上,项目里是这样配的:给定值是压力设定值,以0到100的标定值形式存储,0对应0MPa,100对应1.6MPa,所以0.6MPa的设定值就是37.5。过程值是压力变送器的实时压力,同样标定到0到100范围。PID输出则对应变频器频率给定,0表示0Hz,100表示50Hz。

这里要特别说明的是,PID向导的输出范围默认0到100,但在实际工程中PID输出上限不能直接给100,因为变频器最高运行频率一般只有50Hz,如果PID输出到了上限,意味着变频器已经满频输出但压力仍不足,这时系统应该进入加泵判断,而不是继续憋着输出。所以在PID输出后面做了一个限幅,把输出上限限制在90,也就是45Hz,超过这个值持续一段时间就触发加泵逻辑。这样做的好处是给加减泵判断留了一个清晰的、可判断的阈值区间。

还有一个容易忽略的向导配置项是微分项。供水系统是大惯性环节,压力变化相对较慢,微分作用对快速变化的干扰很敏感,容易把系统整得来回振荡。项目的做法是直接把微分时间设为零,只用比例积分做PI控制。实际调下来效果很理想,压力稳定后波动不超过正负0.01MPa。如果你做的是小型供水系统,也建议优先使用PI控制,不要一上来就把三个参数都打开。

3.2 加减泵与轮换逻辑的编程实现

3托3全变频的核心逻辑在于判断什么时候加泵、什么时候减泵,以及加减的是哪一台泵。这个项目里采用了一种比较保守但可靠的策略。

加泵判断:当前运行泵数少于3台,且PID输出连续30秒大于加泵阈值(90%),就判定为当前运行泵已经满足不了用水需求,需要投入下一台泵。这里一定要加延时,不能PID输出一高就立刻加泵,因为用水波动是正常现象,偶尔几秒钟的输出偏高不代表真的需要加泵。30秒的延时是基于现场用水规律实测后定下来的,太短容易频繁加泵,太长则高峰时压力先掉下来再补上去,体验不好。

减泵判断:当前运行泵数大于1台,且PID输出连续60秒小于减泵阈值(35%),说明水用少了,需要退出一台泵。减泵阈值设置成35%而不是更低,是因为如果让PID输出在20%甚至10%还保持多泵运行,变频器输出频率太接近下限,不仅电机效率低,还可能因为长期低频运行导致电机散热不足。这个35%对应17.5Hz,已经在允许的低频范围内了。

轮换逻辑方面,用的是先启先停加运行时间累计的方式。每台泵在PLC里都有一个运行时间累计值,每次加泵时优先启动累计运行时间最少的泵,每次减泵时优先停止累计运行时间最多的泵。这样能保证三台泵的运行时间趋于平衡。有人问过为什么不用简单的先启先停,其实在只有两台泵时先启先停完全够用,但三台泵时如果不加时间均衡逻辑,中间那台泵很容易长期处于怠工状态,轴承都锈住了,到要启动的时候反而故障。

加减泵的切换,在3托3全变频结构下很简洁。加泵时,先把新泵的频率给定设为当前PID输出值,然后下发启动命令,变频器会在设定频率下直接软启动,不会对管网产生冲击;减泵时,先把要停的泵频率降到零,再发停止命令,或者直接下发停止命令同时让变频器按减速时间停机。现场配置的变频器减速时间设为10秒,避免停机瞬间压力突变。

3.3 安全保护与故障切换逻辑

供水系统的保护逻辑不能只依赖变频器自身的保护功能,PLC侧要多加几道保险。这个项目里做了泵故障切换、压力超限保护和水位联锁。

泵故障切换的逻辑是:运行过程中如果某台泵的变频器报故障,或者水泵过载,PLC会立即停掉故障泵,并在2秒延时后自动把备用电泵启动起来,确保供水不中断。这个2秒延时的设定初衷是给变频器一点复位时间,同时不至于让压力掉得太多。

压力超限保护分两个级别。压力达到设定值加上0.1MPa时,报警提示但不动作,让运行人员知道压力偏高;压力达到设定值加上0.2MPa时,立即停止所有泵,防止管网爆管。这个阈值可以根据项目实际情况调整,但原则是一级报警只提示、不动作,二级报警直接停机。

水位联锁是配合补水池使用的。如果蓄水池液位低于下限,说明水源不足,这时不管压力如何都要停泵,防止水泵空转损坏。液位信号用的是现场的液位开关,接到PLC的数字量输入点,液位过低时通过程序封锁所有泵的启动命令。

4. 参数整定与调试纪实

4.1 变频器关键参数设置明细

变频器参数设置看上去简单,但很多初次做的朋友会忽略几个关键项。这个项目里变频器主要设置了以下参数,可以给同样用通用变频器做供水控制的朋友参考。

第一是运行指令通道,设置为端子控制,由PLC的DO点控制变频器启动停止。虽然Modbus也可以控制启停,但端子控制的响应更直接,不受通讯状态的制约,万一通讯卡顿不至于影响启停。第二是频率给定通道,设置为Modbus通讯给定,由PLC通过RS485下发频率数值。这里有一个常见坑:通讯给定的数据格式要和变频器内部频率精度对应,项目里频率写入值是0到5000对应0.00到50.00Hz,PID输出的0到100要换算成0到5000之后再写进去。

第三是加减速时间。供水泵启动时水压建立需要时间,加速时间太短容易造成水锤,太长则压力迟迟上不去。项目里加速时间设为8秒,减速时间设为10秒,这是通过几次现场试验得到的比较合适的值。第四是下限频率,设置成10Hz,防止PID输出异常偏低时电机的转速过低、泵出口压力接近于零导致倒流。

如果变频器还有PID功能,这个项目里刻意没有使用。有些变频器内置PID,可以直接在变频器上设定给定压力,不需要PLC做PID。但在这个3托3全变频架构中,三台泵需要统一的频率给定和加减泵协调,用PLC的PID统一处理要比变频器各自处理灵活得多。所以变频器只作为执行机构,所有控制策略都在PLC里实现。

4.2 PID参数整定的实际过程与经验

PID参数整定是恒压供水调试中最耗时、也最考验经验的部分。这个项目的整定过程我按以下步骤做的,分享出来供你参考。

第一步,先利用阶跃响应法粗调比例。把积分时间设到最大、微分关掉,比例增益先给一个保守值,比如1.0左右。给定一个压力设定值,让系统只开一台泵,观察压力响应曲线。这时你会发现压力会有静差,达不到设定值,这是纯比例控制不可避免的。逐渐加大比例增益,每次增加0.5左右,直到压力出现轻微等幅振荡,然后退回到不振荡区间,这个增益值就是临界增益。

第二步,加入积分消除静差。在合适的比例增益基础上,逐渐减小积分时间,让系统尽快把静差消除掉。积分时间不能太小,否则压力会出现低频振荡。实测下来,这个系统积分时间设在20到30秒之间比较稳定。这和大家经验里的说法是一致的:供水系统惯性大,积分时间以10秒以上为常态,具体值要靠现场调。

第三步,精调。在比例和积分基本确定后,先把三个运行泵的模式打开,让系统自动加泵减泵跑一晚上,看一整天的压力趋势曲线。这一步特别重要,因为单泵时的PID参数在双泵、三泵同时运行时未必合适。三泵并联运行时,因为总出水量变大,同样PID输出下管网压力上升更快,所以综合参数需要比单泵略微保守一些。

最终整定下来的参数是比例增益1.8,积分时间22秒,微分时间0。这个参数在用水高峰期压力能快速跟上,低谷期也没有振荡,稳定精度在正负0.01MPa以内,业主验收时还是比较满意的。

4.3 调试中遇到的典型问题记录

调试过程不是一帆风顺的,这里把几个最典型的现场问题记录一下,每一个都很有代表性。

第一个问题是压力信号波动。接好线后,在触摸屏上观察压力显示值,发现数值在小数点后第二位不断跳动,最大波动幅度达到0.03MPa左右。排查时先确认变送器本身没问题,用万用表测电流输出,发现信号本身是稳定的,问题出在传输和采集环节。后来把模拟量线换成屏蔽双绞线,屏蔽层在PLC端接地,同时调整了PLC模拟量滤波参数,波动问题解决。

第二个问题是PID输出和变频器频率不一致。程序里PID输出是0到100,变频器频率对应0到50Hz,但在实际运行时发现,PID输出即使到了60,变频器显示频率只有20Hz左右,远低于预期的30Hz。排查后发现问题出在数据格式转换上。200smart的Modbus通讯写入时,如果把浮点数直接转换成整数写入,必须注意变频器支持的数据格式,这个项目里频率设定值需要的是四位十六进制数,也就是0到5000对应50.00Hz。程序中梯形图做好转换后,频率输出就准确了。

第三个问题是泵切换瞬间的压力波动。一开始加泵时压力会有一次明显下冲,然后才恢复。原因是新泵启动时频率给定还是零,变频器从零加速到PID输出值需要时间,这段时间内出水量没有立刻增加。后来优化了启动流程:加泵前先把新泵的启动频率预置为当前PID输出值,再发送启动命令,并把这个逻辑在程序里实现后,切换波动明显变小,从正负0.04MPa缩小到正负0.015MPa左右。

5. 常见问题排查与运维建议

5.1 压力持续振荡的排查思路

恒压供水最让人头疼的故障就是压力振荡,压力曲线像锯齿一样来回抖动,PID参数怎么调都压不住。遇到这种问题,不要一直纠结PID参数,先按照从外到内的顺序排查。

先看压力采集环节,用万用表在PLC模拟量通道处测变送器的电流,看电流本身稳不稳。如果电流就在跳动,说明变送器问题或者现场干扰严重,先把信号源搞定再谈PID。如果电流稳定,问题大概率在PLC或者变频器。再看变频器的实际输出频率是不是在跟着PID输出一起抖动,如果频率波动剧烈,说明PID响应太快或者反馈通道存在噪声,这时候可以在程序里对PID输出加一个速率限制,让频率变化速率不超过每秒钟多少赫兹,通常能有效缓解振荡。

我见过一个项目,压力振荡的原因是模拟量滤波时间设得太短,压力变送器本身有轻微的固有噪声,经过PID放大后变成了明显的频率抖动。把模拟量滤波时间从默认值加大后,振荡立刻消失了。所以遇见振荡问题,先别急着改PID,采集侧先排查干净。

5.2 水泵频繁启停的根源与对策

水泵频繁启停是供水项目的典型故障,尤其是在夜间小流量时。表象是泵一下启动一下停止,短则几分钟一个循环,长则十几个小时不停歇。这种问题多数不是硬件故障,而是加减泵判断逻辑和PID参数不匹配。

最常见的原因是加泵阈值设置得太低,而PID输出又经常在阈值附近徘徊。如果加泵阈值设成80%,PID输出在78%到83%之间来回波动,那么加泵条件和减泵条件就可能在短时间内交替满足,系统就会一会加泵一会减泵。解决方法是把加泵和减泵阈值拉开距离,形成滞回区间,比如加泵阈值90%、减泵阈值35%,同时加长确认延时,这样系统就不会在边界反复横跳。

另一个原因是PID积分作用太强,导致输出在小范围内来回穿越阈值。处理方法是适当增大积分时间,让PID输出变化更平缓。另外还有一种情况是减泵后的压力回升太慢,减泵后PID输出又很快达到加泵阈值,形成震荡循环,这种情况可以把减泵后的锁定时间做长一些,比如减泵后5分钟内不允许再加泵,给系统一个稳定期。

5.3 通讯抗干扰与数据校验经验

200smart和变频器之间的Modbus通讯,在正常工况下非常稳定,但一旦现场有较大的电磁干扰源,比如大功率电机启动或者切削设备运行时,通讯就可能偶发超时或错误帧。这个项目里做了几层防护,实际效果不错。

第一,通讯波特率不要盲目追求高速。虽然19200甚至38400也能稳定通讯,但现场干扰较强的情况下,9600是一个更稳妥的选择。供水系统的数据量很小,一个轮询周期无非是读写频率、电流、状态、故障码这些数据,9600波特率足够用了。第二,PLC的通讯超时重试逻辑要写。用Modbus通讯指令时,如果某次读写超时,不要无限重试,重试两三次后如果还不行就报通讯故障,同时保持当前的运行状态,不因为通讯异常停机。这个策略很重要,通讯出错不代表变频器故障,有时候就是偶发干扰,重试一下就好了。

第三,程序中要定期读取变频器的运行电流和故障状态,而不是只下发频率。我见过一些项目只往变频器写频率,从不读状态,结果变频器早就过热报警停机了,PLC还傻乎乎地输出频率,现场还不知道泵已经停了。加一个心跳检测:每5秒读一次变频器状态字,连续三次读不到有效数据就判定通讯中断,触发声光报警。

5.4 后期运维与扩展建议

这个项目交付后,我还给业主留了几条后期运维的建议。第一是定期检查压力变送器的导压管,看有没有堵塞或泄漏,这个小问题不处理会引起压力读数失真,导致PID误判断。第二是变频器的散热风道要定期清理,泵站环境一般灰尘比较大,散热不良是变频器损坏的主要原因之一。第三是水泵的机械密封要按周期检查,如果发现泵体漏水,要尽早处理,否则电机进水就麻烦大了。

关于扩展,这套200smart的控制系统以后想接入上位机、MES或者云平台也很方便。200smart本身支持以太网通讯,可以和组态软件做Modbus TCP通讯,也可以利用它的开放式用户通讯功能自己写协议上传数据。如果现场后续要增加第四台泵,硬件上加一路变频器、扩展一个数字量模块就能实现,程序逻辑已经把加泵判断做成通用的,不需要大改。

最后分享一个我个人习惯的做法:项目交付时,把每台泵的运行时间累计值保存到PLC的断电保持区,同时把PID参数的整定记录写在程序注释里。这样下次维护人员接手时,一看程序就知道当前参数是怎么来的,不需要从头摸索。做工程不是一锤子买卖,给自己的调试过程留好记录,后面会省很多事。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询