🚨 事故摘要: 2025年1月某北方电子厂,MAU-03新风机组预热盘管冻裂,热水大量泄漏,导致洁净室停产48小时,直接经济损失约35万元。根因竟是PLC程序中缺失一句关键互锁条件。
1. 事故背景与损失
1.1 系统配置
- 设备型号:MAU-03 新风机组,风量 60,000 m³/h
- 预热盘管:铜管铝翅片,热水供热,设计供水温度 60℃
- 控制系统:西门子 S7-1200 PLC + 触摸屏
- 运行模式:冬季工况,24小时连续运行
1.2 损失统计
| 损失项目 | 金额(万元) | 说明 |
|---|---|---|
| 预热盘管更换 | 8.5 | 整组盘管报废,需定制更换 |
| 停产损失 | 22.0 | 48小时产能损失 |
| 洁净室恢复 | 3.0 | 除湿、清洁、重新验证 |
| 其他维修 | 1.5 | 电气元件、保温材料等 |
| 合计 | 35.0 |
2. 事故经过时间线
1月12日 02:15
室外气温骤降至 -18℃,热水循环泵因电气故障跳停
02:18
MAU-03 预热盘管出水温度开始快速下降
02:25
出水温度降至 3℃,但 MAU 风机仍在运行,新风阀全开
02:35
盘管内水温降至 0℃以下,开始结冰
02:50
运行人员发现盘管处有异响,手动停止风机
03:10
盘管多处破裂,热水喷涌而出,洁净室湿度报警
3. 根因分析:缺失的互锁逻辑
事故发生后,技术团队对 PLC 程序进行了全面审查,发现了致命缺陷:
🔍 根本原因
防冻保护逻辑中,缺少了"热水循环泵运行状态"与"新风阀/风机"的硬互锁。
原程序中,防冻保护仅依赖于温度传感器信号。当热水泵跳停时,PLC 虽然收到了泵故障信号,但并未触发任何保护动作。新风阀继续保持全开,-18℃的冷空气持续吹过盘管,导致管内静止的水在15分钟内完全冻结。
3.1 原程序逻辑缺陷分析
图1:原程序控制逻辑(错误版本)
原程序的防冻逻辑仅判断预热盘管出水温度,当温度低于 5℃ 时触发报警,但没有自动停机保护。更致命的是,热水泵的运行状态完全没有参与风机和新风阀的控制。
3.2 为什么温度保护未能生效?
当热水泵跳停时,盘管内的水停止流动,但由于盘管热惯性,出水温度传感器处的温度下降存在延迟。在温度降到报警阈值之前,盘管进水侧已经结冰。这种"滞后效应"使得单纯的温度保护无法及时响应泵故障。
4. 正确的防冻保护逻辑设计
一个完善的 MAU 防冻保护逻辑,必须包含三重冗余保护:
4.1 保护层级设计
| 保护层级 | 触发条件 | 保护动作 | 响应时间 |
|---|---|---|---|
| 第一级:预报警 | 出水温度 < 10℃ | 发出预警,提醒运行人员检查 | 实时 |
| 第二级:自动保护 | 出水温度 < 5℃ 或 热水泵停止 | 关闭新风阀、风机降频至最低 | < 1秒 |
| 第三级:紧急停机 | 出水温度 < 3℃ 且 热水泵停止 | 完全停止风机、关闭新风阀、全开热水阀 | < 0.5秒 |
4.2 关键互锁条件
✅ 必须实现的互锁逻辑:
- 新风阀开允许条件:热水循环泵运行 ≥ 1 个
- 风机启动允许条件:预热盘管出水温度 > 15℃ 或 热水阀开度 > 30%
- 热水泵故障响应:立即关闭新风阀,风机降至最小频率
图2:正确的防冻保护控制逻辑图
5. PLC程序对比(错误 vs 正确)
5.1 原程序(错误版本)
// 原程序:防冻保护逻辑(不完整)
IF "MAU_Preheat_Temp" < 5.0 THEN
"Alarm_Freeze_Warning" := TRUE; // 仅报警,无自动动作
END_IF;
// 新风阀控制(缺少互锁)
"Valve_OA" := "HMI_OA_Setpoint"; // 直接按设定值开阀
// 风机启停(缺少互锁)
IF "HMI_Fan_Start" THEN
"Fan_Run" := TRUE;
END_IF;
5.2 整改后程序(正确版本)
// 整改后:完善的防冻保护逻辑
// 1. 热水泵状态监测
#Pump_OK := ("Pump1_Run" OR "Pump2_Run");
// 2. 防冻保护触发条件
#Freeze_Trip := ("MAU_Preheat_Temp" < 3.0)
OR (NOT #Pump_OK AND "MAU_OA_Temp" < 5.0);
// 3. 新风阀互锁控制
IF #Freeze_Trip THEN
"Valve_OA" := 0.0; // 强制关闭新风阀
"Alarm_Freeze_Critical" := TRUE;
ELSIF NOT #Pump_OK THEN
"Valve_OA" := 0.0; // 泵停则阀关
"Alarm_Pump_Fault" := TRUE;
ELSE
"Valve_OA" := "HMI_OA_Setpoint";
END_IF;
// 4. 风机互锁控制
IF #Freeze_Trip THEN
"Fan_Speed" := 0.0; // 紧急停机
ELSIF ("MAU_Preheat_Temp" < 10.0) OR (NOT #Pump_OK) THEN
"Fan_Speed" := "Fan_Min_Speed"; // 最低频率运行
ELSE
"Fan_Speed" := "HMI_Fan_Setpoint";
END_IF;
6. 整改措施与验证
6.1 硬件整改
- 在预热盘管进水侧增加温度传感器,消除检测盲区
- 热水泵增加冗余配置,一用一备自动切换
- 新风阀改为弹簧复位型,失电自动关闭
6.2 软件整改
- 按上述正确逻辑重写 PLC 程序
- 增加防冻保护模拟测试功能,可在线验证逻辑
- 防冻报警信息推送至值班手机
6.3 验证测试
整改完成后,进行了以下测试验证:
- ✅ 模拟热水泵故障:新风阀 2 秒内关闭,风机降至最低频率
- ✅ 模拟出水温度 < 3℃:风机停机,新风阀关闭,报警触发
- ✅ 模拟恢复正常:系统自动恢复运行,无需人工干预
7. 经验教训与防冻Checklist
📌 核心教训: 自控程序的健壮性,不在于正常工况下的功能实现,而在于异常工况下的保护逻辑是否完备。一句缺失的互锁,可能造成数十万的损失。
7.1 冬季防冻检查清单
✅ 检查所有热水循环泵运行状态信号是否接入 PLC
✅ 验证泵故障时新风阀是否自动关闭
✅ 测试防冻温度保护阈值是否正确(建议 5℃)
✅ 检查新风阀失电时是否自动关闭(弹簧复位)
✅ 确认盘管最低点设有排水阀
✅ 验证防冻报警是否推送至值班人员
✅ 检查保温层是否完好,无破损
✅ 制定极端天气应急预案
💡 延伸建议: 对于北方严寒地区的 MAU,建议采用乙二醇溶液作为预热热媒,可从根本上杜绝冻裂风险。虽然初投资略高,但相比一次冻裂事故的损失,性价比极高。