《OPC UA实践》 - 阅读笔记 3 OPC UA与产业升级

2024-08-24 19:48

本文主要是介绍《OPC UA实践》 - 阅读笔记 3 OPC UA与产业升级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第三章 OPC UA与产业升级

3.1 OPC UA对于控制层的意义和构想。

OPC 为不同控制器之间以及控制器和MES/管理
系统之间的通信打下了坚实的基础。

大量的控制器(PLC)和MES系统厂商只专注于自己的专业领域,而OPC UA提供了一个纵向通信来打通这一点,并提供了标准的接口,且更加安全、实用。

控制器层面所有的相关内容都可以被认为是面向服务控制(SoA-PLC)的基本准则。而控制器的实时性通常由发布-订阅模式来实现。

由于TCP/IP协议的数据完整性需要通过重发来保证,因此缺乏PLC所需要的实时性。(现在机器人行业常用的ROS1通过UDP协议来实现发布订阅,ROS2则利用DDS来实现)
其中的难点在于:
实时域(PLC)与非实时域(OPC UA)之间的数据传输要如何定义接口与传输方式。


PLCopen:控制层映射及功能块
PLCopen国际组织根据不同的国际标准,针对控制器设计定义了许多重要组件(如运动控制)。
他们也发布了两个技术规范:

  • 《PLCopen OPC UA信息模型》:如何在OPC UA环境中描述IEC 61161-3 所定义的数据类型、功能块和数据结构等。(也就是OPC UA到IEC 61161-3 的映射)
  • 《PLCopen OPC UA UA IEC 61161-3客户端》:如何利用PLCopen功能块以客户端角色发起 OPC UA通信

功能块:

建立链接
获取地址空间索引
获取节点句柄
读取数据

OPC UA 发布-订阅模式

客户端-服务器模式更适合非实时、异步的数据通信。
实时通讯通常使用基于以太网的现场总线协议,如EtherCAT等。此时数据传输模式为发布-订阅模式。

发布者
UDP多播组
订阅者
订阅者
订阅者

OPC UA正在对标准的发布者-订阅者通信模式进行扩展, 以便同时支持典型的、标准的OPC UA数据呈现,以及当前所欠缺的实时加密的1:n通信方式。新的标准在工业4.0框架中同时支持基于UDP\IP的数据传输(实时)和基于其他协议(AMQP\MQTT)的数据传输(非实时)。

当不同厂商的控制器采用UDP\IP协议进行数据交换时,它所带来的好处:
只要通信部份在控制器固件的实时域内实现,系统就自然获得了数据交换的实时性。

OPC UA确立标准,不同厂商控制器都需要信息交换,可实现更简单便利的实时通讯。


行业信息模型

OPC UA在控制器领域内还支持所谓的行业伴随标准。
OPC UA元模型(metamodel)的基础上定义用于描述特定应用领域内的专用数据类型、实例和关系。可以从原来的行业标准–映射到OPC UA服务器中。
典型示例:

  • OPC UA ADI(分析仪设备集成,Analyzer Device Integration)标准
  • AMI(自动识别、数据采集以及移动数据通信)协会的AutoID标准

无需对设备做更多配置(定义行业相关数据类型和方法),就可直接对其进行访问。

借助OPC UA特定应用域模型的确立,长久以来讨论中的即插即生产(plug-and-produce)理念才有可能成为现实。

控制器层面的两个可能性:

  1. 通过控制器模拟这些设备
  2. 为控制器添加额外的用于与行业设备通信的库函数。

OPC UA以XML格式描述行业伴随标准,且类型和实例的编码位于节点集合内。OPC UA服务器可以方便地加载或者导入这些信息模型。而控制器厂商只需要确定规则,将节点集合内的数据点与控制器上的实际数据点链接起来。

UA-Nodeset
上述行业伴随标准开源可下载:UA-Nodeset
每个标准下有这些文件:

  • .NodeSet2.xml - The formal definition of the Nodes defined by the specification;
  • .Types.xsd - The XML schema for the DataTypes defined by the specification;
  • .Types.bsd - The OPC Binary schema for the DataTypes defined by the specification (obsolete);
  • .NodeIds.csv - A CSV file containing the NodeIds assigned to Nodes defined by the specification;

通常如其名称所述,为节点、类型的节点集合,偶尔也有信息模型文件。不同领域互相还有引用。
例如Robotics的Nodeset就需要依赖于DI的Nodeset。

<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" LastModified="2019-05-06T00:00:00Z" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd"><NamespaceUris><Uri>http://opcfoundation.org/UA/Robotics/</Uri><Uri>http://opcfoundation.org/UA/DI/</Uri></NamespaceUris><Models><Model ModelUri="http://opcfoundation.org/UA/Robotics/" Version="1.0.0" PublicationDate="2019-05-06T00:00:00Z"><RequiredModel ModelUri="http://opcfoundation.org/UA/" Version="1.04" PublicationDate="2019-05-01T00:00:00Z" /><RequiredModel ModelUri="http://opcfoundation.org/UA/DI/" Version="1.02" PublicationDate="2019-05-01T00:00:00Z" /></Model></Models>

基于SoA-PLC的TwinCAT概念
TwinCAT
此现代控制器能够与其他基于OPC UA的控制器或控制系统无障碍数据交换和互操作。
控制器为核心,主要任务为实现实时逻辑处理和控制相应的输入输出信号。
数据由实时域采集,opc ua向外部提供。
基于软PLC概念(控制器内核运行于通用PLC和实时操作系统平台)

  1. 最内层的工程化、诊断、检测等借助OPC UA服务。
  2. 提供自定义类型和高附加值功能(提高语义层面互操作性)
  3. 最外层(传输层),具体的数据通信,分为两种形式:基于TCP/IP的客户端-服务端,基于UDP的发布订阅模式。包括网络安全保护机制。

控制器中的opc ua的现状和未来
独一无二,数据通信、基于类型的系统和网络安全技术的整合。

3.2 西门子控制器中的opc ua

在这里插入图片描述
管理层:制造执行系统(MES)
操作者:数据采集于监视控制系统、工程结构、能源管理
控制层:PLC、HMI、工业PC、通信、运动控制、CNC数控
现场级:电源、工业标识、分布式输入输出、电机驱动器、工业控制器

OPC UA可以与PROFINET在同一线缆上并行。

OPC UA与现有设备升级

  1. 快速大规模移植
  2. 渐进式移植并支持更多现有协议
  3. 基于OPC UA网关实现系统移植。

这篇关于《OPC UA实践》 - 阅读笔记 3 OPC UA与产业升级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103438

相关文章

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶