《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

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat