(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf_第1页
(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf_第2页
(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf_第3页
(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf_第4页
(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(控制科学与工程专业论文)用于异构网络集成的开放式opc服务器的研究与设计.pdf.pdf 免费下载

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

文档简介

独创性声明 m 删| f f f f i 删f f i i f i 丫1 1 , 。i 芍a 芍a u a 4 a i11 1 p i n | 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名:敲渤移日期:刈_ 尸 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) 额i 蕾啦师( 签名) 揪 日期矾尸 武汉理工大学硕士学位论文 摘要 随着科技的发展,工业自动控制系统中硬件的运算速度越来越快,软件的 功能日益强大,其性能已经开始逐步过剩,而通信网络的封闭和独立成为了阻 碍工业自动控制系统性能提升的主要桎梏。传统的d c s 和现今的现场总线技术 都不能满足工业自动控制系统网络化的需求。 以太网技术在i t 领域的广泛应用为其积累了大量的软硬件资源。随着科技 的不断发展,以太网被逐步地应用到了工业控制网络中,它以高带宽,低成本 和丰富的资源的特点得到设备商的大力支持。在实际应用中,o p c 规范以以太 网为基础,在硬件供应商和软件开发商之间建立了一套完整的“规则”,只要遵循 这套规则,数据交互对两者来说都是透明的,硬件供应商无需考虑应用程序的 多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程。利用o p c 规范,可以快捷地实现异构网络的同构化。 设备供应商为其产品提供相应的o p c 服务器以取代传统的定制驱动,数据 的采集通过o p c 客户端来实现。当系统中存在多种不同的工控网络或者设备时, 可能出现在一台监控计算机上安装多个o p c 服务器的情况,这不利于系统稳定 和网络的通畅。 本文讨论了工业自动控制系统中通信网络的发展,分析了现行工业通信网 络中的问题,得出了多种网络协议间的相互封闭是阻碍工业自动控制系统性能 提升的结论,提出了利用o p c 规范解决网络互联的方法,设计了一种开放式的 o p c 服务器,在一个o p c 服务器中以插件的形式集成了多种驱动,并可根据需 要再对其进行二次开发,以实现对更多设备和网络的支持,以提高异构网络中 系统的稳定和通信效率。本文的摒弃了o p c 服务器开发套件的开发方式,使用 a t l 构建了基于c o m 规范的o p c 服务器,符合o p cd a3 0 规范,设计了驱动 和服务器本体之间的接口,并集成了m o d b u sr t u a s c i i 、m o d b u st c p i p 协议 和用于西门子s 73 0 0 4 0 0 系列p l c 的以太网c p 通信模块的驱动。 关键词:o p c 服务器,现场总线,t c p i p ,m o d b u s ,p l c 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to ft e c h n o l o g y , t h eh a r d w a r eo fi n d u s t r i a la u t o m a t i o n c o n t r o ls y s t e mi sf a s t e ra n df a s t e r , a n dt h es o f t w a r ei sm o r ep o w e r f u lt o o o nt h e o t h e rh a n d , t h ep e r f o r m a n c eo fi n d u s t r i a ln e t w o r ki sp o o ra n db e c o m i n gt h es h o r t p l a n ko ft h es y s t e m t h et r a d i t i o n a ld c s a n dt h ef i e l d b u sc o u l dn o tm e e tt h en e e d so f t h ei n d u s t r i a ln e t w o r k e t h e r n e ti sw i d e l yu s e di nt h ei ti n d u s t r y ;i th a sah u g en u m b e ro fr e l a t e d s o f t w a r ea n dh a r d w a r e i n d u s t r yn e t w o r ki se q u i p p i n gw i t he t h e r n e tm o r ea n dm o r e c o m m o n l ya st h ed e v e l o p m e n to ft e c h n o l o g y i t sf e a t u r e dw i t hh i g h b a n d w i d t h ,l o w c o s ta n dl o t so fr e s o u r c e st h a ta l r e a d ye x i s t e d ,a n ds u p p o r t e db ym a n yv e n d o r s u s u a l l t h er e a l i z a t i o no fo p cs p e c i f i c a t i o ni se t h e r n e t - b a s e d ;i ta c c o m p l i s h e da s e t o f r u l e s ”f o rh a r d w a r ev e n d o r sa n ds o f t w a r ed e v e l o p e r s j u s tf o l l o wt h o s er u l e s ,d a t a t r a n s m i s s i o ni st r a n s p a r e n tf o rb o t h t h eh a r d w a r ev e n d o r sd on o tn e e dt oc a r ef o rt 1 1 e v a r i e t yo ft h ep r o t o c o la n dt h es o r w a r ed e v e l o p e r sa r en ol o n g e rn e e d t oc o n c e r n a b o u tt l l ed r i v e ro ft h eh a r d w a r e t h ei n t e g r a t i o no fh e t e r o g e n e o u sn e t w o r k sc a nb e e a s i l ya c h i e v e db yo p cs p e c i f i c a t i o n h a r d w a r ev e n d o r sp r o v i d ec o r r e s p o n d i n go p c s e r v e r st or e p l a c et h et r a d i t i o n a l c u s t o md r i v e r sf o rt h e i rp r o d u c t s ,a n dt h e d a t aa c q u i s i t i o ni sa c h i e v e db yo p c c l i e n t s w h e nt h e r ea r ed i f f r e n tt y p e so fn e t w o r ko re q u i p m e n ti nt h es y s t e m ,an u m b e ro f o p cs e l n e r sm a yn e e dt oi n s t a l lo nas i n g l ec o m p u t e r i t sn o tg o o df o rt h es t a b i l i t yo f t h es y s t e ma n dn e t w o r k i nt h i st h e s i s ,t h ed e v e l o p m e n to fi n d u s t r ya u t o m a t i o nc o n t r o ls y s t e m l s d i s c u s s e d ,t h ep r o b l e m so fi n d u s t r yn e t w o r ki sa n a l y s i s e da n dt h ec o n s u l t i o nc o m e s o u tt h a tt 1 1 es e a lo ft h ei n d u s t r yn e t w o r ki st h es h o r tp l a n ko ft h ew h o l es y s t e m t h e s o l u t i o ni sp r e s e n t e dt h a tu s i n go p cs p e c i f i c a t i o nt oi n t e r c o n n e c td i f f e r e n tt y p e so f i n d u s t r yn e t w o r k ak i n do fo p e no p c s e r v e ri sp r e s e n t e d ,i nt h i ss e r v e rt h ed r i v e r s a r es u p p l i e da sp l u g i nm o d u l e ss ot h eu s e r sc a nc u s t o m i z et h e i ro w n d r i v e r sf o rt h e a d d i o n a le q u i p m e n t sa n dp r o t o c o l s ,i tc o u l di m p r o v et h es t a b i l i t yo fh e t e r o g e n e o u s n e t w o r ks y s t e ma n dt h ec o m u n i c a t i o np e r f o r m a n c e t h eo p c s e r v e rs d kt o o l sa r e a b a n d o n e di nt h ed e v e l o p m e n ta n dr e p l a c e db ya t l a n dt h es e r v e ri so p c d a3 0 n 武汉理工大学硕士学位论文 c o m p a t i b l e t h ed e s i g no ft h ei n t e r f a c eb e t w e e nd r i v e r sa n dt h es e r v e ri t s e l fi s a c h i e v e d ,a n dt h ed r i v e rm o d u l e sf o rm o d b u sr t u a s c i i ,m o d b u st c p i pp r o t o c o l a n ds i e m e n ss 7 3 0 0 4 0 0p l ci n d u s t ye t h e m e tc p sa l ea c c o m p l i s h e d k e y w o r d s :o p cs e r v e r , f i e l db u s ,t c p i p , m o d b u s ,p l c i i i 武汉理工大学硕士学位论文 目录 第1 章绪论1 1 1 课题研究背景l 1 1 1 工业通信网络的发展1 1 1 2 工业通信网络中存在的问题2 1 2 研究目的与意义3 第2 章o p c 技术在工业通信网络中的应用4 2 1o p c 规范概述4 2 2c o m 规范和a t l 技术概述8 2 2 1 关于c o m 规范8 2 2 2a t l 技术概述1 0 2 3o p c 规范应用的现状1 2 2 3 1o p c 服务器的市场现状1 2 2 3 2o p c 规范的应用现状1 3 2 4 本章小结1 4 第3 章o p cd a 服务器的实现1 5 3 11 服务器概要设计一! 一? 一? ! 1 5 3 1 1 服务器与驱动的分离1 5 3 1 2 服务器地址空间( a d d r e s ss p a c e ) 的配置1 7 3 2 服务器的数据结构设计1 8 3 2 1c o m 类的设计1 8 3 2 2 服务器地址空间和o p c 项1 9 3 2 3 数据缓冲区与后台读取线程2 3 3 2 4o p cd a 服务器的数据访问2 6 3 3 服务器的具体实现2 9 3 3 1 准备工作2 9 3 3 2o p c 服务器对象的实现3 0 3 3 3o p c 组对象的实现3 2 i v 武汉理工大学硕士学位论文 3 4 本章小结3 4 第4 章设备驱动的集成3 5 4 1 设备驱动与服务器部分的接口3 5 4 1 1 设备驱动a p i 函数的设计3 5 4 1 2 驱动专有空间到服务器地址空间的转换3 5 4 2m o d b u s 协议驱动的集成3 6 4 2 1m o d b u s 协议概述3 6 4 2 2m o d b u s 协议在串行链路上的实现3 9 4 2 3m o d b u s 协议在t c p i p 协议栈上的实现4 2 4 2 4m o d b u s 协议集的集成4 5 4 3s i e m e n ss 7 以太网通信模块驱动的集成4 6 4 3 1s i e m e n ss 7 以太网通信模块4 6 4 3 2s 7 以太网通信模块驱动的实现4 7 4 4 系统测试5 0 4 5 本章小结5 3 第5 章总结与展望5 4 参考文献5 5 致谢5 7 攻读硕士学位期间发表的论文及参加的科研项目一一,5 8 v 武汉理工大学硕士学位论文 1 1 课题研究背景 第1 章绪论 1 1 1 工业通信网络的发展 在工业自动控制系统中,通信网络一直在朝着数字化和开放化的方向发展。 由于工业通信网络其本身也是一个非常宽泛的概念,关于其发展历程各类文献 和教科书也都有各自的说法。笔者将其发展历程总结如下: 第一阶段:模拟年代。 计算机尚未普及,各种信号也尚未数字化,工业设备间的通信很少。在信 息论,系统论和控制论创立不久后,其理论在工业控制中就逐步得到了应用, 这期间的电气控制系统大多以4 2 0 m a 电流为信号载体,控制功能被单独分离出 来,并设有专门的控制室【l j 。 在这一阶段的后期,集中控制系统( c c s ,c e n t r a lc o n t r o ls y s t e m ) 的概念 被提出,计算机作为“大脑”被引入到工业控制中。工业控制系统的通信网络初具 规模,但其仍然是以4 2 0 m a 的电流信号作为载体,并且该系统的可靠性并不是 很好。 第二阶段:封闭的d c s 。 微处理器的普遍应用和计算机可靠性的提高,使分布式控制系统( d c s , d i s t r i b u t e dc o n t r o ls y s t e m ) 得到了广泛的应用,由多台计算机和一些智能仪表 以及智能部件实现的分布式控制是其最主要的特征,而数字传输信号也在逐步 取代模拟传输信号【2 1 。这里说的封闭,并不是指d c s 就是封闭的,而是指随着 d c s 概念诞生的第一代工业通信网络是封闭的。随后要提到的现场总线在大的 范畴内仍可以归入d c s 。在这个阶段中,数字设备开始进入工业制造,科技的 进步使得网络化成为可能。各个工业巨头都开始研发自己的网络控制系统,d c s 的概念被提出。在各个工业巨头努力推销d c s 的概念和自己的网络的同时,也 忽略了一个重要问题,那就是设备的互联和网络的开放性。计算机技术帮助制 造业步入了数字化时代,但不幸的是厂商们的实力相当,都开发了性能优秀的 网络产品和私有协议,谁也没有将对方挤出市场,在特定的领域各有长处。商 人的野心在于对市场的完全掌握,其一揽子集成的私有协议为客户提供了理想 武汉理工大学硕士学位论文 的解决方案,但是也将其他厂商的产品拒之门外,对于客户来说,这无异于是 一个灾难。 第三阶段:现场总线与开放的诉求。 随着微处理器的快速发展和广泛的应用,数字通信网络延伸到工业现场成 为可能。设备之间彼此通信、控制,在精度、可操作性以及可靠性、可维护性 上也都有了更高的要求。随之出现的现场总线控制系统( f c s ,f i e l d b u sc o n t r o l s y s t e m ) ,是目前应用较为广泛的一种控制系统结构。分布,开放,互联和高可 靠性是其主要特点【4 】。如同对于自由的诉求一样,业界对于网络的开放的追求也 是孜孜不倦。相对于d c s 年代,现场总线不仅仅是厂商口中和教科书中的一个 概念,而是作为业界规范发布。一个显著的表现是在维基百科中,你可以找到 一个f i e l db u s 的条目,而没有人为你提供d c s 的解释( 有效性证明于2 0 1 1 年1 月1 2 日) 。但是,现场总线并不是一个具体的协议,而是一个规范,符合这一规 范的都称之为现场总线。不过有总比无要好,不管是哪一种现场总线,至少协 议是开放了,客户可以根据自己的需要将不同厂商的产品集成到自己的系统当 中。当然,前提是这些产品所支持的现场总线有交集。 1 1 2 工业通信网络中存在的问题 在工业自动控制系统中,通信网络从无到有,从模拟到数字,得到了长足 的发展和进步。但是目前的问题也是显而易见的,网络还是相对封闭的。现场 总线并没有从根本上改变这种状况,这从现场总线规范的制定过程和最终规范 的内容就可以看出来。各种现场总线代表着不同公司多年的研发投资和市场利 益,不同总线的技术侧重不同,各有特色,各有相应的应用领域。为了将不同 年代和厂商的设备在一个系统中集成,工程师们不得不绞尽脑汁,而最终效果 却不尽人意。究其原因,笔者将其归为两点: 一是厂商利益驱使。尽管有各种国际标准组织努力实现工业通信网络的互联, 但是归根到底也是厂商间的博弈,没有人会放弃一个做标准的一流厂商的机会。 二是历史原因。和i t 信息领域不同,工业设备的寿命有时候是超乎想象的 长。并且很多时候客户为了系统的兼容和稳定以及成本考虑,每一次升级,都 不会轻易将抛弃原有的设备。考虑到工业通信网络协议混乱的现状,即便同一 厂商不同世代间的产品也不见得能完全兼容。 但近年来,以太网的强势介入也许会逐步改变这个状态。现今所说的以太 2 武汉理工大学硕士学位论文 网就是指i e e e8 0 2 3 规范,而实质上由i n t e l 、x e r o r 、d e e 等几家公司发起的以 太网标准已经停止了发展。i e e e8 0 2 3 规范和以太网十分相似,在协议层次的划 分上更加明确,对于以太网是完全兼容的【4 】【5 1 。计算机组成的中小型局域网几乎 百分之百都采用的是以太网( 当然,这不包括无线组网) 。随着硬件的发展,以 太网不断地被应用到工业通信网络中,其开放性和在p c 平台上积累的巨大资源 优势,以及使用t c p i p 协议与i n t e r n e t 的互通性,是现场总线无法比拟的 6 1 。主 流工业控制设备制造商的介入,使得其本质安全性和实时性也在逐步地改善。 尽管如此,在实际的工程应用当中,其还有很长一段路要走。多种互不兼容的 协议在主流设备上的应用,是造成工业通信网络的混乱的直接原因。 1 2 研究目的与意义 综上所述,由于各种原因,工业现场的通信网络十分复杂,各种d c s 仪表, 不同种类的现场总线设备构成了一个大杂烩。网络互联的实现非常困难并且成 本不菲,实际工程中通信网络的调试成为工程师们最头疼的问题之一。如何高 效廉价地实现设备问的通信成为工控行业的当务之急。 以太网的迅速发展给工控网络互联的发展带来了不可多得的契机,其高带 宽,低成本和软件资源丰富的特点得到了主流工控设备商的青睐和支持,以太 网接口成了高端工控设备的标配,o p c 规范正是在这个基础上逐步发展起来的, 利用o p c 规范来实现数据从现场设备到上层以太网的转发正在逐步成为广大工 程师的共识9 1 。o p c 规范实质是在硬件供应商和软件开发商之间建立了一套完 整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商 无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质 和操作过程。利用o p c 规范,可以快捷地实现异构网络的同构化。 在实际工程应用中,基本上都是采用设备厂商提供的o p c 服务器软件,客 户端使用支持o p c 接口的组态软件自行开发。这样可以很容易实现异构网络的 集成,但是缺点也是显而易见的。设备厂商提供的o p c 服务器和驱动程序是紧 密集成的,只能支持一种或者系列的设备,若要将其他设备联入以太网,就 要另起炉灶【8 】。本课题的研究目的是设计开发支持多种协议的开放式o p c 服务 器,以组件的形式为各种设备提供可靠的数据访问驱动,提供统一的界面体验, 最大程度地节约异构网络集成软硬件成本。并在此基础上,对工业网络及其网 络互联技术的发展作进一步的探讨。 武汉理工大学硕士学位论文 第2 章o p c 技术在工业通信网络中的应用 2 1o p c 规范概述 面对复杂的通信网络的现状,工程师们也提出了各种实用的折中方法来解 决难题,o p c 规范便是其中之一。o p c 包含了一系列的规范集合,最初的o p c 规范由业界专门成立的一个小组于1 9 9 6 年发布,后来被称为o p cd a 规范【l o 】, 也是本文主要讨论的规范。o p c 规范现在由o p c 基金会管理和继续开发。o p c 的全称是o b j e c tl i n k i n ga n de m b e d d i n g ( o l e ) f o rp r o c e s sc o n t r o l ,它为w i n d o w s 程序访问工业控制设备定义了一系列的接口和机制】。o p c 是基于客户端服务 器模型的,服务器为客户端提供到工业控制设备的数据访问。o p c 的一个巧妙 之处就是不管工业设备所提供的数据时何种类型,它都能准确而畅通无阻地采 集,在o p cd a 服务器的实现过程中将会看到其详细的工作机制。o p c 是一个 开放的协议,厂商或第三方软件供应商为设备提供符合o p c 规范的服务器,任 何人编写o p c 客户端都可以访洲1 2 】。需要注意的是,o p c 规范是基于c o m 的, 虽然c o m 规范最初是设计成平台无关的,但实际应用中这些技术都只能依赖于 w i n d o w s 平台( 新的o p cu a 规范被设计成平台无关的,我们将后续单独讨论) 。 o p c 规范最初是为了给应用程序访问数据源( 例如工业设备或是数据库) 提供个统一的接口而提出的。o p c 规范将硬件供应商和软件开发者的职责明 确地区分开来:硬件供应商随设备提供支持o p c 接口的驱动( o p c 服务器) , 而软件开发者在进行系统集成时只需按照o p c 规范开发o p c 客户端便可以访问 设备数据而无需了解驱动细节。 传统的工业控制网络中,其数据访问如图2 1 所示。 4 武汉理工大学硕士学位论文 图2 1传统工业控制网络的数据访问 o p c 提供了统一的标准接口集,使得设备商和软件开发者分工明确,提高 了工程建设的效率。应用了o p c 之后工业控制网络的数据访问如图2 2 所示。 图2 - 2 应用了o p c 的工业控制网络的数据访问 o p c 规范在最初规划时就考虑了高度兼容性,各个o p c 规范之间都有一些 通用的概念,在c o m 技术基础之上,所有的o p c 规范都包含了两种类型的接 口:定制接口( c u s t o mi n t e r f a c e s ) 和自动化接口( a u t o m a t i o ni n t e r f a c e s ) 【13 1 。 o p c 规范并没有对这些接口如何实现做出具体的规定( 可能会对某些复杂接口 武汉理工大学硕士学位论文 的实现提出一些建议) ,而是对具体c o m 接口进行了定义,以及这些接口在于 客户程序互动时的具体行为。仅仅提供体系结构和接口定义的描述是一种非常 聪明和合适的做法。o p c 和所有的c o m 规范的实现一样,采用了客户端服务 器结构,不同的o p c 服务器有着统一的接口类别注册机制和一个共同的管理接 口。这为o p c 服务器和客户端的开发带来了极大的便利,一个o p c 服务器可以 包含多个具体的o p c 规范的实现,而且服务器和客户端之间的连接都可以是多 对多的【1 4 】【1 5 】,其联系如图2 3 所示。 图2 3o p c 服务器与客户端的关系 在o p c 服务器的实现中有一些需要特别注意的问题。其中最重要的就是通 过私有通信链路和设备或者其他数据源交换数据的频率。o p c 服务器既可以是 本地程序也可以是远程计算机上运行,这就对其在私有通信链路上数据采集的 效率提出了更高的要求。 o p c 客户端可以通过定制接口或是自动化接口和o p c 服务器通信。o p c 服 务器必须实现定制接口,而自动化接口是可选的,它主要为脚本语言访问o p c 服务器提供了支持。在某些规范中,o p c 基金会提供了一个标准的自动化接口 包装器( w r a p p e r ) 。如图2 4 所示,这个包装器可以用于任何只实现了定制接口 6 武汉理工大学硕士学位论文 o p c 服务器的接口转换。 图2 _ 4o p c 客户端服务器结构与接口转换 已经发布和正在开发中的o p c 规范一共有如下七个【l o j : o p cd a t a a c c e s s :最初的o p c 规范。用于将实时数据从p l c ,d c s 或者其 他控制设备传输到h m i 或者其它显示终端。相比于早期版本,新发布的3 0 版本 改善了浏览功能并计划将x m l d a 规范合并。 o p ca l a r m s & e v e n t s :相对于d a 规范持续的数据流访问,a & e 规范提供 了报警和事件通知。这些报警和事件包括了报警,操作员动作记录,提示性的 消息和其它一些跟踪记录型的消息。 o p cb a t c h :这个规范贯彻了o p c 关于批处理需求的理念。它可以用系统性 能换取操作的便利,反之也可以实现。 o p cd a t ae x c h a n g e :该规范实现了以太网和现场总线网络之间的相互通信, 为多个不同厂商之间的互相通信提供了可能。除此之外,它还提供了远程配置, 诊断和监控管理服务。 o p ch i s t o r i c a ld a t aa c c e s s :d a 规范提供了对实时、持续变化的数据的访 问,而通过h d a 规范可以访问已经存储的数据。从简单的串口数据到复杂的 s c a d a 系统,以及历史归档都可以以统一的方式进行访问。 o p cs e c u r i t y :o p c 服务器提供的数据对于企业来说都是非常有价值的,如 果处理不当,可能会对生产流程产生不可预料的重大后果。s e c u r i t y 规范为客户 武汉理工大学硕士学位论文 端访问敏感信息提供控制,可以防止对工艺参数进行未授权的修改。 o p cx m l - d a :该规范利用x m l 为车间一级的数据访问提供了灵活一致的 规则。 o p cc o m p l e xd a t a :与d a 和x m l d a 规范类似,允许服务器暴露和描述 像二叉树和x m l 文档这样的复杂数据类型。 o p cc o m m a n d s :这是一个正在制定中的规范,它允许o p c 客户端和服务 器识别,发送和监控在设备上执行的控制命令。 o p cu n i f i e da r c h i t e c t u r e :u a 规范是一组新的规范集,它不再使用微软的 c o m 技术并且可以跨平台实现。 2 2c o m 规范和a t l 技术概述 2 2 1 关于c o m 规范 c o m 的全称是c o m p o n e n to b j e c tm o d e l ,它是一个使不同程序可以在二进 制代码级别上相互通信的的规范【2 3 1 。按照组件化程序设计的思想,复杂的应用 程序被设计成一些小的,功能单一的组件模块,这些模块可以运行在同一台机 器上,也可以运行在不同的机器上,甚至可以运行在跨越太平洋的两台机器上 【2 引。在理想情况下,每台机器的运行环境都可以不同,甚至可以是不同的操作 系统。为了实现这样的应用软件,组件程序之间需要一些极为细致的规范,只 有组件程序遵守了这些共同规范,软件系统才能正常运行。基于这样个目的, m i c r o s o i t 在1 9 9 3 年提出了c o m 规范。虽然c o m 规范被设计成为平台无关的, 但还是只有w i n d o w s 最常使用c o m 。目前,m i c r o s o f t 推出的n e t 平台正逐步 取代c o m 的功能和地位,逐步成为w i n d o w s 上软件开发的新方式。 c o m 标准包括规范和实现两大部分,规范部分定义了组件和组件之间通信 的机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任 何语言都可以使用【1 5 1 ;c o m 标准的实现部分是c o m 库,c o m 库为c o m 规范 的具体实现提供了一些核心服务。从c o m 的全称就就可以看到,其是面向对象 的软件模型,对象是c o m 两个基本要素之一,另外一个就是接口。我们可以把 c o m 看做是一个二进制级别上的面向对象的语言,类似于c + + 中的定义,c o m 对象是某个c o m 类的实例,而c o m 类是一组相关的数据和功能的组合。在c + + 中,这些功能是由函数来实现的,而在c o m 中,这些具体的实现就是接口。c o m 规范是基于客户端服务器模型的,组件程序作为服务器,通过接口向客户端提 武汉理工大学硕士学位论文 供服务。o p c 就是建立在c o m 规范之上,定义了系列的对象和接口,来实现 客户端和服务器之间的通信,而服务器与工业设备间的数据交换则是设备厂商 的私有协议。本文采用c + + 来编写o p cd a 服务器,其间提到的“类”和“对象” 具体是指c o m 类对象还是c + + 类对象将视上下文而定,笔者将尽力将其区分 开来。 单个组件程序可以在软件系统中单独升级而不影响其它组件和整个系统。 基于c o m 规范的软件系统如图2 5 所示。 图2 5 组件化应用程序升级示例图 一个组件程序可以包含多个c o m 对象,而一个c o m 对象可以实现多个接 口。c o m 组件程序,c o m 对象和接口的关系如图2 6 所示。 c o m 组件程序 铸黔 i ,。o c o 对象lc ( ) 雏i l 象2 琵缓燃缓缓滋獭缓缓缓缓缴戮缓缓缓黻缀戮缓缀缓燃 接口l接1 3 2接1 3 3 图2 - 6 基于c o m 的软件系统逻辑结构图 在这里简要说明一下c o m 中的两个重要接口和相关概念【2 9 】: i u n k n o w n 接口:所有的c o m 组件程序都必须实现i u n k n o w n 接口,并且 所有的接口都要从i u n k n o w n 派生。i u n k n o w n 接口管理c o m 对象所支持的所 9 武汉理工大学硕士学位论文 有其它接口,o p c 规范所定义的接口同样包含在内。本课题将使用a t l 技术实 现包括i u n k n o w 在内的c o m 规范的细节。 i d i s p a t c h 接口:与编译后运行不同,脚本语言通常是解释运行的,如果组 件程序要支持像v b 和j a v a 这样的脚本语言( 实际上这里是特指使用v b s c r i p t 和j a v a s e r i p t 的情况) ,还必须实现i d i s p a t c h 接1 2 1 。o p c 基金会提供的开发套件 ( o p cc o r ec o m p o n e n t s ) 中为支持脚本语言提供了个w r a p p e rd l l 来实现 i d i s p a t c h 的功能,只要软件供应商严格按照o p c 规范来实现各个接e 1 ,就不必 为i d i s p a t c h 接口操心。 i d l 语言:为了实现跨语言和跨平台的兼容性,必须要有一种独立的语言来 描述c o m 类和接口的定义,i d l 正是用来实现这个功能的。需要说明的是,i d l 语言还被用在c o m 之外的其它地方,它并不是专门为c o m 而开发出来的。 g u i d 肘u i d c l s i d c a t i d :这四者实质都是一个1 2 8 位整数,并可以保证 概率上的不重复。g u i d 与u u i d 只是叫法不同,用来唯一标识一个接口;c l s i d 用来唯一标识一个c o m 类;c a t i d 用于w i n d o w s 的组件程序管理,用于唯一 标识一个组件程序类别。 出接口( o u t g o i n gi n t e r f a c e ) 可连接对象( c o n n e c t a b l eo b j e c t ) :出接口也 是接口,只不过它是在服务器中注册,由客户端来实现的。服务器通过出接口 使用客户端提供的功能,通过出接口机制客户端和服务器可以实现双向通信, o p cd a 规范的1 0 以后的版本便是通过这种机制来实现数据的异步访问。支持 出接口的对象( 服务器端) 便是可连接对象,可连接对象通过枚举器( e n u m e r a t o r ) 来管理其支持的多个出接口。 2 2 2a t l 技术概述 如前小节所述,为了实现软件系统中跨语言跨平台间的通信,c o m 规范被 设计得十分细致和繁琐,这也被业界指为其诟病之一。为了能让程序员抛开c o m 规范的细节而专注于组件程序的开发,m i c r o s o f t 开发了一套c h 的模板库用于 快速便捷地实现c o m 规范中的细枝末节,称之为a c t i v et e m p l a t el i b r a r y ,缩写 为a t l t 3 0 】。编写c o m 组件程序所采用的技术当然不只一种选择,事实上,使用 m f c 也可以快捷地开发c o m 程序,但a t l 始终是首选。a t l 是以c + + 的模板 形式来实现c o m 的,这比m f c 有着更好的独立性和更加小巧,不管是静态链 接还是动态链接,都逃不过使用m f c 强大的功能而付出的代价,或是库文件造 1 0 武汉理工大学硕士学位论文 成的巨大体积,或是程序的独立性下降。类似于c 卜 标准模板库,模板技术的 运用造就了a t l 的短小,高效和灵活,所有这些强大的功能也需要一些技巧才 能充分运用。本课题将采用a t l 技术来实现o p cd a 服务器。 在3 o 版本之前,a t l 都是独立发布的,从v i s u a lc 抖6 0 开始,a t l 便被集 成在v i s u a lc 抖中,随v i s u a ls t u d i o2 0 1 0 发布的是a t l1 0 0 。同m f c 一样,a t l 与v i s u a lc + + 的i d e 的紧密集成,只需要在向导中作一些简单的选择,便可生 成一个组件程序的框架。一个典型的基于a t l 的组件程序如下: 代码l : :】r l 模板示例 c l a s sa t ln ov t a b l ec e x t e n d a b l e o p c s e r v e r : p u b l i cc c o m o b j e c t r o o t e x , p u b l i cc c o m c o c l a s s , p u b l i cc p r o x y l o p c d a t a c a i l b a c k , p u b l i cl o p c s e r v e r , p u b l i c1 0 p c d a t a c a l i b a e k p u b l i c : c e x t e n d a b l e o p c s e r v e r 0 1 , d e c l a r er e g i s l l wr e s o u r c e i d ( i d re x t e n d a b l e o p c s e r v e r ) b e g i nc o mm a p ( c e x t e n d a b l e o p c s e r v e r ) c o mi n t e r f a c ee n t r y ( i o p c s e r v e r ) c o ml n t e r f a c ee n t r y ( i c o n n e c t i o n p o i n t c o n t a i n e r ) c o mi n t e r f a c ee n t r y f i o p c d a t a c a l l b a c k ) e n dc o mm a p ( ) b e g i nc o n n e c t i o np o i n t _ m a p ( c e x t e n d a b l e o p c s e r v 曲 c o n n e c t i o n p o i n t _ e n t r y l u u i d o f ( i o p c d a t a c a l l b a c k ) ) e n d _ c o n n e c t i o n p o i n t _ m a p ( ) 。” 以上代码中,类c e x t e n d a b l e o p c s e r v e r 是一个具体的c o m 类的实现,其 包含了l o p c s e r v e r 接口和i o p c d a t a c a l l b a c k 出接口。而a t l 的模板和宏为其实 现了其他c o m 细节。 c c o m o b j e c t r o o t e x 模板提供了i u n k n o w n 接口的实现。 c c o m c o c l a s s 提供了类工厂( c l a s sf a c t o r y ,少数文献称为c l a s so b j e c t ) 的实 现,类工厂也是一个接口,由它与c o m 库进行交互以完成c o m 对象的创建。 i c o n n e c t i o n p o i n t c o n t a i n e r l m p l 用于实现标准接口i c o n n e c t i o n p o i n t e r c o n t a i n e r , 任何可连接对象必须实现该接口以管理其出接口。 宏b e g 玳c o mm a p 、e n dc o mm a p 和c o mi n t e r f a c ee n t r y 为i u n k n o w n 接口中的q u e r y i n t e r f a c e 方法的实现提供了支持。宏 b e g i nc o n n e c t l 0 np o i n tm a p ,e n dc o n n e c t i o np o i n tm a p 和 武汉理工大学硕士学位论文 c o n n e c t i o np o i n

温馨提示

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

评论

0/150

提交评论