Python 获取beckhoff数据-OPCUA

1. 背景介绍

     OPC UA(Unified Architecture,统一架构)是下一代的OPC 标准,它是一种工业通讯协议,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。
  OPC UA的诞生是因为现有的OPCDA通信技术是基于COM的规范,因此需要建立一个没有损失任何功能和性能的真正平替。

OPCUA统一架构

2. 测试搭建

在Twin CAT的项目中,增加如下的变量定义 - 注意,将OPC  UA DA Access设置为3即为可读可写。
 // add a parameters for the OPC UA function test
  {attribute 'OPC.UA.DA' := '1'}
  {attribute 'OPC.UA.DA.Access' := '3'}
 OPC_Test                             : INT;

3. OPC UA的服务器设置

  TwinCAT安装好后,系统将提供UA Gateway功能,系统可以通过对UA Gateway进行相应的配置来满足UA服务的功能需求。

通过在UA Gateway上点击右键,可以打开UA Gateway的Administrate UA Gateway的配置界面。
打开Administrator UAgateway
具体需要修改的配置如下图:
1. Port : 更具需要修改为自己需要使用的端口号;
2. Security: OPCUA的证书支持多种多样,目前我们默认的情况下,使用的是None -无需证书的模式。UA endpoint的配置

5. 获取节点信息

    TwinCAT的完整安装工具集中提供了快速的OPC客户端测试应用,可以通此应用获取需要访问的数据的节点信息。
   通过如下的截图信息可以获取到基于OPCUA库进行相应访问的节点namespace_index和节点node_identifier。

如何获取节点信息

4. Python代码实现

# 导入所需的库
import opcua
# 创建一个OPC UA客户端实例
client = opcua.Client("opc.tcp://localhost:4850")
# 连接到服务器
try:
    client.connect()
except Exception as e:
    print("Error connecting to OPC UA Server: ", e)
else:
    # 假设您已知目标节点的路径(此处仅为示例)
    #node_path = "ns=<namespace_index>;s=<node_identifier>"
    node_path = "ns=7;s=Station.OPC_Test"
# 使用客户端找到目标节点
try:
        variable_node = client.get_node(node_path)
except Exception as e:
        print(f"Failed to find node at path {node_path}: ", e)
 else:
        # 读取当前的节点值
        value =  variable_node.get_value()
        print(f"节点值: {value}")
        datavalue = opcua.ua.DataValue(opcua.ua.Variant(True, opcua.ua.VariantType.Boolean))
        variable_node.set_value(datavalue)
#关闭连接
client.disconnect()

参考资料
[1] https://opcfoundation.cn/about/opc-technologies/opc-ua
[2] https://zhuanlan.zhihu.com/p/627906477

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Twincat3 OPC UA是一种基于OPC UA协议的工业自动化通信协议。OPC UA是一种开放、跨平台的通信协议,用于在工业自动化系统中实现不同设备间的相互通信。 Twincat3是德国贝克霍夫公司(Beckhoff)开发的一种工业自动化控制系统,它采用了OPC UA协议作为其通信协议,以实现与其他设备的连接和数据交换。 Twincat3 OPC UA具有以下特点和优势: 首先,它具有高度的开放性和互操作性。OPC UA协议是一种开放标准,易于与其他设备和系统进行集成。Twincat3 OPC UA能够与不同厂商、不同平台的设备进行通信,实现数据共享和交互。 其次,Twincat3 OPC UA具有高安全性和可靠性。OPC UA协议提供了多层级的安全机制,能够保护通信数据的机密性和完整性。Twincat3 OPC UA还支持数据加密和身份验证,以确保通信过程中的数据安全。 此外,Twincat3 OPC UA还具有高性能和灵活性。OPC UA协议采用了基于二进制的通信格式,传输效率高,数据传输速度快。Twincat3 OPC UA还支持发布/订阅模型,可以实现即时数据通知和事件推送,提高了系统的实时性和响应能力。 总之,Twincat3 OPC UA作为一种基于OPC UA协议的工业自动化通信协议,具有开放性、互操作性、安全性、可靠性、高性能和灵活性等优势。它为工业自动化系统中的设备间通信提供了一种可靠和高效的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值