(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf_第1页
(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf_第2页
(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf_第3页
(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf_第4页
(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(机械制造及其自动化专业论文)基于scada软件的opc数据平台的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 计算机技术和网络技术的不断发展给工业过程控制领域带来了巨大的变革。 网络技术应用于企业生产过程的各个环节,构建了企业从生产过程控制到企业信 息管理这一整套信息化系统,极大的提高了企业的生产效率。由于目前自动化系 统多数均为封闭系统,这就使得系统集成变得越来越复杂与困难。针对这种现状, 采用一套统一的,用于不同系统之间通讯的标准成为系统集成需要解决的首要问 题。 0 p c 是工业过程控制领域的一个通用标准。它正是在这一背景下产生的。 它是微软公司的对象链接和嵌入技术在过程控制方面的应用,为工业自动化软件 面向对象的开发提供一项统一的标准。它很好地解决了应用软件之间相互通讯的 问题,减少了系统集成过程中的重复工作,代表着控制系统通信标准的发展方向。 本文在对c o m 技术理解的基础上,深入分析了s c a d a 软件的底层通讯机 制,并提出了在现有接口条件下,实现远程数据采集的一套实现方案。解决了现 有s c a d a 软件针对远程设备的访问问题。此外,论文还详细分析了0 p cd a c a a c 嘲s 规范,设计并实现了规范中提出的接口及对象,并针对o p c 服务器的注 册,内部数据的操作,线程之间的同步等问题进行了深入细致的研究,提出了解 决这一系列问题的详细方法,并且针对o p c 服务器同s c a d a 软件之间通讯的 问题,给出了一套解决方案,最终为s c a d a 软件实现了一个符合规范的o p c 服务器,完成一个以s c a d a 软件为基础的分布式环境的数据平台,很好的解决 了分布式环境下的系统集成问题。 关键字数据平台;o p c ;c o m ;s c a d a 软件 北京工业大学工学硕士学位论文 a b s t r a c t t h ed e v e l o p i n e n to ft e c l l n 0 1 0 9 y 肌c h 鹤c o m p u t e r 趾dh l t e r n e tm a k e st h eg r c a t c h 矾g eh a p p e ni l ln l ef i e l do fi n d l l s 蚵p r o c 鼯sc o n 加1 n e 咐o r 玉【t e c l l l l o l o g y 讯d d y u s e di n 钾e r ) rp a r to fp r o d u c t i o np r o c 鼯sh f o 硼d e d 趾i i l f b 咖鲥o n a ls y s t e m 舶m p r o c 鼯sc o n 仃o lt oi n f 0 衄a t i o nm a n a g 伽n e n ta n dh e n c eh 船乎蜘n yi n c r e 船e d 也e p r o d u c t i o ne 伍d 锄哆c 饥吐y ,s i n c em o s ta u t o m 撕cs y s t e l sa f cc l o s e ds y s t e i i l s ,i t m a :k e ss y s t c i n si m e 星脚o nm o r cc o m p l c xa i l dd i f f i c i l l t s oau n i f i e ds 协n d a r dw h j c h a d a p t st l l ec o m m l l n i c a t i o no fd i 岱棚ts y s t e m si sn l ep r i n c i p a li s 肌e o p cs p e c i f i c a t i o ni sal 】n i v e r s a ls t a i l d a r di ni n d u s 竹yp r o c sc 0 砷1 ,w h i c h c 锄eu p 瑚d 盯m eb a c k 掣d u n d ni st h ea p p l i c a t i o nf o ro l ei np r o c e s sc o n 缸d l 锄d o 彘r sa 咖i 丘c ds t a i l d a r df o rn l eo b j e c to r i 吼t e dp r 0 龋珊血go fi n d l l s 仃i a la u t o m a t i c s o f t w a o p ci sag o o ds o l u t i o nf 缸c c 幔m 试c a t i o nb 就w e e nm m u a la p p l i c a t i o i l s , w h i c hn l i n i m i z en l ed u p l i c a 矗o no fe 丘b r ti ns y s t 锄i m e g 棚o n 锄dr 叩r e s e l l t st h e d e v e l o p m e md i r e c 吐o nf o rf l | t u r ec o m m i l i l i c a t i o ns t a n ( 枷i i lc o n 打0 1 1 i i l gs y s t 锄 1 拉sp 印c rh 腿a n a l y z c d 也eb o t t a mc 0 珊叭l i l i c a t i o nm e c h a n i s mo fs c a d a s o r w a r eb 勰e do nc o m 觚dp u tf o r w a r das e to f 砌i z a b l esc :h 锄et 0c a r r yo u tt h e d a 妇c o n e c t i o n 丘d ml o n g - r a r i g c 缸i l i 够h c e ,i ts o l u t 鼯也ec u r r 锄ts c a d a s o 脚a 咒a c c 鼯si s 肌ei nl o n g 一啪g ef h d l i 姊。也e 刑i s e ,m ep a p e rh a s 锄a l y z e do p c d a 诅a c c 器ss p e c i f i c a t i o n d 懿i 印c d 弛dr e a l i z c dt h e 血曲c 岱锄do b j e c t s 证v o l v e di n f h es p e c i 丘c a t i 吼nh 硒s t i l d i c d 柚ds o l v e d 蚴yi s 飘璐跚c h 鹤t h e 百s 删o f 0 p cs 血co p 啪t i o no f i n t 啪丑1d a t a 锄dm c1 协e a ds y i l c h i d n i z a t i o n ha d d i t i o n , as c h 锄ew h ic :hs o l v e sm ec o m 【m n i c a 6 0 ni s s u eb 咖嘲o p cs e r v e r 锄ds c a d a s o 脚a r eh 越b e 既p 潞c i l t c dt or e a l i z eao p cs c r v 盯白rs c a d a 脚a r ca c c o r d i n g w i t h 山es p e c i f i 训o n f i n a l l y ad i s 仃i b u t i n ge n v i r o 姗e n t a l 她p l 施咖h 鹪b e e n 丘n i s h e db 勰c do ns c a d as o f 时a r c ,w h i c hh a s l v e dt h es y s t 锄缸e 伊a t i o ni n d i s 仃i b u t i i l g 即啊r 0 衄胁t k e yw o r d sd a t ap l a t f b r i n ;o p c ;c o m ;s c a d ss o 脚a r c 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:盘蒌日期:垄丝2 ,兰。z f 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名: 盘盏 导师签名 第1 章绪论 1 1 课题背景及意义 第1 章绪论 随着通信和网络技术的发展,工业控制领域中分布式环境下的数据通讯已经 成为研究的一个热点。一个企业内部的控制系统通常可分为直接控制层、操作监 控层、生产管理层和决策管理层四层。企业内部不同的层级之间,同层级的不同 系统之间采用的操作系统和网络通讯协议通常千差万别。这就造成了控制系统之 间,控制系统同决策管理层软件之间缺乏有效统一的通讯接口。这种情况,一方 面造成了企业中各套系统之间数据无法共享,形成一个个“信息孤岛”。另一方 面系统升级或更换,也会使得新旧系统之间无法兼容。从而为企业控制系统的实 施造成极大的不便。 o p c ( 0 l e 矗) rp r o 嘲sc 0 n 仃0 1 ) 是0 p c 基金会制定的一套过程控制软件的 互操作性规范。它作为系统之间的一种标准访问机制,能够实现不同系统之间的 数据访问。这一机制,能够很好的解决企业中存在的“信息孤岛”现象,满足工 控领域对系统开放性的要求。 本文是以北京创联天工科技发展有限公司的天工组态这一组态软件为平台 所完成的成钢梅塞尔气体产品有限公司控制系统改造这一项目为背景。旨在通过 组态软件同o p c 技术实现多系统的集成。本文在深入阐述o p c 技术的基础上, 着重研究了o p c 服务器的设计以及以o p c 技术为核心的系统集成。 1 2 分布式控制系统发展及现状 分布式计算机控制系统【l 】( d i s 劬u t e dc o m p u t e rc o n 仃d ls 舛鼬,d c s ) 产生 于上世纪7 0 年代后期。它采用了分散控制,集中管理的控制策略,分层分布式 的控制方式。因此,同一般的计算机控制系统相比,它具有效率高、实时性好、 可靠性高、具有很好的灵活性和可扩展性等特点,在工业控制领域得到了广泛的 应用。 d c s 从诞生到现在,已经历了四代。第一代d c s ,产生于上世纪7 0 年代末, 是在原来采用中小规模集成电路形成的直接数字控制器的自控系统和计算机技 术的基础上,开发出来的具有集中显示、分散操作特征的控制系统。这一代产品 在技术上有明显的局限性,通常采用8 位的微处理器。第二代d c s ,产生于上 世纪8 0 年代中期,它在原有产品的基础上,进一步提高了可靠性,其特点采用 模块化、标准化设计,数据通信向标准化迁移,板级模块化,单元结构化,使之 北京工业大学工学硕士学位论文 具有更强的适应性和可扩展性。控制功能更加完善,它能实现过程控制、数据采 集、顺序控制和批量控制功能。第三代d c s ,产生于上世纪9 0 年代中期,以 f o x b o m 公司的姒s 喇邸的出现为代表,这一代产品的特点是开发了高一层次 的信息管理系统,实现了开放式的系统通信。 现今d c s 已经发展到第四代。d c s 向着综合化、开放化的方向发展。它要 求加强各种设备之间的通信能力,以便构成大的控制系统。因此当今d c s 总的 发展趋势为:各制造厂商都在系统的开放性上下功夫,力求使自己的d c s 与其 他厂商的产品容易联网;大力发展和完善d c s 的通信功能,并将生产过程控制 系统与工厂管理系统联结在一起,实现管控一体的产品;高度重视系统的可靠性: 引进各种先进控制理论,以提高系统的控制性能。因此,当今的d c s 系统已经 不是一个以控制功能为主的系统,而是一个充分发挥信息管理功能的综合平台系 统,充分体现信息化和集成化。 1 3 s c a d a 软件简介 s c a d a ( s u p e i s o r y c o n t n d l a n d d a t a a c q u i s i t i o n ) 软件,即数据采集与监视控 制软件,国内通常称为组态软件【2 】。它是伴随着分布式控制系统的出现而引入到 工业控制系统的。组态的含义是使用软件工具对计算机以及软件的各种资源进行 配置( 包括进行对象的定义、制作和编辑,并设定其状态特征属性参数) ,达到 使计算机或软件按照预先设置,自动执行特定任务,满足使用者要求的目的。组 态软件包括分布式数据库系统、控制系统以及其它子系统。采用模块化设计,具 有面向过程的特征,且多基于图形方式。因此对一般的应用用户,不需要程序语 言编程,只需组态就可以生成适合自己的应用系统。 目前世界上的组态软件有近百种之多。国际上知名的工控组态软件有美国商 业组态软件公司w b n d c n 唧公司的h t o u c h 、i n t d l l n i o n 公司的f 、n e m as o f t 公司的p a r a g o n 、通用电气公司的c i l n p h c i t y 、德国西门子公司的w i i l c c ,以色 列p cs o r 公司的w i z c o 等。国内的组态软件起步也比较早,目前实际应用中运 行可靠的有北京昆仑通态自动化软件科技有限公司的m c g s 、北京三维力控科技 有限公司的力控、北京亚控科技发展有限公司的组态王以及台湾研华的g e n i e 等。本文使用的天工组态软件属于通用类型的组态软件。该软件以前主要用于化 工领域,现在逐渐在向其它的领域扩展,它具有支持设备丰富,运行稳定可靠的 优点。 1 4o p c 技术概述 0 p c 【3 】( o l e 矗) rp r o c 岛sc o n 仃0 1 ) 是面向过程控制设计的o l e 技术。它为工 第1 章绪论 业控制领域提供了一个支持分布式应用和异构环境下的软件无缝集成的一个标 准。 o p c 是通过开放标准实现的开放式连接。它满足了自动控制中对这开放式连 接的需求。它所实现的互操作性是通过创建和维持一个开放的标准规范来确保 的。 基于这些基本的标准和当今计算市场的通用技术,0 p c 基金会( o p c f o 曲d a t i o n ,o p c f ) 改编和创建了用以满足工业中特定需求的各种规范。同时, o p c 也将继续发展出新的规范来满足重工业不断增长的需要并且会改编现有标 准来适应新的技术。标准最初来自多个世界上处于领导地位的自动化供应商和微 软的协作。基于微软的o l ec o m 和d c o m 技术,定义了用于控制和制造的自 动化程序的标准对象、接口和方法以提升交互能力。 1 4 1o p c 的历史 早期的o p c 标准【4 】是由提供工业制造软件的5 家公司所组成的0 p c 特别 工作小组所开发的。f i s h 昏r o s e m e t ,i n t e l l l n i ,r o c k w c ns o 细a r e ,h t u i d v c 1 鼢n o l o g y 以及o p t 0 2 2 早在1 9 9 5 年开发了原始的o p c 标准,微软同时作为 技术顾问给予了支持。 0 p c 基金会于1 9 9 6 年9 月2 4 日在美国达拉斯举行了第一次理事会,并在 同年1 0 月7 日在美国芝加哥举行的第一次全体大会上宣告正式成立。之后为了 普及和进一步改进于1 9 9 6 年8 月完成的o p c 数据访问标准版本1 o ,开始了 全球范围的活动。现在的o p c 基金会的理事会是由f i s h 盯r o s e m e m ,h 0 n e y w e l l , i n t e l h 撕o n ,r o d 州e l l s o f t w a 豫,n a t i o n a l 蛔协m l e m 以及欧洲代表的s i e m 铷和 远东代表的东芝所组成。 在日本,为响应以美国为中心的国际标准活动,由1 1 家公司作为发起人, 于1 9 9 6 年6 月开始基金会成立的准备活动,并于1 9 9 6 年1 0 月1 7 日正式成 立了日本o p c 协会。 几乎与此同时欧洲o p c 协会( o p c e ) 也正式成立。在中国,也由5 家公 司作为发起人于2 0 0 1 年1 2 月正式成立了中国o p c 促进会( o p c c ) 。0 p c 基 金会从成立开始会员逐年增加,到目前为止在全球范围内已有近3 0 0 家公司加 入了这个国际标准组织。同时由控制设备厂商和控制软件供应商提供的o p c 产 品也日益增加,目前已有6 0 0 种以上的o p c 服务器产品和o p c 应用程序产品 出现在由o p c 基金会发行的0 p c 产品目录上。 北京r 业大学工学硕士学位论文 1 4 2o p c 规范及其现状 现行和正在制定的0 p c 规范有以下九个【5 】: ( 1 ) o p cd a t aa c c 髓s该规范是最早的o p c 规范,它主要用于从p l c s , d c s s 和其他的控制设备获取数据提供给h m i s 软件或者其他的0 p c 客户端。其 最新的发行版本为o p cd g c aa c c e s s3 o 版。同早期版本相比,它的优势在于增 强的浏览能力和同o p c l - d a 规范协作的能力。 ( 2 ) o p ca l a r m s & e v 姐拓该规范不同于o p cd a 诅a c c 器s 规范提供的连续 数据的访问,它提供了必要时的报警和事件通知能力。具体内容包括过程报警, 操作员行为通知,报文消息,和跟踪审核消息。该规范的当前版本为o p c a l 锄s & e v e i l t s1 1 0 版。 ( 3 ) o p cb a t c h 该规范支持了用于批处理的专门需求的o p c 基本原理。它 提供了用于设备性能( 符合s 8 8 0 1 标准,该标准用于柔性制造和批处理控制) 和当前操作环境的交换接口。该规范的当前版本为o p c b a t c h 2 0 0 版。 ( 4 ) o p cd a t ae x c h a g e 该规范提供了通过以太网总线通讯实现服务器到 服务器的数据交换能力。它不仅提供了多厂商之间设备或软件的交互协作能力, 还增加了远程配置、诊断和监视管理服务。该规范的当前版本为o p cd a 诅 e x c h a n g e1 o o 版 ( 5 ) o p c i s t o r i c a ld a t aa c c e s s 该规范提供了访问历史数据的能力。它能 以统一的风格返回从简单系列的数据日志系统到复杂的s c a d a 系统。该规范的 当前版本为o p cd a t ae x c h a i l g e1 o o 版 ( 6 ) o p cs e c u r i t y 所有的0 p c 服务器提供的信息对于一个企业来说都是 非常重要的。而不正确的更新,对于一个企业可能造成的后果将是非常严重的。 该规范提供了如何控制客户端对服务器的访问,以保护敏感信息和阻止未授权用 户对过程控制参数的修改。该规范的当前版本为0 p cs e c l l r i t y1 0 0 版 ( 7 ) o p c 【l - d a 该规范对于使用订l 暴露现场层数据提供了灵活、稳 定的原则和格式。它利用了m i c r o s o f t 和其它公司在s o a p ( s i i i l p l e o 蜘e c t a c c 船s p r o t o c 0 1 ,简单对象访问协议) 和网络服务方面的工作成果。该规范正在制定中。 ( 8 ) o p cc o m p i e xd a t a该规范允许服务器暴露和描述更为复杂的数据类 型,如二进制结构和) 。订l 文档等。它需要和o p cd a t aa c c e s s 规范或者o p c “l d a 规范协同使用。该规范正在制定中。 ( 9 ) o p cc o 蛐a n d s 该规范给o p c 客户端和服务器端识别、发送和监视 在设备上执行的控制命令的接口。该规范正在制定中。 第l 章绪论 1 4 3 o p c 规范的适用范围 尽管o p c 最早是被设计用于访问网络服务器的数据,0 p c 接口同样可被用 于许多应用程序当中,它可以被s c a d a 软件或者d c s 系统用来从物理设备获 取最底层的原始数据。也可以被其它的程序用来从s c a d a 软件或者d c s 系统 中获取数据。它的构架使得它可以很容易的用来构建客户端服务器( c n 衄t ,s e r v c s ) 结构的系统,服务器和客户端之间可以通过o p c 实现多对多的访问,从而 使得不同厂商之间的设备实现兼容。 由于o p c 是基于c 0 m 技术而来,可以支持多种网络协议,因此可以将o p c 服务器和客户端从物理上分隔开来,分布于网络中的多个节点当中。实际上, o p c 的设计目的就是从网络节点上获取数据。o p c 客户端与服务器的关系图如 图1 1 所示。 o p cs c m 图1 1o p c 客户端月务器关系图 f i g i 】睇1 l o p cc l i t ,s e r v e rr e k i o n s h i p 1 5 本课题的主要研究内容 课题以成都成钢梅塞尔气体产品有限公司气体计量系统改造项目为背景。根 据用户需要,为避免公司在向客户提供工业气体时,因为气体计量的误差而带来 不必要的损失,需要对原计量系统进行升级改造。此外,还需要实现将工业现场 的霍尼韦尔的d c s 系统,以及一个远程计量分站的数据汇总起来进行集中管理, 并将生产数据汇总到管理层的计算机中。 系统总体结构如图l - 2 所示。 北京t 业大学工学硕士学位论文 图l 一2 系统总体结构图 f i g u 坤l - 2s y s t 唧c 咖劬m c d o nf i g u 咒 针对远程计量分站,采用m o d e m 通过电话线来进行数据的采集。对于控制 系统和管理层之间的连接,采用0 p c 标准来实现,通过为组态软件设计并实现 一个o p c 服务器,从而大大提高组态软件原有系统的开放性,将组态软件改造 为一个面向管理层和其它控制系统的现场数据的实时数据平台。 总体上来说,本文的主要研究内容为:利用c 0 m 技术,为组态软件的底层 数据采集接口,实现一个基于m o d b l l s 总线的远程数据采集模块,解决组态软件 的数据获取问题;在学习o p c 规范的基础上,设计并实现o p c 服务器。 第2 章0 p c 技术 第2 章0 p c 技术 本文采用的o p c 规范是o p cd a t aa c c 鼯ss p e c i 丘c a t i 2 0 5 a ,o p c 规范是 o p c 服务器必须遵循的准则。对o p c 规范的分析可以为o p c 服务器的设计与实 现确定具体的思路。本章将针对0 p c 数据访问规范,深入分析其接口规范,初 步探讨o p c 服务器的具体实现。 2 1c o m 技术特点 o p c 的基础是m i c f o s o f t 公司的c o m d c o m 技术,因此,在深入探讨o p c 规范之前,对c o m 技术做一个简单的介绍是必要的。 c o m ( c o m p o n a n to b j e c tm o d e ) 却组件对象模型。它是一种以组件为发布 单元的软件开发模型,这种模型为软件组件的交互提供了一种统一的方式。该技 术是h 缸c r 0 f t 公司在w i n d o w s 3 1 中为支持复合文档而使用的0 l e 技术的基础 上发展而来的,经历了o l e 2 、c o m 、a c t i v e x 、d c o m 和c o m + 等几个阶段, 是分布式软件开发的一个比较完整的平台。 c o m 技术的最主要的概念为组件、对象、接口和c o m 库。 2 1 1c o m 组件 c o m 组件是c o m 的基本载体,是用于发布的二进制模块。它封装了c o m 类。c o m 类是c 0 m 接口的具体实现,它是一个抽象的概念,是以二进制c o m 组件形式存在的类。 按照c o m 机制,基于c 0 m 的软件组件可分为服务器和客户端,两者协同 工作完成软件的具体功能,服务器组件是包含c o m 组件及其类厂的程序,它通 过c o m 组件提供具体的服务。类厂则是一种特殊的c o m 对象,其存在的唯一 目的就是为一个特定的c o m 类制造一个c o m 对象。c o m 客户端则是使用c o m 服务器提供的c 0 m 组件的应用程序。c o m 的服务器分为,进程外服务器 ( o u t - 0 f 二p r o c 髓ss e r v 盯) 和进程内服务器( h 1 p r o c 姻ss e r v e r ) 两种。进程外服务 器可单独执行,进程内服务器必须在c o m 的客户组件或者其代理( 用于远程调 用) 的进程中执行。 2 1 2c o m 对象 c o m 对象是c o m 类的一个运行时实例。最终由它来实现c o m 类定义的具 北京丁业大学工学硕= :学位论文 体功能。c o m 将c 0 m 对象定义为“智能数据”,即对象知道如何操作和管理自 身数据。对象能够被一个或者多个客户所创建和使用。通过引用记数( r e 衙c i l c e c o u m ) ,c o m 对象实现了对自身生命周期的管理。对象是一组c o m 接口实现 的一个具体实例。对象只能通过这组接口于客户通讯。 对象由一个1 2 8 位的g u i d ( g 1 0 b a lu n i q u ei d e n t i 丘e r ,全局唯一标识符) 唯 一标识,这样客户端在使用软件商对提供了同一c 0 m 接口的不同c o m 对象时, 就不会发生冲突。 2 1 3c o m 接口 接口是逻辑上相关的一组接口函数,形成一个功能上的逻辑集合。它是c o m 服务器提供者和c 0 m 客户端开发者之间的协议。接口只定义了c o m 对象所能 表现的外部特性,不定义任何具体的实现。 c o m 服务器承诺并实现这些接口,c o m 客户端则只需要按照接口规范使用 这些接口。客户端和服务器只能通过这些接口进行交互。微软制定的i u n k i l o w n 接口是服务器提供者、客户端开发者和微软三方之间的协议。所有的c o m 接口 必须从1 1 l n l 【i l o w n 接口继承,c o m 组件也必须实现i u r d m o w l l 接口。i u n l d l o w l l 接口具体定义了与c o m 对象动态发现和生存期管理相关的三个关键的函数。 q u e r y i l l t e r f a c e 、a d d r e f 和r e l e a s e 。 关于接口需要注意的是:每一个接口都被g u d 唯一标识,该g u d 被称为 i d ( i m e r f a c e i d e l l n 丘盯,接口标识符) ,不会出现两个接口共用一个i d 的情况。 接口一经发布便不可更改,通过增加或者改变接口函数实现对接口功能的扩展相 当于产生了一个新的接口,必须分配其特有的i d 。客户端只能通过c o m 机制 获取接口指针来操作接口。通过接口指针调用c o m 类的虚函数表的接口函数指 针来使用接口所声明的功能。 2 1 4c o m 库 c o m 库是c o m 自己提供的一些系统级的代码,它被用来维护c o m 机制的 正常运行。c o m 库的内容包括:提供客户用于创建服务器的a p i 函数:如 c o c r e a t e h l s t 锄c e 、c o g e t c l 船s o b j e c t 等;提供定位服务,借助该服务c o m 通过 类标识定位具体的服务器的位置;提供透明的远程调用服务;提供标准的内存分 配机制。 c o m 是一种强有力的系统集成技术,可以将不同开发者的软件无缝连接起 来,很方便的解决了软件复用,互操作等基本问题。c o m 组件是一个二进制标 准,它与具体的开发语言无关,可以使用c c + + 、v b 或者j a v a 等语言来进行开 第2 苹o p c 技术 发。c o m 组件在二进制级别上的维护和重用使得在应用程序中可以很容易的实 现c o m 组件的热插拔。基于r p c 的d c o m ( d i s 缸协u t ec o m p o n e n to b j e c tm o d c , 分布式组件对象模型) 使得c o m 可以跨进程、跨机器的应用,实现了c o m 在 网络中的动态激活和位置透明性。c o m 还提供了对安全性、多线程并发管理、 连接点事件、事务处理的支持。 2 2o p cd a t aa c c e s s 规范 基于m i c r o s o f 【公司c o m 技术的o p c 规范,它所定义的仅仅是一组c o m 接口,并没有具体实现这一组接口。它指定了这组接口的行为,它们是期望提供 给使用0 p c 服务器的客户端程序的具体操作。 o p cd a 诅a c c 部s 规范是o p c 所有规范中应用最为广泛的一个。实际上o p c 服务器的核心是数据访问服务器,其他类型的0 p c 服务器都是在数据访问服务 器的基础上通过增加对象、扩展接口而来的。o p cd a t aa c c 髑s 规范主要用于从 p l c s 、d c s s 获取实时数据并提供给具有0 p c 客户端的应用程序。 o p cd a t a a c c 鼯s 规范规定,一个o p c 的数据访问服务器包括:服务器对象 ( o p cs e r v 曲、组对象( 0 p cg r o u p ) 和点对象( o p cn e m ) 。o p c 服务器对象维护有 关服务器的信息并作为o p c 组对象的容器,可动态地创建或释放组对象,而o p c 组对象维护有关其自身的信息,提供包容o p c 项的机制,并管理o p c 项。 2 2 1地址空间 地址空间是0 p c 组对象和点对象集合的结构。 依照规范规定,服务器的地址空间由服务器自己进行配置和管理,对于一个 已配置完备的o p c 服务器而言,其地址空间是固定不变的,它通过口e 陪i s t l 7 i l e 接口永久保存。o p c 客户端仅仅定义和操作服务器地址空间中它所需要的部分 内容。客户端的操作的组对象和点对象依据客户端的需要可随时变更,其地址空 间的配置信息由客户端自行保存。o p c 服务器提供了接口,以方便客户端定义、 管理或者重新创建它所需要的0 p c 组对象。 服务器的地址空间同客户端所操作的地址空间的区别在于:服务器的地址空 间完全固定;对于所有o p c 客户端而言服务器的地址空间是完全公开的;在服 务器启动时,其地址空间可以通过保存的信息自动配置;在服务器空闲时,服务 器可以依据客户端程序当前的请求自动配置其地址空间。 北京工业大学工学硕士学位论文 2 2 20 p cd a t aa c c e s s 规范接口分析 与o p c 数据访问有关的接口有三种:0 p c 通用接口( o p cc o 蚴o n d e 丘i l i t i o 船a n dh e r f k e ) 、0 p c 自定义接口( o p cd a 诅a c c e s sc 1 1 s t o n lh l t e l l e ) 、 o p c 自动化接口( o p cd 酏l a c c 铬sa u t o m a t i o ni n t e 嘲c e ) 。o p cd a t a a c c 鼯s 规范 详细定义了o p c 自定义接口和o p c 自动化接口。0 p cc o m m o n1 0 0 规范中定 义了o p c 通用接口。 通用接口是所有o p c 家族共用的一组接口,它提供了一些一般性的功能, 是每个o p c 服务器必须实现的接口。自定义接口是一个o p c 数据访问服务器的 核心,由它提供给客户端该服务器的所有功能,是每个o p c 服务器必须实现的 接口。自动化接口是在自定义接口的基础上增加了一层封装,使得其它的一些编 程语言如j a v a 、v b 、d e l p 撕能够使用自定义接口,以方便用户的使用。自定义 接口和自动化接口的关系如图2 1 所示。 图2 - 1 典型o p c 构架图 f i g u 2 l 聊i c a lo p ca r c h i t c c t u 把 c + + 程序可以直接使用自定义接口。由于使用指针的关系,、 a v a 等语言 不能直接使用自定义接口,必须通过自动化接口( i d i s p a t c h ) 来使用作为c o m 组件的o p c 服务器。自动化封装器( a u t o m a t i o n 撇印p e r ) 就是实现自动化接口 的一个c o m 组件,它在客户端进程内使用,通过标准的c o m d c o m 同底层的 自定义接口进行通讯。 o p c 基金会免费提供了一个自动化接口封装器( 0 p c d 从u t o d 1 1 ) 。因此, 实现一个o p c 服务器的关键在于实现底层的自定义接口。 2 2 2 1o p c 通用接口0 p c 通用接口【7 】包含i o p c s e r v 刚s t 、i o p c c o m m o n 、 i o p c s h u t d o 、釉三个接口。 第2 章o p c 技术 ( 1 ) i o p c s e r v e r l i s ti o p c s e n 惯l i s t 用于对0 p c 服务器的版本查询,它被 设计用来解决客户端对o p c 服务器的查询问题。 在一台机器上可能同时安装有多个o p c 服务器,它们由不同的厂商提供, 支持不同版本的o p cd a t a a c c 姻s 规范。因此,对于客户端来说,首先需要解决 的问题就是对一台机器上已安装的o p c 服务器进行查询。 o p c 采用c o m 的组件类别来进行服务器的加载选择的。一个组件类别实际 上就是一个接口集合。它被分配了一个g u d 作为标识,该g i 兀d 被称为c a t d ( c a t c g o r yi d 训丘e r ,类别标识) 对某一个组件而言,若它实现了某个组件类别 的所有接口,那么它就可以将自己注册为该组件类别的一个成员。这样客户就能 够通过注册表中选择只属于某个特定组件类别的组件而准确找到它所需要的组 件。 注册表的h i c l a s s e s j t 0 0 爪c 鲫p o n e n tc a t e g o r i 韶下面保存有系统所 有的组件类别标识,0 p cd a 诅a c c 髂s 服务器的组件类别标识如下: ( 6 3 d 5 f 4 3 0 - c f e 4 _ l l d l b 2 c 8 0 0 6 0 0 8 3 b a l f b ) ,其描述为: “o p cd a t a a c c 鹪ss e e 墙v 确i o n1 0 ” 6 3 d 5 f 4 3 2 一c f e 4 _ 1 l d l b 2 c 8 一0 0 6 0 0 8 3 b a l f b ) ,其描述为: “o p cd a t a a c c e s ss e e 瑙v 日由o n2 o 为了方便组件类别使用,微软提供了组件类别管理器( c o m p o n e n t c 砷e 9 0 r i 髑 m a n a g 盯,c c m ) 来支持组件类别注册表信息的管理。对于本地组件,可以直接 使用c c m 来添加或者删除组件类别以及某个服务器组件所支持的或需要的组件 类别信息,但是由于c c m 是一个进程内服务器,不能通过它来进行远程组件的 调用。为了解决远程o p c 服务器组件类别的枚举问题,o p c 基金会定义了 i o p c s e r v e r l i s t 接口,接口的定义如下: 硫e r f 如ei o p c s c e r l i s t :p u b l i ci u i l l m o w n p u b l i c : v i m l a lh r e s u l ts t d m e t h o d c a l i :r 汀ee m 姐c l 雒s 鹪o f c 呶 9 0 r i 鼯( 严 谰+ u l o n gc h i l p l 锄e n t c d , + 【s i z c j s 刈c a t dj 婢cf a rr g c 觚d h 叩l 】, 幸 蜘+ u l o n gc r e q u i r c d , 严【s i z e - i s 】【蝴c a t d r p cf a r 唰i d r e q 】, 【o u t 】 m i l _ 哪g u m r p cf a rl r p cf a r 牛p p e n 啪c l s i d ) = o ; v i n i l a 】h r e s u l ts t d m 呕t h o d c a l i :r y p eg e t c l 嬲s d e t a i l s ( 严【叫+ r e f c l s md s 遗 产 删幸 0 l e s t r j 冲cf a r 事p p s 四r o g i d , 北京1 :业夫学 :学硕士学位论文 幸 o u t 】l p o l e s t r r p cf a r 牛p p 钇u s 哪p e ) = 0 ; v i 咖a lh r e s u u s t d m e t h o d c a l it y p ec l s i d f r o m p r o g i d ( + 【i n 】幸,l p c o l e s t rs z p r o g 地 产 o u t 】+ l p c l s i dc l s i d ) = o ; ; e n 岫a 船s e s o f c a t e g 耐嘲用于枚举被查询机器上实现某个o p c 版本的所有 服务器对象的类别标识( c 1 船si d 垃丘c l s d ) ,它是用来标识某个类的g u d 。 g e t c l 嬲s d e t a i l s 用来返回o p c 类的其它信息,如p m g i d c l s d f r o m p r 0 百d 用来实现一个p r o g d 到c l s d 的转换。 ( 2 ) i o p c c o m m 帆1 0 p c c o 吼o n 提供了设置和查询一个l o c a l e d 的能力。 l o c a l e d 是一个国家或者地区的标识符。它不仅决定了系统所使用的语言文字的 种类,还潜在的同数值、时间货币等的表示格式有关。为了解决分布式应用所带 来的不同地区之间的差异,o p c 规范广泛使用了l o c a l e 叩。o p c 服务器可以在 其内部不实现l 0 c a l e i d ,而仅仅使用系统默认的l o c a l e d : l o c a l e s y s t e m d e f a u l t 1 0 p c c o l | n o n 接口就是为了解决分布式环境下由于地区差异而产生的通讯 问题,其接口定义如下 锄 e r f k ei o p c c o m m o n :p u b l i ci u n h o 、阳 p u b l i c : v i r t i l a lh r e s u i ts t d m 哐t h o d c a l it y _ p es c t l o c a l e ) ( l c d w l c i d ) = o ; v i r h i a 】h r e s u i 丁s t d m 唧o d c a l it y p eg c t l o c a l e ) f l c d - r p c f a r4 p d w l d d ) 2o ; v i r h l a lh i 也s u u ls t d m e n i o d c a l it 泞eq u 吣a i l a b l e l o c a l e d s ( d w o r d 艘cf a r p d w c o u 媳 l c d r p c a r - j 心cf a r 。p d w 撕d ) = 0 ; v i m l a lh i 也s u l l ls t d m e t h o d c a l ir 旧eg e t e 跚幅缸i n 甙 h r e s u i td w e 肿l l p w s t r j 心c 岖+ p p s 砸n g ) 2o ; “r n 坩1h r e s u l l s t d m e t h o d c a l it y p es c t c l i 印制锄 l p c w s t rs z n 锄e ) = 0 ; ; s e 妇力c a l e i d g 眈i 力c a l e i d 用于设置和获取服务器当前的l o c a l e i d q i l e r y a v a i l a b l e l 0 c a l e i d s 用于查询系统可用的l o c a l e d g e t e n d r s 幽g 用于返回错误代码 第2 苹o p c 技术 s e t c l i 锄t n 锄e 用于在o p c 服务器内部注册与其相连的0 p c 客户端 ( 3 ) i o p c s h u t d o w 丑1 0 p c

温馨提示

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

评论

0/150

提交评论