1. 项目概述
这个恒压供水系统项目基于西门子S7-1200 PLC为核心控制器,搭配PID算法和HMI触摸屏,实现了一拖三(一台变频器控制三台水泵)的恒压供水解决方案。我在工业自动化领域实施过多个类似项目,这种架构是目前中小型供水系统的主流配置,特别适合小区、商业综合体等场所的二次供水需求。
恒压供水的核心目标是通过实时调节水泵转速,保持管网压力恒定。传统供水方式要么压力波动大,要么能耗高,而采用PLC+PID+变频器的方案可以完美解决这些问题。这个样例程序已经包含了完整的控制逻辑和参数设置,可以直接作为项目开发的起点。
2. 系统架构与硬件选型
2.1 硬件组成解析
这套系统的硬件配置非常经典:
- 控制器:西门子S7-1214C DC/DC/DC
- 选择理由:自带14点数字量输入/10点输出,2路模拟量输入,满足基本需求;如果系统更大,建议选择1215C或1217C
- 变频器:西门子G120C(功率根据水泵电机选配)
- 关键参数:必须支持MODBUS RTU或PROFIBUS DP通讯
- HMI:西门子KTP700 Basic
- 实际经验:7寸屏是最经济的选择,但若参数多建议用10寸
- 压力传感器:4-20mA输出,量程0-1.6MPa(常规建筑供水压力)
重要提示:压力传感器安装位置直接影响控制效果,应装在距离最不利用水点2/3处,避免装在泵出口附近。
2.2 网络拓扑设计
系统通讯采用分层结构:
- PLC与变频器:PROFIBUS DP(推荐)或MODBUS RTU
- DP通讯优势:抗干扰强,速度更快(实测MODBUS在30m以上易受干扰)
- PLC与HMI:以太网
- 扩展模块:根据需要添加SM1231模拟量输入模块
现场布线经验:
- 动力电缆与信号电缆必须分开走线槽
- 模拟量信号使用双绞屏蔽线,屏蔽层单端接地
- PROFIBUS网络终端电阻要设置正确
3. 控制程序设计详解
3.1 主程序框架设计
程序采用模块化结构,主要包含以下OB块:
- OB1:主循环(调度各功能块)
- OB35:100ms循环中断(用于PID计算)
- OB82:故障处理
- FB1:水泵轮换控制
- FB2:PID压力调节
- DB1:全局数据块
关键编程技巧:
- 使用"首次扫描"标志位初始化所有变量
- 建立完善的故障自诊断机制
- 重要参数设置掉电保持
3.2 PID算法实现
采用西门子标准PID_Compact指令块,参数设置:
- 输入:PV_PER(实际压力,0-27648对应0-1.6MPa)
- 输出:LMN_PER(变频器频率,0-27648对应0-50Hz)
- 参数整定:
- 比例增益P:0.5-2.0(先从小值开始)
- 积分时间Ti:10-30s
- 微分时间Td:0(供水系统通常不用微分)
调试心得:
- 先手动模式测试执行机构动作方向
- 纯比例调节至系统出现等幅振荡,此时增益为临界增益Ku
- 最终参数取:P=0.5Ku,Ti=0.5Tu(振荡周期)
3.3 一拖三水泵控制逻辑
水泵切换策略采用"先启先停+定时轮换"原则:
- 1#泵作为主泵,优先启动
- 压力不足时,按1-2-3顺序启动备用泵
- 每24小时自动轮换主泵顺序
- 单泵运行超8小时自动切换
关键程序段:
code复制IF "压力低信号" THEN
IF NOT "泵1运行" THEN
"启动泵1"
ELSIF NOT "泵2运行" AND "泵1负荷>90%" THEN
"启动泵2"
ELSIF NOT "泵3运行" AND "总负荷>85%" THEN
"启动泵3"
END_IF
END_IF
4. HMI界面设计要点
4.1 主监控画面
必备元素:
- 压力实时曲线(时间轴至少显示30分钟)
- 水泵运行状态(颜色区分运行/停止/故障)
- 当前压力设定值(带权限控制)
- 系统模式切换(手动/自动/维护)
设计技巧:
- 关键参数使用闪烁动画提醒异常
- 操作按钮增加二次确认弹窗
- 重要参数修改记录操作日志
4.2 参数设置画面
必须包含的参数:
- PID参数(P、I、D)
- 压力设定值(可设多时段不同压力)
- 水泵切换时间参数
- 故障报警阈值
安全设计:
- 不同级别操作密码权限
- 参数修改范围限制
- 工程师模式隐藏入口
5. 系统调试与优化
5.1 调试步骤
标准调试流程:
- 静态测试:检查所有IO点
- 手动模式测试:逐台泵测试正反转
- 自动模式空载测试:不接水管测试逻辑
- 带载调试:从低压力值逐步上调
5.2 常见问题解决
典型故障处理表:
| 故障现象 |
可能原因 |
解决方案 |
| 压力振荡大 |
PID参数不合适 |
重新整定PID参数 |
| 水泵频繁启停 |
休眠设置不当 |
调整休眠唤醒压力差 |
| 通讯中断 |
终端电阻未接 |
检查DP头电阻开关 |
| 压力显示不准 |
传感器量程设置错误 |
核对传感器参数 |
5.3 节能优化技巧
实际项目中的节能措施:
- 夜间压力可降低10%
- 设置合理的休眠压力带(如±0.02MPa不调节)
- 根据流量自动调整PID参数
- 利用压力罐减少泵启停次数
6. 程序扩展与升级
这套基础方案可以进一步扩展:
- 增加远程监控(通过SCADA系统)
- 接入能耗管理系统
- 添加水质监测功能
- 实现泵房环境监控
在最近的一个小区改造项目中,我们就在此基础上增加了手机APP报警功能,当压力异常时可以直接推送告警到管理人员手机,大大提高了响应速度。