opc-ua协议机器数据采集-python
前言
公司项目涉及到opc-ua协议的数据采集,本篇记录基于opc-ua协议的数据采集服务端和客服端的实现,基于
opc-da协议的数据采集
请点击跳转。
一、环境
- opc-ua服务端:KEPServerEX 6 软件模拟
- opc-ua客服端:UaExpert 软件模拟
- python环境:python3.7 64位 (这个不限制,应该python3以上都可)
-
opcua包:pip install opcua即可
百度网盘链接:
https://pan.baidu.com/s/1EkJ3LWXTBEryo0QxrJSNsQ
提取码:3ocm
二、opc-ua服务端配置
KEPServerEX 6即可模拟da服务端,也可模拟ua服务端,下面来配置UA服务端,方法同da配置一样,
1、右击新建通道,选择Simulator,后续一直点下一步即可
2、在通道下右键新建设备,后续一直点下一步即可
3、右键设备新建标记,如:笔者建一个标记名为T,地址为123,值为1到100随机的温度
4、最后笔者建了test通道,通道下machine1的设备,设备下标记了2个变量,分别为T温度和V速度,都为随机值如:
5、右键kepserverex 6 点击opc ua 配置
6、编辑中安全策略选择无
7、修改好后重新初始化启动下即可
三、opc-ua客服端
1、uaexpert软件实现
-
第一次打开UaExpert会弹出如下界面,主要填充Subject那一栏,如下,这些信息可以随便填(有过制作安全证书(Certificate)的同学应该知道这些信息是用来制作csr的)。然后点击OK
-
连接opc-ua服务端,在UaExpert界面上点击那个“+”号,弹出界面如下,
-
双击Custom Discovery添加URL,其中URL为前面OPC UA 配置里的地址
-
添加后下方会出现服务,因为我们配置的服务端没有安全策略,所以不需要输入用户名和密码,直接进入即可
-
这时左边Severs下会出现我们刚才添加的服务,右键连接
6.我们的内容即在下放,找到我们建的通道,里面就可看到我们创建的两个标签,点击标签右边即可看到数据
2、python代码实现
opc-ua实际是opc-da的下一代,安全性能更高,传输更快,操作同da基本相同,需要用的opcua包,方法:连上服务端,通过node获取对应的数据即可,非常简单
from opcua import Client
client = Client("opc.tcp://127.0.0.1:49320")
try:
client.connect()
T = client.get_node('ns=2;s=test.machine1.T').get_value()
V = client.get_node('ns=2;s=test.machine1.V').get_value()
print(T)
print(V)
except Exception as e:
print(e)
finally:
client.disconnect()
运行结果:
总结
python的工业化还是非常强大的,opc-da使用openopc包,opc-ua使用opcua包,以上即为基于python的opc-ua协议的机器数据采集。
版权声明:本文为tqlisno1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。