(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf_第1页
(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf_第2页
(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf_第3页
(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf_第4页
(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机系统结构专业论文)基于opc的分布式实时数据库的接口设计.pdf.pdf 免费下载

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

文档简介

山。东大学硕士学位论文 摘要 由于工业控制领域以及对时间要求比较严格的应用发展的需要,实时数据库系 统( r t d b s ) 应运而生。r t d b s 并不是传统数据库系统和实时系统的简单集成,因 此需要对r t d b s 中的一系列概念、理论,技术、方法和机制进行新的研究开发。 而o p c 技术由于其体系结构和实现技术的先进性,可适应不同企业的异构控制系 统。它提供了一种标准的接口定义,让异构系统可以互连互通,解决了不同厂商 的软硬件的兼容问题。将o p c 技术与r t d b 技术结合起来就为企业提供了一个强大 的生产数据管理平台。随着网络的普及,分布式环境中的实时数据库应用成了热 门话题,但同时也带来了一系列的问题。 本文系统分析了实时数据库的功能和应用环境,结合o p c 技术,给出了分布式 环境下实时数据库的应用模式和体系结构的设计思路。整个系统分为分布式实时 数据库系统、o p c d a h d a 接口层和数据采集服务器三个层次,其中分布式实时数 据库系统为箕核心层。详细设计了分布式实时数据库的软件模块化结构和核心结 构。该体系结构具有可扩展性好、内核运行效率高、分布式处理能力强等优点。 详细描述了o p c 接口的实现过程。为了让实时数据库满足分布式环境下的系统 需求,能够和各种现场设备通讯并为本地及远程客户服务,必须在r t d b 软件体系 中设计、实现o p c 服务器与客户端。本文探讨7o p t 服务器的结构及其基本的功 能和需要实现的接口,给出了o p c 服务器的详细实现过程和o p c 客户端的实现步 骤。 最后讨论了在分布式实时数据库的实现过程中几个关键的技术问题。首先是 如何在分布式环境下保持实时数据库的一致性。本文通过对有线网络特性全 排序性、可预测性、修剪性、缓存性的分析,结合新提出的基于可预测性的 并发控制协议2 p l - p b ,给出了在基于o p c 的分布式实时数据库中的应用过程。其 次讨论了o p c 数据采集服务器进行硬件扫描的方式,主要是线程池技术。分析了 山东大学硕士学位论文 竺= = 竺:= = ! = ! = 竺= = = = :! 竺= ! = := ! = = ! ! ! = ! := = = 拳一 线程池技术的背景和应用环境以及如何在实时系统中对传统的线程池进行改造。 本文将线程池技术应用在数掘采集服务器中,接受客户端的数据请求并扫描硬件 完成数据的采集。 关键字: o f c ,c o m d c o i ,分布式实时数据库,一致性,线程池 u 山东大学硕士学位论文 a b s t r a c t a si n d u s t r yc o n t r o lf i e l d sa n da p p l i c a t i o n sw h i c ha l es t r i c t i nn e e d so ft i m ea r e d e v e l o p i n g ,r e a lt i m ed a t a b a s es y s t e me m e r g e s b e c a u s er t d b si s n o tas i m p l e c o m b i n a t i o no ft r a d i t i o n a ld a t a b a s es y s t e ma n dr e a lt i m es y s t e m , as e r i e so fc o n c e p t t h e o r y , t e c h n o l o g y , m e t h o da n dm e c h a n i s mn e e df t l l 仙e rs t u d y o p ch a st h ea d v a n c e d a r c h i t e c t u r ea n dt e c h n o l o g y ,i tc a nf i tv a r i e dc o n t r o ls y s t e m si nd i f f e r e n tc o r p o r a t i o n , p r o v i d eu st h en o r m a ld e f i n i t i o no f i n t e r f a c e st on l a k ev a r i e ds y s t e m sc o m m u n i c a t ew i t f l e a c ho t h e ra n dr e s o l v et h ec o m p a t i b l ep r o b l e mo fv a r i e ds o f t w a r ea n dh a r d w a r e w e s u p p l yas t r o n gd a t ap l a t f o r mo fe n t e r p r i s e sp r o d u c t i o nm a n a g e m e n tb yi n t e g r a t i n g o p c 、丽t l lr t d b w i t ht h ep r e v a l e n c eo f n e t w o r k 。t h ea p p l i c a t i o n so f r e a lt i m ed a t a b a s e i nd i s t r i b u t e da n dm o b i l ee n v i r o n m e n t sb e c o m et h eh o tt o p i c s h o w e v e r , d r t d bh a s l o t so f p r o b l e m sa tt h es a m et i m e t h i sp a p e ra n a l y s e st h ef u n c t i o na n da p p l i e de n v i r o n m e n to fr t d b ,d e s i g n st h e a r c h i t e c t u r ea n da p p l i e dm o d e lo fd i s t r i b u t e dr t d b t h i sa r c h i t e c t u r eh a st h r e e i a y e r s :d r t d b s 、o p c - d a h d ai n t e r f a c ea n do p cd a t ag a t h e r i n gs e r v e r t h ec o r ei s t h el a y e ro fd r t d b s w em o d u l a d z et h es o r w a r ea n dd e s i g nt h ek e r n e ls t r u c t u r eo f d r t d b s e x p a n s i b i l i t yo f s y s t e m 、e f f i c i e n c yo f k e r n e l sf u n c t i o na n dc o m p u t i n ga b i l i t y i nd i s t r i b u t e de n v i r o n m e n ta r ca l li n c r e a s e d w ed e s c r i b et h er e a l i z a t i o no fo p ci n t e r f a c e w en e e dt or e a l i z et h eo p cs e r v e r a n do p cc l i e n t , b e c a u s ew ew a n td r t d b sc o u l dn o to n l yc o m m u n i c a t ew i t hl o c a l e d e v i c e sb u ta l s os e r v i c el o c a l0 1 r e m o t ec l i e n t t h i sp a p e rd i s c u s s e st h es t r u c t u r eo f o p cs e r v e r 、e s s e n t i a lf u n c t i o na n di n t e r f a c e sn e e d i n gt or e a l i z e ,p r o v i d ed e t a i lo fo p c s e r v e r sr e a l i z a t i o na n ds t e p so f o p cc l i e n t sr e a l i z a t i o n a tl a s t , w ed i s c u s ss e v e r a lk e yp r o b l e m so fd r t d b s o n ei sh o wt om a i n t a i nt h e c o n s i s t e n c yo fr t d b si nd i s t r i b u t e de n v i r o n m e n t t h ep a p e rc o n s t r u e st h ef e a t u r e so f w i r e n e t w o r k - - t o t a lo r d e r i n g 、p r e d i c t a b i l i t y 、p r u n i n ga n dc a c h i n g o nt h eb a s i so f p r e d i c t a b i l i t yi tp r e s e n t st h ea p p l i c a t i o no ft h ec o n c u r r e n c yc o n t r o lp m t o e o ! w h i c hi s 山东大学硕士学位论文 c a l l e d2 p l p bi nd r t d b sb a s e do no p c 。t h eo t h e ri st h em e t h o do fs c a n n i n gl o c a l e d e v i c e se s p e c i a l l yt h r e a d - p 0 0 1 a sa n a l y z i n gt h eb a c k g r o u n do ft h r e a d p o o l ,f i e l d so f a p p l i c a t i o na n dh o w t oc h a n g et h et h r e a d - p o o lt os u i tt h er e a l t i m es y s t e m ,t h i sp a p e r a p p l i e st h et h r e a d p o o li no p cd a t ag a t h e r i n gs e r v e rw h i c hr e c e i v e st h er e q u e s t so f c l i e n t sa n ds c o 吡st h eh a r d w a r et og a t h e r i n gt h ed a t a k e y w o r d :o p c ,c o m d c o m ,d r t d b ,c o n s i s t e n e y , t h r e a d p o o l 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下。独立进 行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何 其他个人或集体已经发表或撰写过的科研成果。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人 承担。 论文作者签名: 逦毫磊日期:趟! :生:s 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保 留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅:本人授权山东大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和祀编本 学位论文。 ( 保密论文在解密后应遵守此规定) 7 论文作者签名:雄导师签名雄日 山东大学硕士学位论文 1 1 课题的技术背景 第一章引言 数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中, 它几乎无所不在。但以关系型为代表的传统数据库在现代的( 非传统) 工程和 时间关键型应用面前却显得软弱无力,面临着新的严峻的挑战,由此而导致了 实时数据库( r e a lt i m ed a t a b a s e ,r t d b ) 的产生和发展。 实时数据库( r t d b ) 是数据库系统发展的一个分支,它适用于处理不断更 新的快速变化的数据及具有时间限制的事务处理,其系统的正确性不仅依赖于 逻辑结果,而且依赖于逻辑结果产生的时间。实时数据库技术是实时系统和数 据库技术相结合的产物,研究人员希望利用数据库技术来解决实时系统中的数 据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算 法。然而,实时数据库并非是两者在概念、结构和方法上的简单集成。需要针 对不同的应用需求和应用特点,对实时数据模型、实时事务调度与资源分配策 略、实时数据查询语言、实时数据通信等大量问题做深入的理论研究。 目前实时数据库的应用范围很广,如c a d c a m ,c i m s ;数据通信,电话 交换,电力调度等网络管理;电子银行事务,电子数据交换与电子商务;交通 控制、雷达跟踪、空中交通管制等等。实时数据库理论逐步成熟,先后在国外 国内开发出了多种满足工程实践要求的实时数据库。比如d b x 公司的z i p - - r t d b m s 和m a r t i nm a r i e t t a 公司发布的e a g l es p e e dr t d b m s 等,还有国内开 发的s u p e r i n f o 、s l r s 和r e a l m i s 等实时数据库产品。 在实际应用中,许多控制软件都采用专有的实时数掘库或历史数据库,这 些数掘库由控制软件的开发商自主开发。对这类数掘库的访问不像访问通用数 掘库那么容易,只能通过调用开发商提供的a p i 函数或其它些特殊方式。不 同开发商提供的a p i 函数是不一样的,包括它的函数名、需要传递的参数的类 型和个数等。这就带来和硬件驱动器开发类似的问题:要访问不同监控软件的 专有数据库,需要编写不同的代码,而且还要分别了解各个数据库提供的a p i 函 数的调用方法。这显然是十分繁琐的。采用0 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 服务 器通常是d a ( d a t a a c c e s s ) 数据访问服务器或h d a ( h i s t o r yd a t a a c c e s s ) 历史数据访问服务器,那么当用户要访问这个数据库时,只需要按照o p c 规范 的要求编写o p c 客户端程序,而无需了解该专有数据库特定的接口要求。更重 要的是这个o p c 客户端程序能够用来访问不同的数据库,只要这些数据库提供 了o p c 接口服务器。下面我们详细了解一下o p c 技术。 1 2o p c 标准简介 随着计算机技术在各个领域的不断深入与发展,现代工业生产规模的不断 扩大以及工艺过程复杂程度的提高,人们对工业自动化技术的要求也越来越高。 新型的工业自动控制系统正以标准的工业计算机软、硬件平台构成的集成系统 取代传统的封闭式系统。 1 9 9 5 年,由艾默生过程管理,微软和i n t e l l u t i o n 牵头开发了o p c 技术, 从而产生了一个在实时系统里高速通信的标准。 o p c 全称o l ef o rp r o c e s sc o n t r o l ( 用于过程控制的o l e ) ,是在微软的合 作下,由o p c 基金会组织倡导的,由全世界范围内自动化领域中处于领导地位 的厂商协作指定的自动化领域软件接口标准口1 它是基于微软的0 l e ( 现称为 h c t i v e x ) 、c o m ( c o m p o n e n to b j e c tm o d e l ) 和d c o m ( d i s t r i b u t e dc o m p o n e n t o b j e c tm o d e l ) 技术,由一系列用于过程控制和制造业自动化应用领域的标准 接口、属性以及方法组成。o p c 提供了一个单一的、一致的工业标准接口它 允许软件供应商将更多的精力集中到增加软件的功能上,而不是开发一系列专 有的硬件设备驱动程序,o p c 提供了一个环境。鼓励设备制造商投资开发他们 自己的o p c 服务器,而且同样的服务器能被所有的软件、h m i 、p l c 或d c s 供应 商所使用。这激励了设备制造商把他们开发工业网络方面所获得的知识转向o p c 服务器的开发上,从而保证了设备的性能达到最优。 o p t 的目标是开发出一个开放的、灵活的、即插即用的工业标准,使最终 用户对解决方案拥有很大的选择余地,同时大大减少硬件和软件供应商的开发 2 山东大学硕士学位论文 和维护的费用口1 。o p c 结构是客户机服务器模式。利用o p c 技术,异构计算环 境中的系统集成变得很简单【,】 图1 - 1o p c 技术的异构计算环境 从图中可以看出,在这种异构网络中,o p c 数据服务器负责对设备的访问, 客户通过标准的接口访问其中的数据。o p c 数据服务器向下与设备相连,向上 通过i n t r a n e t 或i n t e r n e t 与客户端相连。 1 3o p c 技术基础 o p c 规范在短短的几年里发展如此之快,得益于o p c 技术的内涵。它基于 m i c r o s o f t 的o l e c o m d c o m 技术,包括了自动化应用中使用的一整套标准的接 口、属性和方法。m i c r o s o f t 是o p c 基金组织的发起成员之一,它把它的 0 l e c o m d c o m 等新技术带给了o p c 基金组织。这些技术为工控领域里最重要的 数据交换环节提供了技术保证1 4 1 1 3 1c 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 对象以接口 山东大学硕士学位论文 的方式提供服务,图1 2 表明了c o m 组件、c o m 对象和c o m 接口三者之间的关 系 l 固圈 幽1 - 2 c o m 组件结构图 一个组件程序可以包含多个c o m 对象,每 个c o m 对象可以实现多个接口。当另外的组件 或普通程序( 即组件的客户程序) 调用组件的 功能时,它首先创建一个c o m 对象或者通过该 对象所实现的c o m 接口调用它所提供的服务 当所有的服务结束后如果客户程序不再需要 该c o m 对象,那么应该释放对象所占有的资 源,包括对象自身。 c o m 标准包括规范和实现两大部分,规范部分定义了组件和组件之间通信 的机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任 何语言都可以使用 5 1 。 c o m 主要是由对象和接口两部分组成。对象是某个类( c l a s s ) 的一个实例, 而类则是一组相关的数据和功能组合在一起的一个定义。使用对象的应用( 或 另一个对象) 称为客户,有时也称为对象的客户接口是一组公用功能定义l ”, 是一组逻辑上相关的函数集合,其函数称为接口成员函数。按照习惯,接口名 常以“i ”为前缀,例如“i u n k n o w n ”对象通过接口和成员函数为客户提供各 种形式的服务。 在国际上有很多先进的工业自动化软件都采用了c o m 技术。i n t e l l u t i o n 公司的f i x 软件就是一个典型的例子f i x 软件是由多个组件构成的,核心组 件是一个实时数据库,并根据需要装上其它的功能组件。这样就能很容易可靠 地把别的组件插进来,或者更换已有的组件,使之具有新的功能。 m i c 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 ,你的应用程序就可以在位置上达到分布性,从而满足你的客户和应用的 需求f ”。 在现在的操作系统中,各进程之间是相互屏蔽的。当一个客户进程需要和 另一个进程中的组件通讯时,它不能直接调用该进程,而是必须遵循操作系统 对进程间通讯所做的规定。c o m 使得这种通讯能够以一种完全透明的方式进行: 它截取从客户进程发来的调用并将其传送到另一进程的组件中去当客户进程 和组件位于不同的机器时,d c o m 仅仅只是用网络协议来代替本地进程之间的通 4 山东大学硕士学位论文 讯。无论是客户还是组件都不会知道连接它们的线路比以前长了许多。 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 的位置独立性极大地简化了将应用组件分布化的任务,使其能够达到 最合适的执行效果。例如,设想某个组件必须位于某台特定的机器上或某个特 定的位置,并且此应用有许多小组件,你可以通过将这些组件配置在同一个l a n 上,或者同一台机器上,甚至同一个进程中来减少网络的负载。当应用是由比 较少的大组件构成时,网络负载并不是闯题,此时你可以将组件放在速度快的 机器上,而不用去管这些机器到底在哪儿。 在设计和实现分布式应用系统时,一个普遍的问题就是为开发一个特定的 组件而选择语言以及工具的问题。语言选择是一个典型的在开发费用、可得到 的技术支持以及执行性能之间的折衷。作为c o m 的扩展,d c o m 具有语言独立性。 任何语言都可以用来创建c o m 组件,并且这些组件可以使用更多的语言和工具 j a v a ,m i c r o s o f tv i s u a lc + + ,m i c r o s o f tv i s u a lb a s i c ,d e l p h i 和p o w e r b u i l d e r 都能够和d c o m 很好地相互作用。 d c o m 通过给每个组件保持一个索引计数来管理组件的连接问题,这些组件 有可能是仅仅只连到一个客户上,也有可能被多个客户所共享当一个客户和 一个组件建立连接时,d c o m 就增加此组件的索引计数。同理,当客户释放连接 时,d c o m 就减少此组件的索引计数如果索引计数为零,组件就可以被释放了。 i 3 2c o m + 技术及w i n d o w sd n a c o m + 综合了c o m 、d c o m 和m t s ( m i c r o s o f tt r a n s a c t i o ns e r v e r ) 这些技 术要素,它把c o m 组件软件提升到应用层而不再是底层的软件结构,它通过操 作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节 留给操作系统,因此,c o m + 与操作系统的结合更加紧密 6 1 。 c o m + 的系统服务包括事务、队列、对象池、内存数据库、安全模型以及管 理特性等结合m t s 的多方面内容f 7 】。c o m + 以系统服务的形式为应用提供了许多 山东大学硕士学位论文 新特性,客户或者组件程序可以直接利用这些系统服务,避免了底层的细节处 理,减少开发成本,同时也减小了犯错误的可能性;同时,有一些系统服务包 装了较复杂的逻辑甚至是底层的系统资源管理,这简化了应用层的访问;另外, 使用系统服务增强了可靠性。 与c o m 相比,c o 卅与操作系统结合得更为紧密;与m t s 相比较,c o m + 简化 了分布式应用的开发。c o m + 已经成为基于微软平台分布式应用的重要技术基础。 c o m + 具有如下几个主要的特性: 1 ) 高性能、可伸缩。c o m + 提供了负载平衡和对象池,具有可管理、易于配置 等特性,较大地提高了分布式应用的性能和可伸缩性。 2 ) 松散的客户机服务器连接。c o m + 底层提供了队列组件服务,使客户和组件 有可能在不同的时间点上协同工作,c o m + 应用无需增加代码就可以获得这样的 特性。 3 ) 事件通知机制。新的事件机制使事件源和事件接收方实现事件功能更加灵 活,利用系统服务简化了事件模型,避免了c o m 可连接对象机制的琐碎细节。 从c o m 到m t s 是一个概念上的飞跃,c o m + 则完成并实现了事务处理功能。 4 ) 易于开发。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 操作系统平台的结合为企业应用提供了一套完整的解决方案【6 j 。 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 i n d o w sd n a 的核心是集成w e b 和客户机服务器计算模型。w i n d o w sd n a 描述 了企业级应用如何利用所有的分布式应用程序服务、分布式基础服务和w i n d o w s 平台的公共界面,以及很多有用的w e b 技术,它实际上就是种概念上的模型。 6 一山东大学硕士学位论文 第二章o p c 技术规范分析 o p c 接口标准的关键在于它提供了一种开放、高效的通信机制,它所关心 的是现场数据的存取方式而不是实际的数据类型,它给工控软件提供了一种一 致的存取现场设备数据的方法。 2 1 传统控制软件中存在的问题 在传统的控制系统中,智能设备之间及智能设备与控制系统软件之间的信 息共享是通过驱动程序来实现的。由于软件开发商对驱动程序的要求各不相同, 硬件供货商不可能为所有的软件开发商提供驱动程序,所以这项工作主要只能 由控制系统的软件开发商承担。因此,传统控制系统存在以下缺点: 1 ) 重复开发。所有的软件系统开发商必须为每个特定的硬件开发一个驱动 程序,这是一个大量的重复性工作 2 ) 协议不一致。软件开发商各自从自己的需要出发,采用不同的数据交换 协议开发驱动程序,从而使各开发商之间的驱动程序不一致,并且驱动程序并 不支持所有的硬件特性。 3 ) 可维护性差。由于驱动程序由软件开发者开发,硬件特征的变化将会使 有的驱动程序失效,为适应硬件特征的新变化,软件开发者必须为硬件开发新 的驱动程序。 4 ) 访问冲突一般来说,两个软件包不能同时访问同一设备,因为它们使 用不同的驱动程序。为了解决这一问题,硬件开发商试图以开发驱动程序的方 法来解决这一问题,但由于不同的客户采用不同的客户协议而无法实现。 控制系统软件开发商构造一个完整的控制系统需要大量的驱动程序,如果 再考虑兼容不同硬件厂商的产品,那么驱动程序的数量将更加庞大。 d d e 是一种简单的客户机服务器结构数据交换协议,主要用于w i n d o w s 应 用程序之间的信息传递。美国w o n d e r w a r e 公司的工业控制软件i n t o u c h 就使用 d d e 协议。与o p c 通讯方式相比,d d e 协议存在着一些缺点: 1 ) 对实时性要求高的工业控制软件来说,d d e 的通信速度显得比较慢【l l ; 2 ) 进行数据交换的两个应用程序都必须提供一个专用的d d e 连接,且接口 需一致,否则不能进行数据交换; 3 ) 在w i n d o w s 中占用系统资源较多; 山东大学硕士学位论文 4 ) 如果在很短的时间内进行大量的数据交换,有可能产生不良的后果 2 2o p c 技术的优点 随着组件技术的成熟和软件复用技术的发展,0 p c 接口标准带来的好处也 越柬越明显。o p c 具有以下几大优点: 1 ) 标准化 o p c 是专门为过程控制而设计的标准,它将访问现场设备的开发任务以标 准接口的形式统一的提供给用户,使得用户可以从硬件通信中解放出来,而专 注于监控软件的功能。在高级商业软件中,0 l e 自动化接口独立于c o m 用户化 接口,单独实现该接口即可适用于所有的客户应用程序,这样就实现了软件的 “即插即用” 2 ) 分布式 0 p c 规范的引入使得过程控制的软硬件配置具有分布性硬件制造商只要 开发出符合0 p c 规范的驱动程序( o p cd a ) ,就可以一劳永逸,因为这个驱动程 序可为所有支持0 p c 标准的客户软件所共用。这个系统可以很方便的进行修改 和升级,增加删除设备。 3 ) 开放性 对客户和生产商来说,0 p c 意味着开发性只要选择了0 p c 标准,就可以 很容易的选择设备或软件,系统集成变得非常容易。大量应用程序使用户有更 大的选择余地,可以更有效、更迅速地构造满足其需要的集成自动化系统。 4 ) 组件化 0 p c 规范并不依赖任何编程语言,它只是规定了二进制级的标准。任何语 言只要有足够的数据表达能力就可以用于o p c 组件的开发0 p c 接口具有不变 性,但接口不变不意味着不发展。随着应用系统和组件程序的发展,接口也要 发展,这类似于类的继承 5 ) 实时性 0 p c 服务器可以设置为本地或远程,与传统的动态数据交换d d e 相比传送 的数据量更大、速率更快。例如:本地服务器每秒可进行1 0 0 0 次数据交换;远 程服务器每秒可进行1 0 0 次数据交换;多个数据项可同时交换。 0 p c 标准的关键在于它提供了一种开放、高效的通信机制,为监控软件提 供了一种致的存取现场设备数据的方法。 8 山东大学硕士学位论文 对于硬件制造商,o p c 减少了其驱动程序的开发时间,大大地减少了开发 费用,使其专心于硬件的制造,从而保证系统的性能达到最优。对于系统软件 供应商来说,只需要具有一个标准的o p c 客户端便可以通过o p c 服务器访问所 有的设备,大大减少了软件的开发和维护成本,使其能聚焦于先进报警处理和 统计分析等增值功能服务。用户则拥有了更大的选择软件与设备的余地,降低 了系统集成的费用和难度,可以更简单、方便地实现控制层数掘的存取,而且 通过标准接口能向范围更广的应用程序提供服务。 2 3o 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 服务器程序或客户程序【4 】。 :t 翻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 rd l l ) 。 以方便自动化接口和定制接口之间的转换,使采用自动化接口的客户程序也可 以访问只实现了定制接口的服务器【9 i o p c 规范定义了c o m 接口,规定了服务器程序和客户程序通过接口交互的标 准,但并没有说明具体实现的方法。o p c 服务器供应商必须根掘各自硬件特性实 现这些接口的成员函数不论定制接口还是自动化接口都可分为必选接口和可 选接e l 。必选接口包括了客户程序与服务器进行交互的基本功能,因此必须实现 可选接口则规定了一些额外的高级功能,可根据需要有选择地实现。客户程序应 9 山东大学硕士学位论文 通过查询接口的方式来判断服务器程序是否实现了可选接口的功能。 2 4o 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 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 历史数据存取规范和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 安全规范、o p cx m l 数据存取规范。 规范的组成结构如下图所示: o p c o v e r v i e w o p c x d a t a c 銎 p i c c o m l 产咖i a c c c s ! 一0 p cs e c u r i l y 1 a u t o m a t i o n;o p c a l a r m sa n de v e n t s i n t e r f a c e i c u s t o mi n t e r f a c e j o p cd a t a a c c c s s o p ca l a n n sa n de v e n t s o p ch i s t o r i e a l 广i c u s t o mi n t e r f a c ei a u t o m 舡i o i ll m e r f a e e d a t aa c c e s s 一0 p c b a r c h i c u s t o mi n t e r f a c e c u s t o m o p cd a t aa c c c s s l i n t e r f a c e a u t o m a t i o n o p ch i s t o r i c a l li n t e r f a c en 6 o p c b a t c h a 孟赢品i 忑胁 a u t o m a t i o n :j 啦咆! ! j 图2 - 2o p c 规范组成结构图 下面具体介绍一下o p c 数据存取规范和历史数据存取规范: 1 ) o p c 数据存取规范 o p c 数据存取( d a t aa c c e s s ) 规范定义了o p c 服务器中一组c o m 对象及其接 口,并规定了客户程序对服务器程序进行数据存取时需要遵循的标准。 在数据存取规范中,一个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 1 0 l 。 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 服务器的 接1 :3 与o p c 对象进行通信,对数据源进行存取。数据源可以是现场的i o 设备, o 山东大学硕士学位论文 也可以是其他应用程序。服务器对象内部封装了与i o 控制设备通讯及操作的 豳2 - 3 0 p c d a 中的对象 g r o u p ) 。公共组可以被多个客户共享, 中都可以定义一个或多个0 p c 项。 具体实现过程。 o p c 组对象维护有关其自身的信息, 提供包容o p c 项的机制并管理o p c 项,它 提供了客户程序组织数据的手段。例如, 一个组中可以包括一个窗口中所有的数 据项,客户程序和组中的项之间可以建立 基于“订阅”的连接。有两种类型的组: 公共组( p u b l i cg r o u p ) 和局域组( l o c a l 而局域组只能被一个客户使用。每个组 o p c 项代表了与服务器中的数据连接。从自定义接口( c u s t o mi 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 a n t ,品质的类型是s h o r t 。数值代表数据项的值,品质代表数 值的可信度,时间戳代表数据的存取时间。 o p c 的数据传输机制主要分为同步读写和异步读写两种。同步数据传输是 指客户直接调用o p c 服务器的l o p c s y n c l o 接口的同步读写函数,在发出数据请 求后一直等待,直到数据返回。这种方法虽然简单可靠,但当o p c 服务器采集 现场数据的时间很长时,客户等待的时间就会很长,降低了客户程序的效率。 异步数据传输是指客户在发出数据请求后,可立即返回进行其它处理,o p c 服务器在得到数据请求后,访问设备,读写数据后主动把采集的结果通知客户 端。这种传输机制的优点是:可以避免空等待,提高了客户程序的效率 o p c 的异步数据传输又分为两种方式:异步读写和订阅。在订阅方式下, 客户提出一次订阅请求,服务器将周期性采集数据,传给客户,直到客户取消 订阅为止川。如果客户程序想一直监视某些变量,则使用订阅方式较好在异 步读写方式下,客户提出一次请求,服务器相应进行一次数据读写,然后通知 客户,这次操作结束。对于异步读写操作,服务器只是对要读写的组和项作一 下标记,调用后就返回。当服务器读写完成后,主动把数据通知客户端。该过 程需要调用服务器端i o p c a s y n c l 0 0 ,i d a t a o b j e c t ( ) 接口和o p c 客户端的 i a d v i s e s i n k 0 接口。 山东大学硕士学位论文 o p c 标准规定了s e r v e r 和g r o u p 两种对象应该支持的接口。下面是o p c d a 2 0 3 标准中的接口定义川j 。 i u n k n o w n i o “x h m n l o p ( :b c r v e r 1 0 脚e r p u b l i c o r o u p s o f i 湘m c s e a d 出般酃e 】 胁i s t f i j e l i c b m 蜊p 秭n t ( x 卿b i 【科 图2 - 4 标准的o p cs e r v e r 对象和g r o u p 对象 o p cs e r v e r 对象有五个接口,其中四个是必须的 i u n k :c 伽标准接口定义,包括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 m 处理错误字符串和本地化语言 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 n e r :支持连接点,客户可在s e r v e r 关闭时获得通知 i o p c b r o w s e s e r v e r a d d r e s s s p a c e :使客户获得s e r v e r 包含的所有项的名字 o p cg r o u p 对象有七个接口,其中六个是必须的当客户创建组时,获得 组的接口由于任何一个接口都可以从同一对象上的其它任意接

温馨提示

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

评论

0/150

提交评论