OPC UA

✍ dations ◷ 2024-12-25 12:47:19 #OPC UA

OPC UA的全名是OPC Unified Architecture(OPC统一架构)。是OPC基金会(英语:OPC Foundation)应用在自动化技术的机器对机器网络传输协议。有以下的特点:

OPC UA和其前身开放平台通信(OPC)是由同一个组织所开发,但两者有显著不同。基金会开发OPC UA的目的是发展比原来OPC通讯架构(只使用Microsoft Windows的进程交换COM/DCOM)更理想的架构,也更符合正在发展中的工业自动化

OPC UA的规格开发了三年,之后花了一年实现通讯协定,OPC UA的第一个版本在2006年问世。

到2015年10月10日为止,OPC UA最近的版本是1.03。除了client/server通讯协定外,新版的OPC UA也加入了publish/subscribe的机制。

开放平台通信(OPC)和COM/DCOM的结合虽让开放平台通信可以顺利推展,但有以下的缺点:

因为这些缺点以及许多其他的考虑因素,使得OPC基金会决定开发一个针对全新而且独立的OPC UA通讯协定栈来取代COM/DCOM。其优点有:

通讯协定栈反映了架构创新的基础,OPC UA架构是面向服务的体系结构(SOA),以许多不同逻辑层级为其基础。

OPC基础服务是抽象形别的叙述,和通讯协定无关,是OPC UA机能的基础。传输层将方法转换为通讯协定,将资料序列化(或反序列化),再传送到网络上。为了上述目的,定义了两种通讯协定,其中一个是以效率进行过最佳化的二进制TCP讯定,另一个则是Web服务导向的协定。

OPC资讯模型是所谓的全网状网络(Full Mesh Network),以节点为基础。节点类似面向对象程式设计(OOP)中的物件,可以包括各种的元资料。节点可以有属性让其他设备读取(DA、HDA),有方法可以呼叫(Commands),也有可以启动传输的触发事件(AE、DataAccess、DataChange)。节点包括过程资料,也包括其他种类的元资料。OPC命名空间中包括了形态模型。

客户端软件可以确认服务器支援哪些行规(profile),有需要获得这些资讯,知道服务器是否只支援DA,或是还支援AE和HDA。而且可以得到服务器是否支援特定行规的讯息。OPC UA还有以下重要的新机能:

OPC UA 是在2006年10月在慕尼黑举行的 OPC UA DevCon 中首次公开其协定,在Beckhoff 的 PLC 上已有许多的 UA 服务器,在 Euros 嵌入式测试电路板中也有UA服务器。Beckhoff PLC 的底层是 Windows XP嵌入式系统,而嵌入式控制器执行的操作系统是实时操作系统 Euros。Embedded Labs Ltd 公司在他们执行在单芯片ARM控制器(64kb RAM) C++ UA Stack 上展示了 OPC-UA。2012年10月时德国的 Fraunhofer-Application Center IOSB-INA 以及工业信息技术研究所(Institute for industrial Information Technologies, inIT)证实了OPC-UA服务器可以只使用15 kB RAM以及10 kB ROM,因此是芯片等级可以使用的通讯架构。

OPC UA支援两种通讯协定,这两种通讯协定的差异只有URL的不同,二进制通讯协定是opc.tcp://Server,而Web服务的通讯协定是http://Server,其他情形下,OPC UA对应用程序接口的作业完全透明,其他作业不受OPC UA的影响。

二进制通讯协定的效率最高,其overhead也最少,让需要的资源最小化(不需要XML解析器、SOAP及HTTP,对嵌入式系统格外重要),提供最佳的互操控性(在实现时,二进制通讯协定提供较少的自由度),使用任意选取的TCP通道,可以较容易的进行隧道协议,也可以从透过防火墙开启。

Web服务(SOAP)通讯协定可以支援许多不同的工具(包括Java环境或是.NET环境的工具),使用标准HTTP(S)埠,可以和防火墙共同使用。

所有的实现方式都支援二进制通讯协定,但只有用.NET实现的设备才支援SOAP。

OPC UA规范属于多部分的规范,包括了以下部分:

OPC UA规范和其他以COM为基础的规范不同,OPC UA规范不是单纯的应用规范。其中会描述典型的UA内部机制,这些会在通讯协定栈中处理,因此一般只有要将通讯协定栈导入特定硬件的人,或是要开发通讯协定栈的人才会对这些内容有兴趣。

OPC UA应用程序的开发者需要撰写程式和OPC UA API沟通,因此主要只需要用到API的说明文件。不过应用程序开发者也可能会对其中的第3、4、5部分感兴趣。

UA应用程序在服务器端或是客户端,其架构上都有分层的结构。

有些部分和以往的COM Proxy/Stubs相等,由OPC协会提供。可移植性级别(portability level)是新的,简化了引入UA ANSI C通讯协定栈的程序,也简化了移植到其他平台的的难度。OPC协会也提供了针对Window及Linux的port layer。

UA安全性包括了认证、授权、加密以及透过签名实现的资料整合性。针对Web服务会使用WS-SecureConversation(英语:WS-SecureConversation),可以和.NET和其他以SOAP实现的软件相容。若是二进制的版本,也会依循WS-SecureConversation的算法,转换为二进制的版本,称为UA Secure Conversation。

有另外一个混合的版本,程式是二进制的,而其传输层是用SOAP。这是在二进制的效率以及对防火墙友善的传输之间的妥协。因为是二进制的程式,会需要使用UA Secure Conversation。其认证只使用X.509认证,是靠程式开发者决定UA应用程序要使用哪一个证书存储区。例如,也可能使用Active Directory中的公开金钥基础建设(PKI)。

在许多编程语言中都有UA的API。在C、C++、Java及.NET中有商业的SDK。而至少在C、C++、Java、Javascript(node)及Python中有其开源的通讯协定栈。

.NET版本的实现在底层用ANSI C,其余部分使用.NET。因此只有网络端点的处理以及消息分块的取得是从ANSI C的通讯栈处理的。反序列化直接在.NET中进行,会直接转换为.NET的结构及物件。因此其效能会比先反序列化成C语言结构,再复制到.NET结构的效率要好。

有许多Java语言的通讯栈,类似.NET,Java语言的通讯栈分为三种:

也有一些简单的变体只支援WebService协定,此情形下,需要有可以支援WS-Security的SOAP Toolkit。

FreeOpcUa(页面存档备份,存于互联网档案馆)专案提供了以Python编程语言实现的OPC UA(和Python 2, 3 及pypy相容),也提供了OPC-UA客户及服务器的高层次抽象化,可以用在客户的应用中,或是渐渐延伸到客户的应用。

IEC 62541是OPC UA的标准

相关

  • 聚合酶链式反应聚合酶链式反应(英文:Polymerase chain reaction,缩写:PCR,又称多聚酶链式反应),是一项利用DNA双链复制的原理,在生物体外复制特定DNA片段的核酸合成技术。通过这一技术,可在短时间内
  • 博士学位博士是教育机构授予的最高一级学位,如某科系哲学博士、理学博士、文学博士、教育博士、工商管理博士、法学博士。日常生活中博士学位会与姓氏相结合而被称为某博士,而博士的英
  • 微正则系综微正则系综(microcanonical ensemble)是由许多具有相同能量,粒子数,体积的体系的集合。它是统计力学系综的一种。其配分函数 Ω
  • 弗里茨·伦敦弗里茨·沃尔夫冈·伦敦(英语:Fritz Wolfgang London,1900年3月7日-1954年3月30日),犹太裔德国物理学家,杜克大学教授。 他对化学键理论和对分子间作用力(伦敦色散力)的基础性的贡献
  • 糖高粱糖高粱,俗名“甜杆”、“甜芦粟”或“芦穄”,属禾本科高粱属,指粒用高粱中茎含糖较多的品种。糖高粱形状同高粱类似,叶青灰色,茎杆中有含糖汁液。糖高粱对土壤和气候要求不严格,分
  • 刘潭站坐标:31°37′43″N 120°17′59″E / 31.62855°N 120.29981°E / 31.62855; 120.299811号线 往堰桥方向:06:39 往长广溪方向:06:04 4号线 往映月湖公园方向:(未开通) 1号线 往堰
  • 卡莫尔山坐标:47°17′23″N 9°29′12″E / 47.28972°N 9.48667°E / 47.28972; 9.48667卡莫尔山(Kamor),是瑞士的山峰,位于该国东北部,由内阿彭策尔州负责管辖,属于阿彭策尔阿尔卑斯山脉
  • 天佑非洲 (津巴布韦)《天佑非洲》(绍纳语:Ishe Komborera Africa),又称《天佑津巴布韦》(绍纳语:Ishe Komborera Zimbabwe),是津巴布韦在1980年至1994年期间的国歌,是津巴布韦自1980年独立以来的首部国歌。歌曲是19世纪南非学校教师以诺·桑唐加创作的流行非洲颂歌《天佑非洲》(Nkosi Sikelel' iAfrika)的绍纳语与恩德贝莱语翻译版本。《天佑非洲》于20世纪初获翻译为绍纳语,并因而在一开始即流行于南罗得西亚社会各界。在罗得西亚单方面宣告独立(英语:Rhodesi
  • 查尔斯·杜马查尔斯·杜马(英语:Charles Dumas,1937年2月12日-2004年1月5日),美国男子田径运动员,主攻跳高。他曾代表美国参加1956年和1960年夏季奥林匹克运动会田径比赛,获得一枚金牌。
  • 伊伊嘎迪鸟伊伊嘎迪鸟(邹语:vivikadi),是台湾邹族神话中的神鸟,虽然个子小,但完成了举天的创举。过去的天空很低,跟玉山相接,因此动物可以活动的空间很少,也因为太阳过于靠近而植物稀疏,动物们为了改变这种状况而聚集起来,尝试把天举高,都没有成功,这时伊伊嘎迪鸟主动尝试举天,虽然野兽们笑它个子小,但没想到它只是拍动翅膀,天就真的被举高了(一说主动去推),动物们的生存环境也因此更加舒适。除了伊伊嘎迪鸟外,邹族神祇中的主神哈莫也有举天的事迹。