1. 项目概述:基于S7-200Smart的恒压供水系统设计
在工业自动化领域,恒压供水系统是典型的闭环控制应用场景。这个案例采用西门子S7-200Smart PLC作为控制核心,配合Smart 700触摸屏和ABB变频器,通过RS485通讯实现PID控制。系统采用"一拖二"架构,即一台变频器控制两台水泵(一用一备),根据管网压力实时调节水泵转速,保持供水压力恒定。
关键优势:相比传统压力罐供水方式,变频控制可节能30%-50%,且压力波动范围可控制在±0.01MPa以内。
系统硬件配置清单:
- 控制器:S7-200Smart SR20(14DI/10DO,2AI)
- HMI:Smart 700 IE V3触摸屏
- 变频器:ABB ACS550-01-072A-4(7.5kW)
- 传感器:扩散硅压力变送器(0-1.6MPa,4-20mA输出)
- 通讯方式:Modbus RTU over RS485(波特率9600)
2. 核心控制逻辑与PID参数整定
2.1 控制策略设计
系统采用"变频器内置PID+PLC监控"的混合控制模式。这种设计将PID运算放在变频器本地执行,减轻PLC负担的同时利用PLC做高级逻辑控制和参数管理。具体分工如下:
-
变频器负责:
- 实时接收压力传感器信号(4-20mA)
- 执行PID算法计算输出频率
- 电机启停控制和故障保护
-
PLC负责:
- 压力设定值下发
- PID参数远程调整
- 水泵轮换控制
- 系统状态监控
2.2 PID参数整定方法
现场调试时采用"临界比例度法"整定PID参数:
- 先设置I=0,D=0,逐渐增大P直到系统出现等幅振荡
- 记录此时的临界增益Ku和振荡周期Tu
- 根据Ziegler-Nichols公式计算:
- P = 0.6*Ku
- I = 2*Tu
- D = Tu/8
典型供水系统的经验参数范围:
- 比例带(P):30%-70%
- 积分时间(I):5-30秒
- 微分时间(D):0-5秒
调试技巧:夏季用水高峰时适当减小P值(提高响应速度),冬季则增大P值(避免频繁启停)
3. 通讯系统实现细节
3.1 Modbus RTU通讯配置
PLC与变频器通过RS485接口通讯,硬件接线注意事项:
- 采用屏蔽双绞线(如RVSP 2×1.0)
- 终端电阻120Ω(长距离通讯时必须启用)
- A/B线不得反接(ABB变频器A=485+,B=485-)
PLC端通讯参数设置:
st复制// S7-200Smart通讯口配置
MOV_B 16#09, SMB30 // 9600bps, 无校验, 8数据位, 1停止位
MOV_B 16#02, SMB87 // 启用Modbus主站模式
变频器参数设置(ACS550):
- 参数组51(通讯设置):
- 5101=1(Modbus RTU)
- 5102=1(站地址)
- 5103=3(9600bps)
- 5104=0(无校验)
3.2 关键数据交换格式
PLC向变频器写入的数据帧示例(设置目标压力):
code复制[站地址][功能码06][寄存器40001][数据0x0FA0][CRC校验]
其中0x0FA0对应压力设定值10.00bar(16位整数,单位0.01bar)
变频器返回的状态信息:
- 40003:输出频率(0-5000对应0.0-50.00Hz)
- 40005:输出电流(0-2000对应0.0-200.0%)
- 40007:故障代码
4. HMI界面设计与功能实现
4.1 主监控界面布局
Smart 700触摸屏采用WinCC Flexible开发,主要包含:
- 压力实时曲线(采样周期1秒)
- 水泵运行状态指示灯
- 参数设置窗口(密码保护)
- 报警历史记录表
关键变量地址映射:
- VW100:当前压力(INT,单位0.01MPa)
- VW102:设定压力(INT)
- VW104:变频器频率(INT,单位0.01Hz)
- M10.0:水泵1运行状态
- M10.1:水泵2运行状态
4.2 参数保护机制
为防止误操作,关键参数设置采用三级权限管理:
- 操作员级:只能查看运行数据
- 工程师级:可修改压力设定值
- 管理员级:可调整PID参数和系统配置
密码验证逻辑示例:
st复制// 密码验证程序段
LD SM0.0
MOV_B 16#0, VB50 // 默认权限等级
LD I0.0 // 登录按钮
EU
MOV_B 16#1, VB50 // 操作员权限
LDW= VW200, 1234 // 输入密码比较
MOV_B 16#2, VB50 // 工程师权限
LDW= VW200, 5678
MOV_B 16#3, VB50 // 管理员权限
5. 系统调试与故障处理
5.1 常见问题排查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯中断 | 终端电阻未接 | 在末端设备接入120Ω电阻 |
| 压力波动大 | PID参数不合适 | 重新整定PID参数 |
| 变频器不响应 | 站地址冲突 | 检查各设备地址是否唯一 |
| HMI显示#### | 数据格式错误 | 检查变量类型(INT/REAL) |
5.2 抗干扰措施
-
信号线处理:
- 模拟量信号采用双绞屏蔽线单独走线
- 屏蔽层单端接地(控制柜侧)
- 与动力电缆保持30cm以上距离
-
电源处理:
- PLC与变频器使用不同回路供电
- 加装电源滤波器(特别是变频器输入端)
- 重要信号采用DC24V中间继电器隔离
-
接地系统:
- 保护地(PE)与工作地(SGND)分开
- 接地电阻<4Ω
- 避免多点接地形成环流
6. 系统优化与扩展建议
6.1 节能优化策略
-
睡眠功能实现:
- 当夜间用水量极低时(压力持续10分钟无变化)
- 自动停泵并切换至压力罐维持
- 压力低于唤醒阈值时自动重启
-
水泵轮换逻辑:
- 累计运行时间统计
- 每24小时自动切换主备泵
- 故障时自动切换至备用泵
6.2 物联网扩展
通过添加CP243-1以太网模块可实现:
- 远程监控(Web访问或手机APP)
- 数据记录与分析(SQL数据库存储)
- 预测性维护(振动/温度监测)
典型网络架构:
code复制[现场PLC]--(以太网)-->[边缘网关]--(4G)-->[云平台]
7. 关键程序代码解析
7.1 水泵切换逻辑
st复制// 水泵轮换控制程序
LD SM0.0
TON T37, 3600000 // 1小时计时器
LD T37
MOV_DW &VB100, VD200 // 累计泵1运行时间
MOV_DW &VB104, VD204 // 累计泵2运行时间
R T37, 1
LD VD200 > VD204
S M10.1, 1 // 优先启动运行时间少的泵
R M10.0, 1
LD VD200 <= VD204
S M10.0, 1
R M10.1, 1
7.2 压力超限报警
st复制// 压力保护程序
LD SM0.0
MOVW VW100, VW110 // 当前压力
ITD VW110, VD120 // 转双整数
DTR VD120, VD124 // 转实数
/R 100.0, VD124 // 换算为MPa值
LD VD124 > 0.65 // 超压阈值0.65MPa
S M20.0, 1 // 触发超压报警
LD VD124 < 0.15 // 低压阈值0.15MPa
S M20.1, 1 // 触发欠压报警
8. 工程文档规范
完整的项目交付应包含:
- 电气原理图(CAD格式)
- IO分配表
- 设备参数表
- 测试报告(含PID整定记录)
- 操作维护手册
文档控制要点:
- 版本号管理(如V1.0.0_20240615)
- 变更记录表
- 签名确认页
这套系统在实际项目中表现出色,经过三个月连续运行测试,压力控制精度保持在±0.008MPa以内,相比改造前的工频运行方式节能达42%。特别需要注意的是,在调试初期我们发现变频器载波频率设置过高(8kHz)导致传感器信号干扰,将其降至4kHz后问题解决。