在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。传统的分布式系统解决方案如图1所示。
图1 传统分布式系统
OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准的国际组织是OPC基金会。它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的。采用OPC协议的分布式系统如图2所示。
图2 OPC协议的分布式系统架构
传统的OPC规范定义了几种不同的,用于访问过程的数据(OPC DA)、报警信息(OPC A&E)以及历史数据(OPC HAD)的版本规范。这种协议有以下几种缺陷,首先,客户端访问不同的数据,需要发起几次请求,这样造成了大量的浪费。其次,该协议依赖微软的COM/DCOM技术,限制了在不同平台的应用。最后,这种技术的安全机制不足,实现过程复杂。
为了解决上述问题,OPC基金会于2006年发布了新一代的OPC UA协议来升级以前的OPC协议。相比传统的OPC协议,OPC UA具有以下5个特点。
(1) 访问统一性。OPC基金会在之前的基础上提出了新的OPC UA规范。OPC UA有效的将现有的OPC规范(DA、HAD、A&E等)集成进来,提供了完整、一致的服务模型和地址空间,解决了过去同一系统的信息不能以统一的方式被访问的问题。
(2) 通信性能。根据OPC UA规范开发的系统可以通过任何单一端口进行通信。这使得系统可以穿过防火墙而不被阻挡,并且为了提高传输性能,OPC UA消息编码格式可以是二进制格式或xml文本,这样也可以采用多种传输协议进行传输,如TCP协议和HTTP协议。
(3) 可靠性、冗余性。OPC UA的开发含有高度可靠性和冗余性的设计,其中包括在链接超时的情况下的处理,发现错误和自动纠正错误等新特性。同时,OPC UA规范中所设计的标准冗余模型也使得来自不同厂商的软件可以同时被接纳和兼容。
(4) 标准安全模型。OPC UA访问规范中明确提出了标准安全模型。每一个软件供应商都需要根据这一安全标准进行开发,这样降低了软件之间的互通性和维护成本。在OPC UA规范中增加了安全证书管理、加密及数字签名技术,用于加强安全通信。
(5) 平台无关性。OPC UA从过去局限于windows平台的OPC技术发展到可以应用在Linux、Unix、Max等其他平台。这样使得OPC UA发展不仅立足现在,更面向未来。
OPC UA采用C/S架构,其标准中分为13部分,其中:第一部分:概念。第二部分:安全模型。第三部分:地址空间信息。第四部分:服务。第五部分:信息模型。第六部分:服务映射。第七部分:协议子集。第八部分:数据访问。第九部分:报警和条件。第十部分:程序。第十一部分:历史访问。第十二部分:查找。第十三部分:聚合。
对于实现什么类型的服务器和客户端,分别需要关注协议中对应的章节。其中,最关键的部分在于统一地址空间的建立,在后续会继续分享该协议。