1. 恒压供水系统概述
恒压供水系统是现代建筑给排水工程中的核心设备,它通过自动调节水泵运行状态,确保管网压力恒定。一拖三系统指的是由一台变频器控制三台水泵的配置方案,这种架构在中小型供水项目中应用广泛,既能满足压力稳定性要求,又能实现设备的高效轮换使用。
在实际工程中,我们常遇到这样的场景:白天用水高峰期需要三台泵全开,夜间用水低谷时可能只需一台泵运行。传统工频控制方式会导致水泵频繁启停,不仅能耗高,还对设备寿命有严重影响。采用变频器+PLC的智能控制系统后,水泵可以根据实际需求平滑调节转速,节能效果可达30%以上。
2. 系统硬件架构设计
2.1 核心控制器选型
西门子S7-200 SMART SR20 CPU是这个系统的"大脑",选择它主要基于以下几个考量:
- 本体集成14点输入/10点输出,满足基础逻辑控制需求
- 支持最多6个扩展模块,为系统留出扩展空间
- 内置RS485接口,方便与变频器和触摸屏通讯
- 性价比高,维护成本低,特别适合中小型项目
提示:SR20的模拟量处理能力有限,需要搭配AE04模块使用。在选型时要注意CPU型号后的"ST"表示晶体管输出,"SR"表示继电器输出,供水系统一般选用SR型即可。
2.2 模拟量扩展模块配置
AE04模块提供4路模拟量输入,在恒压供水系统中主要承担以下任务:
- 1路用于管网压力检测(4-20mA信号)
- 1路备用,可扩展为流量监测
- 剩余2路可连接其他传感器,如水箱水位等
模拟量信号处理需要注意:
- 压力变送器建议选用0-1.0MPa量程,对应4-20mA输出
- 信号线必须采用屏蔽双绞线,单端接地
- 在PLC中需要做滤波处理,避免压力波动导致误动作
2.3 人机界面选择
昆仑通态触摸屏作为操作终端具有以下优势:
- 同时支持Modbus RTU和USS协议,可并联连接PLC和变频器
- 内置PID调节画面,方便现场调试
- 支持数据记录功能,可存储压力曲线等历史数据
- 7寸屏幕性价比高,防护等级达到IP65
实际配置时,需要在触摸屏上设计以下关键画面:
- 主监控画面:显示当前压力、频率、泵状态等
- 参数设置画面:调整目标压力、频率阈值等
- 报警记录画面:查看历史故障信息
- 手动操作画面:维护时单泵控制
3. 控制系统软件实现
3.1 压力信号采集处理
在SCL语言中,完整的压力采集程序应包含以下处理:
scl复制FUNCTION_BLOCK Pressure_Processing
VAR_INPUT
AI_Raw : INT; // 来自AQW的原始值
END_VAR
VAR_OUTPUT
Pressure : REAL; // 处理后的压力值(MPa)
Pressure_Filtered : REAL; // 滤波后的压力值
END_VAR
VAR
Filter_Buffer : ARRAY[0..4] OF REAL := [0,0,0,0,0];
Index : INT := 0;
END_VAR
// 量程转换 (假设0-32767对应0-1.0MPa)
Pressure := INT_TO_REAL(AI_Raw) / 32767.0 * 1.0;
// 移动平均滤波
Filter_Buffer[Index] := Pressure;
Index := (Index + 1) MOD 5;
Pressure_Filtered := (Filter_Buffer[0] + Filter_Buffer[1] + Filter_Buffer[2]
+ Filter_Buffer[3] + Filter_Buffer[4]) / 5.0;
END_FUNCTION_BLOCK
这段代码实现了两个关键功能:
- 将模拟量原始值转换为实际压力值(0-1.0MPa)
- 采用5点移动平均滤波算法,消除信号抖动
3.2 变频器PID控制配置
虽然PID算法主要在变频器内实现,但PLC需要与其配合完成以下工作:
-
通讯参数设置(以Modbus RTU为例):
- 波特率:9600bps
- 数据位:8位
- 停止位:1位
- 校验方式:偶校验
-
关键参数写入:
- 目标压力值(对应变频器给定频率)
- PID参数(P、I、D值)
- 加减速时间
-
频率反馈读取:
- 实时获取变频器输出频率
- 用于水泵启停逻辑判断
在昆仑通态触摸屏上,可以直观地调整PID参数。典型初始值建议:
- 比例增益P:1.5-2.5
- 积分时间I:5-10秒
- 微分时间D:0.5-2秒
3.3 水泵轮换控制逻辑
完整的加减泵策略需要考虑以下因素:
scl复制FUNCTION_BLOCK Pump_Control
VAR_INPUT
Current_Freq : REAL; // 当前频率(Hz)
Pressure_Error : REAL; // 压力偏差(MPa)
Manual_Override : BOOL; // 手动模式
END_VAR
VAR_OUTPUT
Pump1_Cmd : BOOL; // 泵1启停命令
Pump2_Cmd : BOOL; // 泵2启停命令
Pump3_Cmd : BOOL; // 泵3启停命令
END_VAR
VAR
High_Freq_Set : REAL := 48.0; // 加泵频率阈值
Low_Freq_Set : REAL := 25.0; // 减泵频率阈值
Pump_Run_Time : ARRAY[1..3] OF TIME; // 各泵运行时间
Next_Pump : INT := 2; // 下次启动的泵编号
END_VAR
// 自动模式下的加减泵逻辑
IF NOT Manual_Override THEN
// 加泵条件:频率高于阈值且当前泵数不足
IF Current_Freq > High_Freq_Set THEN
CASE Next_Pump OF
2: Pump2_Cmd := TRUE;
3: Pump3_Cmd := TRUE;
END_CASE;
// 更新下次启动的泵编号(简单轮换策略)
Next_Pump := Next_Pump + 1;
IF Next_Pump > 3 THEN
Next_Pump := 2;
END_IF;
END_IF;
// 减泵条件:频率低于阈值且有多余泵运行
IF Current_Freq < Low_Freq_Set THEN
IF Pump3_Cmd THEN
Pump3_Cmd := FALSE;
ELSIF Pump2_Cmd THEN
Pump2_Cmd := FALSE;
END_IF;
END_IF;
END_IF;
// 运行时间统计(用于均衡磨损)
IF Pump1_Cmd THEN
Pump_Run_Time[1] := Pump_Run_Time[1] + T#1S;
END_IF;
IF Pump2_Cmd THEN
Pump_Run_Time[2] := Pump_Run_Time[2] + T#1S;
END_IF;
IF Pump3_Cmd THEN
Pump_Run_Time[3] := Pump_Run_Time[3] + T#1S;
END_IF;
END_FUNCTION_BLOCK
这个功能块实现了:
- 基于频率阈值的自动加减泵控制
- 简单的轮换策略,均衡水泵磨损
- 运行时间统计功能,为高级轮换策略打基础
4. 系统调试与优化
4.1 现场调试步骤
-
硬件检查阶段:
- 确认所有接线正确,特别是模拟量信号的极性
- 检查接地系统,确保信号地、电源地分离
- 验证各泵的转向是否正确
-
参数初始化:
- 设置变频器基本参数(电机铭牌数据)
- 配置通讯参数,确保PLC与变频器能正常交互
- 输入初步PID参数(可先用出厂默认值)
-
闭环调试:
- 先手动控制单泵运行,观察压力响应
- 切换到自动模式,逐步调整PID参数
- 测试加减泵逻辑,确认切换平稳
4.2 PID参数整定技巧
通过现场实践,总结出以下PID整定经验:
-
先调P值:
- 逐步增大P值直到系统开始振荡
- 然后减小到振荡消失时的80%
-
再调I值:
- 从较大值开始逐步减小
- 观察压力超调量,控制在5%以内
-
最后调D值:
- 主要用于抑制高频振荡
- 一般设为I值的1/4到1/2
典型问题处理:
- 压力波动大 → 减小P值或增大I值
- 响应速度慢 → 增大P值或减小I值
- 超调严重 → 适当增加D值
4.3 常见故障排查
根据实际项目经验,整理常见故障及解决方法:
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 压力显示异常 | 变送器故障/接线错误 | 测量变送器输出电流,检查PLC采集值 |
| 变频器不响应 | 通讯参数错误/接线松动 | 检查通讯设置,用调试软件监控报文 |
| 水泵频繁启停 | 频率阈值设置不当 | 调整高低频率阈值,增加死区 |
| 压力振荡 | PID参数不合适 | 重新整定PID参数,增加滤波 |
| 单泵过载 | 机械故障/阀门未开 | 检查泵体、管路,确认阀门状态 |
5. 系统扩展与优化建议
5.1 高级控制策略实现
基础系统稳定后,可以考虑以下增强功能:
- 智能轮换策略:
- 基于运行时间自动选择启动泵
- 优先启动运行时间短的泵
- 实现代码如下:
scl复制// 在原有代码基础上增强轮换逻辑
FUNCTION Select_Next_Pump : INT
VAR_INPUT
Run_Times : ARRAY[1..3] OF TIME;
Current_Pumps : ARRAY[1..3] OF BOOL;
END_VAR
VAR
Min_Time : TIME := T#0S;
Candidate : INT := 0;
i : INT;
END_VAR
// 找出未运行且运行时间最少的泵
Min_Time := T#9999H;
FOR i := 2 TO 3 DO
IF NOT Current_Pumps[i] AND Run_Times[i] < Min_Time THEN
Min_Time := Run_Times[i];
Candidate := i;
END_IF;
END_FOR;
// 返回候选泵编号,若无则返回0
Select_Next_Pump := Candidate;
END_FUNCTION
-
睡眠功能:
- 夜间低流量时自动停泵
- 压力低于阈值时自动唤醒
- 可设置睡眠时间段
-
压力分时段控制:
- 白天设置较高压力
- 夜间适当降低压力
- 节假日特殊设置
5.2 安全保护机制完善
可靠的供水系统需要多重保护:
-
干运行保护:
- 检测进水压力
- 低水位自动停泵
- 恢复延时功能
-
过载保护:
- 监控电机电流
- 持续过载报警
- 自动切换备用泵
-
通讯故障处理:
- 心跳检测机制
- 超时自动切换本地控制
- 故障记录与报警
5.3 能效优化措施
通过以下方法可进一步提升系统能效:
-
管网特性分析:
- 记录24小时压力-流量曲线
- 找出最佳工作点
- 优化压力设定值
-
泵组效率匹配:
- 测试各泵在不同转速下的效率
- 优先使用高效泵
- 调整组合策略
-
变频器参数优化:
- 调整载波频率
- 优化V/F曲线
- 启用节能运行模式
在实际项目中,我们曾通过精细调整压力设定值(从0.45MPa降到0.42MPa),配合优化的泵组控制策略,使某小区供水系统月耗电量降低了18%,效果非常显著。