3、异常数据分类:通信中断、数据跳变、数据死值、数据超限、数据延迟

做SCADA系统这么多年,我见过最多的坑,就是数据异常。

数据一乱,操作员慌,领导催,你作为工程师就得背锅。其实呢,大部分异常就那几类。你只要分清楚,定位起来就快得多。

我个人习惯,把异常数据分成五类:通信中断、数据跳变、数据死值、数据超限、数据延迟。下面我一个一个说。

核心观点:异常数据分类,是快速定位的第一步。分不清类型,后面全是瞎忙活。

SCADA数据异常分类 通信中断 数据跳变 数据死值 数据超限 数据延迟 数值不变/无更新 瞬间大幅波动 长时间不变 超出量程/阈值 时间戳滞后 网线断/模块掉电 干扰/接线松动 仪表死机/冻结 传感器故障/配置错 网络拥堵/缓存满 优先级:高 优先级:高 优先级:中 优先级:中 优先级:低

3.1 通信中断

通信中断,说白了就是SCADA和现场设备之间「失联」了。

现象很直观:画面上那个点变成灰色,或者显示一个叉号。数值要么是0,要么是上一次的值,不再更新。

常见原因:

  • 网线被老鼠咬断、水晶头松动
  • 交换机掉电、端口down掉
  • 串口线接触不良(RS485的A/B线接反了,我见过好多次)
  • PLC或RTU死机、看门狗没复位

我的经验:遇到通信中断,先看物理层。拿个万用表量一下电压,或者用笔记本ping一下IP。很多时候就是一根线的问题,别一上来就怀疑软件。

3.2 数据跳变

数据跳变,就是数值在短时间内剧烈波动。比如一个液位计,正常是2米,突然跳到10米,又跳回1米。

为什么会这样?

我遇到过最典型的案例:一个压力变送器的屏蔽线没接地,旁边有个变频器一启动,数值就开始乱跳。后来把屏蔽层单端接地,问题就解决了。

常见原因:

  • 电磁干扰(变频器、大电机启动时最明显)
  • 接线松动、端子氧化
  • 传感器本身故障(比如应变片老化)
  • 模拟量模块的A/D转换芯片损坏

注意:数据跳变很容易被误认为是真实工况变化。我建议你在SCADA里加一个「变化率限幅」功能。比如液位变化率超过0.5米/秒,直接报警并保持上一值。这能过滤掉90%的干扰。

3.3 数据死值

数据死值,就是数值一直不变,像死了一样。

嗯,这里要注意:死值和通信中断不一样。通信中断是收不到数据,死值是数据能收到,但数值纹丝不动。

常见原因:

  • 仪表死机(比如某个智能仪表跑飞了,输出一直保持)
  • PLC程序里把数值写死了(比如某个寄存器被强制赋值)
  • 传感器被冻住、卡住(比如流量计的叶轮卡死)
  • SCADA的数据库归档功能异常(历史值不更新)

我的习惯:在SCADA里做一个「死值检测」脚本。如果某个点连续30秒数值不变,且该点本身是动态变化的(比如流量、压力),就自动报警。我曾经用这个办法,发现过一个流量计被杂物堵住的问题。

3.4 数据超限

数据超限,就是数值超出了正常范围。比如一个4-20mA的变送器,正常对应0-100℃,结果显示-50℃或者150℃。

常见原因:

  • 传感器量程设置错误(比如把0-100℃的传感器配成了0-200℃的量程)
  • 模拟量模块的通道损坏(输出一直满量程或零量程)
  • 信号线短路或断路(4-20mA回路断线时,电流会变成0mA或超过24mA)
  • PLC的数值转换公式写错了(比如把工程量转换系数搞反了)
信号类型 正常范围 超限表现 常见原因
4-20mA 4mA ~ 20mA <4mA 或 >20mA 断线、短路、模块损坏
0-10V 0V ~ 10V <0V 或 >10V 接地不良、干扰
RTD Pt100 -200℃ ~ 850℃ 显示-9999 或 9999 接线开路、短路
热电偶 取决于分度号 显示室温或最大量程 冷端补偿失效

避坑指南:我曾经遇到过一个项目,所有温度点都显示-9999。查了半天,发现是PLC的模拟量模块的24V电源保险丝烧了。所以,遇到大面积超限,先查电源!

3.5 数据延迟

数据延迟,就是数据能收到,但时间不对。比如现场已经变化了10秒,SCADA画面上才显示出来。

你想想看,操作员看着延迟的数据去操作,那不出事才怪。

常见原因:

  • 网络拥堵(尤其是无线网络,比如4G/5G信号不好时)
  • SCADA服务器负载过高(数据库写入太慢)
  • OPC通信的缓存队列满了(数据积压)
  • PLC的扫描周期太长(比如程序写得太大,一个循环要500ms)

我的建议:在SCADA里加一个「时间戳监控」。如果当前时间减去数据时间戳超过3秒,就报警。这样你就能第一时间发现延迟问题。另外,OPC的KeepAlive间隔别设太长,我一般设2秒。

3.6 如何快速区分这五类异常?

我给你一个简单的判断流程:

  1. 看数值变不变:如果数值完全不变,可能是通信中断数据死值。再查一下通信状态,如果通信正常,那就是死值。
  2. 看数值变多快:如果数值剧烈波动,那就是数据跳变。如果数值缓慢变化但超出范围,那就是数据超限
  3. 看时间戳:如果数值正常,但时间戳滞后,那就是数据延迟

总结一下:这五类异常,你只要记住它们的「长相」和「病因」,现场排查时就能少走弯路。我个人觉得,数据跳变和通信中断是最常见的,也是优先级最高的。遇到问题,先看物理层,再看软件层,别搞反了。


专注资料整理