SCADA数据采集与监控常见问答
本 FAQ 精选了 10 个核心技术问题,涵盖 OPC UA 与 Modbus TCP 的选型对比、老设备串口接入方案、采集频率对 PLC 扫描周期的影响计算、数据完整性与丢包恢复机制、无线与有线方案的选择依据、报警管理(ISA 18.2 标准)以及历史数据存储策略等内容。无论您是新建 SCADA 系统还是改造升级现有设施,这 10 条 FAQ 都能为您提供实用的技术参考。
SCADA 数据采集与监控常见问答
目录
Q1:SCADA 系统和普通的组态软件(如 WinCC、iFix、Intouch)有什么区别?
Q2:OPC UA 和 Modbus TCP 在实际项目中怎么选?什么时候必须用 OPC UA?
Q3:老设备(10年以上)只有串口 RS232/RS485,怎么接入现代 SCADA 系统?
Q4:数据采集频率设多少合适?采集太快会不会影响 PLC 扫描周期?
Q5:什么是 MDC(机器数据采集)?它和 SCADA 是什么关系?
Q7:数据采集系统如何保证数据的完整性和准确性?丢包了怎么办?
Q8:无线数据采集(WiFi/LoRa/4G/5G)在工厂里靠谱吗?什么场景必须用有线?
Q9:SCADA 系统的报警管理怎么做才有效?如何避免报警泛滥?
Q10:SCADA 系统如何做历史数据存储和趋势分析?用什么数据库?
Q1:SCADA 系统和普通的组态软件(如 WinCC、iFix、Intouch)有什么区别?
A: 组态软件是 SCADA 的 HMI 组件,负责画面呈现与操作交互。完整 SCADA 系统在架构上包含四层:
|
层次 |
组件 |
功能 |
典型产品 |
|
数据采集层 |
通讯服务器/OPC 网关 |
通过 OPC DA/UA、Modbus TCP/RTU、IEC 60870-5-104 等协议轮询或订阅 PLC/RTU 数据 |
Kepware, Matrikon OPC |
|
实时数据库层 |
历史服务器 |
存储海量时序数据,支持压缩(旋转门算法,压缩比 10:1~30:1) |
OSIsoft PI, InfluxDB |
|
报警与事件管理层 |
报警服务器 |
优先级分级(ISA 18.2)、声光联动、短信/邮件推送、报警抑制与过滤 |
WinCC Alarm Control |
|
展示与分析层 |
HMI 客户端/Web |
趋势曲线、报表、仪表盘、GIS 地图 |
WinCC Unified, Ignition |
关键区别:组态软件通常单机运行,历史数据存储在关系数据库中(SQL Server),查询大数据量时性能急剧下降;而 SCADA 使用专用时序数据库,支持百万点/秒的写入速率,查询响应 <1 秒。高西实施的 SCADA 系统采用 C/S + B/S 混合架构,实时数据通过 OPC UA 二进制协议传输(带宽占用仅为 HTTP 的 1/5),历史数据通过 REST API 对外暴露,支持 200+ 并发客户端。
Q2:OPC UA 和 Modbus TCP 在实际项目中怎么选?什么时候必须用 OPC UA?
A: 选型需从 安全性、数据模型、跨平台、实时性 四个维度量化评估:
|
维度 |
ModbusTCP |
OPCUA |
说明 |
|
安全性 |
无加密、无认证 |
AES-256 加密 + X.509 证书认证 |
OPC UA 满足 IEC 62443 安全等级 |
|
数据模型 |
仅寄存器地址(0x/1x/3x/4x) |
支持对象、变量、方法、类型继承 |
OPC UA 可传输带语义的结构化数据 |
|
跨平台 |
仅以太网 |
任意传输层(TCP/HTTPS/UDP) |
OPC UA 可运行在 Linux/Windows/嵌入式 |
|
实时性 |
轮询周期 ≥ 10ms |
订阅模式,变化时推送,延迟 <5ms |
OPC UA 更适合高速数据 |
必须用 OPC UA 的场景:
- 跨企业边界数据传输:集团总部需通过互联网监控分厂数据,OPC UA 的加密隧道 + 反向连接可穿透 NAT
- 与 MES/ERP 双向交互:MES 需下发配方参数(包含多个带单位的变量),OPC UA 的数据模型可直接映射
- 信息安全审计要求:医药(FDA 21 CFR Part 11)、军工(GJB 770B)行业需完整操作日志
高西在项目中通常采用 混合方案:底层 PLC 与现场设备用 Modbus TCP(轻量、低延迟),边缘网关转换为 OPC UA 后上传至 SCADA 服务器,兼顾实时性与安全性。
Q3:老设备(10年以上)只有串口 RS232/RS485,怎么接入现代 SCADA 系统?
A: 典型方案是加装 串口服务器 或 工业物联网网关。关键技术参数如下:
串口服务器选型要点:
- 端口数量:1~32 口,RS232/422/485 自适应
- 波特率:需覆盖老设备常用值(9600/19200/38400/115200)
- 数据位/停止位/校验:支持 7/8 位数据位,1/2 位停止位,None/Odd/Even/Mark/Space 校验
- 协议转换:支持 Modbus RTU ↔ Modbus TCP 透传,或自定义协议脚本解析
- 典型产品:Moxa NPort 5150(单口)、研华 EKI-1522(双口)
工业网关方案(推荐):
- 内置协议解析引擎,可将 Modbus RTU 转为 OPC UA 或 MQTT
- 本地缓存:SD 卡或 eMMC 存储,断网后可缓存 7 天数据(按 1 秒采集间隔,约 600MB/天)
- 边缘计算:支持 Python/C 脚本,可做数据滤波(滑动平均窗口 N=5)、阈值判断、本地报警
- 典型产品:泓格 UA-5231、有人 USR-G781
实施注意事项:
- RS485 总线最长 1200m,超过需加中继器
- 终端电阻:总线两端各并联 120Ω 电阻,防止信号反射
- 接地:屏蔽层单端接地(网关侧),避免地环路
- 老设备通常不支持 Modbus,需用示波器抓取原始报文,逆向解析协议(高西有 20+ 种老设备协议库)
Q4:数据采集频率设多少合适?采集太快会不会影响 PLC 扫描周期?
A: 采集频率需基于 Nyquist 采样定理 和 PLC 通讯负载 综合确定。
推荐采集频率:
- 设备状态信号(启停、故障):1~5 秒(变化缓慢,过度采集浪费带宽)
- 连续模拟量(温度、压力、流量):1~3 秒(工艺波动周期通常 >10 秒)
- 高速动态信号(振动、电流峰值):需毫秒级,建议用专用采集卡(NI DAQ、Beckhoff EL 系列),不走 PLC 主循环
对 PLC 扫描周期的影响计算:
- Modbus RTU 轮询模式下,每个从站通讯耗时 = 报文长度 × 8 / 波特率 + 从站响应延迟
- 例:读取 10 个寄存器(20 字节),波特率 19200,8 位数据位,1 位停止位,无校验
报文长度 = 8(请求)+ 8(响应)= 16 字节,耗时 = 16×8/19200 = 6.67ms,加上从站延迟 10ms,合计 16.67ms/从站
- 若有 20 个从站,轮询一圈耗时 333ms,PLC 扫描周期若为 10ms,则通讯占用 33 倍扫描时间,严重影响实时性
优化措施:
- 数据缓冲区:在 PLC 程序中开辟 DB 块,由定时中断(如 OB35,100ms)刷新,上位机只读取缓冲区,不直接访问 I/O
- OPC UA 订阅:代替轮询,由服务器端主动推送变化数据,网络流量降低 80%
- 分组采集:将采集点分为快慢两组,快组 100ms,慢组 1s,分时读取
- 网关前置采集:由网关直接采集 PLC 数据,SCADA 从网关读取,减轻 PLC 通讯负担
高西在项目中会对每个采集点做 最小必要频率评估,并在验收时测试通讯负载率(≤ 30% 为合格)。
Q5:什么是 MDC(机器数据采集)?它和 SCADA 是什么关系?
A: MDC(Machine Data Collection)是面向离散制造设备的实时数据采集与统计分析系统,聚焦于 单机绩效 和 生产节拍。它与 SCADA 的关系可类比为 显微镜 vs 全景相机:
|
维度 |
MDC |
SCADA |
|
采集对象 |
数控机床、机器人、AGV |
全厂设施(环境、能源、产线) |
|
数据类型 |
主轴负载、刀具寿命、产量计数、节拍 |
温度、压力、流量、电压、状态 |
|
协议支持 |
Fanuc Focas、Siemens 840D、Heidenhain |
Modbus、OPC UA、BACnet |
|
核心指标 |
OEE(可用性×性能×质量) |
设备利用率、能耗、环境参数 |
|
部署位置 |
每台设备旁(边缘盒子) |
中央机房(服务器集群) |
典型 MDC 架构:
- 每台设备安装一个 MDC 采集终端(如研华 UNO-2271G),通过 RJ45 连接机床数控系统
- 终端运行协议解析软件(如 Fanuc Focas Library),每 100ms 读取主轴负载、每 1s 读取产量
- 数据通过 MQTT 上传至 MDC 服务器(Mosquitto Broker + Node-RED 处理)
- 服务器计算 OEE 并推送到车间看板(大屏显示)
高西在离散制造项目中,通常先在每台设备部署 MDC,再逐步将数据汇聚到 SCADA 平台,实现从单机到产线的数据贯通。MDC 数据也可直接喂给 MES 用于工单报工和绩效分析。
Q6:数据采集网关和 PLC 直连上位机相比,有什么优势?
A: 网关方案的核心优势在于 解耦、缓存、安全。量化对比:
|
对比项 |
PLC 直连上位机 |
网关方案 |
|
上位机故障影响 |
PLC 通讯阻塞,可能停机 |
网关缓存数据,上位机恢复后自动补传 |
|
断网容忍时间 |
0(立即丢失数据) |
数小时~数天(视存储容量) |
|
协议转换能力 |
仅支持 PLC 原生协议 |
可同时转 OPC UA、MQTT、REST |
|
边缘计算能力 |
无(需 PLC 额外编程) |
可运行滤波、报警、统计脚本 |
|
网络安全隔离 |
上位机直接暴露在 OT 网络 |
网关做 DMZ 隔离,防火墙策略简化 |
|
典型延迟 |
10~50ms |
50~200ms(因缓存处理) |
实际案例:某汽车零部件工厂,SCADA 服务器因 Windows 更新意外重启,直连的 12 台 PLC 全部通讯超时,产线停机 8 分钟。改为网关方案后,即使服务器宕机 2 小时,网关仍正常采集并缓存 2GB 数据,恢复后自动补传,产线未受影响。
网关选型关键参数:
- CPU:ARM Cortex-A9 以上,主频 ≥ 800MHz
- 存储:eMMC ≥ 8GB,支持 TF 卡扩展
- 接口:2×LAN(隔离),2×RS232/485,USB,WiFi/4G 可选
- 工作温度:-20~70℃
- 协议库:内置 20+ 种 PLC 协议(西门子、三菱、欧姆龙、罗克韦尔、基恩士等)
Q7:数据采集系统如何保证数据的完整性和准确性?丢包了怎么办?
A: 完整性与准确性保障需从 源头、传输、存储 三个环节设计:
1. 源头(采集终端)
- 时间戳统一:所有网关通过 NTP 同步,精度 ±1ms,确保多源数据时间对齐
- 序列号机制:每条数据记录附带递增 ID(uint32),上位机可检测是否跳跃
- 死区滤波:模拟量变化 < 设定阈值时不记录(如温度变化 < 0.1℃),减少无效数据
- 限幅滤波:超出物理范围的值自动丢弃(如压力 > 10MPa 视为异常)
2. 传输(网络层)
- QoS 保障:MQTT 使用 QoS=1(至少一次),确保 Broker 收到确认
- 断线续传:网关本地 SQLite 数据库缓存,网络恢复后按时间顺序补传,并标记“补传”字段
- 心跳检测:每 30 秒发送心跳包,若 3 次未收到则触发报警
3. 存储(服务器层)
- 写入确认:时序数据库(InfluxDB)写入返回成功码,失败则重试 3 次
- 数据校验:每条记录包含 CRC32 校验,入库时验证,不通过则丢弃并记录日志
- 冗余备份:关键数据同步写入两台服务器(主备模式),主库故障自动切换
丢包恢复流程:
- 服务器检测到序列号跳跃,记录缺失区间
- 向网关发送补传请求(HTTP GET /retrieve?start=xxx&end=yyy)
- 网关从本地数据库查询缺失数据并返回
- 服务器将补传数据插入历史库,标记为“补传”
- 生成数据完整性报告(每日自动发送)
高西在验收时进行 72 小时连续数据完整性测试,要求丢包率 < 0.1%,异常数据占比 < 0.5%。
Q8:无线数据采集(WiFi/LoRa/4G/5G)在工厂里靠谱吗?什么场景必须用有线?
A: 无线方案的可靠性取决于 电磁环境、距离、穿透损耗、实时性要求。各技术对比:
|
技术 |
频段 |
理论速率 |
典型延迟 |
最大距离 |
穿透能力 |
适用场景 |
|
WiFi 6 (802.11ax) |
2.4G/5G |
1.2Gbps |
10~50ms |
室内 100m |
一般 |
移动设备、AGV、手持终端 |
|
LoRaWAN |
470~510MHz |
50kbps |
1~5s |
2~5km |
强 |
温湿度、水电表、振动(低频) |
|
4G LTE |
700~2600MHz |
150Mbps |
30~100ms |
基站覆盖 |
较强 |
分布式设备、远程站点 |
|
5G URLLC |
3.5GHz/mmWave |
1Gbps |
<1ms |
室内 200m |
弱(mmWave) |
实时控制、AR 辅助、高清视频 |
必须用有线的场景:
- 实时性要求 < 10ms:伺服控制、安全联锁(如光栅信号,延迟 > 10ms 可能导致安全事故)
- 强电磁干扰:电焊车间(电弧产生宽频干扰,WiFi 误码率上升至 10^-3)、高频加热炉
- 大数据量连续传输:视觉检测(1080p@30fps,约 50Mbps),WiFi 易拥塞
- 高可靠性要求:核电、军工、生命维持系统,不允许任何丢包
高西的混合方案:
- 关键设备(PLC、伺服、安全回路)使用工业以太网(Profinet/EtherNet/IP),环网冗余
- 非关键采集点(环境温湿度、电量计、水表)使用 LoRa 或 4G
- 移动设备(AGV、巡检机器人)使用 WiFi 6,并部署 AC+AP 无缝漫游
- 所有无线接入点通过 VLAN 隔离,与有线网络逻辑分离
Q9:SCADA 系统的报警管理怎么做才有效?如何避免报警泛滥?
A: 有效报警管理遵循 ISA 18.2 标准,核心指标是 报警率 ≤ 10 个/小时/操作员。泛滥的根源通常是 未分级、无死区、无抑制。
报警分级体系:
|
等级 |
颜色 |
响应时限 |
含义 |
示例 |
|
紧急 |
红色闪烁 |
立即 |
危及安全或导致停产 |
急停按下、超温停机 |
|
高级 |
橙色 |
5分钟 |
需快速干预,否则影响质量 |
温度偏离设定值 3℃ |
|
中级 |
黄色 |
30分钟 |
需关注,可稍后处理 |
液位偏低、过滤器压差增大 |
|
低级 |
蓝色 |
记录即可 |
提示性信息 |
设备累计运行 1000h |
防泛滥措施:
- 死区设置:模拟量报警设置回差(如温度上限 100℃,回差 2℃,则 100℃ 触发,98℃ 复位)
- 延时确认:瞬时波动不触发,持续超过设定时间才报警(如压力波动 > 0.5s 才报警)
- 报警抑制:设备停机期间关联报警自动屏蔽(如泵停止时,出口压力低报警无效)
- 报警分级屏蔽:低级报警可批量确认,不影响高级报警的显示
- 报警雨刷:相同原因重复触发的报警,合并为一条并计数(如“通讯中断”每 30 秒触发一次,合并为“通讯中断 已发生 15 次”)
报警 KPI 报表(每月自动生成):
- 报警总数、各等级占比
- 最频繁报警 Top10(用于根本原因分析)
- 平均确认时间、平均恢复时间
- 报警泛滥指数(每小时报警数超过 10 的次数)
高西在 SCADA 项目交付时提供《报警管理规范》,并协助客户建立报警评审委员会,每季度 review 一次报警配置。
Q10:SCADA 系统如何做历史数据存储和趋势分析?用什么数据库?
A: 工业历史数据存储推荐使用 时序数据库(TSDB),而非传统关系型数据库。关键差异:
|
维度 |
关系型数据库(SQL Server) |
时序数据库(InfluxDB) |
|
写入吞吐量 |
~10,000 点/秒 |
>1,000,000 点/秒 |
|
压缩比 |
1:1(无压缩) |
10:1~30:1(列式压缩+差值编码) |
|
查询速度(1亿点) |
>10秒 |
<1秒 |
|
存储成本 |
高(每 TB 约 ¥50,000) |
低(每 TB 约 ¥10,000) |
|
典型产品 |
MSSQL, MySQL |
InfluxDB, TimescaleDB, PI System |
数据存储策略(以 InfluxDB 为例):
- 原始数据(1 秒间隔):保留 30 天,使用自动降采样策略
- 分钟级聚合(1 分钟均值):保留 1 年
- 小时级聚合(1 小时均值):保留 3 年
- 日级聚合(每日统计):永久保存
趋势分析工具:
- Grafana:开源,支持 InfluxDB/Prometheus 数据源,可创建仪表盘、告警规则
- SCADA 内置趋势控件:WinCC Trend Control、Ignition Vision
- BI 工具:Power BI 通过 ODBC/JDBC 连接时序库,适合管理层报表
高西的实施经验:
- 对于 > 10,000 点的系统,建议使用 PI System(OSIsoft),其 Asset Framework 可建立设备层级模型,支持复杂的计算(如 OEE、能耗单耗)
- 对于中小系统(< 5,000 点),InfluxDB + Grafana 组合性价比最高,且支持 Docker 部署,运维简便
- 历史数据需定期做 完整性校验:对比网关缓存记录的序列号,确保无丢失






















