1. 项目概述:PLC控制的污水处理系统
去年接手了一个日处理量500吨的工业污水处理项目,采用西门子S7-1200 PLC作为主控制器,配合组态王6.55实现工艺过程的全动画仿真。这套系统最让我自豪的是将传统污水处理工艺与现代工业自动化技术完美结合,实现了从物理过滤到生化处理的全程自动化控制。
整个系统包含8台水泵(3台潜污泵、2台加药泵、3台回流泵)、3台搅拌机(调节池、生化池、消毒池各1台)、5个气动阀门(DN50-DN150不等),以及PH计、浊度仪、液位开关等12个检测仪表。通过36个IO点的精准控制,实现了污水处理过程的无人值守运行。
关键提示:工业污水处理系统必须考虑防腐蚀设计,所有现场仪表需选用IP68防护等级,PLC柜内要加装防潮加热器。
2. 系统架构与工艺设计
2.1 污水处理工艺流程
典型的物理-生化组合工艺设计如下:
- 进水格栅:去除大颗粒杂质(采用2mm不锈钢机械格栅)
- 调节池:均衡水质水量(停留时间4小时,配搅拌机和PH调节)
- 生化反应池:A/O工艺处理(溶解氧控制在2-4mg/L)
- 沉淀池:斜管沉淀设计(表面负荷1.2m³/m²·h)
- 消毒池:次氯酸钠消毒(余氯量0.5mg/L)
2.2 控制系统硬件配置
核心设备选型考虑:
- PLC:西门子S7-1215C DC/DC/DC(6ES7215-1AG40-0XB0)
- HMI:昆仑通态TPC7062KX(7寸触摸屏)
- 通信:Profinet网络+4G DTU远程监控
- 扩展模块:SM1223 DI16x24VDC/DQ16x24VDC
- 模拟量:SM1231 AI8x13bit + SM1232 AQ4x14bit
3. PLC程序设计详解
3.1 核心控制逻辑实现
以调节池液位控制为例,采用三级控制策略:
ladder复制Network 1
//低液位启动进水泵(带干保护延时)
A "调节池液位_LOW"
AN "进水泵_Fault"
TON "进水泵_Delay", T#30S //防频繁启停
= "进水泵_Start"
Network 2
//高液位连锁控制
A "调节池液位_HIGH"
AN "沉淀池_Busy"
S "阀门3_Open", 1 //置位输出
R "进水泵_Start", 1 //复位泵控制
这段程序有几个关键点:
- 使用TON定时器避免液位波动导致泵频繁启停
- 通过S/R指令实现状态保持
- 与下游设备状态连锁(沉淀池_Busy信号)
3.2 模拟量处理技巧
PH值采集与滤波处理:
scala复制//DB1中创建数据结构
"PH_Raw" : REAL //原始值
"PH_Filtered" : REAL //滤波后值
"PH_Buffer" : ARRAY[0..9] OF REAL //滑动窗口
//OB35循环中断组织块(100ms周期)
"PH_Buffer"[0] := "AI0".PV //读取通道值
//移动平均滤波
"PH_Filtered" := CALCULATE_AVG("PH_Buffer")
//线性校准(4-20mA对应6-9PH)
"PH_Value" := SCALE_X_TO_Y("PH_Filtered", 0.0, 27648.0, 6.0, 9.0)
实测经验:模拟量信号建议采用滑动窗口滤波+软件校准,比硬件滤波器成本低且调整灵活。
4. 组态王动画开发实战
4.1 动态液位显示实现
通过VBS脚本实现实时动画:
vbs复制Sub UpdateTankLevel()
Dim level, maxHeight
level = ReadPLC("DB1.DBD24") //浮点型液位值(0-100%)
maxHeight = 400 //图形对象最大高度
//设置水位填充
SetFillColor "Water", RGB(30, 144, 255) //道奇蓝
SetObjectHeight "Water", level * maxHeight / 100
//报警处理
If level > 90 Then
SetVisible "HighAlarm", True
StartBlink "HighAlarm", 500 //500ms闪烁
Else
SetVisible "HighAlarm", False
End If
End Sub
调试发现三个优化点:
- 使用SetObjectHeight比内置动画控件性能提升40%
- 将频繁访问的PLC地址转为中间变量减少通信负载
- 复杂动画建议放在画面"定时器事件"中执行
4.2 趋势图高级应用
通过ODBC将实时数据存入SQLite:
vbs复制//在Application脚本中初始化数据库
Sub OnStartup()
Set conn = CreateObject("ADODB.Connection")
conn.Open "DRIVER=SQLite3 ODBC Driver;Database=C:\Data\Monitor.db"
conn.Execute "CREATE TABLE IF NOT EXISTS History(Time TEXT, Param TEXT, Value REAL)"
End Sub
//数据记录函数
Sub LogData(param, value)
sql = "INSERT INTO History VALUES('" & Now() & "','" & param & "'," & value & ")"
conn.Execute sql
End Sub
5. IO地址规划与图纸设计
5.1 详细IO分配表
| 设备名称 | 类型 | 地址 | 备注 |
|---|---|---|---|
| 进水泵启停 | DO | Q0.0 | 继电器输出 |
| 格栅机运行 | DO | Q0.1 | 变频器控制 |
| 急停按钮 | DI | I0.7 | 常闭触点 |
| PH值 | AI | PIW256 | 4-20mA输入 |
| 液位开关高 | DI | I1.2 | 浮球开关 |
5.2 电气设计要点
-
电源分配:
- 主电路:三相380V(动力设备)
- 控制电路:220VAC(接触器线圈)
- 仪表电源:24VDC(隔离电源)
-
信号隔离:
- 模拟量:采用信号隔离器(一进一出)
- 数字量:光电耦合隔离
-
接地系统:
- 动力地(PE)与仪表地(SG)分开
- PLC柜单独接地电阻<4Ω
6. 调试问题与解决方案
6.1 典型故障处理记录
-
问题:气动阀反馈信号抖动
- 现象:阀门状态指示灯频繁闪烁
- 原因:机械振动导致限位开关接触不良
- 解决:
- PLC程序增加20ms延时判断
- 更换为磁感应式接近开关
- 电气柜内加装信号隔离器
-
问题:模拟量信号干扰
- 现象:PH值随机跳变
- 排查:
- 断开传感器,测量线路感应电压>1V
- 发现与变频器动力线同桥架敷设
- 整改:
- 重新敷设屏蔽双绞线
- 模拟量电缆单端接地
- 增加信号滤波器(硬件RC+软件滤波)
6.2 系统优化建议
-
程序结构优化:
- 使用FB功能块封装重复逻辑(如泵控制)
- 建立设备状态机模型(运行/停止/故障)
-
维护功能增强:
- 添加设备累计运行时间统计
- 实现自动生成运行报告(Python脚本示例):
python复制import sqlite3
from datetime import datetime
def generate_report(start_date, end_date):
conn = sqlite3.connect('Monitor.db')
cursor = conn.cursor()
# 查询历史数据
query = """
SELECT Param, AVG(Value), MAX(Value), MIN(Value)
FROM History
WHERE Time BETWEEN ? AND ?
GROUP BY Param
"""
cursor.execute(query, (start_date, end_date))
# 生成HTML报告
with open('report.html', 'w') as f:
f.write("<h1>污水处理系统运行报告</h1>")
f.write(f"<p>统计周期:{start_date} 至 {end_date}</p>")
for row in cursor.fetchall():
f.write(f"<div>{row[0]}: 平均{row[1]:.1f}, 最高{row[2]}, 最低{row[3]}</div>")
conn.close()
# 示例:生成上月报告
today = datetime.now().strftime('%Y-%m-%d')
last_month = (datetime.now() - timedelta(days=30)).strftime('%Y-%m-%d')
generate_report(last_month, today)
7. 工程文件说明
完整项目包含以下资源:
-
PLC程序(TIA Portal V16工程)
- 包含所有功能块(FB)、数据块(DB)
- 带详细注释的梯形图程序
- 硬件组态配置文件
-
组态王工程(Kingview 6.55)
- 全工艺流程图画面
- 报警记录与趋势图配置
- VBS脚本源代码
-
电气图纸(AutoCAD格式)
- 主电路图
- PLC接线图
- 仪表回路图
-
调试文档
- IO地址分配表(Excel格式)
- 设备参数设置记录
- 通讯协议说明
这套系统经过三个月连续运行测试,各项指标均达到《城镇污水处理厂污染物排放标准》(GB 18918-2002)一级A标准。特别是在能耗控制方面,通过优化泵组运行策略,吨水电耗较传统系统降低22%。