污水处理或雨水回收泵站控制 1、采用昆仑通态7寸新版触摸屏mcgspro;2、plc采用西门子S7-200 224XP自带模拟量输入; 3、三个水泵,低液位停泵,中液位轮换启一台泵,高液位启动两台泵,超高液位启三台泵; 4、超高水位降到高停个泵,高水位降压中水位停个泵,中水位降到低全部停泵,每次启动轮换输出… 5、有浮球模式和液位模式切换、液位,浮球控制一样;
最近在折腾一个雨水回收泵站的项目,用上了西门子S7-200 224XP和昆仑通态的新款触摸屏。这套系统最有趣的地方在于它的水位分级控制策略,特别是那个水泵轮换机制,今天咱们就掰开揉碎了聊聊实现细节。
硬件搭档
PLC用的是自带模拟量输入的224XP,刚好适配液位传感器的4-20mA信号。触摸屏选的是昆仑通态7寸Pro版,组态软件里拖拽式操作挺方便,关键是能和西门子PLC无缝对接。
水位控制核心逻辑
先上段简化版梯形图代码:
// 液位模式标志位 M0.0 = 浮球模式激活 ? 浮球信号 : 模拟量比较结果 // 水泵轮换计数器 T37(100ms) // 1秒周期脉冲 C0 up计数器 LDN M0.0 // 非液位模式时跳过 JMP end // 水位分级判断 LDD>= AIW0, 超高水位设定值 = Q0.0 // 启动全部三台泵 LDD< AIW0, 超高水位设定值 LDD>= AIW0, 高水位设定值 = M0.1 // 高水位标志 // 水泵运行逻辑 LD M0.1 AN T37 = C0脉冲触发 // 双泵运行时交替 LD C0.0 = Q0.1 // 泵1 LD C0.1 = Q0.2 // 泵2 LD C0.2 = Q0.3 // 泵3 end: NOP这段代码有几个关键点:
- 模式切换:通过M0.0实现浮球/液位模式的无缝切换,两种模式共用同一套控制逻辑
- 轮换机制:用计数器C0配合定时器T37生成1秒脉冲,每次水位达到阈值时触发计数器累加
- 输出分配:C0的计数值通过二进制位控制水泵,比如C0=1时001启动泵1,C0=2时010启动泵2,这种设计比传统移位指令更直观
轮换策略的魔鬼细节
实际调试中发现,单纯用计数器容易导致某台泵连续工作。后来改用了环形队列算法:
// 在每次水位下降时执行 MOV_B 16#01, VB100 // 初始队列 ROL_B VB100, 1 // 循环左移这招让水泵像值班一样轮岗,VB100这个字节型变量存储当前激活的泵编号,每次水位变化就左移一位。比如初始状态00000001表示泵1待命,下次变成00000010启动泵2,避免单泵过劳。
触摸屏组态骚操作
在昆仑通态屏上做了个动态水位柱状图:
-- 用脚本控制颜色变化 if 液位值 > 超高设定 then fillColor = "red" elseif 液位值 > 高设定 then fillColor = "yellow" else fillColor = "green" end配合趋势图实时显示水位曲线,运维人员一眼就能看出系统工作状态。参数设置界面加了三级密码保护,防止误操作。
现场踩坑实录
- 模拟量干扰问题:最初液位值偶尔跳变,后来在AIW0输入端加了RC滤波电路才稳定
- 水泵启动间隔:实测发现直接同时启动两台泵会冲击电网,改成5秒间隔启动后电流平稳了
- 浮球冗余设计:除了液位传感器,额外安装机械浮球作为双重保险,防止传感器故障导致淹水
这个项目最有意思的是水位控制策略的数学美感——就像打俄罗斯方块,不同水位段对应不同的消除策略。下次考虑加入模糊控制算法,让水泵启停更顺滑。毕竟在环保项目里,设备寿命和能耗都是真金白银啊。