4. 报警信号采集与预处理
报警系统的第一道质量关口不在报警判断逻辑,而在采集与预处理。工业现场中,报警源并非只有一种形态:4–20 mA 模拟量、干接点开关量、PLC 状态字、Modbus/OPC UA 通信报文、设备日志文本,它们的时间尺度、噪声特征和失效模式各不相同。如果把这些原始数据直接送入报警判断,最常见的后果是抖动报警、重复报警和漏报。本节围绕“采集链路—滤波—去抖—有效性校验”这条主线,说明如何把异构原始信号整理成可信的报警输入。
一、四类报警源的采集链路差异
传感器信号通常经变送器转为 4–20 mA 或 0–10 V,再由 AI 模块以固定扫描周期采样。它的核心风险是工频干扰、量程漂移和断线(电流低于 3.6 mA 常判为断线)。设备状态字来自 PLC 或驱动器的过程映像区,本质是位信号,采集周期与 PLC 扫描周期一致,风险在于位定义随固件版本变化、通信延迟导致状态滞后。通信报文(Modbus TCP、OPC UA、Profinet)承载的是打包后的过程数据,风险是超时、丢包、序号跳变和值冻结。日志数据则是设备主动输出的文本事件,风险是时间戳不统一、字段缺失和乱码。
这四类源在采集链路上的位置不同,因此预处理策略也必须分开设计。下图给出了一条典型的采集与预处理链路,从物理层到报警输入,标出了各环节的关键处理动作。
二、滤波:抑制随机噪声,不改变真实趋势
滤波的目标是去掉高频随机噪声,同时尽量保留真实的过程变化。工程上常用三种方式:算术平均滤波、中值滤波和一阶滞后滤波。算术平均适合变化缓慢的温度、压力信号,例如每 100 ms 采样一次,取最近 8 个点求平均,输出周期仍为 100 ms,但噪声标准差约降为原来的 1/√8≈0.35。中值滤波适合存在偶发尖峰脉冲的信号,取最近 5 个点的中位数,可有效剔除单点跳变。一阶滞后滤波(RC 滤波)适合需要平滑但允许轻微滞后的场合,其递推式为:
y[k] = α · x[k] + (1 − α) · y[k−1]
α = Ts / (Ts + Tf)
Ts:采样周期,Tf:滤波时间常数
示例:Ts = 100 ms,Tf = 1 s,则 α = 0.1/1.1 ≈ 0.091
选择滤波参数时要权衡:Tf 越大,输出越平滑,但对真实突变的响应越慢。对于参与联锁保护的报警,滤波时间常数不宜过大,否则会延迟保护动作。建议对同一测点区分“显示值”和“报警判断值”,显示值可重滤波,报警判断值用轻滤波甚至不滤波。
三、去抖:区分真实状态变化与瞬时抖动
去抖针对的是开关量、状态字和报警位。机械触点闭合瞬间会产生毫秒级抖动,通信状态字也可能因单次丢包而瞬时翻转。常用两种去抖策略:
- 延时确认:状态变化后必须持续保持新状态达到 Td 才被确认。例如 Td=500 ms,可滤除绝大多数触点抖动和单次通信异常。
- 计数确认:连续 N 次采样均为新状态才确认。例如采样周期 50 ms,N=10,等效确认时间 500 ms,但对周期性干扰的抑制更稳定。
去抖参数必须与报警的紧急程度匹配。安全联锁类信号应尽量短(如 100 ms 以内)甚至不去抖,避免延迟保护;一般工艺报警可用 1–3 s;频繁波动的液位、流量报警可用 5–10 s。去抖时间不是越长越好,过长会掩盖真实的快速异常。
四、有效性校验:判断数据是否可信
有效性校验回答的是“这个值能不能用”,而不是“这个值是多少”。常见校验项包括:
| 校验项 | 适用对象 | 典型判据 | 不通过时的处理 |
|---|---|---|---|
| 量程越限 | 模拟量 | 超出 4–20 mA 对应工程范围 | 标记 BAD,产生诊断报警 |
| 断线检测 | 4–20 mA | 电流 < 3.6 mA 或 > 21 mA | 标记 BAD,禁止参与报警判断 |
| 通信超时 | 报文/状态字 | 超过 3 个轮询周期未更新 | 标记 BAD,保持上次有效值并计时 |
| 值冻结 | 模拟量/状态字 | 连续 N 周期数值完全不变且工艺上不应如此 | 标记 UNCERTAIN,提示检查 |
| 时间戳异常 | 日志/报文 | 时间戳倒退或与系统时间偏差 > 5 s | 标记 UNCERTAIN,重新对时 |
| 位定义校验 | 状态字 | 固件版本与位表不匹配 | 标记 BAD,禁止解析该字 |
校验结果应写入质量码,与过程值一起传递。报警判断逻辑必须先看质量码:GOOD 才参与判断;BAD 直接产生“数据无效”诊断报警;UNCERTAIN 可参与判断但需在报警文本中标注“数据存疑”。这样可以把“设备真的异常”和“数据本身不可信”区分开,避免误报和漏报混在一起。
五、一个可落地的参数配置示例
以某反应釜温度报警为例:传感器为 Pt100 经变送器输出 4–20 mA,对应 0–200 ℃,AI 模块采样周期 100 ms,PLC 扫描周期 20 ms,报警阈值为 150 ℃ 高报警。可配置如下:
采集周期:100 ms
滤波方式:一阶滞后,Tf = 1 s,α ≈ 0.091
去抖方式:延时确认,Td = 2 s
有效性校验:
断线:电流 < 3.6 mA 或 > 21 mA → BAD
越限:温度 < −5 ℃ 或 > 205 ℃ → BAD
冻结:连续 50 个周期(5 s)数值变化 < 0.01 ℃ → UNCERTAIN
报警判断:质量码 = GOOD 且滤波后温度 > 150 ℃ 持续 2 s → 触发高报警
诊断报警:质量码 = BAD → 触发“温度信号无效”报警
这套参数的含义是:滤波抑制噪声,去抖避免温度在阈值附近反复触发,有效性校验识别断线和冻结。三者串联后,报警输入既平滑又可信。实际投用前,应通过注入阶跃信号和模拟断线来验证响应时间与诊断报警是否正确,而不是只看正常工况下的显示值。