4、数据采集层设计:RTU/PLC/DTU/NIU等终端设备选型、数据采集频率与精度设计

大家好,我是老张。干SCADA这行快十五年了,今天咱们聊聊数据采集层。说白了,这一层就是SCADA系统的“眼睛”和“耳朵”。你上层平台再牛,算法再先进,如果底层数据采上来的就是错的,那后面全是白搭。

我见过太多项目,花大价钱买了顶级平台,结果现场数据乱跳、丢包、延迟高。最后查来查去,问题都出在终端设备选型和采集参数配置上。嗯,今天我就把这块的实战经验掰开了讲。

4.1 终端设备选型:RTU、PLC、DTU、NIU到底怎么选?

很多刚入行的朋友问我:“张工,RTU和PLC到底有啥区别?我该用哪个?”

其实没那么玄乎。我给大家一个简单的判断逻辑:

  • PLC(可编程逻辑控制器):适合本地逻辑控制密集的场景。比如一条产线,需要快速响应、多条件联锁。PLC的扫描周期可以做到毫秒级,控制精度高。但它的通信协议往往比较封闭,做数据上送时需要额外配置。
  • RTU(远程终端单元):天生为远程数据采集和通信而生。它更擅长处理模拟量、脉冲量,而且对恶劣环境(高温、低温、潮湿)的适应能力更强。我个人习惯,在油气管道、水处理、电力配网这些场景,首选RTU。
  • DTU(数据传输单元):说白了就是个“通信猫”。它本身不采集数据,只负责把串口数据(RS232/485)转成网络数据(4G/5G/NB-IoT)。如果你现场已经有智能仪表、流量计,只需要把数据传回来,那用DTU最省事。
  • NIU(网络接口单元):这是近几年的新东西。它相当于一个“协议转换网关”,专门解决不同厂家设备互联的问题。我在一个钢铁厂项目里遇到过,现场有西门子、罗克韦尔、三菱三种PLC,最后就是用NIU统一转成Modbus TCP,才把数据汇到SCADA里。

核心选型原则:

  • 控制密集型 → PLC
  • 采集+远程通信型 → RTU
  • 纯数据传输型 → DTU
  • 多协议异构型 → NIU

4.2 数据采集频率设计:不是越快越好

这里有个常见的坑。很多甲方上来就要求“采集频率越高越好,最好1秒一次”。

为什么?因为觉得数据越多越精确。其实不然。

我给大家算笔账:一个中型水厂,假设有2000个测点。如果每个测点每秒采集一次,一天就是1.728亿条数据。你的数据库扛得住吗?网络带宽够吗?而且很多工艺参数(比如水箱液位、管道压力)变化很慢,1秒采一次纯属浪费。

我个人建议的采集频率设计方法:

  • 快速变化量(电机电流、振动、流量):100ms - 1s。这类参数需要捕捉瞬态变化,用于保护控制。
  • 中速变化量(温度、压力、液位):1s - 10s。大部分工艺参数在这个范围就够了。
  • 慢速变化量(累计流量、电能、环境温湿度):1min - 15min。这类数据主要用于统计和报表,不需要高频采集。
  • 状态量(阀门开/关、泵启/停):变化触发上报。不要轮询,用事件触发方式,既省带宽又实时。

避坑指南:我曾经在一个光伏电站项目里,把所有逆变器的数据都设成了1秒采集一次。结果一个月后,历史数据库直接爆了,查询一条曲线要等半分钟。后来改成:功率、电压1秒,温度10秒,发电量5分钟。数据库压力降了80%,而且关键数据一点没丢。

4.3 数据精度设计:够用就好,别过度追求

精度这个话题,我见过两种极端:

  • 一种是“差不多就行”,结果数据偏差大,分析结果不可信。
  • 另一种是“必须0.1%精度”,结果传感器贵得离谱,系统成本翻倍。

我的经验是:精度设计要“按需分配”。

数据类型 推荐精度 说明
贸易结算类(天然气流量、水流量) 0.5% - 1.0% 涉及金钱,必须高精度,且需要定期标定
工艺控制类(压力、温度、液位) 1.0% - 2.0% 满足控制需求即可,过高精度无意义
环境监测类(温湿度、风速) 2.0% - 5.0% 趋势分析为主,精度要求不高
状态指示类(开关、限位) 数字量 只关心通断,不涉及精度

另外,精度不只是传感器的事。AD转换器的位数、信号传输过程中的衰减、滤波算法,都会影响最终精度。我习惯在系统设计时留出20%的余量。比如工艺要求1.0%精度,我会选0.5%的传感器,这样即使现场有干扰,最终数据也能满足要求。

4.4 知识体系总览

下面这张图,是我自己总结的数据采集层设计框架。你照着这个思路走,基本不会出大错。

数据采集层设计知识体系 终端设备选型 PLC:本地控制密集 RTU:远程采集通信 DTU:纯数据传输 NIU:多协议异构 采集频率设计 快速变化:100ms-1s 中速变化:1s-10s 慢速变化:1min-15min 状态量:事件触发 数据精度设计 贸易结算:0.5%-1.0% 工艺控制:1.0%-2.0% 环境监测:2.0%-5.0% 状态指示:数字量 可靠、实时、精准的数据采集

4.5 实战中的几个关键细节

最后,我再补充几个容易忽略的点:

  • 信号隔离:现场传感器和PLC/RTU之间,一定要加隔离器。我见过一个化工厂,就因为没隔离,一次雷击把整排AI模块全烧了,损失十几万。
  • 防抖处理:数字量输入(比如限位开关)一定要做软件防抖。我曾经被一个振动大的泵坑惨了,它的限位信号在开和关之间来回跳,导致SCADA里报警刷屏。后来加了50ms的防抖延时,问题解决。
  • 断线检测:模拟量通道要配置断线检测功能。4-20mA信号,如果线断了,电流会降到0mA。你可以在PLC里设置:当信号小于3.5mA时,判定为断线,并产生报警。这样运维人员能第一时间知道哪路信号出了问题。
  • 时钟同步:所有终端设备的时间必须统一。我习惯用NTP服务器给所有设备校时。否则,你分析故障时发现:PLC记录的时间是10:00,SCADA收到的时间是10:05,这5分钟的偏差足够让你查半天。

重要提醒:数据采集层是SCADA系统的基石。设备选型、频率、精度,这三件事必须在设计阶段就定好。等项目上线了再改,成本至少翻3倍。我吃过这个亏,希望大家别重蹈覆辙。

好了,这一章的内容就到这里。数据采集层设计,说白了就是三个字:选对设备、定好频率、控好精度。你把这三点吃透了,SCADA系统的底层就稳了。

专注资料整理