矿井排水系统是煤矿安全生产的生命线。在我参与的某大型煤矿自动化改造项目中,传统的人工排水控制方式暴露出响应滞后、效率低下等问题。特别是在雨季,水位上涨速度经常超出人工控制的反应能力,曾多次导致设备被淹事故。
这个5泵排水系统的设计目标很明确:通过三菱PLC+组态王的组合,实现水位实时监测、泵组智能调度、故障自动切换三大核心功能。系统需要满足:
关键设计原则:水位分级控制策略。我们将矿井深度划分为5个水位区间(L1-L5),每个区间对应不同的泵组运行组合,既避免频繁启停又确保排水效率。
经过比选FX3U-48MT/ES-A和Q系列PLC后,最终选定FX5U-64MT/ES作为主控制器,主要考虑:
实际配置时特别增加了:
原始IO分配表存在输入点浪费问题,我们优化后的方案:
| 设备类型 | 信号点 | PLC地址 | 备注 |
|---|---|---|---|
| 急停按钮 | 常闭 | X0 | 硬线直连安全回路 |
| 手动/自动切换 | 旋钮 | X1 | 0=手动 1=自动 |
| 水位传感器1-5 | 4-20mA | AI0-AI4 | 对应深度-10m至+5m |
| 泵故障信号 | 干接点 | X6-X10 | 热继电器的常开触点 |
| 泵1-5控制 | 继电器 | Y0-Y4 | 通过接触器控制主电路 |
| 报警指示灯 | 输出 | Y10 | 声光报警器联动 |
实操技巧:所有数字量输入点均并联0.1μF电容滤波,模拟量信号采用双绞屏蔽线传输,有效解决了井下电磁干扰问题。
采用分层设计思想,程序结构如下:
ladder复制// 主控程序(OB1)
LD SM0.0 // 始终导通
CALL SBR0 // 调用初始化子程序
CALL SBR1 // 调用水位处理子程序
CALL SBR2 // 调用泵控逻辑子程序
// 水位处理子程序(SBR1)
LDW>= AIW0, 1000 // 水位L1阈值(1m)
MOVW 1, MW0 // 设置水位等级标志
LDW>= AIW0, 2000 // 水位L2阈值(2m)
MOVW 2, MW0
... // 类推至L5
// 泵控逻辑子程序(SBR2)
LD M0.0 // 自动模式标志
AENO
LD MW0 // 当前水位等级
EU
= M10.0 // 水位变化上升沿
st复制IF 水位等级=1 THEN 启动1#泵
ELSEIF 水位等级=2 THEN 启动1#+2#泵
ELSEIF 水位等级=3 THEN 启动1#+2#+3#泵
...
END_IF
ladder复制LD X6 // 1#泵故障信号
S M20.0 // 置位故障标志
R Y0 // 立即停止故障泵
LD M20.0
TON T37, 50 // 延时5秒
LD T37
S Y1 // 启动备用泵
ini复制[Device]
Name=Mitsubishi_FX5U
Type=MODBUS_TCP
IP=192.168.1.100
Port=502
Timeout=3000
主界面布局:
高级功能实现:
vb复制' 脚本计算水位变化率
If (CurrentLevel - LastLevel) / SampleTime > Threshold Then
Alarm.PreAlert = True
End If
st复制IF 水位>上限+0.2m THEN 启动泵
IF 水位<下限-0.3m THEN 停止泵
在实际运行三个月后,我们进一步优化了:
这套系统最终实现的效果: