
从 PLC 到可视化,一条完整的数据链路是如何运转的?

工业自动化产线上的蓝色机械臂正在执行装配任务 图片来源:Unsplash(免费授权)
在工业物联网(IIoT)的世界里,数据采集是一切智能决策的基础。但当你真正开始搭建一个数据采集系统时,会发现这个领域远比想象中复杂:
如何让这些"鸡同鸭讲"的设备统一协作?
本文将带你梳理一条完整的工业数据采集链路,介绍其中的核心工具:KEPServerEX、Telegraf 和 InfluxDB。
┌─────────────────────────────────────────────────────────────┐
│ 应用层(可视化/分析) │
│ Grafana / SCADA / MES / ERP │
└─────────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────────────────────────────────────────┐
│ 存储层(时序数据库) │
│ InfluxDB / TimescaleDB │
└─────────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────────────────────────────────────────┐
│ 采集层(数据代理) │
│ Telegraf / KEPServerEX / 自定义采集 │
└─────────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────────────────────────────────────────┐
│ 设备层(现场设备) │
│ PLC / CNC / 传感器 / 机器人 / 智能仪表 │
└─────────────────────────────────────────────────────────────┘
工程师在智能制造产线上使用笔记本电脑调试设备 图片来源:Unsplash(免费授权)
KEPServerEX 是由美国 Kepware 公司(现隶属于 PTC)开发的工业级 OPC 服务器软件,被誉为工业数据采集领域的"瑞士军刀"。
它的核心使命很简单:让不同品牌、不同协议的工业设备能够"说同一种语言"。
想象一个典型的工厂场景:
设备类型 | 品牌 | 通信协议 |
|---|---|---|
生产线 PLC | 西门子 | S7 协议 |
数控机床 | 发那科 | FOCAS 协议 |
温度传感器 | 第三方 | Modbus RTU |
机器人 | ABB | OPC UA |
如果没有统一的通信中间件,你需要为每种协议写不同的采集程序。而 KEPServerEX 提供了 150+ 种设备驱动,可以一站式解决这个难题。
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
│ 西门子 PLC │ ──▶ │ │ │ OPC UA │
│ 三菱 PLC │ ──▶ │ KEPServerEX │ ──▶ │ MQTT │
│ Modbus设备 │ ──▶ │ (协议转换) │ │ REST API │
│ OPC UA设备 │ ──▶ │ │ │ ODBC │
└─────────────┘ └─────────────────┘ └─────────────┘
多种输入协议 统一平台 标准输出协议主要特性:

数据中心服务器机房,整齐排列的服务器机架与彩色线缆 图片来源:Unsplash(免费授权)
Telegraf 是 InfluxData 公司开发的开源数据采集代理,用 Go 语言编写,专为时序数据设计。
如果说 KEPServerEX 解决了"设备通信协议"的问题,那么 Telegraf 则解决了"数据如何进入存储系统"的问题。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 数据源 │ ──▶ │ Telegraf │ ──▶ │ InfluxDB │
│ (各种来源) │ │ (采集+处理) │ │ (时序存储) │
└─────────────┘ └─────────────┘ └─────────────┘Telegraf 的核心工作流程:
特性 | 说明 |
|---|---|
插件丰富 | 200+ 插件,覆盖系统指标、数据库、消息队列等 17 类数据源 |
轻量级 | 单二进制文件,内存占用 < 100MB |
跨平台 | Linux、Windows、macOS、Docker、Kubernetes |
多输出 | 可同时发送到多个目标(InfluxDB、Kafka、MySQL 等) |
易配置 | TOML 格式配置文件,简单直观 |
系统层面:
数据库层面:
消息队列:
工业协议:

数据分析仪表盘展示实时性能指标与趋势图表 图片来源:Unsplash(免费授权)
InfluxDB 是专为时序数据设计的数据库,在 DB-Engines 时序数据库排名中常年位居前列。
版本 | 状态 | 特点 |
|---|---|---|
InfluxDB 1.x | 维护中 | 传统版本,稳定成熟 |
InfluxDB 2.x | 稳定版 | 内置 UI 和任务引擎 |
InfluxDB 3.x | 最新版(2025.4 GA) | 全新架构,性能大幅提升 |
Measurement: cpu_usage
Tags: host=server01, region=beijing
Fields: value=75.5, user=45.2, system=30.3
Timestamp: 2025-01-15T08:30:00Z
工业级电路板上的微处理器与电子元器件,IoT 设备的核心 图片来源:Unsplash(免费授权)
┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌─────────┐ ┌─────────┐
│ 西门子 │───▶│ KEPServerEX │───▶│ Telegraf │───▶│InfluxDB │───▶│ Grafana │
│ PLC │ │ (OPC UA输出) │ │(数据采集) │ │(时序存储)│ │(可视化) │
└─────────┘ └─────────────┘ └──────────┘ └─────────┘ └─────────┘
协议转换层 通信中间件 采集代理 数据存储 可视化组件 | 职责 | 解决的问题 |
|---|---|---|
KEPServerEX | 协议转换 | 西门子 S7 → OPC UA |
Telegraf | 数据采集 | 从 OPC UA 读取 → 写入 InfluxDB |
InfluxDB | 数据存储 | 高效存储时序数据 |
Grafana | 可视化 | 仪表盘展示 |
Telegraf 配置(从 KEPServerEX 采集 OPC UA 数据):
[[inputs.opcua]]
## KEPServerEX 的 OPC UA 服务器地址
endpoint = "opc.tcp://localhost:49320"
## 认证信息
username = ""
password = ""
## 要采集的节点
nodes = [
{name="temperature", namespace="2", identifier_type="s", identifier="Channel1.Device1.Tag1"},
{name="pressure", namespace="2", identifier_type="s", identifier="Channel1.Device1.Tag2"},
]
[[outputs.influxdb]]
urls = ["http://localhost:8086"]
database = "factory_data"✅ 推荐使用:
❌ 可能不需要:
✅ 推荐使用:
场景 | 推荐版本 |
|---|---|
新部署 | InfluxDB 3.x(2025.4 GA) |
已有 1.x/2.x | 可继续使用,或评估迁移到 3.x |
Windows 免安装 | 1.x 或 2.x(3.x Windows 原生支持待完善) |
工业数据采集是一个分层协作的过程:
层级 | 工具 | 核心价值 |
|---|---|---|
协议转换层 | KEPServerEX | 打通设备通信壁垒 |
数据采集层 | Telegraf | 灵活、轻量的数据搬运 |
数据存储层 | InfluxDB | 专业时序数据管理 |
可视化层 | Grafana | 直观的数据洞察 |
理解每个工具的定位和边界,才能搭建出高效、稳定、可扩展的工业数据采集系统。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。