4. 异常检测与告警机制

厂内物流的异常恢复能力,首先取决于“异常能不能被及时、准确地发现”。如果检测环节漏报,人工接管就无从谈起;如果误报泛滥,调度员会被淹没在噪声里,真正严重的故障反而被忽略。因此,异常检测与告警机制要解决三个层次的问题:信号从哪里来、阈值怎么定、告警如何去噪。本节围绕传感器、PLC、调度系统、视觉系统四类信号源,讲清采集、判定与去噪的完整链路。

一、四类信号源的采集特点

厂内物流系统的异常信号并非来自单一设备,而是分布在从物理层到信息层的多个层级,各自的采集方式、数据形态和可靠性差异很大。

传感器层是最贴近物理世界的检测点,包括光电开关、接近开关、激光测距、称重、编码器等。它们通常输出开关量(0/1)或模拟量(4–20mA、0–10V)。例如输送线入口的光电开关被遮挡超过设定时间,说明可能有货物滞留或卡阻;AGV 驱动轮的编码器脉冲与指令速度偏差过大,说明可能打滑或受阻。传感器信号的特点是实时性强、语义简单,但容易受灰尘、反光、震动干扰,产生瞬时抖动。

PLC 层承担设备级的逻辑控制与状态汇总。PLC 采集各传感器的输入,执行联锁逻辑,并向上位系统输出设备状态字、故障码、运行/停止/急停等信号。PLC 的异常信号往往已经过一轮逻辑判断,例如“急停按下”“安全门打开”“电机过载”,语义比原始传感器更明确,但采样周期通常在 10–100ms 量级,需要关注扫描周期带来的延迟。

调度系统层关注的是任务与资源的宏观状态,包括任务超时、AGV 电量低、路径拥堵、任务分配失败、通信心跳丢失等。这类异常不是单个设备故障,而是系统级的不协调。调度系统的数据以事件和状态为主,采样频率低(秒级到分钟级),但影响范围大。

视觉系统层用于识别托盘位置、货物有无、条码、异物等。它输出的是结构化结果(识别成功/失败、坐标偏差、置信度)或图像。视觉异常包括识别置信度低于阈值、目标缺失、位置偏移超限。视觉信号信息量大,但受光照、遮挡影响明显,且处理耗时较长,需要与实时控制解耦。

四类信号源不是互相替代,而是互补:传感器负责“有没有”,PLC 负责“能不能动”,调度系统负责“该不该走”,视觉系统负责“对不对”。异常检测要把它们串成一条完整的证据链。

二、阈值设定:从固定阈值到动态基线

阈值是异常判定的核心参数。设得太松会漏报,设得太紧会误报。实际工程中通常分三步走。

第一步,确定判定量。不是直接对原始信号设阈值,而是先构造有物理意义的判定量。例如光电开关不能只看“是否遮挡”,而要看“遮挡持续时间”;AGV 不能只看“速度”,而要看“指令速度与实际速度的偏差”;视觉系统不能只看“识别结果”,而要看“置信度与位置偏差的组合”。

第二步,选择阈值类型。常见有三类:

  • 固定阈值:适用于物理边界明确的场景,如急停信号、安全门开关,触发即异常,无需延时。
  • 时间阈值:适用于需要区分“瞬时抖动”和“真实滞留”的场景,如光电遮挡持续 3s 以上才判定为滞留。
  • 动态基线:适用于随工况变化的量,如 AGV 速度偏差阈值随载重和坡度调整,或用电量下降速率判断电池老化。

第三步,用历史数据校准。以某输送线入口光电开关为例,假设正常运行时货物通过造成的遮挡时间为 0.3–0.8s,偶发抖动不超过 0.2s。若把阈值设为 1.5s,则正常通过不会误报,而真实卡阻(通常持续数秒以上)能可靠触发。这个 1.5s 不是拍脑袋定的,而是从一段正常运行数据中统计遮挡时长分布,取“正常上限的 1.5–2 倍”作为初始值,再根据现场误报/漏报情况微调。

示例:光电开关滞留判定
正常遮挡时长分布:0.3s ~ 0.8s
抖动上限:0.2s
初始阈值:1.5s(正常上限约 2 倍)
判定逻辑:
  if 遮挡持续 >= 1.5s:
      触发“入口滞留”告警
  else:
      忽略(视为正常通过或抖动)

对于模拟量信号,常用“均值 ± k 倍标准差”或“滑动窗口分位数”来设定动态阈值。例如 AGV 电流在平路空载时均值为 8A、标准差 0.5A,取 3σ 得 9.5A;当载重增加时,基线整体上移,阈值也应随载重档位调整,否则满载爬坡会被误判为过载。

三、告警去噪:让真正重要的异常浮出来

即使阈值合理,现场仍会产生大量告警。去噪的目标不是“减少告警数量”,而是提高告警的信噪比,让调度员一眼看到需要人工接管的异常。常用手段有以下几种。

延时确认(Debounce):信号持续超过设定时间才确认,滤掉瞬时抖动。例如光电开关抖动 0.1s 不告警,持续 1.5s 才告警。

迟滞(Hysteresis):设置触发阈值和恢复阈值不同,避免在临界点反复告警。例如温度超过 60℃ 触发,降到 55℃ 以下才恢复,防止在 60℃ 附近来回跳变。

告警抑制与屏蔽:当上游已知故障时,抑制下游连带告警。例如某段输送线停机后,其下游光电开关的“无货”告警应被抑制,否则会瞬间产生几十条无效告警。

告警聚合:把同一设备、同一根因的多个告警合并为一条。例如一台 AGV 同时报“通信超时”“任务失败”“电量低”,应聚合为“AGV-07 失联,疑似通信故障”,而不是三条独立告警。

分级与路由:按严重程度分为提示、警告、严重、紧急,分别路由到看板、短信、声光、自动停机。只有“需要人工接管”的级别才推送给调度员,其余进入日志或统计。

去噪不能以牺牲漏报为代价。任何抑制、延时、聚合规则都必须保留原始告警记录,并定期回放验证:被抑制的告警中是否隐藏了真实故障。建议每月抽查一次被抑制告警,确认规则仍然有效。

四、四类信号源的协同判定

单一信号源往往不足以确认异常。更可靠的做法是多源交叉验证。例如判断“AGV 在路口被阻挡”:

  • 调度系统:任务超时,AGV 停留在同一坐标超过 20s;
  • PLC/车载控制器:驱动电流升高,速度接近 0;
  • 传感器:前方避障雷达持续检测到障碍物;
  • 视觉系统(若路口有相机):识别到前方有托盘或人员。

当其中两个以上信号同时满足时,才判定为“真实阻挡”,触发人工接管流程;若只有调度超时而无其他证据,则先降级为“疑似拥堵”,继续观察。这种协同判定能显著降低误报,也能在单一传感器失效时提供冗余。

四类信号源异常检测与告警去噪链路 传感器层 光电/接近/编码器 开关量 · 模拟量 PLC 层 状态字/故障码/联锁 扫描周期 10–100ms 调度系统层 任务超时/拥堵/心跳 事件驱动 · 秒级 视觉系统层 识别/定位/置信度 结构化结果 · 百毫秒级 遮挡持续时间 速度偏差 · 电流偏差 故障码 + 状态字 急停/过载/安全门 停留时长 · 心跳间隔 任务完成率 · 拥堵度 置信度 · 位置偏差 目标缺失 · 识别失败 阈值判定:固定阈值 / 时间阈值 / 动态基线(均值 ± kσ、分位数) 示例:光电遮挡 ≥ 1.5s 判滞留;AGV 电流 > 基线 + 3σ 判过载;视觉置信度 < 0.85 判识别失败 告警去噪:延时确认 · 迟滞 · 抑制屏蔽 · 聚合 · 分级路由 保留原始记录,定期回放验证,防止去噪掩盖真实故障 输出:需人工接管的有效告警

五、落地要点与常见问题

把上述机制落到现场,有几个容易踩的坑。第一,阈值不能只设一次。设备磨损、季节变化、货物类型变化都会让基线漂移,建议每季度用最近一个月的正常运行数据重新校准一次。第二,去噪规则要有版本和责任人。每条抑制、延时规则都应记录“为什么加、谁加的、什么时候复核”,否则规则会越积越多,最终没人敢删。第三,告警要能追溯到原始信号。调度员看到一条聚合告警时,应能一键展开查看底层传感器、PLC、调度、视觉的原始记录,否则无法判断是真实故障还是规则误判。第四,人工接管动作要回写。调度员确认“真实异常”或“误报”后,这个标签应反馈给阈值和去噪规则,形成闭环优化。

异常检测与告警机制的本质,是在“漏报”和“误报”之间找到可运营的平衡点。传感器、PLC、调度系统、视觉系统各自提供不同粒度和可靠性的证据,阈值把连续量变成离散判断,去噪把离散判断变成可行动的告警。三者配合得当,人工接管才能在最需要的时候被准确触发,而不是被噪声淹没。