(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(电路与系统专业论文)基于Modbus的OPC数据存取服务器的研究与开发[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

摘要 o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) 规范是为了解决不同厂商提供的过程控制设 备和商业应用软件之间不能自由通信的问题。o p c 技术以o l ,e c o m d c o m 技术 为基础,它的发展非常迅速,应用电越来越广泛,是自动化领域的一门新兴热fj 技术。国际卜许多公司都纷纷在自己的产品中增加o p c 特性,包括为控制应用软 件添加o p c 客户端的功能,为现场设备提供o p c 服务器等。其中,o p c 数据存 取规范是有天数据存取的o p c 舰范。 针对卜述情况,作耆通过对o p c 规范、c o m 技术的深入研究,在w i n d o w s 甲台f 没计并开发了基于m o d b u s 断路器的o p c 数据存取服务器。 ( 1 ) 详细分析了传统的数据存取方法存在的问题、o p c 技术的优点,研究了 o p c 技术、o p c 技术的基础c o m d c o m 技术以及m o d b u s 总线。 ( 2 ) 研究了o p c 服务器的关键部分o p c 数据传输的技术基础:可连接 对象机制、统一数据传输机制,指出了o p c 数据传输三种方法同步访问、肄 步访问、订阅实现过程中的关键技术及难点,并给出了具体的实现方法。 ( 3 ) 研究了整个o p c 服务器实现过程中的关键技术,设计了o p c 服务器的 整体结构,指出了g r o u p 对象实现的难点并给出了具体的解决方法,构造了i t e m 对象以及设备类( 串口采集及m o d b u s 协议的解析) 的实现,对o p cd a 服务器 进行了测试,并讨论、分析了测试的结果。 ( 4 ) o p c 服务器的运行结果表明:o p c 服务器通过d c o m 方式与o p c 客户 端进行远程通信、峪控由可通信断路器组成的m o d b u s 网络。研究成果已通过验收, 达到了预期的设计要求。 虽是针对基于m o d b u s 断路器设计开发的o p c 数据存取服务器,但实际可以 豁控具m o d b u s 协议的设备。只需改变服务器中的i od l l 部分( 设备类) 即1 1 j + 作 为其它协议的现场设备的o p c 数据存取服务器;在i od l l 部分处理各种总线仂、 议的解析,即能监控基于任何协议的设备。 关键词:o p c 技术;数据存取服务器;c o m 技术;m o d b u s ;断路器 :。= = := = = :尘圭:竺塑壁;:塑呈! ! 墼堡至堡些叁篓墼篓! :垒:至耋垄:= = := := = : a b s t r a c t 0 p c ( c i l ef o rp r o c e s sc o n t r 0 1 ) i st os o l v et h ep r o b l e mt h a tp r o c e s sc o n t r o l e q u i p m e n ta n dc o m m e r c ea p p l i c a t i o ns o f tf r o md i f f e r e n tf a c t o r yc a n tc o m m u n i c a t e f r e e l y o p ct e c h n i q u eb a s e do no l e c o m d c o mt e c h n i q u e ,d e v e l o p sv e r yq u i c k l y a n da p p l i e sm o r ea n dm o r ew i d e l y , i ti san e wp o pt e c h n o l o g yo fa u t o m a t i o n ,m a n y c o m p a n i e si n c r e a s eo p cs p e c i a l i t yf o rt h e i rp r o d u c t ,i n c l u d i n g i n c r e a s eo p cc l i e n t f u n c t i o nf o rt h e i rc o n t r o la p p l i c a t i o ns o f t w a r ea n dp r o v i d i n go p cs e r v e rf o rt h e i rf i e l d e q u i p m e n t se t c o p cd as p e c i f i c a t i o ni so p cs p e c i f i c a t i o na b o u td a t aa c c e s s i n g a i m i n ga tp r e s e n ts i t u a t i o na b o v e ,o nw i n d o w so s ,o p cd a s e r v e rs o f t w a r eo f t h ec i r c u i tb r e a k e rb a s e do nm o d b u sp r o t o c o li sd e s i g n e da n dd e v e l o p e dt h r o u g ht h e s t u d yo fo p cs p e c i f i c a t i o na n dc o mt e c h n o l o g y ( 1 ) t h i sp a p e ra n a l y z e si nd e t a i lt h ep r o b l e m so ft h et r a d i t i o n a ld a t aa c c e s s m e t h o d sa n dt h es t r o n g p o i n to fo p ct e c h n o l o g y , s t u d yo p ct e c h n o l o g ya n di t s f o u n d a t i o nt e c h n o l o g y - - c o m d c o mt e c h n o l o g ya n dm o d b u sf i e l db u s ( 2 ) t h i sp a p e rd i s c u s s e si m p o r t a n tk e ya n dd i f f i c u l tt e c h n o l o g yi nd e v e l o p i n g o p cs e r v e rs o f t w a r e :a d v i s o r yc o n n e c t i o nm e c h a n i s ma n dc o n n e c t i o no b j e c t m e c h a n i s mi no p cd a t aa c c e s sm e t h o d ,d e v e l o p st h r e ew a y st od a t aa c c e s sa r e a n a l y z e di nd e t a i l ,a s y n c h r o n o u sa c c e s s ,s y n c h r o n o u sa c c e s sa n ds u b s c r i p t i o n ( 3 ) t h ep a p e rs t u d i e sa l li m p o r t a n tk e y si nd e v e l o p i n go p cs e r v e rs o f t w a r e , d e s i g n st h eu n i t a r ys t r u c t u r eo ft h eo p cs e r v e rs o f t w a r e ,d e v e l o p ss e r v e ro b j e c t , g r o u po b j e c t ,i t e mo b j e c ta n de q u i p m e n tc l a s s ,t e s t st h eo p cd as e r v e rs o f t w a r e , d i s c u s s e sa n da n a l y z e st h er e s u l t so ft h et e s t s ( 4 ) o p cs e r v e rr u n n i n gr e s u l t si n d i c a t e st h a to p cs e r v e rc a nc o m m u n i c a t ew i t h o p cc l i e n ts o f t w a r et h r o u g hd c o mm o d e ,m o n i t o ra n dc o n t r o lt h em o d b u sn e t w o r k o ft h ec o m m u n i c a t e dc i r c u i tb r e a k e r o p cd as e r v e rs o f t w a r ei sd e s i g n e da n dd e v e l o p e df o rt h ec i r c u i tb r e a k e rb a s e d o nm o d b u sp r o t o c o l ,b u tu s e df o ra n ye q u i p m e n t sb a s e do nm o d b u sp r o t o c 0 1 i fi t si 0 d l l ( e q u i p m e n tc l a s s ) i sc h a n g e d ,t h eo p cd a s e r v e rs o f t w a r ei su s e df o re q u i p m e n t s b a s e do na n o t h e rp r o t o c o l ;i fi t si od l l ( e q u i p m e n tc l a s s ) i sd e v e l o p e dt oh a n d l ea l l p r o t o c o l s i ti su s e df o re q u i p m e n t sb a s e do na l lp r o t o c 0 1 k e yw o r d s :o p ct e c h n o l o g y ;d a t aa c c e s ss e r v e r ;c o mt e c h n o l o g y ;m o d b u s ;c i r c u i t b r e a k e r i i 湖南大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。 作者签名孝蓖 日期:。m 年f ,3 ,7 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向围家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位 论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密d 。 ( 请在以上相应方框内打“、”) 作者签名: 导师签名: 毒劳 日期:c 呵年r 月,7 日 日期: - 毋年月,) 日 第1 章绪论 1 1 课题韵选题鸶景疑意义 1 传统的数据存取方法 照着蠢动控麓帮诗辩税技零的逶一步愁合,计雾穰在鸯动控穰中麓益发挥若 = i i i f i 可替代的作用。工业控制中的各种仪器、仪表、p l c 和单片机系统等都提供了 每计算瓤懿逶瀑嵇议,款蠢为计箨撬控渊系统瓣设圣 掇侯了较大懿方後。诗箨瓠 控制系统擞重要的一个方面就是存取数据,传统的存取数据方法有驱动程序法。 壅1 。1 蔽薅软得掰传统襻毅方法麓设蠢滤徨的壤凌 应用程序通过其内部的驱动程序来存取现场控制设备数据,通信情况如圈1 】 所示,强中豹设螯l 、设鍪2 、设备3 表示支撩不嚣逶惫耱谈瓣三耪臻场设备,舞 头表示应梢程序需开发的驱动程序。因不同的商提供的协议不同,甚至同一,一商 l ! 毙尽懑类黧设餐霸诗冀撰遴薅豹汝谈氇不穗翻。在诗冀税系绫中,不溺懿编程语言 对驱动程序的接口有不同的要求,所以每一个应用程序在从设备中读取数据时由 歉箨或矮锌嚣不一致经,对予不阉设簧都要习:发不嗣瓣驱动稳彦。敖存在以f 阁 题: 对每令厂穗不目类型匏设餐开发豹驱动程序l i 麓为其键设套蹶剩用,造成 重复性劳动。 疆俘熬特 垒不襞褥笺舞骞程序开发磐的支持,导致驱动爨淳匏不鼗姓。 硬件的任何变化都可能破坏驱动程序的正常执行,因此需要重新丌发驱动 稷亭来逶应嫒 孛熬交诧。 两个应用程序通常不能同时访问同一设旃,存在访问冲突。虽然各方都想解 决这一闯题,毽 ;i = l 予客户臻议豹不目,翘题不慈勰决。 为了解决上述问题,工控领域内众多韵硬件厂商和软件开发商逐步达成热识, 共黼发起残立了黪藏剩翡毽甄缀织“o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) 鏊金会”,受 蠢制定、发布o p c 规范书、o p c 的市场交易等。 茎主坚! ! ! ! ! 堕堡曼墼堡堡娶罂丝墨墼翌隧量芷鉴 一 2 o p c 技术及国内外的发展现状 1 ) o p c 怒一令王盟标舔,它是豳一些鲢器土藩名戆塞凄纯系统穗鹾俘、致傅 公司和m i c r o s o f t 紧密合作而建立的。在1 9 9 6 年8 月发布了简化的、步到位的 解决方案。 o p c 基金会足独立的、非赢利的国际组织,其宗旨是在向会员提供范围广泛、 影式多撵酶铡兹匏嗣瓣,发鼹秘撬动o p c 技术栽藏。在曩本、欧溅都成立了发鼹 和推动o p c 技术规范的组织。在中网,2 0 0 1 年1 2 月也由5 家公司作为缴起人子 2 0 0 1 年1 2 月歪式或立了中瓣o p c 键逡会( o p t c ) 。o p c 基会会扶成立鼹嬷会爨 逐年增加,到目前为止在全球范围内已有近3 0 0 家公司加入了这个国际标准组织。 同时交挎割设冬厂亵耨控耧软传供艨襄提供缝o p c 产是也躁盏增搬,g 麓已有6 0 0 种以e 的o p c 服务器产品和o p c 应用程序产品出现在由o p c 基衾会发行的o p c 产鑫毯录上| 1 。在医内,中国辩学磅究院沈戳霆砖亿研究联等一些科研枧款电玎发 出了o p c 产品。 ( 2 o p c 采用客户极n 务器结搦,薹予m i c r o s o f t 斡o l e c o m 秘d c o m 技求, 为硬件,一商和应用软件丌发糟提供。套标准的接口。o p c 粑硬件供应商和软件开 发蠢分裹f 来,提供了从设餐和数据库等数撂源获褥数据帮爆一秽标准方法与任 何客户通信的机制f 2 1 。硬件开发者通过提供o p c 服务器,使任何带有o p c 接口的 客户怒痔都霹采用统一的方式存取不网硬件厂商的设备,见图1 2 。从图中可以蕾 瑚o p c 具有以下优点: 现场总 现场设备1 现场设备2 现炀设备3 图1 2o p c 农现场总线下的j 壹用模式 硬件厂赢只篱编写。套接口瑕序就可以满足不同用户的要求。 应用程序开发商只需编写一个接口程序就可以连接不同的设备。m 个廊爝 程序、1 1 种设番要自出通信,用传绕的数据存取方法,需开发( m + n ) 个驱动程序, 存z j i 入o p c 之后,只需开发( m + n ) 个程序就可以了。可以葫出在引入o p c 之后, 犬犬地减少了人力、财力。 最终捌户可班穰据实际情况选择合邋的设备,具有更大的选释性。 硕士掌位论文 总之,在传统的工业控制系统开发中的软件重复开发问题变得越来越尖锐, 采用o p c 技术丌发工业控制系统就成为一种趋势;实际上在短短几年内o p c 技 术得到了越柬越多工控领域硬件和软件制造商的承认和支持,实际上已经成为下业 挎制软件的公认标准。 3 课题来源与意义 o p c 技术规范在短短几年内获得了极大的发展,并得到了国际卜自动化领域 领先厂家的广泛支持。符合o p c 规范的硬件、软件产品开始大量地开发出来并开 始达到广泛应用,支持o p c 技术开发的各种丌发工具f 在不断地得到完善,并且 可以容易得到i3 1 。为跟上世界先进技术的发展,通过研究文献1 4 - 2 0 l ,确立了为江苏 省常熟开关有限公司的基于m o d b u s 可通信断路器开发o p c 服务器的研究项目。 通过可通信断路器的o p c 服务器,就可以使此设备只需通过一个o p c 服务器就 i j j 以与遵循o p c 规范开发的客户应用程序h m i s c a d a 等进行无缝连接。 1 2 课题研究内容 第l 章论述选题背景及意义; 第2 章主要研究o p c 技术、o p c 技术的基础c o m d c o m 技术以及m o d b u s 总线。 第3 章研究o p c 服务器的关键部分o p c 数据传输的技术基础:可连接对 象机制、统一数据传输机制,并且分别给出o p c 数据传输三种方法同步访问、 异步访问、数据采集的实现。 第4 章研究整个o p c 服务器实现过程中的关键技术,并且分别给出s e r v e r 对 象、g r o u p 对象、i t e m 对象以及设备类的实现等。 最后对全文进行总结与展望。 第2 章o p c 技术与m o d b u s 总线技术 2 1o p c 规范 1 o p c 体系结构 f 1 1o p c 体系结构的组成部分 o p c 服务器:o p c 服务器一般是由控制设备制造商或独立软件供应商提 供,既”t 以在与应用程序计算机相同的本地计算机上运行,也可以在与应用程序 计算机不同的远程计算机上运行。o p c 服务器的主要目的是提供过程数据。 o p c 应用程序:访问o p c 服务器提供的数据源,带有o p c 接口的应用程 序,又称o p c 客户端。 o p c 代理一占位d l l :当o p c 服务器为进程外组件,o p c 应用程序与 o p c 服务器处在不同的计算机过程空间,所以不可直接调用o p c 服务器的接门进 行数据交换,需要通过代理一占位d l l 并利用操作系统提供的通信功能进行数据 交换。 o p c 自动化包装d l l :为了达到数据传送的最高性能,o p c 服务器是用 c 十+ 开发的,并只提供自定义接口,而用v b 等语言开发的应用程序却要求o p c 自动化接口,为了让v b 开发的应用程序可以使用o p c 自动化接口,使用o p c 自 动化包装将o p c 自动化接口变换成o p c 自定义接口,从而可以访问o p c 服务器。 利用v b 开发的o p c 应用程序与用c 十+ 开发的o p c 服务器在同一一机器中运 行其结构见图2 1 ,在不同的机器中运行时其结构见图2 2 。 图2 1 本地o p c 服务器 硕l 学位论文 毒匹孳。,。自动化接口 q _ j 一 算 包装d i ,【 机l t 二o p c 定制接口 | 代理一占位d l l | 计算机网络边界 鋈章。定制接口 计 ”“1 ”2 ” 磊希 图22 远程o p c 服务器 其中,o p c 服务器、o p c 代理一占位d l l 以及o p c 包装d l l 应该由o p c 服务器供应商( 控制设备制造商或者独立软件供应商) 提供。 ( 2 ) 0 p c 标准接口 o p c 规范提供了两套标准接口:o p c 自定义接口( o p cc o mc u s t o mi n t e r f a c e s l 釉o p c 自动化接口o p c ( o l ea u t o m a t i o ni n t e r f a c e s ) ,自定义接口也称定制接口。 o p c 应用程序通过自定义接口或自动化接口与o p c 服务器通信,其结构见图 2 3 。o p c 服务器必须提供o p c 自定义接口,而o p c 自动化接口则可选。 图2 3o p c 自定义接口与自动化接口 2 0 p c 规范 o p c 基金会制定了各类o p c 规范,并不断地进行升级和功能扩展以适应工业 臼动化领域的发展与变化。在设计相应的o p c 服务器或o p c 应用程序时需要以 这些规范为基础,以保证互操作性。o p c 规范规定了c o m 接口( 接口是什么) ,不 是其实现( 不是怎样实现接口) 。它规定了客户端系统所期望使用的接口行为。o p c 规范2 3 2 1 2 4 1 包括: o p c 数据存取( d a t aa c c e s s ) 规范:数据访问的标准; o p c 报警与事件( a l a r ma n de v e n t ) 规范:警报和事件的标准; o p c 历史数据存取( h i s t o r i c a ld a t a a c c e s s ) 规范:历史数据访问的标准; o p c 安全( s e c u r i t y ) 规范:安全性的标准; o p c 批处理( b a t c h ) 规范:批处理的标准; 一一一一兰= 些! ! :! 塑旦! 曼錾塑立壁! ! 篓翌墼塑基曼茎茎 o p c 服务器数据交换( d a t ae x c h a n g e ) 规范:服务器间数掘交换的标准: o p cx m l 规范:过程数据的x m l 标准。 3 o p c 数据存取服务器 ( 1 ) o p c 数据存取服务器的功能 o p c 数据存取服务器是o p c 技术核心之一,随着o p c 技术在工业控制领域 越来越广泛地应用,o p c 数据存取服务器的开发工作也显得极为重要拉”。在( ) p c 的几个规范中,o p c 数据存取服务器在国外已经得到了大量的成熟的应用 2 6 1 。 o p c 数据存取服务器主要实现的数据采集功能。o p c 的数据访问方法主要有 同步访问、异步访问和订阅三种,同步访问与异步访问都是o p c 客户应用程序对 o p c 服务器发出了数掘请求,不同点在于如果客户程序调用服务器端的同步访问 的方法,必须等到服务器端完成操作之后此方法才能返回,而如果是异步访问, 那么请求立即被返回,服务器会把这次请求操作的结果以回调的方式来告知客户 程序,这样就可以让客户程序在这段时间内做一些别的事情。订阅即o p c 服务器 监撺的数据在状态发生改变时主动的通知客户程序,丽不用客户被动地、遍 遍地去查询数据,判断其是否发生改变。 r 2 1o p c 数据存取服务器结构 o p c 服务器由s e r v e r 对象、g r o u p 对象、i t e m 对象和针对不同现场设备的编 写的i od l l 组成,o p c 服务器的整体结构见图2 4 。s e r v e r 对象、g r o u p 对象都 是标准的c o m 对象,o p c 客户端通过它们提供的接l = 来访问现场设备的数据, 使o p c 客户端与o p c 服务器实现无缝连接成为可能。 0 p c 客户程序 一1b 对r o 象u o i c o n n e c t i o n l o i n t c o n t a i n e to i d a t a o b j e c t ( ) _ j o p c a s y n c l 0 0 圈2 5o p cs e r v e r 对象的逻辑对象模型图2 6o p cg r o u p 对象的逻辑对象模型 i t e m 对象描述了服务器与现场设备的连接,是对应的现场设备的属性在服 务器中的代表,它包含有数据项的值、值的质量标志和时间标签( 读取数据的时 间) 。i t e m 对象也称为i 噩对象或项。 i 0d l l 实现从具体的现场设备中读取数据的功能,因为不同厂商设备的数 据采集方式和现场通信网络的通信协议不同,需要为不同硬件设备和通信协议编 写不同的i od l l 。 o p c 服务器可以由不同的硬件开发商提供,开发商提供的代码决定了o p c 服 务器访问的设备和数据,以及服务器在物理上如何访问数据的详细内容。 2 2o p c 技术基础 2 2 ic o m 技术 1 c o m 技术概述 微软公司为了提供商业应用程序和特定用途的软件包间的相互连接性,玎发 了c o m 技术。组件对象技术的出现,极大地提高了软件开发的效率和质量,大大 降低了开发费用与风险,已成为计算机研究领域热点之【2 1 1 。c o m 标准包括规范 和实现两大部分,规范部分定义了怎样以一种独立于语言和位置的方式调用对象、 怎样定位和标识组件以及怎样创建对象。实现部分是c o m 库,使得这些规范能够 被真正的应用起来。并且c o m 库也充当了组件程序和客户程序之间的桥梁,尤其 是在组件对象的创建过程中,以及在对象管理、内存管理和一些标准化操作等方 面起着重要的作用 2 7 1 。c o m 技术具有以下特点: ( 1 ) c o m 并不是一种计算机语言,它与运行的机i i i ( r 要互相连接) ,机器的操 作系统( 只要支持c o m ) 以及软件开发的语言无关,而是在任意的两个软件组件之 间都可以相互通信的二进制和网络的标准。 ( 2 ) c o m 客户程序和c o m 服务器可以用完全不同的语言开发。这样使利用 c + ,v b 以及e x c e l 所开发的程序可以相互连接。 ( 3 ) c o m 组件可以以二进制的形式发布绘用户。 c o m 技术的出现为简单地实现控制设备和控制管理系统之间的数据交换提 供了技术基础。但是如果不提供一个工业标准化的c o m 接口,各个控制设备厂家 7 f 发的c o m 组件之间的互连仍然是不可能的。这样的工业标准的提供,乃是( ) p c 的e 1 的所在。总而言之,o p c 是作为工业标准定义的特殊的c o m 接口。 2 c o m 组件、c o m 对象、c o m 接口 ( 1 ) 在w i n d o w s 平台上,一个c o m 组件可以是一个d l l 文件,或者是一个 e x e 文件,组件为c o m 对象提供了活动的空间,个组件程序可以包含多个c o m 对象,c o m 对象以接口的方式提供服务,每个c o m 对象可以有多个c o m 接r l 。 ( 2 1 在c o m 规范中并没有对c o m 对象进行严格的定义,但c o m 提供的是 面向对象的组件模型,c o m 组件提供给客户的是以对象形式封装起来的实体。客 户程序与c o m 组件程序进行交互的实体是c o m 对象,它并不关心组件模块的名 称和位置,但它必须知道自己在与哪个c o m 对象进行交互,这是因为客户程序并 不直接去访问c o m 组件,而是通过一个标识c o m 肘象的全局标识符来进行对象的 创建和初始化工作。 c o m 对象也包括属性和方法,对象的状态反映了对象的存在,也是区别于其 他对象的要素;而对象所提供的方法就是对象提供给外界的接口,客,、必须通过 接口才能获得对象的服务,接口是c o m 对象与外界进行交互的唯一途径。 茎耋些! ! 些墼! 些鳖垄堑塾曼篓量壁墼塞:! 垫耋 2 2o p c 技术基础 2 21c o m 技术 1 c o m 技术概述 微软公司为了提供商业应用程序和特定用途的软件包问的相互连接性,”发 了c o m 技术。组件对象技术的出现,极大地提高了软件开发的效率和质量,大大 降低了儿发费用与风险,已成为计算机研究领域热点之一口”。c o m 标准包括规范 和实现两大部分,规范部分定义了怎样以一种独立于语言和位置的方式调用列象、 怎样定位和标识组件以及怎样创建对象。实现部分是c o m 库,使得这些规范能够 被真i l 二的应用起来。并且c o m 库也先当了组件程序和客户程序之问的桥梁,尤其 是在组件对象的创建过程中,以及在对象管理、内存管理和一些标准化操作等方 面起着重要的作用口7 i 。c o m 技术具有以下特点: ( 1 ) c o m 并不是一种计算机语言,它与运行的机器( 只要瓦相连接) ,机器的操 作系统( 只要支持c o m ) 以及软件升发的语言无差,而是在任意的两个软件组件之 剖都;u | 三l 相瓦通信的一进制和嘲络的标准。 ( 2 ) c o m 客户程序;日jc o m 服务器可以用完全不同的语占开发。这样使利用 c 十+ ,v f i 咀及e x c e l 所开发的程序可以相耳连接。 r 3 ) c o m 组件可以以二进制的形式发布给用户。 c o m 技术的出现为简单地实现控制设备和控制管理系统之问的数掘交换提 供了技术基础。但是如果不提供一个工业标准化的c o m 接口,各个控制设备r 。家 ”发的c o m 组件之间的互连仍然是不可能的。这样的工业标准的提供,乃是o l ,c 的日的所在。总而言之,o p c 是作为工业标准定义的特殊的c o m 接口。 2 c o m 组件、c o m 对象、c o m 接口 f 1 1 在w i n d o w s 甲台上,一个c o m 组件可以是一个d l l 文件,或者是个 e x e 文件,组件为c o m 对象提供了活动的空间,一个组件程序司以包含多个c o m 对象,c o m 对象咀接r 的方式提供服务,每个c o m 对象可以有多个c o m 接口。 f 2 1 在c o m 规范中并没有对c o m 对象进行严格的定义,但c o m 提供的星 面向对象的组件模型,c o m 组件提供给客户的是以对象形式封装起来的实体。客 j 、程序与c o m 组件程序进行交互的实体是c o m 对象,它并不关心组件模块的名 称和位置,仇它必须知道自己在与哪个c o m 对象进行交互,这足因为客户程序并 不直接去访问c o m 组件,而是通过一个标识c o m 对象的全局标识符来进行列象的 创建和初始化工作。 c o m 对象也包括属性和方法,对象的状态反映了对象的存在,也是区制j :h 他对象的要素;而对象所提供的方法就是列象提供给外界的接口,客户必须通过 接i _ :_ 才能获得对象的服务,接n 是c o m 对象与外界进行交互的唯途径。 接口才能获得对象的服务,接u 足c o m 对象与外界进行变互的唯途释。 硕士学位论文 f 3 ) c o m 接翻繇是麸i u n k n o w n 接曩滋生,c o m 接翻实瑷二透制懿逡存结构| 2 “ 2 q 】。客户稷序用个指向接口数据结构的指针( 如接口指针p i x ) 来调用接l | 成员函 数,接蜀籀针实舔上又辩囱另一个指锌( 如鑫函数表捂针p v t a b l e ) ,这个藉锊豢两 虚函数表( 如v t a b l e ) ,虚函数表中每一项为4 个字节长的函数指针,对于每一个接口 来说,v t a b l e 是确定匏,c o m 菝隧酌v t a b l e 静静兰个舔数据锌菇q u e r y l m e r f a c e 、 a d d r e f 、r e l e a s e 黼数实现的地址,每个函数指针与对舷的具体实现连接起来。通 过这耱方式,客户只要获褥了接酗指针,就r 季疆调麓戮对蒙懿实际功熊。凿2 7 为 一个接口的二进制内存结构。 接口指针p l x p v t b l 纛函数表v t b l 圈2 7c o m 接蜀l x 豹二进潮豹内存缝擒 ( 4 ) c o m 规范用1 2 8 位全局唯一标识符g u l d ( g l o b a l l yu n i q u ei d e n t i f i e r ) 来标 识c o m 对象、c o m 接口,瘸来檬识c o m 对象穆秀c l s i d ( c l a s si d e n t i f i e r 、类标淡 符) ,用来标识c o m 接口称为l i d ( i n t e r f a c ei d e n t i f i e r ,接口标识符) 。m i c r o s o f tv i s u a l e + 十提供了秀令工其u u i d g e n e x e 稳g u i d g e n e x e 来产生g u l d t 3 引。客户程痔通 过指定的c l s i d 来进行对象的创建和初始化工作,如果客户程序要使用一个c o m 对象熬菜令接1 :3 ,羽它璺须知_ ;:羹该接猸麴i i d 稳蔹墨疑能够鬟供懿方法( 郄接门残 ! _ ;:j 溺数) 。 s ) 实蠛i x 接趱豹c o m 对象c a 戆声鹱 i n t e r f a c ei u n k n o w n v i r t u a lt t r e s u l t s t d c a l lq u e r y i n t e r f a c e ( c o n s tl i d & i i d ,v o i d + + p p v ) = o ; v i r t u a lu l o n g s t d c a t la d d r e f o 2 o ; v i r t u a lu l o n g s t d c a l lr e l e a s e ( ) 20 ; ; i n t e r f a c ei x :p u b l i ci u n k n o w n v i r t u a lh r e s u l t s i d c a l lf x0 = o ; c f 瓤一;l 黧篡欺 基于m o d b u s 的o p c 数据存取服务器的研究与开发 c a :p u b l i c l x , 1 v i r t u a lh r e s u l t s t d c a l lf xo c o u t 旦 y 参数甲指定的僵转抉成i t e m 对象的固有数据类型的值 收缓存及i t e m 2 值等于转换后的 使设备读写的事件为无信号: 使采集线程的读写操作停止 向设备写入转换后的值 使设备读写的事件为有信号: 使采集线程继续进行读写操作 更新i t e m 对象的时间标签 n 对输入参数指定的每一 个i t e m 对象都进彳亍了处理? n 取输入参数中的下一个i t e m 对象 返回 y 图33i o p c s y n c l o 接口中w r i t e 函数的流程图 3 2 异步数据访问方法的实现 异步访问在o p c 数据存取规范1 0 版本中是用通报连接机制来实现的,在o p c 数据存取规范2 0 版本中是用连接点机制来实现的,而且有各自独立的接口与方 法:在o p c 数据存取规范1 ,0 版本中是用i o p c a s y n c i o 来实现的,在o p c 数据 存取规范2 0 版本中是用i o p c a s y n c l 0 2 来实现的。 3 2 1 异步数据访问的时序图 异步访问过程中o p c 服务器与o p c 客户端的交换方式见图3 4 。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 服务器 图34 异步数据访涧处理 3 2 2 可连接对象机制 1 可连接对象机制 ( 1

温馨提示

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

评论

0/150

提交评论