• / 73
  • 下载费用:10 金币  

OPC+UA服务器地址空间与数据存储研究与开发.pdf

关 键 词:
OPC+UA服务器地址空间与数据存储研究与开发.pdf
资源描述:
硕士研究生:导 师:申请学位:学 科:专 业:所在学院:答辩 日期:授予学位单位:方辉陆会明工学硕士自动化模式识别与智能系统控制与计算机工程学院20 1 1年3月华北电力大学Candidate:Address Space and Data StorageSupervisor:Academic Degree Applied for:Speciality:School:Date of Defence:Degree--Conferring-·Institution:Fang HuiPro f.Lu HuimingMaster of Engineeringpattern recognition and intelligentsystemsSchool of North China Electric PowerUniversityMarch.2011North China Electric PowerUniversity一华北电力大学硕士学位论文原创性声明本人郑重声明:此处所提交的硕士学位论文(oPc UA服务器地址空间与数据存储研究与开发》,是本人在导师指导下,在华北电力大学攻读硕士学位期间独立进行研究工作所取得的成果。据本人所知,论文中除己注明部分外不包含他人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。作者签名: 专辉 日期:olp¨年岁月f/日华北电力大学硕士学位论文使用授权书((OPC UA服务器地址空间与数据存储研究与开发》系本人在华北电力大学攻读硕士学位期间在导师指导下完成的硕士学位论文。本论文的研究成果归华北电力大学所有,本论文的研究内容不得以其它单位的名义发表。本人完全了解华北电力大学关于保存、使用学位论文的规定,同意学校保留并向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅。本人授权华北电力大学,可以采用影印、缩印或其他复制手段保存论文,可以公布论文的全部或部分内容。本学位论文属于(请在以上相应方框内打“4”):保密口,在 年解密后适用本授权书不保密∥作者签名: 方辉l刷磁轹降扣哆日期:∥口¨年3月I f日日期:2/口lf年乡月l f日牛北电力大学顾十学位论文摘 要传统OPC服务器地址空间结构简单,使得服务器只能侧重于设备实时数据的采集和交换,不利于设备的管理和维护。本文使用新的OPC统一架构(UA)标准解决这类问题。将数据、报警和事件等信息集成到统一的地址空间,使得现场级、操作级和企业级的信息能集成到一起。地址空间是OPC UA的核心部分,本文研究并剖析了地址空间的实现方法。在.NET平台上使用C#语言开发了基本的UA服务器,实现了地址空间相关的服务函数。通过采用分级节点管理结构,设计实现了创建、管理地址空间的节点管理接口。另外,提出了一个将OPC UA与EDDL技术相结合的方案来实现将设备的完整信息映射到OPC UA的地址空间结构。关键词:OPC服务器;OPC统一架构;OPC地址空间;EDDL技术;华北电力犬学硕十学位论文AbstractThe structure of address space in traditional 0PC server is simple.SO theserver can only foCUS on the collection and exchange of device’S real.time data,itis not conducive to the management and maintenance of device.This paper USeS anew 0PC Unified Architecture Specification to address the above issues.It’Ssuppogs data.alarms and events information integrated into a unified addressspace,which makes information integration of the device level,operational leveland enterprise level as possible.Adress space is the core of 0PC UA.Theimplementation of adress space are researched and analyzed in this paper.Development of the basic UA server which uses.NET platform and C群languagerealized the address space.related services. By using hierarchical nodemanagement structure,the Node Manager interface which create and manageaddress space are designed.In addition,presents the scheme of combined withOPC UA and EDDL technology to realize the complete device informationmapped to the 0PC UA address space structure.Keywords:OPC Server; OPC Unified Architecture;OPC address space;EDDL technologyU华北电力大学硕十学位论文目 录摘 要……………………………………………………………………………………………………………..IAbstract……………………………………………………………………………………………………………..II第l章引言………………………………………………………………………………l1.1 OPC UA技术概述……………………………………_………………………….11.1.1 OPC UA产生的背景…………………………………………………………..11.1.2 OPC UA概念及其发展的意义………………………………………………21.1.3国内外研究现状………………………………………………………………31.2本论文的主要研究内容…………………………………………………………..4第2章OPC UA地址空间相关规范的研究……………………………………………52.1 OPC UA规范介绍…………………………………………………………………。52.2地址空间相关概念…………………………………………………………………72.2.1地址空间的功能……………………………………………………………….72.2.2节点和引用……………………………………………………………………….82.2.3地址空间元模型………………………………………………………………lO2.2.4地址空间组织形式…………………………………………………………。102.3 OPC UA服务函数………………………………………………………………..1 22.4本章小结…………………………………………………………………………。14第3章程序分析与设计关键技术……………………………………………………..153.1复杂数据内置……………………………………………………………………..1 53.1.1概j盔……………………………………………………………………………………………………153.1.2复杂类型定义节点和它们的实例声明………………………………………173.1.3复杂类型定义节点的实例……………………………………………………183.2地址空间节点数据的存储……………………………………………………….193.2.1存储节点的数据结构………………………………………………………。193.2.2数据匹配问题的解决………………………………………………………。2l3.3分级节点管理……………………………………………………………………..223.4本章小结…………………………………………………………………………23第4章OPC UA服务器的开发与测试………………………………………………。244.1预定义文件………………………………………………………………………244.2节点管理类………………………………………………………………………..2611I华北电力人学硕十学位论文4.2.1节点管理接口INodeManager………………………………………………。264.2.2核心节点管理类CoreNodeManager…………………………………………364.2.3主节点管理类MasterNodeManager…………………………………………364.3 OPC UA服务器的设计………………………………………………………….374.3.1设计基础………………………………………………………………………374.3.2前期工作……………………………………………………………………..394.3.3宿丰服务器设计…………………………………………………………….444.4 OPC UA服务器的测试……………………………………………………………474.5本章小结…………………………………………………………………………。52第5章EDDL技术与OPC UA的结合………………………………………………535.1 OPC UA引入EDDL的原因……………………………………………………535.2 OPC UA引入EDDL的可行性分析……………………………………………545.3基于EDDL技术的OPC UA服务器实现方案…………………………………555.4本章小结…………………………………………………………………………56第6章结束语……………………………………………………………………………576.1本文主要工作总结………………………………………………………………576.2未来与展望………………………………………………………………………..57参考文献…………………………………………………………………………………..59攻读硕士学位期间发表的论文及其它成果……………………………………………61蜀C谢…………………………………………………………………………………………………………………..62IV的技术取代当前技术来满足自动化用户日益增长的需求。OPC UA技术就是为了顺应这样的要求而产生的。1.1.1 OPC UA产生的背景OPC技术是OPC基金会在微软Windows的OLE(Object Linking and Embedding.对象链接与嵌入)技术和COM/DCOM技术基础上发展的一种数据交换方法,其目的就是通过一个统一的接口实现不同厂商的软件产品间的数据交换。它为开发应用程序的不同厂商提供了一项共同遵循的通信标准,从而大大减少了在系统集成过程中的重复开发,并提高了控制系统的性能。OPC的动机是建立大量数据源通信的标准机制,这些数据源可以是工厂的设备或控制室的数据库。经过多年的发展,OPC组织发展了OPC DA(数据采集)、OPC Alarms&Events(报警和事件)、OPC HDA(历史数据)、Batch(批次)、Security(安全)等技术,其中OPC DA在自动化行业得到了广泛的应用川。OPC作为新兴的数据互联国际标准,其贡献是巨大的。目前OPC在解决工业设备实时数据采集与通信方面已经获得业内的广泛认可,是降低系统间互联成本的最佳途径。但是OPC本身仍处于快速发展、进化之中。现有OPC标准已经诞生lO年有余,此间技术已经取得了很大进步。使得原有的OPC技术已经无法满足实际的需求,产生了以下主要缺陷:(1)不具有平台无关性,仅适合于微软平台环境;(2)DCOM不适用于Intemet环境,它不支持通过Intemet访问对象【2】;(3)COM产牛的传输报文复杂,并且由于防火墙的存在,在Intemet上发送COM报文非常网难。因此,新的标准必须诞生,以跟上技术进步的步伐。OPC UA就是在这样的背景下诞生的。OPC基金会于2004年1月成立了UA工作组,致力于采用最新技术华北电力大学硕十学位论文把OPC建成一种新的系统架构,满足互操作和即插即用、自动识别的要求。以期望这种新的架构在今后10年或更长时间成为自动化领域的新标准。以下是OPC UA标准诞生的一些详细背景:(1)微软公司为发展跨平台Web服务的技术和SOA(Service OrientedArchitecture)技术,不再重点发展COM技术,OPC技术面临失去技术支撑的境地。随着Microsoft.NET架构的发布,工业应用软件也逐渐转向Microsoft.NET[31。(2)OPC产品供货商希望一个OPC产品能够提供多种数据服务,而非像现在那样把产品分为DA、A&E、HAD等多种模式。(3)OPC产品供货商希望OPC产品能够运行于非微软的操作系统中,包括嵌入式设备上。(4)其他一些OPC基金会的合作组织需要支持高级结构化数据的可靠和有效的实现手段。1.1.2 OPC UA概念及其发展的意义OPC UA(OPC Unified Architecture)指OPC统一体系架构,是一个不依赖于任何平台的新的工业软件接口规范。它是OPC基金会在2006年推出的第二代OPC技术,用来取代传统的OPC技术。与OPC DA标准相比,OPC UA是跨平台的,提供更高的可靠性、安全性和数据集成,能显著改进企业信息的连通性【41。OPC UA扩展了OPC的应用平台,把过去只在Windows平台上的OPC技术拓展到Linux和Unix平台。开放的基于Intemet的WebService的服务架构(SOA)和基于Intemet的异常灵活的数据交换系统,为构建跨地域的数据采集系统提供了有力的技术支撑【5】。基于OPC UA标准的产品可更好地实现工厂级的数据采集和管理,从PLC、DCS等现场设备,到HMI、SCADA,再到生产制造系统,再到企业上层管理软件,都可以通过OPC UA标准,统一进行沟通【6J。如图1.1所示。OPC UA标准使产品的开发和使用更为简单。OPC标准促进了工厂自动化系统和信息化管理系统间的数据互操作能力,避免了非标准数据接口的复杂性。OPCUA产品的开发比非OPC产品更为容易,因此越来越多的厂商开始开发基于OPCUA的服务器和客户端应用。OPC UA定义了统一数据和服务模型。包括:代表结构、行为和语义的信息模型、使应用程序相互作用的消息模型、在终端之间传输数据的通信模型和保证系统之间实现互操作性的一致性模型【71。这些统一的模型使数据组织更为灵活,可以实现报警与事件、数据存取、历史数据存取、控制命令、复杂数据的交互通信。2牛北电力人。≯硕十学位论文凸自自i Acq=si,i∞白图1—1 OPCUA的应用OPC UA支持查询和通知服务,服务消息可以是二进制的,也可以是XML的,这意味着OPC UA不仅仅适于设备层、自动化层到信息化层的数据交换,还可以透过Intemet实现远程的数据交换,能满足自动化工厂所有层面数据交换的需要18】。OPC UA比OPC DA更安全。OPC UA传递的数据是可以加密的,并对通信连接和数据本身都可以实现安全控制【9】。新的安全模型保证了数据从原始设备到MES,ERP系统,从本地到远程的各级自动化和信息化系统的可靠传递。OPC UA的设计对于基于微软COM技术的OPC客户端和服务器来说,是可移植的。可移植性在设计OPC UA的时候已经给予了考虑【10l,以至于由传统OPC服务器(数据访问、历史数据访问和事件报警)暴露出来的数据可以通过OPC UA进行映射和暴露出来。生产厂.商既可以直接遵循OPC UA标准移植他们的产品,也可以对先前的产品进行外部封装来达到从传统OPC到OPC UA的过渡。1.1.3国内外研究现状自2004年1月OPC基金会的OPC UA工作组成立之后,经过2年的时间,在2006年发布了OPC UA规范,规范由十三部分构成,其中有部分是草案。此后,OPC基金会不断更新规范,到目前为止仍未形成一套最终的规范。因此,OPC UA现在仍处于一个从理论到应用的一个过渡阶段。华北电力夫学硕十学伊论文华北电力大学硕十学位论文第2章OPC UA地址空间相关规范的研究OPC UA全面确立以面向服务(service.oriented)为核心的概念,UA被描述为一组分层次的规格书,目前由13部分构成。本文主要涉及的是第3、4、5这三部分中与地址空间关系紧密的规范。为了明确表达UA的结构,在以上规格书中,OPC基金会故意使用了一些抽象的概念和术语,在这些规格书的后半部分,特别举例说明如何通过现有技术来编程实现这些概念。2.1 OPC UA规范介绍OPC统一体系架构规范由十三部分组成…】。各部分规范概要介绍如下:第一部分——Conc印ts(概念)描述了关于OPC UA服务器和客户端的基本概念。 盛第二部分——Sec嘶ty Model(安全模型)描述了用于OPC UA客户端和OPC UA服务器之间安全交互的模型。第三部分——Address Space model(地址空间模型)描述了服务器地址空间的内容和结构。第四部分——SeⅣices(服务)指定了OPC UA服务器提供的所有服务。 。第五部分——Infomlation Model(信息模型)详细说明了为OPC UA服务器定义的标准数据类型和它们之间的关系。第六部分——M印pings(映射)详细说明了OPC UA支持的传输映射和数据编码机制。第七部分_呻rofiles(协议)详细说明了可用于OPC客户端和服务器的协议。这些协议提供了可用于一致性标准的服务和功能。服务器和客户端可依靠这些协议来进行测试。第八部分——Data Access(数据访问)详细说明了如何使用OPC UA进行数据访问。第九部分——Al锄s and Conditions(报警与事件)详细说明了使用OPC UA对报警与条件通道的支持。基本的系统包括对简单事件的支持;这部分规范拓展了对报警与事件的支持。第十部分—呻r0伊锄s(程序)牛北电力大学硕十学位论文详细说明了OPC UA对程序访问的支持。第十一部分——Historical Access(历史数据访问)详细说明了使用OPC UA对历史信息的访问。访问包括对历史数据和历史事件的访问。第十二部分——Discove珂(查找)详细说明了OPC UA如何在网络中查找服务器,以及客户端如何获得需要的信息来建立于特定服务器的连接。第十三部分——Aggregat鼯(聚合)详细定义了从原始数据计算样本值的方法,主要用于处理实时数据和历史数据。以上规范中,第三部分和第四部分对于理解并实现地址空间和数据访问具有非常重要的作用,这两个子规范是设计和开发OPC UA应用程序的关键文档。第三部分定义了构建一个服务器地址空间需要的元数据模型和类型信息。第四部分定义了服务器和客户端之间用于交互的抽象服务模型,客户端使用这些服务函数来查找和访问服务器提供的信息。由于规范中只定义了应用程序间要交换的信息,但并没有涉及到具体的功能实现和接口定义,所以这些服务都是抽象的。OPC UA实质上是一种抽象的框架,是一个多层架构,其中的每一层完全是从其相邻层抽象而来。把OPC UA规范划分成不同的部分是为了把核心设计从底层的运算处理和网络传输分离出来。这使得OPC UA在不改变基础设计的情况下,被运用到未来技术上成为可能。这些层定义了线路上的各种通信协议,以及能否安全地编码/解码包含有数据、数据类型定义等内容的讯息。利用这一核心服务和数据类型框架,人们可以在其基础上轻松添加更多功能。这样也便于OPC UA结合传统OPC规范中的最佳特性和功能,通过添加服务导向型(SOA)架构将其提高到新的水平【I 21。由于OPC UA架构中的层是抽象的,因此可以添加新的线上(over-the.wire)协议、新的安全和保密技术或新的数据类型【13J。随着技术的进步,OPC UA也将与时俱进。OPC UA已经超越了当前所有的传统OPC规范:OPC DA(数据访问)、A&E(警报和事件)、HAD(历史数据访问)以及命令和复杂数据。OPC UA支持用户选择适合自己的功能级别,因此这一切变得不再复杂。OPC UA将提供支持此类自定义功能的子集。每种传统OPC规范都可以被视为一个子集。6华北电力大学硕十学伊论文2.2地址空间相关概念OPC UA服务器为客户端提供的数据和相关信息都是与服务器的地址空间有关的。OPC UA地址空间是以一组用引用形式连接起来的节点来描绘它的内容。2.2.1地址空间的功能图2.1中显示的是地址空间在服务器中的位置和它所需要实现的功能。OPCUA提出了一个一致的地址空间和服务模型。这样就可以用一个单一的OPC UA服务器把数据,报警与事件和历史信息统一存储到它的地址空间里,并且可以用一套统一的服务为它们向外提供接口【141。从图中可以看到,地址空间及数据存储模块是服务器从外界获取数据的必经之地,它最典型的获取数据的方式是从具体设备的硬件驱动程序中获得,然后作为其它模块的数据源。获取数据的方式不仅仅只有从设备中获取,也可以从DCS系统、数据库或者是其它OPC服务器中获取。I 礁{,l:秘础蹦≯嚣I j【体竣件漫貉图2-I OPC UA服务器中地址空间的位置和作用对于地址空间中要被访问的对象,OPC UA也允许服务器给客户端提供类型定义。这使得标准信息模型可以被用来描述地址空间的内容。OPC UA允许数据以不同的格式暴露出来,包括二进制结构和XML文档,这是规范强制要求的。7华北电力人学硕十学位论文2.2.2节点和引用地址空间的基本组成单位是节点【15】。节点由属性和引用定义,而属性和引用需要给定值。图2.2显示的是节点的基本组成。图2-2节点组成部分属性是用来描述节点的数据元素。客户可以通过读、写、查询、订阅/监视项的方式存取属性值。属性是节点类的基本的组成部分。属性定义是节点类定义的一部分,因此,不包括在地址空间内。每个属性由一个属性ID,一个名字,一个描述,一个数据类型和一个强制/可选指示器构成。属性定义不能由客户或服务器来扩展。当一个节点在地址空间实例化后,节点类属性的值将被提供。强制/可选指示器指示属性是不是必须被实例化。引用可以用浏览和查询的方式访问。就像属性一样,它也是节点的基本组成部分。与属性不同的是,引用是作为引用类型节点的实例被定义。引用类型节点在地址空间里是可以看到的,并使用引用类型节点类来定义。源节点、引用类型、目标节点的联合唯一标识了一个引用。因此,每个节点仅能使用一次相同的引用类型来引用其他的节点。任何具体引用类型中的图表类型等同于基本的具体引用类型。目标节点可以在相同的地址空间里也可以在其他OPC UA服务器的地址空间里。位于其他服务器的目标节点需要使用远程服务器名,并且远程服务器要给节点分配一个标识符。OPC UA并不要求目标节点一定得存在,引用可以指向一个并不存在的节点。OPC UA一共有八种类型节点。如图2.3所示,分别是Variable(变量)、VariableType(变量类型)、Object(对象)、ObjectType(对象类型)、View(视域)、DataType(数据类型)、ReferenceType(1用类型)、Method(方法)。它们都是从基节华北电力人学硕十学位论文点继承而来,基节点有7种属性,其中标识为“1”的是必须实现的属性,标识为“0..1”的是可选实现的。图2—3 OPCUA节点模型节点有哪些属性是由节点类决定的。但是,也有一些属性是所有节点共有的。表2.1列出了这些属性。表2.1节点共同属性属性 数据类型 描述唯一地标识OPC UA服务器中的一个节点,Nodeld NodeId 并用于定位OPC UA服务中的节点NodeClass NodeClass 识别节点的枚举类别如对象或方法BrowseName QualifiedName 浏览OPC UA服务器时,用于标识节点DisplayName LocalizedText 用来在用户界面中显示节点的名称Description LocalizedText 可选属性,包含该节点的本地化说明文本可选,指定了节点属性是可写的,可以由WtiteMask Uht32OPCUA客户端修改可选,指定了由当前连接到服务器的用户是UserWriteMask Uht32否叮以修改节点的属性9乍北电力大学硕士学能论文节点ID在服务器中唯一标识了一个节点,在关于节点的访问定位服务中,节点ID是最重要的概念。浏览或查询地址空间时服务器返回节点ID,在调用服务中客户端使用节点ID来定位节点。一个节点可以有多个备选节点ID用于定位节点。通过读节点D属性,即使这个节点是通过备用节点ID定位的,也可以得到节点的标准节点ID.2.2.3地址空间元模型在OPC UA中,元模型被称为地址空间模型。元模型由UML类表示,并且UML对象由固定的标记。这些固定的UML对象代表数据类型或者引用类型。主要的模型可以包含用户定义的引用类型和数据类型,同样作为标记。另外,主要模型包含对象类型、变量类型等,作为UML对象描述。图2.4显示的是OPC UA地址空间模型、信息模型和数据之间的关系示意图。不同的节点类和它们的属性定义了OPC UA的元模型。除了节点类外,某些标准的节点也被用于元模型内部,并且因此也可以被视为元模型的一部分。它有基本引用类型如HasSubtype和基本类型定义如PropertyType,也有标准的输入和输出参数的方法。OPC UA信息模型使用地址空间模型的概念来定义自己特定域的类型,以及定义明确的实例。最后,服务器的数据基于信息模型创建。通常,服务器会支持多个信息模型,其中一些可能基于其他的信息模型。OPCUA规范已经定义了包含基本类型的基本信息模型。一些已是OPC UA元模型的一部分,而其它的部分是用作服务器地址空间入口点或提供服务器诊断信息的模型D6I。基于基础信息模型,其它信息模型可以由其派生用于特定用途。最后,服务器可能会扩展信息模型用于提供特定的数据,定义某些服务器特定的类型和服务器特定的信息模型。2.2.4地址空间组织形式通常,底层的系统结构庞大,客户端经常只对某个指定的子集的数据感兴趣。比如某工厂的温度传感器检修人员,他只需要查看温度传感器的数值,所以他需要在大量的数据中查找他所关心的数据。很显然,这样的工作效率十分低下。为了解决这个问题,规范定义了视域的概念。10华北电力大学硕十学位论文皇舅曼曼曼鲁皇量曼III I一,舅舅量量量皇曼皇皇曼鼍曼皇曼曼曼曼量曼皇曼曼皇曼邑量曼量量曼曼皇皇曼曼曼曼曼皇皇皇曼曼曼曼皇曼曼曼曼舅曼舅皇曼量曼曼量服务器通过视点的筛选参数属性,筛选相应的引用类型构成的区域称之为视域。视域由视域节点类定义。视域指定了一个地址空间的予集,整个地址空间就是一个地址空间模型(元模型)定义节点类的基本类型和约束图24地址空间模型和信息模霉!!默认的视域。视域节点是视域的所有节点的根节点。当浏览视域时,视域中包含的所有节点都可以从视域节点开始。包含的所有节点不是必须从视域节点开始浏览。视域节点不仅仅是用来作为地址空间的额外的进入点,也用来组织地址空间的结构并作为进入地址空间的子集的唯一进入点。因此当揭示地址空间时,客户端不华北电力大学硕十学位论文能忽略视域节点。简单客户端不把视域作为过滤的目的,可以把视域节点作为文件夹类型的对象处理。图2.5显示的是实际编程时节点的组织情况。红色方框显示的是地址空间的标准进入点。在根节点下有3类节点:视域、对象和类型。对象下面组织的就是地址空间的丰体,表示了实际设备在地址空间的组织。类型下面包含了四种类型,地址空间的每个节点都引用其中的一个类型节点。由于视域和类型节点的这种组织形式,使得地址空间由一个树状结构变成了一个复杂的网状结构。图2.5地址空间在程序中的实际架构2.3 OPC UA服务函数OPC UA服务集定义了应用层上的数据通信,是OPC UA客户端提供的用于访问OPC IdA服务器信息模型的数据的各种方法。类似于传统OPC(规范仅仅定义了应用程序之间的各种API),服务集定义了UA应用程序间的通信接口。但服务集的定义不依赖于传输协议和开发环境,这是与传统OPC最基本的差别(API依赖于微软的对象组建模型COM这个特殊的传输机制)。对传输协议和开发环境的独立性决定了服务集的定义只能是抽象的,UA规范第四部分中抽象的定义可以用于不同的传输机制和不同的编程语言下的OPC UAStack。华北电力人学硕十一≯伊论文曼皇曼曼曼皇曼鼍曼舅皇皇II,,一-量量皇曼曼皇曼量量曼曼曼曼曼曼曼曼曼皇曼鲁喜曼量曼皇量舅舅皇量量皇曼曼皇曼量量曼曼曼曼曼曼曼曼曼曼曼曼曼曼蔓皇曼类似于传统OPC,UA服务集定义了运行在不同进程或不同网络节点上的应用程序之间的块数据交换,以减少不必要的通信次刿171。例如,调用一次Read服务不仅仅只读一个变量,而是读预先定义好的一组变量,这样就可以减少很多通信次数。OPC UA服务集精简成了一个通用的方法集合,精简的原因有两个:一是服务器的地址空间模型采用了经典OPC的信息提供方式,只能用通用的方法如Read而不是其他特殊的方法来访问信息。一个简单的例子是服务器的状态信息,在经典OPC中通过GetStatus方法获取,在UA中这个信息模型化为服务器状态变量,可以被Read服务或者是监测服务读取;另一个是设计目标,为特定的功能提供一个通用的服务,而不是提供一系列用于不同变量信息的方法。与网络服务类似,UA的服务也使用的是请求和响应模式,即每个服务是由请求消息和响应消息构成。如图2-6所示。调用服务器的一个服务,客户端需要发送请求信息到服务器。服务器处理收到的请求后,返回一个响应信息给客户端。由于信息交换是异步的,因此所有服务的调用也是异步的。在发送请求信息后,客户端程序可以处理的其他应用,直到响应信息返回在接着处理原先的任务。大多数UA堆栈的接口函数也提供了同步响应版本以方便使用。这对传统OPC来说是一个进步,因为经典OPC所有的函数都是同步的,仅在后续升级版本提供了部分函数的异步版本。客户端 服务器终端图2-6消息在客户端与服务器之间的交互OPC UA规范的第四部分定义了UA通用的功能函数集合,它们被称之为服务集。UA一共定义了34个服务函数,它们被分成了9个服务集,分别是SecureChannel Service Set(安全信道服务集)、Session Service Set(会话服务集)、Node Management Service Set(节点管理服务集)、View Service Set(视域服务集)、Query Service Set(查询服务集)、Attribute Service Set(属性服务集)、华北电力夫学硕十学位论文Method Service Set(方法服务集)、Subscription Service Set(订阅服务集)、Monitored Item Service Set(监控项服务集)。但在实际使用中的差别,可以按表2.2的方法划分服务集。表2-2根据实际使用划分服务集实际使用 服务集查找服务器 Discovery Services SetSecure Channel Service Set管理客户端与服务器间的通信Session Service Set查找地址空间中的信息 View Service Set读写数据 Read and Wiite Service订阅数据改变与事件通知 Subscription Service SetMonitored Item Service Set调用服务器端的函数 Call Service访问历史数据和事件 HistoryRead and HistoryUpdateService奄找整个地址空间中的信息 Query Service Set修改服务器中地妇r,审问的结构 Node Management Service Set本文开发的服务器是由多人共同实现完成,本人实现了以下六个服务函数,分别是:AddNodes(增加节点)、DeleteNodes(删除节点)、AddReferences(增加引用)、DeleteReference(册Y除引用)、Browse(浏览)和TranslateBrowsePath(转换浏览路径)。2.4本章小结本章首先介绍了OPC UA的各部分规范,简要阐述了UA规范的特点。然后重点介绍了地址空间在服务器中的功能,以及地址空间的基本组成单位、实际组织的架构、元模型结构。最后指出OPC UA的功能是以服务函数的形式向外界提供。对OPC UA技术的理解是建立在对规范的深入理解之上。OPC UA体系庞大,结构复杂,需要对规范的所有部分都进行掌握才能更好地开发OPC UA程序。由于本文只侧重于地址空间的研究,所以只介绍了地址空间相关部分的规范。对地址空间和信息模型的理解是认识整个OPC UA的基础,然而不了解其它部分的规范对于研究地址空间的影响不大。尽管如此,但是还是建议对OPC UA各个部分的规范都进行一定程度的了解;这对于协作完成整个OPC UA程序有帮助。14华北电力大学硕十学位论文!第3章程序分析与设计关键技术‘OPC UA相对于传统OPC有了很大变化,特别是在地址空间的设计和使用上。传统OPC的地址空间只有三层结构【l钔,只能存储数据值,而且都是存放在项对象中,结构比较简单,在地址空间的使用和维护上也很方便。UA的功能更加复杂化和多样化,这使得地址空间也必须做根本性的改变才能满足新的要求。然而,OPC UA的规范都是抽象化的,没有具体规定如何去实现各个部分的内容,地址空间方面也是如此。本论文结合OPC UA规范的内容,对地址空间实现的难点进行剖析后,总结提出以下几个实现地址空间的重要措施。3.1复杂数据内置OPC UA支持复杂数据内置,数据的表现形式不再是单纯的值形式。UA地址空间的多层次网状结构是UA存储复杂数据类型的基础,也更增加了地址空间设计 参..的灵活性和多样性。3.1.1概述当客户端需要用到复杂数据结构体时,有三个不同的方、法【191:1)创建多个使用简单数据类型的简单变量来反映结构的简单部分。然后使用对象将这些变量组织起来。2)创建一个复杂数据类型,以及使用这个数据类型的简单变量。3)创建一个复杂数据类型和一个使用这个数据类型的复杂变量,同样揭示这个复杂数据结构作为使用简单数据类型的复杂变量。第一个方法的优点是数据的复杂结构在地址空间中可见;一个普通的客户端可以很容易访问这些数据而不需要知道用户定义的数据类型;客户端可以访问复杂数据的单独部分。缺点是访问单个数据不提供任何处理的上下文;对于特殊的客户端,服务器首先需要将数据转化,并且客户端也需要将服务器传来的数据再转化,这样才能获得底层系统提供的数据结构。第二个方法的优点是数据可以在处理的上下文中被访问,复杂数据类型可以结构化,这样的话服务器就不需要将数据进行转化而直接传给特殊的客户端以供直接使用。缺点是普通客户端无法直接访问和翻译数据或者很难读取数据类型描述来翻译数据;数据的结构在地址空间中不可见;描述数据结构的新增的特性不能增加到华北电力大学硕十学位论文适当的位置,因为它们在地址空间中不存在。在不访问整个数据结构的情况下不能访问数据的单独的部分。第三个方法结合了另两个方法。因此特殊的客户端可以在处理的上下文中使用自己本地的格式访问数据,然而普通客户端只能访问复杂变量中的简单数据类型。缺点是服务器应当能够提供本地格式并且能翻译它来提供简单数据类型的信息。本文的服务器在开发过程中使用的是第一种方法。当需要处理的上下文或者客户端应当能够获取大量的数据来取代订阅多个单独的值时,应当使用第三种方法。然而,服务器不是总能翻译底层系统的复杂数据
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:OPC+UA服务器地址空间与数据存储研究与开发.pdf
链接地址:https://www.weizhuannet.com/p-9845750.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开