3、异常数据分类:通信中断、数据跳变、数据死值、数据超限、数据延迟
做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 如何快速区分这五类异常?
我给你一个简单的判断流程:
- 看数值变不变:如果数值完全不变,可能是通信中断或数据死值。再查一下通信状态,如果通信正常,那就是死值。
- 看数值变多快:如果数值剧烈波动,那就是数据跳变。如果数值缓慢变化但超出范围,那就是数据超限。
- 看时间戳:如果数值正常,但时间戳滞后,那就是数据延迟。
总结一下:这五类异常,你只要记住它们的「长相」和「病因」,现场排查时就能少走弯路。我个人觉得,数据跳变和通信中断是最常见的,也是优先级最高的。遇到问题,先看物理层,再看软件层,别搞反了。