(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf_第1页
(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf_第2页
(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf_第3页
(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf_第4页
(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf_第5页
已阅读5页,还剩52页未读, 继续免费阅读

(计算机应用技术专业论文)基于opc的嵌入式xml服务器的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东大学硕士学位论文 摘要 本论文针对自动化领域监控系统中存在的工业控制计算机价格较高、 设备笨重等问题,提出将嵌入式系统引入到工业监控领域,设计了基 于o p c 的嵌入式x m l 服务器的架构并给出了实现方案。 针对上述问题本论文首先介绍了0 p c 标准和它的技术基础 c o m d c o m 组件模型,c o m + 技术,分布式组件技术在工业自动化领域 中的应用,以及o p c 标准的基本原理、对象与接口和七个规范组成等基 本内容。然后介绍了o p cx m ld a 规范、s o a p 协议的规格说明、s o a p 协 议的组成和其在h t t p 上的应用方式。比较分析了现今流行的嵌入式处 理器内核a r m 、p o w e r p c 等的特点,采用不同内核处理器的应用场合, 以及嵌入式操作系统的特点和选择的标准。其中,重点分析r t l i n u x 的特点及应用。 基于上述研究,本文针对基于o p c 的嵌入式x m l 服务器的架构,主 要实现了以下问题: 1 设计了一个硬件电路并给出了它的硬件结构,该电路是采用当 前流行的基于a r m 9 内核由a t m e l 公司生产的a t 9 1 r m 9 2 0 0c p u 。研究了 r t l i n u x 的b o o t l o a d e r 的结构以及它的引导过程,并且根据实际的电路 对b 0 0 t 1 0 a d e r 进行了改动,探讨了在工控领域中参数数据的保存及处 理,提出了整个软件的软件结构。 2 在o p cj j 务器的基础上,给出了s o a p n 务器的实现机制,实现 了x m l 语法的分析。采用s o a pj 艮务器,可以实现跨平台的数据传输,能 够跨越防火墙,加强了工业过程数据采集与系统监控软件的开放性、 可重用性以及灵活性。 通过将基于o p c 的嵌入式x m l 服务器引入到工业监控领域,降低了 工业监控领域设备对安装地域的选择性,使得工控设备的监控可以直 接安装到现场,省去了复杂的布线过程,使整个监控系统更加简洁, 易于维护。 关键词:o p c 、c o m d c o m 、x m l 技术、嵌入式系统、s o a p 消息 山东大学硕士学位论文 a b s t r a c t i na u t o m a t icf i e l dm o n i t o r i n ga n dc o n t r o l l i n gs y s t e m s , t h e p r iceo fi n d us t r yco n t r o l l in gc o m p u te rist o oh ig ha n d e q u i p m e n tsaret o op o n d e r o u s f a c i n gt hes ep r o b le m s ,t h ep a p e r p u t sf o r w a r dt h et h i n k i n go fi n t r 。d u c i n ge m b e d d e ds y s t e mi n t o i n d u s t r ym o n t o r in gd o m a i n ,a n dp r ese n tst h ea r c h i t e c t u r ea n d t h ei m p le m e n t a t io no ft h eo p c b a se de m b e d d e dx m ls e r v e r t h ep a pe rf irs t lyin t roduc eso p c ss t a nd a rds , i ts tec h n 0 1o g ic a lb a s ew h ic h in c l u d esc o m d c o mg r o u p w a r e m o d e lsa n dc o m + t e c h n o l o g y , t h ea p p l i c a t i o no fd is t r i b u t e d g r o u p w a r et e c h n 0 1o g yi ni n d u s t r ya u t o m a t i cf i e l da n d b a s ic t h e o r y ,o b j e c tw i t hi n t e r f a c e , a n ds e v e nc r i t e r i o n so fo p c s s t a n d a r d s t h e n , i t s a y st h ec r i t e r i o n so fo p c x m ld a , s p e c i f ic a t i o n sa n db u i l d u po fs o a pp r o t o c 0 1a n di tsa p p l ic a t io n m o d eo nh t t p t h ep a p e rc o m p a r e sa r mw i t hp o w e r p cw h ic his c u r r e n t p o p u l a r e m b e d d e d p r o c e s s c o r e s , a n a l y z e s t h e a p p l ic a t i o np l a c e so fa d o p t in gd i f f e r e n tc o r ep r o c e s s o r , a n d s t u d i e st h ec h a r a c t e r i s t i c sa n ds e l e c t i o n s t a n d a r d so f e m b e d d e do p e r a t i n gs y s t e m s t h ee m p h a s iso fa n a l ys isist h e c h a r a c te r i s t i ca n da p p l i c a t i o no fr t l i n u x 0 n t h eb a s eo f a b o v er e s e a r c h ,t h ep a p e r m a i n l ya c h i e v e st h ef o l lo w i n g p r o b lemsa b o u tt h ef r a m eo fo p c _ b a s e de m b e d d e dx m ls e r v e r 1 d e s i g n i n gah a r d w a r ec i r c u i tw h ic hu s e sc u r r e n tp o p u l a r a t 9lr m 9 2 0 0c p ub a s e da r m 9c o r em a d eina t m e1c o r d a n d e x p l a i n i n gi tsh a r d w a r es t r u c t u r e s t u d y i n gt h eb o o t l o a d e r s s t r u c t u r eo fr t l i n u xa n din d u c tp r o c e s s , m o d i f y i n gt h e b o o t l o a d e ri nt h eb a s eo fa c t u a lc i r c u i t ,d is c uss i n gp a r a m e t e r d a t a ss a v ea n dp r o c es si ni n d u s t r ym o n t o r i n gf i e l d s ,a n d p r es e n t i n gt h es o f t w a r es t r u c t u r eo fw h 0 1 es o f t w a r e 2 o nt h eb a s eo fs e r v e r ,p r e s e n t i n gt h er e a l iz a t i o nsc h e m e o fs o a ps e r v e r , i m p l e m e n t i n gt h ea n a l y s is o fx m lw o r d i n g i i 山东大学硕士学位论文 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 竺苎! 竺苎! ! ! 苎! 烹! ! ! 竺竺! 竺! ! t h r o u g hu s i n gs o a ps e r v e r ,w ec ar la c h ie v ed a t at r a i l s m i ta c r o s s p 1 a t f o r m s ,p u tt h r o u g hf i r ew a l l ,a n ds t r e n g t h e r ld e g r e eo f 0 p e n in g ,r e a p p ly i n ga n df le x i b le t h r o u g ha p p l y i n go p c b a s e de m be d d e dx m ls e r v e rin t o 1n d u s t r y1 b o r l t o r in ga n dc 0 i ? t2 - 0 l l in g f ie 1d s ,w e c a nr e d u c e d e v ic e s se 1e c t i o na b o u ti n s t a l l a t i o i lp 1 a c e i tc l a n i n s t a l l t h e i n d u s t l - ym o n t o f i n gd e v ic es in s t a l le dir l s p o tsd i r e c t l v w i t h o u tc o m p l ic a te dd is p 0 s i n gw i r es ,a n dm a k et h ew h o l es y s te i i l s m o r es i m p l ya n dmofee a s i1 yt 0s u p p o r t k e y w o r d :o p c 、c o m d c o m 、x m lt e c h n o l o g y 、e m b e d d e ds y s te m 、s o a p i l l e s s a g e n j 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的 指导下,独立进行研究所取得的成果。除文中已经注明引 用的内容外,本论文不包含任何其他个人或集体已经发表 或撰写过的科研成果。对本文的研究做出重要贡献的个人 和集体,均已在文中以明确方式标明。本声明的法律责任 由本人承担。 论文作者签名:盎重施 日期:兰翌兰! 竖竺 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保 留或向国家有关部门或机构送交论文的复印件和电子版,允许论文披查阅 和借阅:本人授权山东大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本 学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:耄重毖导师签名:召盘日期:兰型竺! ! :生 山东大学硕士学位论文 第一章绪论 随着信息技术的发展,自动化领域发生着深刻的变化。智能仪表越 来越多地活跃在工业现场,可以提供以前无法得到的大量信息。这些信 息不仅包括现场的温度、压力等被测参数,也包括装置本身的运动状 况、组态参数。与此同时,现场总线得到了迅速的发展,它通过标准化 的数字通信链路将现场智能化装置与远程监控计算机连接起来,实现 了数据传输与信息共享,形成全新的分布式控制系统。随着现代工业生 产规模的不断扩大,工艺过程复杂程度的提高,人们对工业自动化技 术的要求也越来越高。 当大量现场信息由智能仪表直接进入监控计算机或通过现场总线 传至监控计算机后,存在着计算机内部应用程序对现场信息的共享与 交互问题。由于缺乏统一的连接标准,工控软件往往需要为供应商提供 的硬件设备开发专用的驱动程序。这样,一旦硬件设备升级换代,就需 要对相应的驱动程序进行更改,增加了系统的维护费用。同时,即使计 算机中的s c a d 、a h m i 等软件都有独立的驱动程序,一般也不允许同时 访问相同的设备,否则很容易造成系统崩溃。 o p c 的出现,建立了一套符合工业控制要求的通信接口规范,使控 制软件可以高效、稳定地对硬件设备进行数据存取操作,系统应用软件 之间也可以灵活地进行信息交互,极大地提高了控制系统的互操作性 和适应性。 1 1o p c 技术简介 o p c 全称o l ef o rp r 0 c e s sc o n t r o l ( 用于过程控制的o l e ) ,是1 9 9 5 年由艾默生过程管理、微软和i n t e l l u t i o n 等多家公司牵头开发,在 o p c 基金会组织倡导下,全世界范围内自动化领域中处于领导地位的厂 商协作制定的软件接口标准。o p c 规范是由世界领先的自动化厂商与 微软合作制定的一项工业标准,它以组件对象模型和分布式组件对象 模型( c o m d c o m ) 技术为基础,采用客户月艮务器( c l i e n t s e r v e r ) 模式, 定义了一组c o m 对象及其接口规范。 o p c 提供了一种单一、一致的工业标准接口。它允许软件供应商将 山东大学硕士学位论文 更多的精力集中到增加软件的功能上,而不是开发一系列专有的硬件 设备驱动程序。o p c 提供了一个环境,鼓励设备制造商投资开发他们自 己的o p c 服务器,而且同样的服务器能被支持o p c 客户端的h m i 、s c a d a 、 d c s 或其他软件系统所访问。这激励了设备制造商把他们开发工业网络 方面所获得的知识转向o p c 服务器的开发上,从而保证了设备的性能 能够达到最优。 o p c 的目标是开发出一个开放的、灵活的、即插即用的工业标准, 使最终用户对解决方案拥有很大的选择余地,同时大大减少硬件和软 件供应商的开发和维护费用。 o p c 结构采用客户机服务器模式。利用o p c 技术,异构计算环境 中的系统集成变得很简单“3 。 图1 1o p c 技术的异构计算环境 从图1 1 可以看出,在这种传统的异构网络中,o p c 数据服务器负 责对设备的访问,客户通过标准的接口访问其中的数据。o p c 数据服 务器向下与设备相连,向上通过i n t r a n e t 或i n t e r n e t 与客户端相连。 从上图我们可以看出,o p c 数据服务器主要是由工控计算机来实现,但 山东大学硕士学位论文 是在工业现场工控计算机的造价过高,体积过大,如果用量较少则布 线麻烦,用量较多则成本过高。本文提出用嵌入式系统作为o p c 数据 服务器,可以方便的解决上述的问题。 1 2o p cx m ld a 技术基础 o p c 规范在短短的几年里发展如此之快,得益于o p c 技术内涵。它基 于m ic r o s o f t 的o l e c o m 和d c o m 技术,包括了一整套自动化应用中使用的 接口、属性和方法的标准。m ic r o s o f t 是o p c 基金组织的发起成员之, 它把自己的c o m d c o m 等新技术带给了o p c 基金组织。这些技术为工业控 制领域里最重要的数据交换环节提供了技术保证”1 。 1 2 ic o m d c o m 组件对象模型( c o m p o n e n to b j e c tm o d e l ,简称c o m ) ,是一种以组 件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的 方式进行交互。c o m 既提供了组件之间进行交互的规范,也提供了实现 交互的环境。组件对象之间交互的规范不依赖于任何特定的语言,所 以c o m 也可以是用不同语言协作开发的一种标准。组件模型为c o m 对 象提供了活动的空间,c o m 对象以接口的方式提供服务。 c o m 标准包括规范和实现两大部分,规范部分定义了组件和组件之 间通信的机制,这些规范不依赖于任何特定的语言和操作系统,只要 按照该规范,任何语言都可以使用。 c o m 主要是由对象和接口两部分组成。对象是某个类( c l a ss ) 的一 个实例;而类则是一组相关的数据和功能组合在一起的一个定义。使 用对象的应用( 或另一个对象) 称为客户,有时也称为对象的客户。 接口是一组公用功能定义”3 ,是一组逻辑上相关的函数集合,其函数称 为接口成员函数。 一个组件程序可以包含多个c o m 对象,而且每个c o m 对象可以实 现多个接口。当另外的组件或普通程序( 即组件的客户程序) 调用组 件的功能时,它首先创建一个c o m 对象或者通过该对象所实现的c o m 接口调用它所提供的服务。当所有的服务结束后,如果客户程序不再 需要该c o m 对象,那么应该释放掉对象所占有的资源,包括对象自身。 在国际上有很多先进的工业自动化软件都采用了c o m 技术。 山东大学硕士学位论文 i n t e l l u t i o n 公司的f i x 软件就是一个典型的例子。f i x 软件是由多个 组件构成的,核心组件是一个实时数据库,并可根据需要装上其它的 功能组件。这样就很容易地、可靠地把别的组件加载进来,或者更换 己有的组件,使之具有新的功能。 m ic r o s o f t 的分布式c o m ( d c o m ) 扩展了组件对象模型技术( c o m ) , 使其能够支持在局域网、广域网甚至i n t e r n e t 上不同计算机的对象之 间的通讯。使用d c o m ,应用程序就可以分布到网络不同的位置,从而 满足客户和系统的需求。 d c o m 的整体结构是:c o m 运行库向客户和组件提供了面向对象的 服务,并且使用r p c 和安全机制产生符合d c o m 线路协议标准的网络包。 d c o m 使得组件的位置对您来说完全透明,无论它是位于客户的同 一进程中或是在地球的另一端。在任何情况下,客户连接组件和调用 组件的方式都是一样的。d c o m 不仅无需改变源码,而且无需重新编译 程序。一个简单的再配置动作就改变了组件之间相互连接的方式。d c o m 的位置独立性极大地简化了将应用组件分布化的任务,使其能够达到 最合适的执行效果。 在设计和实现分布式应用系统时,一个普遍的问题就是为开发一 个特定的组件而选择语言以及工具。作为c o m 的扩展,d c o m 具有语言 独立性。任何语言都可以用来创建c o m 组件,并且这些组件可以使用 更多的语言和工具,例如j a v a ,v is u a lc + + ,v is u a l b a s ic ,d e l p h i 和p o w e r b u i i d e r 都能够使用d c o m 组件进行开发。 d c o m 通过给每个组件保持一个索引计数来管理对组件的连接问 题,这些组件有可能是只连接在一个客户上,也可能被多个客户所共 享。当一个客户和一个组件建立连接时,d c o m 就增加此组件的索引计 数。同理,当客户释放连接时,d c o m 就减少此组件的索引计数。如果 索引计数为零,组件就可以被释放了。 1 2 2c o m + 技术及w i n d o w sd n a c o m + 综合了c o m 、d c o m 和m ic r o s o f tt r a n s a c t i o ns e r v e r ( m t s ) 这些技术要素,它把c o m 组件软件提升到应用层而不再是底层的软件 结构,它通过操作系统的各种支持。使组件对象模型建立在应用层上, 把所有组件的底层细节留给操作系统,因此,c o m + 与操作系统的结合 更加紧密。 山东大学硕士学位论文 c o m + 的系统服务包括事务、队列、对象池、内存数据库、安全模型 以及管理特性等结合m t s 的多方面内容阳1 。通过这些服务,我们可以很 容易地开发出多层结构的应用系统。c o m + 以系统服务的形式为应用提供 了许多新特性,客户或者组件程序可以直接利用这些系统服务,避免了 底层的细节处理,减少了开发成本,也减小了犯错误的可能性:同时, 有一些系统服务包装了较复杂的逻辑甚至是底层的系统资源管理,这简 化了应用层的访问;另外,使用系统服务可以增强应用程序的可靠性。 与c o m * 目比,c o m + 与操作系统结合得更为紧密:与m t s 相比较,c o m + 简化了分布式应用的开发。c o m + 已经成为基于微软平台分布式应用的重 要技术基础。c o m + 具有如下几个主要的特性: 夺高性能、可伸缩。c o m + 提供了负载平衡、对象池、可管理、易于配 置等特性,较大地提高了分布式应用的性能和伸缩性。 夺松散的客户机服务器连接。c o m + 底层提供了队列组件服务,这使客 户和组件有可能在不同的时间点上协同工作,c o m + 应用无须增加代 码就可以获得这样的特性。 夺事件通知机制。新的事件机制使事件源和事件接收方实现事件功能 更加灵活,利用系统服务简化了事件模型。避免了c o m 可连接对象机 制的琐碎细节。 夺事务处理功能。继承并发展了m t $ 的特性。从c o m 到m t s 是一个概念上 的飞跃,c o m + n 完成并实现了事务处理功能。 夺易于开发。c o m 组件的开发一直是w i n d o w s 平台上应用开发的难点。 c o m + 开发模型大大简化了以前的c o m 组件开发模式。 c o m + 标志着微软的组件技术达到了一个新的高度。c o m + 与多层应用 架构及w i n d o w s 操作系统平台的结合为企业应用提供了一套完整的解决 方案。 w i n d o w sd i s t r i b u t e di n t e r n e ta p p l ic a t i o n s a r c h i t e c t u r e ( w i n d o w sd n a ) 是由微软多年积累下来的技术精华集合起 来而形成的一个完整的、多层结构的企业应用总体方案,它定义了十几 种不同的m i c r o s o f t 产品和技术如何协调在一起的整体框架,使w i n d o w s 真正成为企业应用平台。w n d o w sd n a 的核心是集成w e b 和客户机服务器 计算模型。w i n d o w sd n a 描述了企业级应用如何利用分布式应用程序服 务、分布式基础服务和w in d o w s 平台的公共界面,以及如何利用其它有 山东大学硕士学位论文 用的w e b 技术。 1 3s o a p s o a p ( s i m p leo b j e c ta c c es sp r o t o c 0 1 ) 简单对象访问协议, 是在分散或分布式的环境中交换信息的衙单协议是一个基于x m l 的协议,它包括四个部分:s o a p 封装( e n v e l o p ) ,封装定义了一个 描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如 何处理它们的框架;s o a p 编码规则( e n c o d i n gr u l e s ) ,用于表示应用 程序需要使用的数据类型的实例;s o a pr p c 表示( r p cr e p r e s e n t a t i o n ) , 表示远程过程调用和应答的协定;s o a p 绑定( b i n d i n g ) ,表示使用底 层协议交换信息。 虽然这四个部分都是s o a p 的一部分,作为一个整体定义,但他们 在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义 在不同的x m l 命名空间( n a m e s p a c e ) 中。这样使得定义更加简单。 s o a p 的两个主要设计目标是简单性和可扩展性。这就意味着有一 些传统消息系统或分布式对象系统中的某些性质将不是s o a p 规范的一 部分。比如:分布式垃圾收集( d is t r i b u t e dg a r b a g ec 0 1 1 e c t i o n ) 、 成批传送消息( b o x c a r r i n go rb a t c h i n go fm es s a g es ) 、对象引用 ( o b j e c t s b y r e f e r e n c e ( w h i c hr e q u i r e sd i s t r i b u t e dg a r b a g ec o l l e c t i o n ) ) 、 对象激活( a c t i v a t i o n ( w h i c hr e q u i r e so b j e c t s b y - r e f e r e n c e ) ) 。 s o a p 简单的理解,就是这样的一个开放协议:s o a p = r p c + h t t p + x m l 。 采用h t t p 作为底层通讯协议;r p c 作为一致性的调用途径:x m l 作为 数据传送的格式,允许服务提供者和服务客户经过防火墙在i n t e r n e t 上进行通讯交互。r p c 的描叙可能不大准确,因为s o a p 一开始构思就 是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用 都可以通过s o a p 封装起来,包括d c e ( d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t ) , r p cc a l l s ,c o m d c o mc a l l s ,c o r b ac a l l s 。j a v ac a l l s ,等。 s o a p 使用h t t p 传送x h l l ,尽管h t t p 不是有效率的通讯协议,而 且x m l 还需要额外的文件解析( p a r s e ) ,两者使得交易的速度大大低于 其它方案。但是x m l 是一个开放、健全、有语义的讯息机制,而h t t p 是一个广泛又能避免许多关于防火墙的阁题,从而使s o a f 得到了广泛 山东大学硕士学位论文 i i i 的应用。但是如果效率对您来说很重要,那么您应该多考虑其它的方式, 而不要用s o a p 。 为了更好的理解s o a p 、h t t p 、x m l 是如何工作的,不妨先考虑 一下c o m d c o m 的运行机制,d c o m 处理网络协议的低层次的细节问题, 如p r o x y s t u b 间的通讯,生命周期的管理,对象的标识等。在客户端 与服务器端进行交互的时候,d c o m 采用n d r ( n e t w o r kd a t ar e p r e s e n t a ti o n ) 作为数据表示,它是低层次的与平台无关的数据表现形式。 d c o m 是有效的,灵活的,但也是很复杂的。而s o a p 的一个主要优 点就在于它的简单性,s o a p 使用h t t p 作为网络通讯协议,接受和传送 数据参数时采用x m l 作为数据格式,从而代替了d c o m 中的n d r 格式, s o a p 和d c o m 执行过程是类似的,如下图,但是用x m l 取代n d r 作为 编码表现形式,提供了更高层次上的抽象,与平台和环境无关。 s 副_ 、,盯 客户端发送请求时,不管客户端是什么平台的,首先把请求转换成x m l 格式,s o a p 网关可自动执行这个转换。为了保证传送时参数、方法名、 返回值的唯一性,s o a p 协议使用了个私有标记表,从而服务端的s o a p 网关可以正确的解析,这有点类似于c o m d c o m 中的桩( s t u b ) 。转 化成x m l 格式后,s o a p 终端名( 远程调用方法名) 及其他的一些协议 标识信息被封装成h t t p 请求,然后发送给服务器。如果应用程序要求, 服务器返回一个h t t p 应答信息给客户端。与通常对h t m l 页面的h t t p g e t 请求不同的是,此请求设置了一些h t t ph e a d e r ,标识着一个s o a p 服务激发,和h t t p 包一起传送。例如:对于一个询问股票价格的应 用程序,服务器端具有组件提供菜股票当前的价格,组件是c o m 或 山东大学硕士学位论文 ! ! ! ! ! ! ! ! 曼曼! 皇! 鼍鼍曼曼烹皇! ! ! ! 曼! ! 皇! ! ! 竺皇烹! ! 鼍! 曼曼曼苎! ! ! 皇曼曼! ! 皇苎兰兰! ! c o r b a 在服务器上建立的。客户端发送一个s o a p 请求给服务器询问股 票价格。服务器依赖于服务器上的s o a p 网关,使用内嵌的h t m l 对象 调用合适的方法,然后把得到的价格通过s o a p 应答传给客户端。 山东大学硕士学位论文 第二章0 p c 标准技术分析 0 p c 接口标准关键在于提供了一种开放、高效的通信机制,它所关 心的是现场数据的存取方式而不是实际的数据类型它给工业监控软 件提供了一种一致的存取现场设各数据的方法。 2 10 p c 对象与接口 0 p c 规范描述了0 p c 服务器需要实现的c o m 对象及其接口它定义 了定制接口( c u s t o mi n t e r f a c e ) 和自动化接口( a u t o m a t i o i li n t e r f a c e ) 。每种 0 p c 规范又分定制接口规范和自动化接口规范二部分,以方便开发者 设计和实现0 p c 服务器程亭或客户程序”3 。 区亟虱些斟习 匝至恻:竺i 图2 1 自动化接口和定制接口 两种接口分别为不同的编程语言环境提供访问机制。自动化接口 提供了一个自动配置和存取过程数据的接口,它是为基于描述性编程 语言而定义的标准接口,可阻为v b 程序、e x c e l 及其他可以使用0 l e 自动化服务器接口的应用程序使用。而定制接口描述了0 p c 组件和对 象的接口及其中的方法,适用于期望获得最佳运行性能的客户应用程 序,是专门为c 十+ 等高级编程语言而制定的标准接口。实际上,0 p c 设 计的目的就是使用标准接口实现网络上任意支持该标准的节点获取数 据,而不需要考虑底层的变化。 在有些情况下,0 p c 基金会提供了标准的自动化接口封装器 ( w r a p p e r d 1 1 ) ,以方便自动化接口和定制接口之间的转换,使采用自 动化接口的客户程序也可以访问只实现了定制接口的服务器”1 。 0 p c 规范定义了c o m 接口规定了服务器程序和客户程序通过接口 交互的标准,但并没有说明具体实现的方法。0 p c 服务器供应商必须根 据各自硬件特性实现这些接口的成员函数。不论定制接口还是自动化接 口都可分为必选接口和可选接口。必选接口包括了客户程序与服务器进行 交互的基本功能,因此必须实现:可选接口则规定了一些额外的高级功能, 交互的基本功能,因此必须实现:可选接口则规定了一些额外的高级功能, 山东大学硕士学位论文 第二章o p c 标准技术分析 o p c 接口标准关键在于提供了一种开放、高效的通信机制,它所关 心的是现场数据的存取方式而不是实际的数据类型,它给工业j | 矗控软 件提供了一种一致的存取现场设备数据的方法。 2 1o p c 对象与接口 o p c 规范描述了o p c 服务器需要实现的c o m 对象及其接口,它定义 了定制接口( c u s t o mi n t e r f a c e ) 和自动化接口( a u t o m a t i o ni n t e r f a c e ) 。每种 o p c 规范又分定制接口规范和自动化接口规范二部分,以方便开发者 设计和实现o p c 服务器程序或客户程序。 罂件接昊再豕i 夏习 l 黼满l l = :l 图2 1 自动化接口和定制接口 两种接口分别为不同的编程语言环境提供访问机制。自动化接口 提供了一个自动配置和存取过程数据的接口,它是为基于描述性编程 语言而定义的标准接口,可以为v b 程序、e x c e l 及其他可以使用o l e 自动化服务器接口的应用程序使用。而定制接口描述了o p c 组件和对 象的接口及其中的方法,适用于期望获得最佳运行性能的客户应用程 序,是专门为c + + 等高级编程语言雨制定的标准接口。实际上,o p c 设 计的目的就是使用标准接口实现网络上任意支持该标准的节点获取数 据,而不需要考虑底层的变化。 在有些情况下,o p c 基金会提供了标准的自动化接口封装器 ( w r a p p e r d 1 1 ) ,以方便自动化接口和定制接口之间的转换,使采用自 动化接口的客户程序也可以访问只实现了定制接口的服务器。 o p c 规范定义了c o m 接口,规定了服务器程序和客户程序通过接口 交互的标准但并没有说明具体实现的方法。o p c 服务器供应商必须根 据各自硬件特性实现这些接口的成员函数。不论定制接口还是自动化接 口都可分为必选接口和可选接口。必选接口包括了客户程序与服务器进行 交互的基本功能,因此必须实现:可选接口则翅定了一些额外的高级功能, 山东大学硕士学位论文 可根据需要有选择地实现。客户程序应通过查询接口的方式来判断服 务器程序是否实现了可选接口的功能。 2 2o p c 标准的组成 o p c d a l - 0 1 9 9 6 年9 月 o p c a & e 1 9 9 9 年1 2 月 o p ch d a l 0 2 0 0 1 年1 月 o p cd x l 0 2 0 0 1 年1 2 月 p c x m l l 2 0 0 3 年6 月 0 p c 发展历程 o p c b 酏c h o p cs e c u r i t y l 0 l o p c d a 2 1l o p c d a 3 0 1 9 9 9 年1 2 月l2 0 0 0 年1 0 月2 0 0 1 年l o 月l2 0 0 3 年3 月 图2 - 2o p c 标准地发展历史 自从1 9 9 5 年o p c 标准化组织成立以来,o p c 基金会已经发布了多 个o p c 规范,其中包括;o p cd a t aa c c e s s 数据存取规范,o p cd a t a e x c h a n g e 数据交换规范、o p ch is t o r ic a ld a t aa cc e ss 历史数据存 取规范和o p ca l a r m sa n de v e n t s 报警和事件规范、o p cb a t c h 批处理 规范、o p cs e c u r i t y 安全规范、0 p cx m l 数据存取规范。 规范的组成结构如下图所示: 图2 - 3o p c 标准规范组成结构图 下面,将具体介绍一下o p cd a 规范: 旦! 墼塑查墼! ! ! ! ! ! ! ! ! ! ! ! 塑蔓塞墨i ! ! 生壁垒矍生二塑鱼旦坚翌 1 0 - 山东大学硕士学位论文 象及其接口,并规定了客户程序对服务器程序进行数据存取时需要遵 循的标准。 在数据存取规范中,一个o p c 的数据存取服务器中包括几类对象: 服务器( o p cs e r v e r ) 、组( o p cg r o u p ) 和项( o p ci t e m ) ”1 。 o p c 服务器对象维护有关服务器的信息并作为o p c 组对象的包容 器。o p c 服务器对象主要实现 i u n k n o w n 和i o p c s e r v e r 接口, o p c 客户通过o p c 服务器的接口 与o p c 对象进行通信,对数据源 进行存取。数据源可以是现场的 i 0 设备,也可以是其他应用程 序。服务器内部封装了与i o 控 制设备通讯及操作的具体实现过 程。 o p c 组对象维护有关其自身的信息,提供包容o p c 项的机制,并管 理o p c 项。它提供了一种客户程序组织数据的手段。例如,一个组中 可以包括一个设备中所有的数据项,客户程序和数据项之间可以建立 基于“订阅”的连接。有两种类型的组,公共组( p u b l i cg r o u p ) 和局 域组( l o c a lg r o u p ) 。公共组可以被多个客户共享,而局域组只能被一 个客户使用。每个组中都可以定义一个或多个o p c 项。 o p c 项代表了与服务器中的数据连接。从定制接口( c u s t o m i n t e r f a c e ) 的角度看,o p c 项不能被o p c 客户作为一个对象直接进行操 作。因此,没有为o p c 项定义的外部接口。所有对o p c 项的操作都是 通过包含此项的o p c 组对象进行的。每个项都有数值( v a l u e ) 、品质 ( q u a l i t y ) 和时间戳( t i m es t a m p ) 三个属性,值的类型为v a r i 8 n t ,品 质的类型是s h o r t 。数值代表数据项的值,品质代表数值的可信度,时 间戳代表数据的存取时间。 o p c 的数据传输机制主要分为同步读写和异步读写两种。同步数据 传输是指,客户直接调用o p c 服务器的i o p c s y n c l 0 接口的同步读写函 数,在发出数据请求后一直等待,直到数据返回。这种方法虽然简单 可靠,但当o p c 服务器采集现场数据的时间很长时,客户等待的时间 就会很长,这就降低了客户程序的效率。 山东大学硕士学位论文 异步数据传输是指,客户在发出数据请求后,可立即返回进行其 它处理,o p c 服务器在得到数据请求后,访问设备,读写数据后主动把 采集的结果通知客户端。这种传输机制的优点是:可以避免空等待, 提高了客户程序的效率。 o p c 的异步数据传输又分为两种方式:异步读写和订阅。在订阅方 式下,客户提出一次订阅请求,服务器将周期性采集数据传给客户, 直到客户取消订阅为止n 1 。如果客户程序想一直监视某些变量,则使用 订阅方式较好。在异步读写方式下,客户提出一次请求,服务器相应 进行一次数据读写,然后通知客户,这次操作结束。对于异步读写操 作,服务器只是对要读写的组和项作一下标记,调用后就返回。当服 务器读写完成后,主动把数据通知客户端。该过程需要调用服务器端 的i o p c a s y n c i o ( ) 、i d a t a o b j e c t0 接口和o p c 客户端的i a d v is e s i n k ( ) 接口。 o p c 标准规定了s e r v e r 和g r o u p 两种对象应该支持的接口。下面 是o p cd a 2 0 3 标准中的接口定义。n 1 i t h _ n x 图2 - 5 标准的o p cs e r v e r 对象和g r o u p 对象 i u n k n o w n :c o m 标准接口定义,包括a d d r e f ,r e l e a s e 和 q u e r y i n t e r f a c e 。 i o p c c o m m o n :处理错误字符串和本地化语言。 i o p c s e r v e r :创建、获得和删除组,生成组的状态信息和错误信 息。 i c o n n e c t i o n p o i n t c o n t a i h e r :支持连接点,客户可在s e r v e r 关 闭时获得通知。 使客户获得s e r v e r 包含的所有 瑟芷 州洲 雾 奄一 e乳 【; sse打da盯v盯sew盱 。陀字m 名的项 山东大学硕士学位论文 o p cg r o u p 对象有七个接口,其中六个是必须的。当客户创建组时, 获得组的接口。由于任何一个接口都可以从同一对象上的其它任意接 口上查询,所以客户可以获得七个接口中任意一个并保持接口。 i u n k n o w n :所有c o m 对象都支持的接口 i o p c g r o u p s t a t e m g t :获取并设置组参数,例如名字、刷新频率、活 动状态。 i o p c i t e m m g t :负责添加、删除和设置参数,可通过 i t e m a t t r i b u t e n u m e r a t o r 来列举项。 i o p c s y n c l 0 :同步读写。 i o p c a y s n c l 0 2 :异步读写,当操作完成后通知客户 i o p c d a t a c a l l b a c k 接口。 i d a t a o b j e c t :使用o p c 数据流格式,在c s 间建立a d v is e 连接。 自动化客户通过使用包装“w r a p p e r ”,访问o p cd a 服务器。w r a p p e r 在客户端进程内调用,将服务器提供的定制接口与客户端要求的自动 化接口进行协议转换“。 d a 3 0 标准增加了l o p c b r o w s e 等多个接口,并对以前版本中的部 分接口做出一些修改“。 2 3o p cx m ld a 规范及其技术特征 由于c o m d c o m 对m ic r o s o f t 平台的依赖性,使得o p c c o m 接口 很难应用到其它平台上并较难与i n t e r n e t 应用程序集成。由于网络防 火墙会过滤掉大多数基于c o m 传输的数据,因此o p c c o m 不能与i n t e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论