WinCC7.5+Telegraf+Influxdb 3.0 Core:通过OPC UA方式WinCC数据直接同步数据到Influxdb

一、系统架构图

  • WinCC 启用 OPC UA Server(自带,无需额外软件)
  • Telegraf 使用 inputs.opcua 插件直接读 WinCC OPC UA 变量
  • Telegraf 输出到 outputs.influxdb_v2(InfluxDB 3.0)

二、环境准备

  • WinCC:V7.5 (支持 OPC UA Server)
  • Telegraf:1.38.2(Windows x64,与 WinCC 同机)
  • InfluxDB 3.0 Core:Windows x64
  • 网络:WinCC ↔ Telegraf 开放OPC UA端口;Telegraf ↔ InfluxDB 开放对应端口

三、实操步骤

1.WinCC 7.5默认已经启动OPC UA服务,可以通过第三方OPC UA Client测试,我用的是Softing OPC UA Client,直接连接测试WinCC OPC UA Server的状态和可用性。依据客户或者安全部门对安全的要求,确认到底用哪一个OPC Server,我选择的是无需认证的。

2.Influxdb 3.0安装与配置,由于3.0必须启用安全认证,所以在启动前必须先生成Tocken文件。从官网下载Influxdb 3.0 开源版以及Telegraf 3.28,依据安装操作系统的不同,选择对应的安装文件,我是在windows 10环境下安装,所以下载Windows安装包,这个安装包路径不好找。

(1)下载后放在某个盘符根目录下,解压出来,文件名称最好不要太长或者带特殊字符和空格。

(2)需要首先生成管理员 token 文件,以管理员运行Powershell,输入如下命令:

复制代码
`cd C:\influxdb3 ``\influxdb3.exe  create token  --admin  --name admin  --offline  --output-file admin-token.json`这会在 C:\influxdb3生成 admin-token.json,打开这个文件里面的 token 就是唯一能通过认证的 key。
![](https://i-blog.csdnimg.cn/direct/60198fb73ab14a1592ad20bbd6ad4825.png)

(3)启动 InfluxDB 3.0(必须带 token 文件)
复制代码
`cd C:\influxdb3 
.\influxdb3.exe serve  --node-id wincc  --object-store file  --data-dir C:\influxdb3\data  --http-bind 0.0.0.0:8181  --admin-token-file admin-token.json`看到类似这样的内容,说明Influxdb启动成功。`Listening for HTTP requests on [::]:8181`

(4)创建数据库(必须带 --token)

先打开 admin-token.json 复制 token 字段的值。

然后执行:

复制代码
`cd C:\influxdb3 
.\influxdb3.exe create database wincc_historical  --host http://127.0.0.1:8181  --token "从admin-token.json复制的token"`

查看数据库,验证数据库是否创建成功

复制代码
`\influxdb3.exe show databases  --host http://127.0.0.1:8181 --token "你复制的token"`

3.Telegraf 1.38.2开源版的安装与配置,从官网下载安装文件,记得以及自己安装环境选择对应下载请求指令,我的是Windows的环境,所以选择windows版本。

(1)下载后的文件,建议放到某个盘符根目录下,解压出来,文件名称最好不要太长或者带特殊字符和空格。

(2)对conf配置文件进行编辑,主要配置需要转移的WinCC 变量信息以及存放Influxdb数据库的访问和安全信息:

agent

interval = "1s" #采集周期

flush_interval = "1s" #存放周期

\[inputs.opcua\]

endpoint = "opc.tcp://127.0.0.1:4840" #WinCC OPC UA Server地址

security_policy = "None"

security_mode = "None"

auth_method = "Anonymous"

nodes = [ { name="alarm1", namespace="2", identifier_type="s", identifier="t|Alarm1" },

{ name="alarm2", namespace="2", identifier_type="s", identifier="t|Alarm2" } ]

#winCC的两个变量信息,特别注意namespace、identifier_type以及identifier一定和WinCC中的变#量对应,可以通过第三方工具核对。

tags = { device="WINCC_SERVER" }

\[outputs.influxdb_v2\]

urls = ["http://127.0.0.1:8181"] #Influxdb的地址

token = "你的INFLUXDB_TOKEN"

organization = "dummy"

bucket = "wincc_historical" #上面创建的数据库

特别注意:变量的信息必须一致。

(3)启动Telegraf,在Powershell中运行如下指令:

./telegraf --config telegraf.conf

看到类似以下内容说明启动成功

I! Starting Telegraf

I! Loaded inputs: opcua

I! Loaded outputs: influxdb_v2

I! Tags enabled: host=...

4.验证数据是否转存到Influxdb,通过执行命令:

.\influxdb3 query --database wincc_historical --host http://127.0.0.1:8181 --token "你的TOKEN" "SELECT * FROM opcua"

如果看到以下数据,说明大功告成,恭喜你。

相关推荐
amuzhichuang4 天前
阿姆智创15.6寸触摸工控一体机,工业智造终端解决方案,源头工厂ODM定制赋能自动化升级
mes·工控一体机·esop
amuzhichuang6 天前
阿姆智创15.6寸嵌入式工控一体机,深圳源头工厂ODM定制方案,工业智造硬核终端适配
视觉检测·mes·工控一体机·esop
尽兴-8 天前
机器人控制系统(RCS)核心算法深度解析:从路径规划到任务调度
算法·机器人·wms·mes·路径规划算法·冲突解决算法·任务调度算法
摩尔元数10 天前
MES如何破解线缆制造:从排程、盘具到成本的全链路优化
低代码·制造·mes
amuzhichuang11 天前
阿姆智创21.5寸工控电脑一体机,硬核性能支撑工业场景落地,源头工厂ODM定制方案
mes·工控一体机·esop
amuzhichuang13 天前
阿姆智创15.6寸工业工控一体机,工业制造数字化升级,源头工厂ODM定位解决方案
mes·工控一体机·esop
amuzhichuang14 天前
阿姆智创21.5寸嵌入式工控一体机,源头工厂高性能方案,工业智造硬核终端控制
mes·工控一体机·esop
宏集科技工业物联网16 天前
半导体工厂设备集控系统,基于宏集Panorama E2 的现代化SCADA解决方案
经验分享·scada·工业自动化·mes·设备集控
Lalolander17 天前
工厂工艺管理进阶:SMT生产阶别如何实现精细化管控?
大数据·制造·mes·制造执行系统·工厂管理系统·工厂生产进度管理·工厂工单管理