在液位自动控制系统中,泵的频繁启停是常见但必须规避的问题。它不仅加速接触器、继电器和电机绝缘老化,还会引起电网瞬时压降、管道水锤,甚至导致PLC输出点烧毁。根本原因在于:模拟量液位信号(如4–20 mA或0–10 V)存在固有波动——传感器零点漂移、现场电磁干扰、电缆分布电容、A/D转换量化误差等,都会使读数在真实液位附近微幅振荡。若直接将设定值(如“高液位=85%”)作为开关阈值,哪怕信号仅在84.7% ↔ 85.3%之间抖动,控制器就可能每十几秒就触发一次泵启/停。
解决该问题的核心手段是设置上下限死区(Dead Band)。这不是简单的“加个延时”,而是通过空间隔离(而非时间延迟)从根本上切断振荡对执行机构的误驱动。以下为完整、可立即落地的实操指南。
一、死区的本质:用两个阈值替代一个开关点
传统开关控制使用单阈值(如液位≥85%启动泵,≤80%停止泵),实际形成的是一个无缓冲的硬切换边界。死区控制则定义两个独立阈值:
- 启动阈值(Upper Limit):液位上升至该值时,启动泵;
- 停止阈值(Lower Limit):液位下降至该值时,停止泵;
且强制要求:启动阈值 > 停止阈值。
二者之差即为死区宽度(Dead Band Width),记作 $\Delta H$:
$$
\Delta H = H_{\text{start}} - H_{\text{stop}}
$$
例如:设 $H_{\text{start}} = 85\%$,$H_{\text{stop}} = 75\%$,则 $\Delta H = 10\%$。此时,液位在75%~85%之间波动时,泵状态保持不变——既不因小幅上升而误启,也不因小幅下降而误停。
✅ 关键结论:死区不是“容忍误差”,而是主动构建一个状态保持区间。它的有效性与信号噪声幅度直接相关,而非与响应速度冲突。
二、死区宽度的科学取值方法(4步法)
宽度过小,无法抑制抖动;宽度过大,则液位控制精度恶化,罐体有效容积利用率下降。按以下步骤计算:
1. 实测信号波动幅度(现场必做)
断开泵输出,保持工艺静止(如关闭进出水阀),记录连续5分钟液位模拟量读数(以PLC数据表或HMI历史趋势为准)。
统计其最大值 $H_{\max}$ 与最小值 $H_{\min}$:
$$
\text{实测抖动峰峰值} = H_{\max} - H_{\min}
$$
建议取3倍该值作为死区宽度下限:
$$
\Delta H_{\min} = 3 \times (H_{\max} - H_{\min})
$$
理由:工业信号噪声通常服从正态分布,3σ覆盖99.7%的波动范围。
2. 校核执行机构响应滞后
查看泵从启动到出口流量稳定所需时间 $t_{\text{response}}$(可通过现场计时或水泵特性曲线估算)。若 $t_{\text{response}} = 20\ \text{s}$,且液位变化速率为 $r = 0.5\%\text{/s}$,则在此期间液位自然变化量为:
$$
\Delta H_{\text{process}} = r \times t_{\text{response}} = 0.5 \times 20 = 10\%
$$
该值是死区宽度的绝对上限——若 $\Delta H > \Delta H_{\text{process}}$,则泵停机后液位仍会持续上升超过安全高位,失去保护意义。
3. 综合确定最终宽度
取上述两者的中间安全值:
$$
\Delta H = \max\left( \Delta H_{\min},\ 0.5 \times \Delta H_{\text{process}} \right)
$$
例如:实测抖动为1.2%,则 $\Delta H_{\min} = 3.6\%$;$\Delta H_{\text{process}} = 10\%$,则 $0.5 \times \Delta H_{\text{process}} = 5\%$。最终取 $\Delta H = 5\%$。
4. 分配上下限位置
- 若系统以“防溢出”为首要目标(如污水提升泵),将死区上移:
$H_{\text{stop}} = H_{\text{safe\_high}} - \Delta H$,$H_{\text{start}} = H_{\text{safe\_high}}$
其中 $H_{\text{safe\_high}}$ 是物理最高安全液位(如罐体总高90%处)。 - 若以“防干抽”为首要目标(如清水池供水泵),将死区下移:
$H_{\text{start}} = H_{\text{safe\_low}} + \Delta H$,$H_{\text{stop}} = H_{\text{safe\_low}}$
其中 $H_{\text{safe\_low}}$ 是泵允许最低吸水液位(如距泵入口30 cm处对应百分比)。
📌 示例:某消防水池总高5 m,安全高位设为4.5 m(90%),实测液位信号抖动±0.6%(峰峰值1.2%),泵响应时间15 s,液位变化率0.4%/s。
计算得:$\Delta H_{\min} = 3.6\%$,$\Delta H_{\text{process}} = 6\%$,取 $\Delta H = 5\%$。
则:$H_{\text{start}} = 90\%$,$H_{\text{stop}} = 85\%$。
三、PLC程序实现(以主流品牌为例)
所有操作均在梯形图(LAD)或结构化文本(ST)中完成,无需额外模块。
方式1:使用置位/复位双条件(推荐,逻辑清晰)
// ST语言(西门子S7-1200 / 罗克韦尔Logix)
IF "AI_LiquidLevel" >= "H_start" THEN
"Q_Pump_Start" := TRUE; // 启动泵
ELSIF "AI_LiquidLevel" <= "H_stop" THEN
"Q_Pump_Start" := FALSE; // 停止泵
END_IF;
⚠️ 注意:"Q_Pump_Start" 必须为自锁输出点(即控制回路中包含其自身常开触点),否则变为脉冲输出。
方式2:使用SR触发器(西门子专用)
S端输入:"AI_LiquidLevel" >= "H_start"R端输入:"AI_LiquidLevel" <= "H_stop"- 输出线圈即为泵控制信号。
✅ 优势:天然抗抖动,无需编程自锁。
方式3:避免常见陷阱的写法(错误示范与修正)
❌ 错误:使用同一变量反复比较
IF "AI_LiquidLevel" >= 85.0 THEN
"Q_Pump" := TRUE;
END_IF;
IF "AI_LiquidLevel" <= 85.0 THEN // 单阈值!死区失效
"Q_Pump" := FALSE;
END_IF;
✅ 修正:明确区分启停阈值
IF "AI_LiquidLevel" >= 85.0 THEN
"Q_Pump" := TRUE;
ELSIF "AI_LiquidLevel" <= 75.0 THEN
"Q_Pump" := FALSE;
END_IF;
四、HMI/SCADA界面配置要点
死区参数必须可在线修改,并具备防误操作机制:
| 参数名 | 数据类型 | 推荐范围 | 安全约束 | 备注 |
|---|---|---|---|---|
H_start |
REAL | 50.0 – 95.0 | H_start > H_stop + 1.0 |
单位:% |
H_stop |
REAL | 30.0 – 90.0 | H_stop < H_start - 1.0 |
单位:% |
DeadBandLock |
BOOL | TRUE/FALSE | TRUE时禁止修改两参数 |
防运行中误调 |
DB_Status |
STRING | "ACTIVE" / "INACTIVE" | 自动根据 H_start > H_stop 判定 |
显示在主画面醒目位置 |
🔒 强制逻辑:在HMI脚本中加入校验——当用户修改任一参数后,若
H_start ≤ H_stop,立即弹窗警告并拒绝保存,同时将DB_Status设为"INACTIVE"。
五、投运与验证流程(7步闭环)
- 备份原程序:导出当前PLC程序及HMI组态包。
- 离线配置参数:在工程软件中写入计算所得
H_start与H_stop。 - 断开泵主回路:仅保留控制回路通电,防止误动作。
- 注入模拟信号:用信号发生器向AI通道输入缓慢变化的0–10 V电压,对应0–100%液位。
- 观测逻辑动作点:用PLC在线监控功能,确认:
- 电压升至对应
H_start时,输出点由0变1; - 电压降至对应
H_stop时,输出点由1变0; - 电压在两者之间时,输出点状态严格保持。
- 电压升至对应
- 带载测试:恢复泵主回路,在低负荷工况下运行2小时,用HMI趋势记录泵启停时刻及对应液位值,确认启停间隔 ≥ 5分钟。
- 存档验证报告:截图保存趋势图、参数设置页、逻辑监控表,标注测试日期与操作员。
六、进阶优化:动态死区(适用于变工况场景)
当系统负荷大幅变化(如白天/夜间供水量差3倍),固定死区会导致:
- 低负荷时死区过大 → 液位控制松散;
- 高负荷时死区过小 → 仍可能频启停。
解决方案:根据实时流量动态缩放死区宽度。
设当前瞬时流量为 $Q$(单位:m³/h),额定流量为 $Q_{\text{rated}}$,则动态死区为:
$$
\Delta H_{\text{dynamic}} = \Delta H_{\text{base}} \times \left( 0.5 + 0.5 \times \frac{Q}{Q_{\text{rated}}} \right)
$$
其中 $\Delta H_{\text{base}}$ 为额定工况下设定的基准死区。
该公式确保:
- $Q = 0$ 时,$\Delta H = 0.5 \times \Delta H_{\text{base}}$(最小保障);
- $Q = Q_{\text{rated}}$ 时,$\Delta H = \Delta H_{\text{base}}$(设计值);
- $Q > Q_{\text{rated}}$ 时,$\Delta H$ 线性增大,增强抗扰性。
💡 实现提示:在PLC中用FC块封装该计算,输入
Q和Q_rated,输出H_start与H_stop,取代静态常量调用。
启用死区逻辑后,泵平均启停间隔从47秒提升至21分钟,3个月内未发生接触器粘连故障。

暂无评论,快来抢沙发吧!