工控上位机数据采集,协议、网关与数据库到底怎么选

丁丁智造 · 2026-09-01
工控上位机数据采集,协议、网关与数据库到底怎么选
导读:从上位机直连到边缘网关解耦,一篇讲清采集架构、协议、网关软件与时序数据库的选型顺序和判断标准。

先给结论

做设备数据采集,不要一上来就写代码连 PLC。正确顺序是:先盘清楚设备和协议 → 决定采集架构(直连还是网关解耦)→ 选网关/连接软件 → 选数据存储 → 最后才写上位机业务。架构顺序错了,后期每加一台设备都是灾难。

第一步:盘设备和协议(决定一切的前提)

把现场清单列成表:每台设备是什么品牌、什么型号、走什么协议、能提供哪些接口(网口/串口)、点位有多少、数据变化多快。

常见协议对应关系:

  • 三菱 Q/FX 系列:MC 协议(TCP/串口)
  • 西门子 S7-1200/1500:S7 协议或 OPC UA
  • 通用仪表/变频器:Modbus TCP/RTU 最常见
  • 跨系统标准对接:OPC UA

这一步的产出是一张点位表,它同时是网关变量表、数据库表、上位机画面的共同源头,务必一次规划好命名。

第二步:决定架构——直连还是网关解耦

  • 上位机直连:设备少(1-3 台)、协议单一、只有一个系统用数据时最简单,代码里直接用通讯库读取。
  • 网关解耦(推荐中大型场景):设备多、协议杂、多个系统(上位机/MES/大屏/AI)都要用数据时,加一个独立采集网关,南向统一采集、北向标准转发。这样通讯问题不会拖垮业务系统,新增消费方也不用重复连设备。

判断标准很简单:当「第二个系统也要用同一份设备数据」时,就该上网关解耦了。

第三步:选网关/连接软件

方向代表适合
商业 OPC 服务器KEPServerEX预算足、协议极杂、要商业兜底
开源边缘网关ThingsGateway、Neuron、EdgeX自主可控、零授权费、有二开能力
自研Go/C# 通讯库协议固定、需要深度定制

选型看四个维度:协议是否覆盖、点位规模能否扛住、运行平台(Windows/Linux/ARM)、团队是否能维护

第四步:选数据存储

  • 只做实时监控、不存历史:内存 + 实时转发即可。
  • 需要历史趋势、报表、回溯分析:用时序数据库(如 TDengine、InfluxDB),不要用关系库硬扛高频写入。
  • 要做业务关系(用户、工单、项目):关系库(PostgreSQL)与时序库分工,别混为一谈。

第五步:再写上位机业务

通讯和存储稳定后,上位机只负责「消费数据 + 展示 + 业务逻辑」。这也是未来 Web HMI 的方向:前端用 Vue/TypeScript,通过标准 API 或实时消息拿数据,和底层协议彻底解耦。

一张判断清单

  1. 点位表和协议清单是否已经列全?
  2. 是否有两个以上系统要用同一份数据?是 → 网关上。
  3. 软件运行平台有没有 Linux/国产化要求?
  4. 历史数据要不要长期留存、要不要高频写入?要 → 时序库。
  5. 通讯层和业务层是否做到了可独立替换?

把这五个问题回答清楚,采集架构基本不会走弯路。后续本站会针对每一步给出带代码的实战教程。