液冷机柜漏水检测,传感器告警系统搭建
液冷机柜漏水检测告警系统搭建的核心思路是:在液冷管路接头、分水器、快接头和机柜底部托盘等高风险位置布设漏水传感器,由采集控制器读取干接点信号,再通过动环平台或自定义脚本触发声光、短信或工单告警。
整套方案的关键不在于传感器本身,而在于布点是否合理、告警是否可验证。
哪些位置必须先装传感器
液冷系统漏水的典型高发点集中在管路连接和压力变化区域,布点应优先覆盖以下位置:
- 机柜底部接水盘或托盘,用于捕捉垂直滴落液体
- 分水器进出水口、快接头插拔处
- 软管与金属管转接位置
- 每台液冷服务器的进出水口附近
- 机房地板下走管段的最低点
传感器类型通常分两类:点式漏水传感器(绳式或探头式)适合定位具体漏点,线缆式漏水检测绳适合沿管路走向长距离覆盖。
实际部署中两者常混用,点式装在接头处,线缆式铺在机柜底部。
接线与采集控制器配置
多数漏水传感器输出的是干接点(常开或常闭)信号,接入采集控制器即可。
以常见的 RS485 采集模块为例,操作步骤如下:
- 确认传感器输出类型,干接点接入 DI 输入口,供电传感器接 12V/24V 直流电源
- 将采集模块通过 RS485 总线连接到动环主机或工控机,A/B 线不要接反
- 在动环平台中添加设备,设置从站地址、波特率(常见 9600 或 19200)、寄存器地址
- 配置告警点位,将 DI 状态映射为“漏水告警”,并设置告警级别
如果使用自定义脚本采集,可以用 pymodbus 读取寄存器,示例片段:
from pymodbus.client import ModbusSerialClient
client = ModbusSerialClient(port='/dev/ttyUSB0', baudrate=9600, parity='N', stopbits=1, bytesize=8)
client.connect()
result = client.read_discrete_inputs(address=0, count=8, slave=1)
for i, bit in enumerate(result.bits):
if bit:
print(f'点位 {i} 触发漏水告警')
运行后如果终端能打印触发点位,说明采集链路已通。
告警联动与通知渠道
采集到漏水信号后,需要配置告警动作。
常见联动方式包括:
- 动环平台声光告警器触发
- 短信或企业微信/钉钉机器人推送
- 联动关闭液冷循环泵或切换备用回路(需谨慎,建议只做提示不做自动关阀)
- 生成运维工单并记录时间戳
以钉钉机器人为例,在告警脚本中调用 Webhook 即可:
curl -X POST 'https://oapi.dingtalk.com/robot/send?access_token=你的token' \
-H 'Content-Type: application/json' \
-d '{"msgtype":"text","text":{"content":"液冷机柜 A03 检测到漏水,请立即检查"}}'
发送后如果钉钉群收到消息,说明告警通道正常。
验证系统是否真的可靠
搭建完成后必须做实际触发测试,不能只看配置页面。
验证方法:
- 用湿布或少量水触碰传感器探头,观察采集模块指示灯和平台告警状态
- 检查告警从触发到通知的延迟,一般应在 10 秒内
- 断开传感器接线,确认平台能上报“传感器离线”而不是静默
- 模拟连续触发,确认不会因为重复告警被平台去重吞掉
如果触发后平台无反应,优先检查采集模块地址、寄存器类型(DI 还是线圈)和告警点位映射是否正确。
容易踩坑的几个地方
传感器位置比数量更重要:装再多探头,如果没覆盖快接头和接水盘,依然会漏报。
干接点极性搞反:常开常闭配置错误会导致告警逻辑完全相反,测试时必须实际触发确认。
RS485 总线过长或未加终端电阻:距离超过几十米时信号容易丢,建议加 120Ω 终端电阻并降低波特率。
只做本地声光不做远程通知:夜间无人值守时机房声光告警基本无效,远程推送必须配置。
忽略传感器自身故障:传感器断线应产生独立告警,否则漏水时系统可能已经离线。
常见疑问
漏水检测绳和点式传感器应该怎么选?
管路接头密集区域用点式更精准,长距离走管和机柜底部用线缆式覆盖更省事,两者结合最稳妥。
告警延迟一般多少算正常?
从传感器触发到通知送达,10 秒内属于正常范围,超过 30 秒建议检查采集周期和网络链路。
能不能联动自动关闭液冷阀门?
技术上可以,但不建议直接自动关阀,误报可能导致服务器过热,建议只做告警提示由人工确认。
整个系统搭建完成后,建议每月做一次手动触发测试,确认传感器、采集模块和通知渠道都处于可用状态,避免真正漏水时才发现告警失效。