opc-ua协议机器数据采集-python

opc-ua协议机器数据采集-python

前言

公司项目涉及到opc-ua协议的数据采集,本篇记录基于opc-ua协议的数据采集服务端和客服端的实现,基于opc-da协议的数据采集请点击跳转。

一、环境

  1. opc-ua服务端:KEPServerEX 6 软件模拟
  2. opc-ua客服端:UaExpert 软件模拟
  3. python环境:python3.7 64位 (这个不限制,应该python3以上都可)
  4. opcua包:pip install opcua即可
    百度网盘链接:https://pan.baidu.com/s/1EkJ3LWXTBEryo0QxrJSNsQ
    提取码:3ocm

二、opc-ua服务端配置

KEPServerEX 6即可模拟da服务端,也可模拟ua服务端,下面来配置UA服务端,方法同da配置一样,
1、右击新建通道,选择Simulator,后续一直点下一步即可
《opc-ua协议机器数据采集-python》
2、在通道下右键新建设备,后续一直点下一步即可
《opc-ua协议机器数据采集-python》
3、右键设备新建标记,如:笔者建一个标记名为T,地址为123,值为1到100随机的温度
《opc-ua协议机器数据采集-python》
4、最后笔者建了test通道,通道下machine1的设备,设备下标记了2个变量,分别为T温度和V速度,都为随机值如:《opc-ua协议机器数据采集-python》
5、右键kepserverex 6 点击opc ua 配置
《opc-ua协议机器数据采集-python》
6、编辑中安全策略选择无
《opc-ua协议机器数据采集-python》
7、修改好后重新初始化启动下即可

三、opc-ua客服端

1、uaexpert软件实现

  1. 第一次打开UaExpert会弹出如下界面,主要填充Subject那一栏,如下,这些信息可以随便填(有过制作安全证书(Certificate)的同学应该知道这些信息是用来制作csr的)。然后点击OK《opc-ua协议机器数据采集-python》
  2. 连接opc-ua服务端,在UaExpert界面上点击那个“+”号,弹出界面如下,《opc-ua协议机器数据采集-python》
  3. 双击Custom Discovery添加URL,其中URL为前面OPC UA 配置里的地址《opc-ua协议机器数据采集-python》《opc-ua协议机器数据采集-python》
  4. 添加后下方会出现服务,因为我们配置的服务端没有安全策略,所以不需要输入用户名和密码,直接进入即可《opc-ua协议机器数据采集-python》
  5. 这时左边Severs下会出现我们刚才添加的服务,右键连接《opc-ua协议机器数据采集-python》
    6.我们的内容即在下放,找到我们建的通道,里面就可看到我们创建的两个标签,点击标签右边即可看到数据《opc-ua协议机器数据采集-python》

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()

运行结果:
《opc-ua协议机器数据采集-python》

总结

python的工业化还是非常强大的,opc-da使用openopc包,opc-ua使用opcua包,以上即为基于python的opc-ua协议的机器数据采集。

    原文作者:一只机械专业的程序猿
    原文地址: https://blog.csdn.net/tqlisno1/article/details/109234856
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞