2. 制造时序数据源与采集层设计
制造现场的时序数据并非来自单一系统,而是由设备控制层、过程监控层、业务管理层和边缘接入层共同产生。设计采集层时,首先要区分“数据在哪里产生、以什么协议暴露、由谁负责转发”,再决定接入方式和采集频率。若把 PLC、SCADA、传感器、MES 和边缘网关混为一谈,后续会出现重复采集、时间戳错乱、频率不匹配和网络拥塞等问题。
一、五类数据源的定位与接入方式
PLC(可编程逻辑控制器)是设备控制的核心,数据以寄存器、线圈、数据块等形式存在。常见接入方式有三种:一是通过 Modbus TCP/RTU 直接读取保持寄存器;二是通过 OPC UA 客户端订阅变量节点;三是通过厂商专用协议(如西门子 S7、三菱 MC、欧姆龙 FINS)经驱动网关转换。PLC 数据的特点是变化快、点位固定、语义依赖地址表,因此接入前必须建立“地址—测点—单位—量程”的映射表。
SCADA(数据采集与监控系统)通常已经汇聚了 PLC 和仪表数据,并提供 OPC UA、OPC DA、数据库接口或 REST API。从 SCADA 取数的优势是语义较完整、点位已组态;劣势是 SCADA 的扫描周期和 Historian 归档周期可能成为频率上限。若 SCADA 归档周期为 1 秒,而业务需要 100 毫秒级振动数据,就不能依赖 SCADA,而应回到 PLC 或专用采集器。
传感器分为模拟量、数字量和智能传感器。模拟量(4–20 mA、0–10 V)需经 ADC 或远程 IO 采集;数字量(脉冲、开关)适合计数器模块;智能传感器(振动、温度、电流)常通过 IO-Link、RS-485/Modbus、BLE 或 MQTT 输出。传感器接入的关键是采样定理:若关注 1 kHz 以内的振动特征,采样率至少应达到 2.5 kHz,工程上常取 2–5 倍。
MES(制造执行系统)提供的是工单、批次、物料、人员、质量结果等业务事件数据,时间粒度通常是秒到分钟级。MES 数据适合通过数据库 CDC、消息队列(Kafka/RabbitMQ)或 REST 接口接入,用于给时序数据打上“批次号、工单号、产品型号”等上下文标签。MES 不产生高频波形,但它是时序数据能否被业务解释的关键。
边缘网关是采集层的执行者,负责协议转换、数据缓存、时间戳对齐、断点续传和边缘计算。网关向下连接 PLC、传感器和 SCADA,向上通过 MQTT、Kafka 或 HTTPS 将数据送入平台。网关选型要关注:支持的协议数量、并发连接数、本地缓存时长、是否支持边缘规则引擎、时间同步方式(NTP/PTP)。
二、采集频率规划:按用途分层,而不是一刀切
采集频率不是越高越好。频率过高会带来网络带宽、存储成本和平台写入压力;频率过低则可能丢失关键特征。合理的做法是按数据用途分层规划:
- 高频通道(1–100 ms):用于振动分析、电流波形、位置脉冲、故障录波。这类数据通常不直接全量入库,而是在边缘做特征提取(如 RMS、峰值、FFT 主频),只上传特征值和异常片段。
- 中频通道(0.5–5 s):用于温度、压力、流量、转速、节拍等过程量。这是制造时序平台的主力数据,直接写入时序数据库,支撑趋势分析和实时看板。
- 低频通道(10 s–1 min):用于工单状态、批次切换、OEE 统计、质量结果。这类数据变化慢,但需要与高频数据通过时间戳和批次号关联。
以某注塑机为例:合模位置采用 10 ms 采集,用于分析合模曲线;料筒温度采用 2 s 采集,用于监控加热稳定性;工单号从 MES 通过 Kafka 在换单时推送一次。三类数据进入平台后,通过设备 ID 和时间窗口关联,才能回答“哪一批产品在哪个温度区间出现了位置偏差”这类问题。
三、时间戳与数据质量
采集层最容易出问题的地方是时间戳。PLC 扫描周期、网关缓存、网络传输和平台入库各有一个时间,若不统一,后续关联分析会错位。工程上要求:现场设备与网关通过 NTP 或 PTP 同步,精度控制在 10 ms 以内;网关在采集瞬间打上事件时间戳;平台入库时再打一个接收时间戳,两者都保留。对于乱序到达的数据,按事件时间开窗聚合,而不是按到达时间。
四、接入方式选择与网关配置要点
选择接入方式时,优先考虑数据源已经暴露的接口。PLC 若支持 OPC UA,优先用 OPC UA 订阅,减少轮询开销;若只支持 Modbus,则用网关轮询,但要注意轮询周期与 PLC 扫描周期的关系,避免网关请求频率高于 PLC 刷新频率。SCADA 适合取已组态的过程量,但不适合取高频原始波形。MES 数据通过接口或 CDC 接入,重点保证工单和批次信息的完整性。边缘网关的本地缓存建议至少保留 24–72 小时,以应对网络中断。
一个可参考的网关配置片段如下,用于定义采集组和上传策略:
{
"gatewayId": "GW-LINE-A-01",
"northbound": {
"protocol": "MQTT",
"broker": "mqtt://ts-platform:1883",
"qos": 1,
"batchSize": 500,
"flushIntervalMs": 1000
},
"southbound": [
{
"name": "PLC-Injection-01",
"protocol": "opcua",
"endpoint": "opc.tcp://192.168.10.21:4840",
"subscription": { "publishingIntervalMs": 100 },
"tags": [
{ "nodeId": "ns=2;s=ClampPosition", "name": "clamp_pos", "unit": "mm", "deadband": 0.05 },
{ "nodeId": "ns=2;s=InjectionPressure", "name": "inj_press", "unit": "bar", "deadband": 0.2 }
]
},
{
"name": "TempModule-01",
"protocol": "modbus-tcp",
"endpoint": "192.168.10.35:502",
"pollIntervalMs": 2000,
"tags": [
{ "address": "40001", "name": "barrel_temp_1", "unit": "C", "scale": 0.1 }
]
}
],
"buffer": { "maxHours": 72, "storage": "local-disk" },
"timeSync": { "mode": "ntp", "server": "ntp.factory.local", "maxOffsetMs": 10 }
}
配置完成后,判断采集是否正常,可以观察三个指标:一是网关的采集成功率,正常应高于 99.5%;二是端到端延迟,从设备变化到平台可查,中频数据通常应在 2 秒以内;三是时间戳偏差,网关与平台的时间差应稳定在 10 ms 以内。若成功率下降,优先检查网络和 PLC 连接数;若延迟增大,检查批量上传参数和消息队列积压;若时间戳漂移,检查 NTP 服务是否可达。
五、常见问题与处理方向
现场常见的问题包括:PLC 地址表与采集配置不一致,导致读到的值与实际测点错位;SCADA 归档周期长于业务需求,导致高频特征丢失;传感器信号受变频器干扰,采集值跳变;MES 工单切换与设备数据时间不同步,导致批次归属错误。处理方向分别是:建立地址映射校验流程;对高频需求改用 PLC 或专用采集器;增加信号滤波和屏蔽接地;在网关或平台侧按事件时间做批次对齐。
采集层设计的目标不是把所有数据都采上来,而是让每一类数据在合适的频率、合适的时间精度和合适的语义下进入平台。PLC、SCADA、传感器、MES 和边缘网关各自承担不同角色,只有明确接入方式和频率边界,后续的存储、计算和分析才有可靠基础。