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的规范,解决平台独立性的问题;以及能够公开复杂的数据和满足复杂系统的扩展建模能力。
此处引用GB/T 33863.1-2017(IEC 62541-1)中的描述:
OPC UA是一个平台无关的标准,使用该标准可在位于不同类型网络上的客户端和服务器间发送消息,以实现不同类型系统和设备间的通信。它支持健壮、安全的通信,可确保客户端和服务器的识别并抵御攻击。OPC UA定义了服务器可提供的服务集,以及针对客户端所规定的每个服务器支持的服务集。使用OPC UA定义的数据类型、制造商定义的数据类型来传递信息,客户端能动态的发现的对象模型由服务器定义。服务器能提供对当前数据和历史数据的访问以及对报警和事件的访问,以向客户端通知重要变化。OPC UA可被映射到不同的通信协议,并对数据可按不同方式进行编码以平衡可移植性和效率。
结合标准文件中的说明,OPC UA的特点是:
核心规范
访问类型规范
应用规范
前八部分标准文件下载链接
OPC UA系统架构
OPC UA采用客户端/服务器架构,每个系统可以包含多个客户端和服务器。一个客户端可以同时与一个或多个服务器交互,每个服务器可以与一个或多个客户端交互。一个应用可以同时组合客户端和服务器,用于与其他服务器和客户端交互。其系统架构如图:
要点:
OPC UA服务器对客户端可用的对象集合及其相关信息被称为地址空间。
要点:
包含引用的节点为源节点,被引用的节点称目标节点。引用的目标节点可以与源节点在同一个地址空间,也可以在另一个OPC服务器的地址空间,甚至是目标节点可以不存在。
变量用来表示值。定义了两种变量类型:特性和数据变量。
特性:是服务器定义的对象、数据变量和其他节点的特征。
属性对于所有节点是通用的,并且仅由对应节点本部分定义,如定义变量的数据类型。
特性由服务器定义(如地址空间中作为变量的一个节点,其类型定义为PropertyType,则该节点成为一个特性,通过HasProperty引用,则可以将该特性指向另一个节点,做为该目标节点的特性),特性可用于如变量的工程单位。特性不能定义给自身的特性,其浏览名称(地址空间中的浏览路径)必须是唯一的。
数据变量:代表了对象的内容。如控制系统的功能块可以表示为对象,功能块的参数则可以表示为数据变量。数据变量可以有附加的数据变量,用于定义复杂的元素。
类型定义节点是服务器提供用于对象和变量的类型定义,HasTypeDefinition引用来连接一个实例,该实例的类型定义由类型定义节点定义。
OPC UA规范用来为不同厂商的设备和程序间提供接口标准化。其一大特点在于能够公开复杂的数据和复杂的系统。
OPC UA定义一个具体对象,可以用来描述一个车间,一条产线,一台设备或者是一个传感器。具象的事物包含多种信息,而信息以不同的形式统一被定义在地址空间中。地址空间是OPC服务器用来表示具体事物对象的一个标准方式。
一个具体事物,如一台空调,在地址空间中被定义为对象,该对象中所包括的是空调的各种信息,信息以不同形式,存在于该对象中。
如果有多台空调,逐个定义为对象是不可取的。可以通过定义一个空调的对象类型来描述空调所具有的共性,然后通过把对象设定为该对象类型,来产生多个具有该空调对象类型的实际对象,即实例化。
在实例化的过程中,如何定义一个对象属于特定的对象类型,或者一个对象归属于另一个对象,则可以通过引用来表示其关系。
空调被映射成了对象,使用对象类型实例化来产生多个对象,对象和对象类型都存在于地址空间中,它们有着一个共同的名字,节点。
所以,可以这样理解,地址空间其实就是节点和引用(节点间关系)所存在的一个虚拟的空间(其实它是用来表示对象的标准方式)。
由此,对象、变量和方法构成了OPC UA最重要的节点类别。对象拥有变量和方法,而且可以触发事件。
如有错误,欢迎指正 [email protected]