2. 工业数据源与接口类型解析

在AVEVA工业数据集成项目中,第一步不是打开建模工具,而是把现场“有什么数据、从哪里来、以什么方式交付”梳理清楚。工业数据源与接口类型决定了后续采集架构、刷新频率、数据质量处理方式以及系统耦合程度。本节围绕DCS、PLC、SCADA、OPC DA/UA、Modbus、MQTT、关系数据库和REST API八类常见对象,分析其特征、适用场景与集成难点。

一、从控制系统到IT系统:数据源的分层特征

DCS(集散控制系统)通常用于连续过程工业,如化工、电力、冶金。它的特点是控制回路封闭、数据点密集、实时性要求高,但对外接口往往受厂商和网络安全策略限制。PLC(可编程逻辑控制器)更偏向离散制造与设备控制,扫描周期常在10~100ms量级,数据以寄存器、线圈、DB块等形式存在,适合通过Modbus、OPC或厂商专有协议读取。SCADA(数据采集与监视控制系统)位于监控层,本身不直接产生原始测量值,而是汇聚PLC、RTU和仪表数据,提供报警、趋势、画面和 historian 历史库。因此,SCADA作为数据源时,实际获取的是“已被加工过的监控数据”,需关注其刷新周期、死区和人工置数标记。

这三类源系统的集成难点不同:DCS重在上位接口授权与单向隔离;PLC重在对点表、地址映射和批量读取优化;SCADA重在对历史库查询接口和实时标签命名规范的统一。

二、OPC DA/UA:从COM到跨平台的接口演进

OPC DA基于Windows COM/DCOM,采用同步或异步方式读写标签,适合局域网内与Windows上位机通信。其典型配置包括ProgID、CLSID、ItemID和访问路径。例如,一个DA标签可能写作 Channel1.Device1.Tag_101。DA的难点在于DCOM配置复杂、跨防火墙困难、不支持跨平台,且大量标签逐点读取时效率低,需要分组订阅和死区设置。

OPC UA在DA基础上引入地址空间、信息模型、安全通道和订阅机制,支持TCP二进制和HTTPS,可跨平台。UA的节点用NodeId标识,如 ns=2;s=Boiler1.Temp,其中ns为命名空间索引。UA适合作为AVEVA与DCS/PLC之间的标准中间层,但集成时需处理证书信任、用户权限、会话超时和订阅发布周期。若现场只有DA,可通过DA-to-UA网关转换,但会增加延迟和单点故障。

三、Modbus与MQTT:轻量协议的两类典型场景

Modbus分为RTU和TCP。RTU走串口,常用波特率9600/19200,需配置从站地址、功能码、寄存器地址和字节序。例如读取保持寄存器40001~40010,功能码03,从站地址1。Modbus的难点是地址偏移(0基与1基)、32位浮点高低字顺序、无时间戳和批量读取上限。它适合仪表、电表、小型PLC等低带宽场景。

MQTT是发布/订阅模型,适合广域、低带宽、海量设备接入。主题如 factory/line1/plc01/temperature,QoS 0/1/2决定消息可靠性。MQTT本身不定义数据语义,因此集成时必须约定Payload格式(如JSON)和主题命名规范。其难点在于断线重连后的数据补发、QoS与吞吐的权衡、以及边缘侧数据缓存。

四、关系数据库与REST API:IT侧数据源

关系数据库(如SQL Server、Oracle、MySQL)常作为MES、LIMS、ERP的数据源,通过SQL查询获取批次、工单、质量结果。集成时需关注连接池、查询超时、增量字段(如更新时间戳)和字符集。REST API则以HTTP+JSON方式提供业务数据,适合云平台、第三方系统。难点在于认证(Token/OAuth)、分页、限流和接口版本变化。

工业数据源分层与接口路径 现场层 DCS / PLC / 仪表 扫描周期 10~100ms 寄存器 / 标签 / 回路 监控层 SCADA / Historian 报警 / 趋势 / 历史库 刷新 1s~1min 接口层 OPC DA/UA Modbus RTU/TCP MQTT COM/DCOM · 订阅 功能码 · 寄存器 主题 · QoS IT / 业务层 关系数据库 REST API AVEVA 集成平台 SQL · 增量字段 HTTP · JSON · Token 建模 · 存储 · 发布 集成难点 DCOM / 证书信任 地址偏移 / 字节序 断线补发 / 限流 选型判断要点 • 实时性:DCS/PLC 毫秒级 → OPC UA 订阅;SCADA 秒级 → 历史查询;IT 数据分钟级 → SQL/API 轮询 • 网络条件:局域网优先 OPC DA/UA、Modbus TCP;广域/无线优先 MQTT;跨系统优先 REST API • 数据语义:OPC UA 自带信息模型;Modbus/MQTT 需人工约定点表与 Payload 结构

五、接口选型与集成难点对照

实际项目中,接口选择不是“越新越好”,而是由实时性、网络条件、数据语义和运维能力共同决定。下表给出常见场景的参考判断。

数据源/接口 典型实时性 适用场景 主要集成难点
OPC DA 100ms~1s Windows局域网、老DCS/PLC DCOM配置、跨防火墙、逐点读取效率
OPC UA 50ms~1s 跨平台、安全要求高的采集 证书信任、会话管理、命名空间映射
Modbus RTU/TCP 100ms~2s 仪表、电表、小型PLC 地址偏移、字节序、无时间戳
MQTT 1s~分钟级 广域、无线、海量设备 QoS选择、断线补发、Payload约定
关系数据库 分钟级~小时级 MES/ERP批次、工单、质量 增量字段、连接池、查询超时
REST API 分钟级~按需 云平台、第三方业务系统 认证、分页、限流、版本变化

六、一个可执行的采集点表样例

无论采用哪种接口,落地时都应先形成采集点表。以下为示例,字段可根据项目调整,但“源地址—数据类型—刷新周期—质量码”四项必须明确。

点表示例(假设数据,仅用于说明结构)
tag_name        源类型    源地址/主题                          数据类型   刷新周期   质量码规则
Boiler1_Temp    OPC UA    ns=2;s=Boiler1.Temp                  Float      500ms      Bad=0x80
Line1_Motor     Modbus    从站1, 功能码03, 40001, 2寄存器       Float32    1s         超时=Bad
Tank_Level      MQTT      factory/tank1/level                  JSON       5s         断线=Stale
Batch_No        SQL       SELECT batch_no FROM prod WHERE ...  String     10min      空值=Bad
Order_Status    REST      GET /api/orders?updated_after=...    JSON       5min       HTTP!=200=Bad
建议在点表中额外记录“工程单位”和“量程上下限”,便于后续在AVEVA中做量程校验和异常值过滤。例如温度量程0~200℃,若采集到-50℃或500℃,应标记为可疑质量码而非直接入库。

七、集成难点与应对思路

第一,时间戳统一。DCS/PLC数据往往没有统一时标,SCADA历史库有本地时间,IT系统用数据库时间。集成时应统一为UTC或明确时区,并在点表中记录时标来源。第二,质量码传递。OPC UA自带StatusCode,Modbus没有,需在采集端根据通信超时、寄存器越界等规则生成质量码。第三,批量与频率平衡。Modbus逐点读取效率低,应按连续寄存器合并;OPC UA订阅可设置发布间隔和死区,避免高频无用数据冲击平台。第四,安全隔离。生产网与信息网之间应通过单向网关或DMZ部署采集代理,OPC UA使用证书和用户认证,REST API使用Token并限制来源IP。