OPC UA学习心得 — 1 OPC基础

1. OPC概述

OPC是独立于平台的,用来确保不同厂商设备之间信息无缝传输的一系列规范,是用于数据安全交换时的互操作性标准。

最初的OPC标准仅限于Windows操作系统,因此OPC是OLE for Process Control的缩写,即用于过程控制的OLE(Object Linking and Embedding,对象连接与嵌入技术),这就是通常所说的OPC Classic

目前SCADA、HMI、DCS、MES等都需要支持OPC接口,在制造业和流程工业等不同的自动化系统之间交换数据,OPC是一个普遍被接受的标准。它由OPC基金会负责维护,网站链接:https://opcfoundation.org

经典OPC接口是基于微软的COM和DCOM技术,其优势在于,无需定义网络协议或进程间通信机制,减少了不同的特定需求定义不同API时的规范化工作。但该技术只对所有基于PC的Windows操作系统可用,同时在使用OPC的远程通信时,DCOM存在很长的不可配置的超时时间,且不能用于互联网通信。

因此,产生了第一个与平台无关的OPC规范OPC XML-DA。它以HTTP/SOAP和Web服务技术取代了COM/DCOM,由于其平台独立性,主要实现在嵌入式系统和非微软的平台。但它资源消耗高,XML Web性能欠佳,且使用不同XML Web Service栈会导致互操作性问题。

针对上述问题,OPC UA产生的目标在于取代基于COM的规范,解决平台独立性的问题;以及能够公开复杂的数据和满足复杂系统的扩展建模能力。

2. OPC UA

此处引用GB/T 33863.1-2017(IEC 62541-1)中的描述:

OPC UA是一个平台无关的标准,使用该标准可在位于不同类型网络上的客户端和服务器间发送消息,以实现不同类型系统和设备间的通信。它支持健壮、安全的通信,可确保客户端和服务器的识别并抵御攻击。OPC UA定义了服务器可提供的服务集,以及针对客户端所规定的每个服务器支持的服务集。使用OPC UA定义的数据类型、制造商定义的数据类型来传递信息,客户端能动态的发现的对象模型由服务器定义。服务器能提供对当前数据和历史数据的访问以及对报警和事件的访问,以向客户端通知重要变化。OPC UA可被映射到不同的通信协议,并对数据可按不同方式进行编码以平衡可移植性和效率。

结合标准文件中的说明,OPC UA的特点是:

  1. 平台无关的标准。被设计作为基于微软COM技术的另一种实现方法。另外,以前的每个OPC规范都定义自身的地址空间模型和服务集,OPC UA使用一个服务集将以前的模型统一为一个集成的地址空间(提供了迁移策略)
  2. 通信安全,提供健壮的发布数据。体现在:服务器具有发布数据和事件的能力;客户端提供可实现快速检测并与传输相关联的通信故障中恢复,无需等待底层协议提供的长超时。
  3. 定义了详尽的能力集,服务器可实现这些能力的子集(行规)。服务器可以声明其符合哪种行规,客户端发现服务器的行规,并基于行规调整其与服务器的交互。
  4. 提供了一致的、集成的地址空间和服务模型。允许服务器将数据、报警、事件和历史数据集成到地址空间,并使用集成的服务集对其进行访问。通过地址空间,客户端可以查询描述数据格式的元数据,以及自定义数据格式的数据类型。
  5. OPC UA允许数据按不同格式表示,包括二进制结构和XML文件,数据格式可由OPC、其他标准组织和制造商定义。.

3. OPC UA系列标准

  1. 核心规范

    • IEC 62541-1 概念和概述:给出OPC UA的概念和概述
    • IEC 62541-2 安全模型:描述OPC UA客户端和服务器之间安全交互模型。
    • IEC 62541-3 地址空间模型:描述了服务器地址空间的内容和结构。
    • IEC 62541-4 服务:规定了OPC UA服务器提供的服务。
    • IEC 62541-5 信息模型:规定了OPC UA服务器的类型及其关系。
    • IEC 62541-6 映射:规定了OPC UA支持的传输映射和数据编码。
    • IEC 62541-7 规约:规定了可用于OPC客户端和服务器的行规。
  2. 访问类型规范

    • IEC 62541-8 数据访问:规定了使用OPC UA进行数据访问。
    • IEC 62541-9 报警和条件:规定了使用OPC UA支持用于访问报警和条件。
    • IEC 62541-10 程序:规定了支持对程序进行访问的OPC UA。
    • IEC 62541-11 历史访问:规定了使用OPC UA进行历史访问,包括历史数据和历史事件。
  3. 应用规范

    • IEC 62541-12 发现:规定了服务器在不同情况下如何工作,以及服务器和客户端之间如何交互。
    • IEC 62541-13 聚合:规定了如何计算和返回聚合。

前八部分标准文件下载链接

OPC UA系统架构

OPC UA采用客户端/服务器架构,每个系统可以包含多个客户端和服务器。一个客户端可以同时与一个或多个服务器交互,每个服务器可以与一个或多个客户端交互。一个应用可以同时组合客户端和服务器,用于与其他服务器和客户端交互。其系统架构如图:
OPC UA学习心得 — 1 OPC基础_第1张图片

OPC UA系统架构

OPC UA学习心得 — 1 OPC基础_第2张图片

OPC UA客户端架构

OPC UA学习心得 — 1 OPC基础_第3张图片

OPC UA服务器架构

OPC UA信息模型

1. 地址空间

要点:

  • 地址空间是用来给服务器提供标准方式,以向客户端表示对象。
  • 地址空间的实现途径是使用对象模型,通过变量和方法的对象,以及表达关系的对象。
  • 地址空间中模型的元素被称为节点,为节点分配节点类来代表对象模型的元素。
  • 对象及其组件在地址空间中表示为节点的集合,节点由属性描述并由引用相连。
  • OPC UA建模的基本在于节点和节点间的引用。

OPC UA服务器对客户端可用的对象集合及其相关信息被称为地址空间。
OPC UA学习心得 — 1 OPC基础_第4张图片

OPC UA对象模型

对象及其组件在地址空间中表示为节点的集合。
OPC UA学习心得 — 1 OPC基础_第5张图片

地址空间节点模型

2. 节点和引用

要点:

  • 节点根据用途分属于不同的节点类别(NodeClass),一些表示实例,一些表示类型。
  • 节点类依据属性和引用来定义。OPC UA规范定义的节点类称为地址空间的元数据,地址空间中每个节点都是这些节点类的实例。
  • 节点是节点类的实例,属性和引用是节点的基本组件。
  • 属性(Attribute)用于描述节点,不同的节点类别有不同的属性(属性集)。节点类的定义中包括属性的定义,因此属性不包括在地址空间中。
  • 引用(Reference)表示节点间的关系。引用被定义为引用类型节点的实例,存在于地址空间中。

OPC UA学习心得 — 1 OPC基础_第6张图片

节点通用属性

包含引用的节点为源节点,被引用的节点称目标节点。引用的目标节点可以与源节点在同一个地址空间,也可以在另一个OPC服务器的地址空间,甚至是目标节点可以不存在。
OPC UA学习心得 — 1 OPC基础_第7张图片

引用模型

3. 变量

变量用来表示值。定义了两种变量类型:特性和数据变量。

特性:是服务器定义的对象、数据变量和其他节点的特征。

属性对于所有节点是通用的,并且仅由对应节点本部分定义,如定义变量的数据类型。

特性由服务器定义(如地址空间中作为变量的一个节点,其类型定义为PropertyType,则该节点成为一个特性,通过HasProperty引用,则可以将该特性指向另一个节点,做为该目标节点的特性),特性可用于如变量的工程单位。特性不能定义给自身的特性,其浏览名称(地址空间中的浏览路径)必须是唯一的。

数据变量:代表了对象的内容。如控制系统的功能块可以表示为对象,功能块的参数则可以表示为数据变量。数据变量可以有附加的数据变量,用于定义复杂的元素。

4. 类型定义节点

类型定义节点是服务器提供用于对象和变量的类型定义,HasTypeDefinition引用来连接一个实例,该实例的类型定义由类型定义节点定义。
OPC UA学习心得 — 1 OPC基础_第8张图片

类型定义节点

总结

OPC UA规范用来为不同厂商的设备和程序间提供接口标准化。其一大特点在于能够公开复杂的数据和复杂的系统。

OPC UA定义一个具体对象,可以用来描述一个车间,一条产线,一台设备或者是一个传感器。具象的事物包含多种信息,而信息以不同的形式统一被定义在地址空间中。地址空间是OPC服务器用来表示具体事物对象的一个标准方式。

一个具体事物,如一台空调,在地址空间中被定义为对象,该对象中所包括的是空调的各种信息,信息以不同形式,存在于该对象中。

如果有多台空调,逐个定义为对象是不可取的。可以通过定义一个空调的对象类型来描述空调所具有的共性,然后通过把对象设定为该对象类型,来产生多个具有该空调对象类型的实际对象,即实例化

在实例化的过程中,如何定义一个对象属于特定的对象类型,或者一个对象归属于另一个对象,则可以通过引用来表示其关系。

空调被映射成了对象,使用对象类型实例化来产生多个对象,对象和对象类型都存在于地址空间中,它们有着一个共同的名字,节点

所以,可以这样理解,地址空间其实就是节点和引用(节点间关系)所存在的一个虚拟的空间(其实它是用来表示对象的标准方式)。

  1. 空调有风扇,有温度传感器,在地址空间中可以将其定义为空调对象包含的对象
  2. 空调还有温度、风速、温度设定点(非实物,一种数学概念),可以定义为空调对象下的变量
  3. 空调还可以开、可以关,开和关的动作可以定义为空调对象的方法
  4. 空调也许还具有报警功能,向外发送通知,则可以定义为事件

由此,对象、变量和方法构成了OPC UA最重要的节点类别。对象拥有变量和方法,而且可以触发事件

如有错误,欢迎指正 [email protected]

你可能感兴趣的:(OPC,UA)