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

  • Post author:
  • Post category: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,后续一直点下一步即可

在这里插入图片描述

2、在通道下右键新建设备,后续一直点下一步即可

在这里插入图片描述

3、右键设备新建标记,如:笔者建一个标记名为T,地址为123,值为1到100随机的温度

在这里插入图片描述

4、最后笔者建了test通道,通道下machine1的设备,设备下标记了2个变量,分别为T温度和V速度,都为随机值如:
在这里插入图片描述

5、右键kepserverex 6 点击opc ua 配置

在这里插入图片描述

6、编辑中安全策略选择无

在这里插入图片描述

7、修改好后重新初始化启动下即可



三、opc-ua客服端



1、uaexpert软件实现

  1. 第一次打开UaExpert会弹出如下界面,主要填充Subject那一栏,如下,这些信息可以随便填(有过制作安全证书(Certificate)的同学应该知道这些信息是用来制作csr的)。然后点击OK
    在这里插入图片描述
  2. 连接opc-ua服务端,在UaExpert界面上点击那个“+”号,弹出界面如下,
    在这里插入图片描述
  3. 双击Custom Discovery添加URL,其中URL为前面OPC UA 配置里的地址
    在这里插入图片描述
    在这里插入图片描述
  4. 添加后下方会出现服务,因为我们配置的服务端没有安全策略,所以不需要输入用户名和密码,直接进入即可
    在这里插入图片描述
  5. 这时左边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 版权协议,转载请附上原文出处链接和本声明。