




已阅读5页,还剩68页未读, 继续免费阅读
(检测技术与自动化装置专业论文)epaff组态软件的研究与开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 现场总线目前已成为自动化领域的热点,现场总线的节点是具有数字通信能 力的智能仪表。现场总线的目标就是通过开放的系统协议,从现场获取尽可能多 的信息,进一步实现工厂整个生命周期的自动化。 组态软件是工业自动化应用软件中较为基础的软件,应用十分广泛,已成为 工业控制领域中的关键性产品。随着组态技术的迅速发展,已经成为工业控制领 域的关键技术。而基于现场总线分布式控制系统的组态技术的研究,更是急待解 决的问题。目前国内外许多研究人员都在致力于现场总线组态技术的研究,以充 分利用和展示现场总线的优势。 本论文以f f 基金会现场总线和e p a 工业以太网现场总线作为研究对象。首 先提出包容多通讯协议、多组织结构的集成系统将是现场总线的发展趋势。接着 深入研究了基于现场总线分布式控制系统的特点,分析出e p a 系统和f f 系统在 许多方面有着共同点,例如协议模型、组态原理、拓扑结构和功能块组态方式。 通过对这些共同点的分析,论证了通过一致的用户体验为用户提供同时支持f f 和e p a 两种协议的组态软件是可行的。 在深入研究和分析现场总线系统的基础上,本论文采用了基于组件技术的软 件系统架构,对组态软件进行了整体设计,使组态软件具有更好的可扩充性和开 放程度。本软件在v c 6 0 开发平台之上,通过d l l 、c o m 等技术实现了整个组态 软件。 目前我们用己完成开发的e p a 系统模块组建了一个简单的e p a 系统,并对e p a 协议的连通性、运行稳定和效果进行了测试,结果表明开发的e p a 协议软件符合 协议规范,运行效果良好。 【关键字】现场总线,以太网,组态,图形化组态,组件技术,面向对象技术, a c t i v e x 技术 浙江大学硕士学位论文e p a - f f 组态软件的研究与开发 a b s t r a c t t h ef i e l d b u st e c h n o l o g yh a sb e c o m ev e r yp o p u l a ri nt h ea u t o m a t i o nf i e l d f i e l d i n t e l l i g e n td e v i c ew i t hd i g i t a lc o m m u n i c a t i o nc a p a c i t yi s t h en o d eo ft h ef i e l d b u s s y s t e m t h eg o a lo ff i e l d b u si sr e a l i z i n ga u t o m a t i o ni na l ll i f e c y c l eo fp l a n tb yo p e n s y s t e mp r o t o c o la n d m o r ei n f o r m a t i o no b t a i n e df r o mf i e l d c o n f i g u r a t i o ns o f t w a r ei s av e r yf u n d a m e n t a ls o f t w a r ea n du s e dw i d e l yi nt h e f i e l do fi n d u s t r i a la u t o m a t i o n i th a sb e e nav e r yi m p o r t a n tp r o d u c ti nt h ef i e l do f i n d u s t r i a la u t o m a t i o n t h ec o n f i g u r a t i o ni sak e yt e c h n i q u ei nt h ef i e l do fa u t o m a t i o n i ti sd e v e l o p i n gv e r yf a s t ,e s p e c i a l l yb a s e do nt h ef c s ,n o w , f o rt h ep u r p o s eo f u t i l i z i n ga n de x e r t i n gt h ea d v a n t a g eo ff i e l d b u s ,m a n yr e s e a r c h e r sa r ew o r k i n gh a r d o nt h ec o n f i g u r a t i o nt e c h n i q u e f ff i e l d b u sa n de p ai n d u s t r i a le t h e r n e ta r et h eo b j e c ti nt h i ss t u d y t h i sp a p e r f i r s tr a i s e sav i e w p o i n tt h a ti n t e g r a t e ds y s t e mw i t hm u l t i c o m m u n i c a t i o np r o t o c o la n d m u l t i - o r g a n 础i o ns t r u c ti st h ed e v e l o p m e n t sd i r e c t i o n ;s e c e n d ,b ys t u d y i n go nt h e m , i ta c h i e v e sac o n c l u s i o nt h a te p as y s t e ma n df fs y s t e mh a v em a n ys i m i l a r i t i e s ,f o r e x a m p l ep r o t o c o lm o d e l ,c o n f i g u r a t i o np r i n c i p l e ,t o p o l o g y a n df u n c t i o nb l o c k c o n f i g u r a t i o nm e t h o d s i t sp r o v e dt h a td e v e l o p i n gac o n f i g u r a t o rw i t hc a p a c i t yo f s u r p o r t i n gf o rb o t hf fa n de p ap r o t o c o lb yt h es a m eu s e r s e x p e r i e n c ei sf e a s i b l e b a s eo nt h ef u r t h e rs t u d ya n da n a l y s i so fk e yt e c h n i q u e so ff fa n de p as y s t e m , t h i sp a p e rd e s i g n st h ea r c h i t e c t u r eo ft h ec o n f i g u r a t i o ns o f t w a r eo ff fa n de p a s y s t e mw i t ht h ec o m p o n e n tt e c h n o l o g y t h es o f t w a r ei sa c c o m p l i s h e db yd l l , c o m , a c t i v e xe t ct e c h n i q u e so nt h ef l a to fv c 6 0 u n t i ln o w ,t h ee p as y s t e mw h i c hd e v e l o p e db yu sh a sd e s i g n e das i m p l et e s t i n g s y s t e m ,a n di t sw o r k e dw e l l 【k e y w o r d s 】f i e l d b u s ,e t h e r n e t ,c o a t i g u r a t i o n ,g r a p h i c a lc o n f i g u r a t i o n ,c o m p o n e n tt e c h n o l o g y , o b j e c to r i e n tt e c h n o l o g y , a c t i v e xt e c h n o l o g y 2 浙江大学硕士学位论文 e p a f f 组态软件的研究与开发 第一章绪论 随着计算机技术,特别是通讯技术的飞速发展,工业自动化领域也在发生着 一个又一个奇迹。而推动这些发展的主要动力是市场和用户的需求,以及系统制 造商们的不断努力。自动化领域用户从来没有停止过寻找一个统一的、成本最经 济、功能最强大、运行最安全、管理最方便、维护最廉价的自动化控制系统。虽 然目前,通过一个标准规范统一自动化控制领域的努力已经失败,在自动化控制 系统领域多个现场总线并存已经成为事实,但是系统制造商们并没有停止为用户 提供一个统一的自动化控制系统的努力。 由于自动化控制领域种类繁多,各种应用之间存在一定的差异,所以将一种 标准规范应用到多个自动化控制领域,在目前来说显然是不现实的。在一个系统 中集成多种现场总线协议,兼容多种子系统已经成为各大系统供应商的最佳选 择。为了方便用户操作和使用,软件工程师们在设计和实现组态软件时也将面临 新的挑战:界面和操作统一,同时能兼容多种协议,满足异构网络组态需要。 1 1 工业控制系统的发展历程 近些年来,工业控制网络发展迅速。2 0 世纪7 0 年代出现的控制网络系统d c s 无疑是非常成功的。d c s 网络结构一般可分为三层:操作站级、过程控制级和现 场仪表。它的特点是“集中管理,分散控制”。在将近5 0 年的发展过程中,d c s 系统在软件和硬件方面都已经发展得比较成熟。 虽然d c s 系统比较成熟,可是其系统的一些先天缺陷,例如功能和风险集中 的主从结构,数字与模拟通讯共存的混合系统,以及各个厂家自成体系的d c s 标准,都未现场总线技术的飞快发展提供了条件。 现场总线技术克服了d c s 系统的风险集中、通讯混乱的缺点,以数字化通讯、 多节点网络连接现场智能设备,并同时实现了将控制下放到现场。为了满足工业 现场通信的实时性和可靠性要求,各大现场总线协议模型纷纷在国际i s o o s i 七层网络结构标准的基础上,进行了必要的简化和改进,对外公开了多种现场总 线协议。 现场总线技术对于d c s 来说是一个技术上的飞跃。但由于一些历史和技术的 原因,1 9 9 9 年,i e c 组织确定了八大现场总线作为国际现场总线标准。现场总线 标准过与繁多,而且各自适用的范围有限。这些标准由于对国际标准的i s o o s i 浙江大学硕士学位论文e p a - f f 组态软件的研究与开发 做了过多的修改,使其与上层信息网络的无缝连接困难重重,给用户带来了极大 的不便。 作为信息技术基础的以太网是为i t 领域应用而开发的,其网络数据传输的 不确定性在很大程度上限制了自身在工控领域的应用。随着计算机以及网络通讯 技术的不断发展,特别是高速以太网技术,使得现在以太网数据传输速率可以达 到i o m ,1 0 0 m 甚至l g 。以太网在信息网络的长期应用,使得以太网在软件和硬 件方面的支持非常充足,网络构造成本低廉,信息传输速率高,运行经验丰富, 成熟的网络维护人员众多。以太网与i n t e r n e t 连接方便,可以使世界上任何一 个角落的用户通过i n t e r n e t 在线了解现场设备的工作情况。这些都使得以太网 应用于工业控制领域成为一种大趋势”“”。 1 2 现场总线技术的推广与应用 现场总线是目前发展迅速的网络技术,其核心内容:一是满足工业应用的需 求,满足许多技术指标,例如防爆、本质安全等等;二是完成信号传输从模拟方 式到数字方式的转变;三是使信息和供电同在一根电缆上传输,大大简化系统的 布线和维护工作。同其他网络一样,现场总线的网络系统也具备o s i 的若干层协 议。在这个意义上讲,现场总线与普通网络系统具有相同的属性,但现场总线设 备的种类多,同类总线的产品也分现场设备、耦合器等多种类型。在未来几年现 场总线产品将大量应用在工业控制中“”1 。 目前,许多的协会和组织正在倡导和推广工业以太网网络协议。典型的有现 场总线基金会( f i e l d b u sf o u n d a t i o n ,f f ) 的h s e ( h i g hs p e e de t h e r n e t ) , p r o f i b u s 国际( p r o f i b u si n t e r n a tio n a l ,p i ) 的p r o f i n e t ,c o n t r o l n e t 国际 ( c o n t r o l n e ti n t e r n a t i o n a l ,c i ) 和开放设备网制造商协会( o p e nd e v i c e n e t v e n d o ra s s o c i a t i o n ,o d v a ) e t h e r n e t i p ,m o d b u s 用户集团的m o d b u st c p 。中 国的e p a ( e t h e r n e tf o rp l a n ta u t o m a t i o n ) 作为中国制定的第一个具有国际影 响力的工业以太网标准也是其中之一。 1 ) p r o f i b u s 现场总线 1 9 9 6 年3 月1 5 日批准为欧洲标准,即d i n5 0 1 7 0v 2 。p r o f i b u s 产品在世 界市场上已被普遍接受,市场份额占欧洲首位,年增长率2 5 。目前支持p r o f i b u s 标准的产品超过2 5 0 0 多种,分别来自国际上4 0 0 多个生产厂家。在世界范围内 已安装运行的p r o f i b u s 设备已超过1 3 ,0 0 0 ,0 0 0 点。目前有4 0 0 多个专业的工 程师分成1 0 个组对p r o f i b u s 系统不断进行改进,力求提升性能,降低成本。 浙江大学硕士学位论文e p a f f 组态软件的研究与开发 p r o f i b u s 主要应用领域有: 1 ) 制造业自动化:汽车制造( 机器人、装配线、冲压线等) 、造纸、纺织; 2 ) 过程控制自动化:石化、制药、水泥、食品、啤酒; 3 ) 电力:发电、输配电; 4 ) 楼宇:空调、风机、照明: 5 ) 铁路交通:信号系统。 2 ) f f 现场总线 1 9 9 4 年由i s p 基金会和w o r l df i p ( 二f g 美) 两大集团合并成立f f 基金会,其 宗旨在于开发出符合i e c 和i s o 标准的国际现场总线( f u n d a t i o nf i e l d b u s ) 。 f f 现场总线包括低速网络h 1 和高速主干网h s e ,后者能快速得把上述信息予以 集成。f f 现场总线具有为信息集成所需的开放性结构体系。 可互操作已经成为现场总线的国际标准。当年少数的公司已经增长到3 5 0 个, 包括了全球的重要的控制、仪表、阀门供应商以及遍及世界的重点用户。研究显 示,全球采用基金会现场总线的速度在快速增长。基金会已经测试并注册了 1 8 0 个以上完全互可操作的现场总线设备及1 1 个符合基金会“主站互操作支持 测试”的主站系统。 今天,基金会技术在几乎全部的过程工业是首选的网络一从化工和石化、 纸浆和造纸、炼油、采矿到包括公用建筑、供水和水处理的人类基础设施过程。 在中国的海洋石油公司同壳牌公司的合资工厂已经安装了1 2 0 0 0 台现场总线 设备。此外,上海s e c c o 同b p 建设了一个有1 0 个工厂、2 5 0 0 0 台现场总线设各 的石化基地。这些目前只是中国众多现场总线项目中的两个例子。 3 ) e p a 浙大中控参与制定的e p a 标准日前被正式列为国际标准,这标志着我国在自 动控制领域国际标准取得零的突破。 e p a 实时以太网是我国制定的第一个拥有自主知识产权的工业自动化标准, 于去年3 月以9 5 8 的i e c s c 6 5 c 成员国投票赞成率,发布为i e c p a s 标准化文 件。日前,e p a 被正式列入现场总线国际标准i e c 6 1 1 5 8 ( 第四版) 中的第十四类 型,并列为与i e c 6 1 1 5 8 相配套的实时以太网应用行规国际标准i e c 6 1 7 8 4 2 中的 第十四应用行规簇( c o m m o n p r o f i l e f a m i l y l 4 ,c p f l 4 ) 。这标志着由浙大中控主 持,联合浙大等单位共同起草制定e p a 标准得到了国际电工委员会的正式承认, 实现了我国在自动控制领域国际标准零的突破。 结合我国石油化工等流程工业企业的生产实际状况,通过在生产装置的实际 应用,e p a 项目组提出了针对行业的基于e p a 的分布式网络控制系统整体解决方 浙江太学硕士学位论文 e p af f 组忐软件的研究与开投 案。2 0 0 5 年5 月,基于e p a 的分布式网络控制系统在杭州龙山化工集团以及杭 州中美华东制药集团进行应用,一次投运成功。2 0 0 5 年9 月,将在华东制药集 团进行大规模二期应用,采用了大量的e p a 温度变送器、e p a 的压力变送器、e p a 的执行机构以及e p a 标准信号采集模块等等。 另外,通过发挥e p a 项目组相关单位的市场开拓的优势,e p a 将在冶金行业、 环保和污水处理行业进行应用推广,并有多个项目达成了应用意向。 1 3 组态软件技术的机遇与挑战 现场总线技术的推广,数字化的系统与现场设备的大量投入市场,给组态软 件带来了更多的机遇,同时也给软件工程师们带来了挑战。 现场总线技术实现了传输信号从传统模拟信号向数字信号的转变,实现了数 字通信的基础,也为组态软件从现场设备中获取尽可能多的生产信息提供了条 件。传统的4 到2 0 m a 电流信号,一条线只能传递一路信号,极大限制了用户从 现场设备获取信息的能力。通过现场总线技术,实现了现场设备与监控层网络的 数字化互联。用户通过组态软件与现场设备直接通讯,不但可以直接获得和生产 有关的现场实时信息,还可以获得和具体设备有关的各种状态信息,并且实时的 通过数字通讯设置现场设备的各种属性,实现对现场设备的实时控制。组态软件 通过从现场设备获得极其详尽的信息,不但可以实现传统的控制策略组态和网络 管理组态,还可以轻松实现远程设备管理,例如远程设备标定、远程设备健康状 况测试和设备使用预测等功能“1 。 伴随着巨大的机遇而来的是前所未有的挑战。从现场获得丰富信息得能力, 使得现场总线系统的组态比以往传统的d c s 系统复杂很多,需要组态的参数多, 各参数之问的关系比较复杂,如果不是对现场总线非常熟悉,很难将系统设置到 最佳状态。显然,广大用户对这种状态不满意,他们并不希望自己在使用控制系 统的同时还须要深入学习系统的构成原理。现场总线系统的制造商也正在努力, 阱使系统组态逐步傻瓜化。用户急切需要自动化、智能化的p c 机软件协助其进 行系统的操作和维护工作。组念软件不但要完成控制簏略组态和网络管理组态等 功能,同时还必须在用户操作的简便性、易用性、智能型方便下足功夫,面临的 理论建模和开发技术上的困难可谓空前提高。 目前,多种现场总线技术并存已经成为事实,在控制系统中融入多种现场总 线技术已经成为一种趋势。 1 ) 目前各大自动化系统厂商都在致力于系统集成,并通过集成了多种功能的系 统在市场竞争中增强自身的竞争能力。例如上海s e c c o 同b p 建设了一个有 统在市场竞争中增强自身的竞争能力。例如上海s e c c o 同b p 建设了一个有 浙江大学硕士学位论文 e p a f f 组态软件的研究与开发 l o 个工厂、2 5 0 0 0 台现场总线设备的石化基地,其中使用了e m e r s o n 的d e l t a v 集成系统; 2 ) 通过系统集成,可以增强整个系统在各个方面的工作能力。例如,可以针对 特定的工作条件( 例如对安全要求高的场合,对响应要求高的场合,运动控 制场合等等) 和目的,选择最合适的子系统,使得整个系统在各个方面都表 现卓越; 3 ) 目前,在国际中各大型项目中,集成系统已经出现威力。 出于对发展方向和实际应用需求的考虑,软件工程师们在设计组态软件时不 但需要面对前面提到的各种技术困难,同时还需要考虑组态软件对多种现场总线 系统集成的支持。 未来的组态软件除了具有以上特点外,随着实际工程应用的需求还将不断扩 充自生的能力,向前发展。 1 4 目标 经过深入研究e p a 工业以太网标准和f f ( 基金会现场总线) 提出的高速以太 网现场总线协议,掌握这两种以太网现场总线协议的组态原理、功能块应用进程、 功能块链接对象、功能块调度方式。运用基于组件技术的多层结构的软件设计方 法对组态软件进行设计,并运用面向对象软件技术开发基于w i n d o w s 操作系统 的、界面友好、组态方便,易于扩展的,通过统一的界面和搡作可以同时支持f f 基金会现场总线和e p a 现场总线的图形化组态软件。 1 5 论文任务和结构 本文主要针对e p a 和f f 以太网现场总线系统的组成特点,根据系统的组态 原理,分析了各个层次的组态,深入研究了系统的各个组态模块。并在w i n d o w s 搡作系统上开发界面友好的图形组态软件。 本文共分六章,第一章对当前现场总线标准发展状况和组态软件面临的机遇 和挑战进行了概述;第二章简要概述了组态软件中的常用技术;第三章分析了 f f 和e p a 系统的体系结构,重点分析了f f 和e p a 的异同,在此基础上利用组件 对象模型设计整个组态软件的框架;第四章是组态软件各个核心模块的设计;第 五章介绍了组态软件的组态界面的设计和软件的 贝4 试;第六章对后期需要进行的 工作进行了展望。 浙江大学硕士学位论文 e p a f f 组态软件的研究与开发 第二章组态软件常用技术介绍 2 1 组件技术概论 组件技术,具体死板的概念在各种书籍上有很多的定义,组件技术就是利用 某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节 进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细 节,甚至于将安全机制和事物机制体现的淋漓尽止。而这个封装体就常常的被我 们称作组件。这个封装的过程中,编程工具仅仅是充当了一个单纯的工具罢了, 没有什么实际的意义,也就是说为了完成某一规则的封装,可以用任何支持组件 编写的工具来完成,而最终完成的组件是与语言本身已经没有了任何的关系,甚 至可以实现跨平台。对我们而言,它就是实现了某些功能的、有输入输出接口的 黑匣子罢了。 组件有什么作用? 这个闯题似乎有些笼统,试着想一想w i n d w o s 何以实现如 此强大的生产力? 而在它的背后到底有什么在服务着? 一句话:组件就是 w i n d o w s 的灵魂,脱离了组件,w i n d o w s 系统将不再如今天一样如日冲天,w i n d o w s 如此,u n i x 也同样是如此,作为一个操作系统,它所完成的功能无不体现着组 件的服务,一个很轻松的c o p y p a s t e r 都要靠d d e 来支持,而d d e 就是一种 组件服务对象,而具体到某一个细节,如今的大型e r p 靠的是什么? 多层系统又 靠的是什么? 组件。组件封装了系统运行的各种规则甚至运行环境,而组件又何 以完成如此多的服务? 这儿就不得不提起组件对象,所谓的组件对象是组件的一 个集合,而这个集合又并非是随意性的组合,必须要考虑到组件对象中的各个组 件的协调功能,虽然,在理论上讲,一个组件对象里的各个组件应该是互不干涉、 互不影响的,但是这并不意味着组件对象就是一个无协调的组件的集合,我们必 须理解,通过访问一个组件对象中的某个组件,就有可能访问此组件对象中的另 外的组件以此循环下去而这些都由谁来管理? 肯定是组件对象,可以这样理解: 组件有其自身的规则实现,而规则的实现又涉及到了接口的实现,但是组件对象 本身也是一个组件,它也有业务逻辑规则需要处理,它也要起到所集合的组件的 协调。如此一来,可以能过某一个组件对象来协调的实现一些、一部分的业务逻 辑规则! 而对于应用者来说,这一切完全没有必要去得知,甚至是没有意义的。 我们通过编程的手段同样可以处理一些简单的或稍微复杂的业务规则,的 确,不否认,通过编程的手段我们可以实现如组件对象一般实现的规则处理。然 i o 浙江大学硕士学位论文 e p a - f f 组态软件的研究与开发 而如果仅仅是因为此,我们就说组件对象或组件和我们平时的编码是一致的,这 是一个很糟糕的想法。使用组件技术的的目的是实现各种规则,而且组件对象还 将从更广阔的方面来考虑,它能将一个大型的分布式系统进行统一的规划、合理 的处理冗余、安全、平衡负载单纯的编程手段不能实现的功能,这就是我们 要应用组件的一个很重要的原因。再者,组件对象不是普通的可执行文件,更不 是将各种规则定死在其内部,它可以很平滑的实现自身的升级、扩展( 前提:不大 量的更动接口) ,举一个很简单的例子,当我们发现某项业务逻辑规则已经很陈 旧的时候,我们不得不用新的业务逻辑规则去替换它,而这个替换过程将会体现 出组件对于普通的d l l 文件或是e x e 可执行文件的巨大差别。当我们需要进行 更新的时候,对于组件对象而言,在最理想的情况下用户可以一边进行组件对象 的应用,一边无知觉的接受新的组件技术,而一个简单的d l l 文件或是某一个可 执行文件不可能达到这样的效果。 如何应用组件? 在这点上或许我们更关心的是我们如何通过编程的手段来 实现组件,在前面已经提起过,组件就是利用某种编程的手段来封装业务规则, 而且也强调了语言在此处仅仅是一个工具罢了。但你可以完整的写出一个组件的 时候,那么对于其应用就会更明确,对其给工作带来的效率而惊叹不己。那么到 底如何应用组件技术? 组件技术属于高组的应用部分,它可以从系统的底层作 起,一直至0 我们可以感觉的明显出来的功能的封装。而在此过程中,我们就是要 通过自己熟悉的工具来写一个好的组件对象或是组件。 虽然组件技术属于高级编程范畴,但是只要它是可以编程实现,我们就可以 去实现一个组件。虽然我们已经知道了组件的应用、作用,但是没有熟悉一门开 发工具一切都无从谈起,所谓的工欲善其事,必先利其器就是说我们只要很好的 掌握了一个工具才有可能跨进组件技术这个大门,否则就算对组件技术理解的再 透彻也只能站在门外徘徊。 没有基石的大厦必将会倒塌,我们没有坚实的基础做后盾,那么我们所写出 来的组件必将也是一些垃圾! 或是不成形的玩具罢了。或许你对组件很了解,而 且也很明白f r a m e w o r k 的设计,但是这一切都是建立在对其内核不理解的基础这 上,只能说这是一种空白的设计,因为你将无法的切身体会的那种设计模设将会 给你的组件带来质的飞跃,组件如此,其它也如此,就如一个好的项目经理需要 有灵敏的思维和高超或是相当不错的技艺一样,否则,别人只会认为他在空谈自 己的构想。所以我们现在应该做的就是充分的理解组件的应用之处、组件自身的 规则以及我们的开发利器。这就是我们应该做的而且也是我们目前唯一可以做 的。 浙江大学硕士学位论文e p m f f 组态软件的研究与开发 2 。2 面向对象技术 传统的面向过程的程序遵循面向过程的问题求解方法。其中心思想是用计算 机能够理解的逻辑来描述和表达待解决的问题及其具体的求解过程,而面向对象 的程序设计和问题求解力求符合人们日常自然的思维习惯,降低分解问题的难度 和复杂性,提高整个求解过程的可控制性,可监控性和可维护性,从而达到以较 小的代价和较高的效率获得较满意效果的目的。 面向对象( o b j e c t o r i e n t e dp r o g r a m m i n g ,简稼为o o p ) 方法虽不是最薪的编 程技术,但它的起源最早。2 0 世纪6 0 年代开发的s i m u l a - 6 7 ,是面向对象语言 的鼻祖,它后来发展成最有影响的面向对象语言s m a l l t a l k 一8 0 。随着对面向对 象内涵的充实和完善,到了8 0 年代后期,出现了c + + 、o b j e c t i v e c ( 在c 语言 基础上扩展而来) 、t u r b op a s c a l 、c l o s ( 在l i s p 基础上增加了o o p ) 、e i f f e l 、 a d a 和目前的j a v a 等面向对象语言。 对象的概念是面向对象技术的核心所在,所有的面向对象的程序都是由对象 来组成的,它们是自治的,自恰的,同时它们还可以互相通信,协调和配合,从 而共同完成整个程序的任务和功能 类是对象的蓝图,是对象的模板通过设计图,我们可以制造许多同种规格的 自行车,同样,通过类,我们可以生成许多同类型的对象 作为面向对象的程序设计语言必须具备四个基本的特征:抽象、封装、继承 与多态性。 所谓抽象就是抓住问题的实质,将注意力放在主要矛盾上。 抽象是科学研究中经常使用的一种方法,即去除掉被研究对象中与主旨无关 的次要步伐,或是暂时不予考虑的部分,而仅仅抽取出与研究工作有关的实质性 的内容加以考虑。 比如人们研究动物与植物的区别时,不会专门研究某一种特别的动物,如牛、 马等,也不会专门研究某一种特别的植物,如芹菜、黄瓜等,人们关心的是动物 它们都有一些什么共同的特征,植物有什么共同的特征,然后提炼出动物与植物 的概念。 所谓封装就是指为了系统的稳定性,将具体的实现细节隐蔽起来,呈现在使 用面前的是简单易用的界面。 面向对象方法的封装特性是一个与其抽象特性密切相关的特性,封装就是指 利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据 类型的内部,系统的其它部分只有通过包裹在数据外面的被授权的操作,才能够 与这个抽象数据类型交流和交互。 浙江大学硕士学位论文 e p a - f f 组态软件的研究与开发 封装就是指将该类的实现细节封装起来,只给用户提供一个友好的界面。比 如复杂的机器,呈现在人们面前的是几个按钮,这些按钮告诉人们它们的作用是 什么,如何启动机器,一些注意事项,并没有将机器的所有细节都呈现在用户的 面前。因此不管机器内部如何编好,只要它的按钮及其功能不变,对于用户来说, 没有必要再培训h 对于软件来说,只要类对象的操作没有改变,仅仅是改变对象的实现细节, 对于其它的对象来说无关紧要。 而且封装起来之后,可以避免对数据误操作,否则会引起一连串的错误。 封装使得抽象数据类型对内成为一个结构完整、可自我管理、自我平衡、高 度集中的整体,对外则是一个功能明确、接口单一、可在各种合适的环境下都能 独立工作的单元。 继承是面向对象程序设计方法中的一种重要手段,通过继承可以更有效地组 织程序结构,明确类之间的关系,并充分利用已有的类来完成更复杂、深入的开 发。 在面向对象技术的各个特点中,继承是最具有特色,也是与传统方法最不同 的一个,继承实际上是存在于面向对象程序中两个类之间的一种关系。当一个类 拥有另一个类的所有数据和操作,就称这两个类之间具有继承关系。被继承的类 称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。 多态可以提高类的抽象度和封闭性,统一一个或多个相关类对外的接口。 所谓的多态分为几种情况,例如虽然一个类的所有子类可能有同一个方法 名,但是它们的实现方法不一样,虽然父子两类有同一个方法名,但是它们的实 现方法不一样,在一个类中,虽然可能有几个方法名相同,但是,它们的实现方 式不一样。 2 3d l l 技术 如我们所知,w i n d o w s 程序都是一些可执行文件,它们可以创建并显示一个 或多个窗体,使用消息循环来接收用户的输入。但是动态链接库并不能直接被执 行,它们一般也不会接收消息。它们只是一些包含着函数的独立文件,这些函数 可以被w i n d o w s 程序或者其它d l l 调用以完成某项任务。 “动态链接”是指w i n d o w s 程序在运行时才把自己需要存在于某个库中的函 数链接进来。“静态链接”是指w i n d o w s 程序在编译阶段就把各种对象模块 ( 0 8 5 ) 、运行时库( l i b ) 和资源文件( r e s ) 链接到一起以创建一个可执行 文件( e x e ) 。 浙江大学硕士学位论文e p a - f f 组态软件的研究与开发 d e r n a l 3 2 d l l ,u s e r 3 2 d l l ,g d l 3 2 d l l ,各种驱动程序如k e y b o a r d d r v , s y s t e m d r v 和m o u s e d r v ,显卡和打印机驱动程序等都是动态链接库。这些库可 以被所有的w i n d o w s 程序共同使用。 有某些动态链接库( 如字体文件) 称为“r e s o u r c e - o n l y ”。它们只包括数 据,而不包括代码。因此,动态链接库的目的之一就是为许多不同的程序提供函 数和资源。在传统的操作系统里,用户程序在运行时只能调用操作系统自身的某 些函数。而在w i n d o w s 操作系统下,模块或程序调用另一个模块中的函数来执行 是一种非常普遍的操作。因此,从某种角度看,对d l l 进行编程,其实是在对 w i n d o w s 操作系统作扩展,也可以看作是在对用户程序作扩展。 动态链接库模块可以有其它的扩展名,但是标准的扩展名是d l l 。只有具有 标准扩展旬的动态链接库模块才可以被w i n d o w s 自动加载。而如果是其它扩展名 的动态链接库模块,程序必须使用l o a d l i b r a r y 或者l o a d l i b r a r y e x 函数来显示 加载。 我们可以发现,在大型的应用软件中,会常常使用到动态链接库技术。举个 例子,假如我们要写一个大型的应用软件,其中包括了多个程序。我们可以发现 很多程序可能都会使用到一些同样的通用的函数。我们可以把这些通用的函数放 到某个目标库文件中( l i b ) ,然后在链接是把它加到每个程序中进行静态链接。 但是这是一种非常浪费的方法,因为每个程序模块中都会包括这些通用函数的独 立拷贝。另外,如果我们要改变库文件中的某个函数,就必须把所有使用到这个 函数的程序都重新编译一遍。但是,如果我们使用动态链接库的技术,把所有这 些通用函数都放到一个动态链接库文件当中,我们就可以解决以上提到的各种问 题。首先,动态链接库在硬盘上只保留一个拷贝,程序只是在运行时才会调用其 中使用到的函数,这样我们就可以节省大量的程序存储和运行空间。其次,如果 要修改某个通用函数时,只要调用接口没有改变,只是改变它的实现方法,那么 我们就不必对每个用到它的程序都进行重新编译,而只要把动态链接库模块重新 编译一遍就可以了。 动态链接库模块也可以作为一个单独的产品来发布。这样程序开发人员就可 以使用第三方的模块来开发自己的应用程序,提高了程序的复用程序,也节省了 大量的时间和精力。 在很多时候时候,我们都会用到“库”( l i b r a r y ) 这个词,除了动态链接 库( d y n a m i c l i n kl i b r a r i e s ) 之外,还有目标库( o b j e c tl i b r a r i e s ) 和导入 库( i m p o r tl i b r a r i e s ) 。下面,我们分别了解一下这三种库的异同点。 目标库是扩展名为l i b 的文件,包括了用户程序要用到的各种函数。它在用 户程序进行链接时,“静态链接”到可执行程序文件当中。例如,在v c + + 中最 浙江大学硕士学位论文e p a - f f 组态软件的研究与开发 常使用到的c 运行时目标库文件就是l i b c l i b 。 导入库是种特殊形式的目标库文件形式。和目标库文件一样,导入库文件 的扩展名也是l i b ,也是在用户程序被链接时,被“静态链接”到可执行文件当 中。但是不同的是,导入库文件中并不包含有程序代码。相应的,它包含了相关 的链接信息,帮助应用程序在可执行文件中建立起正确的对应于动态链接库的重 定向表。比如k e r n e l 3 2 l i b 、u s e r 3 2 l i b 和g d l 3 2 l i b 就是我们常用到的导入 库,通过它们,我们就可以调用w i n d o w s 提供的函数了。如果我们在程序中使用 到了r e c t a n g l e 这个函数,g d l 3 2 l i b 就可以告诉链接器,这个函数在g d l 3 2 d l l 动态链接库文件中。这样,当用户程序运行时,它就知道“动态链接”到 g d l 3 2 d l l 模块中以使用这个函数。 目标库和导入库都是在程序开发过程中才使用到的,而动态链接库是在程序 运行时才使用的。在程序运行时,相应的动态链接库文件必须已经保存在硬盘上 了。另外,如果要使用动态链接库文件,该文件必须要保存在同e k e 文件同一 个目录下,或者保存在当前目录、w i n d o w s 系统目录、w i n d o w s 目录或环境变量 中p a t h 参数指定的目录下。程序也是按照这个顺序来搜寻它需要的动态链接库 文件的。 2 4c o m 技术 c o m 是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的 一种新的软件开发技术。在c o m 构架下,人们可以开发出各种各样的功能专一的 组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是 多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制; 可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络 环境下;c o m 与语言、平台无关的特性使所有的程序员均可充分发挥自己的才智 与专长编写组件模块等等“。 t o m 是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序, 它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的c o m 组件 就如同开发动态的,面向对象的a p i 。多个c o m 对象可以连接起来形成应用程序 或组件系统。并且组件可以在运行时刻,在不被重新链接或编泽应用程序的情况 下被卸下或替换掉。m i c r o s o f t 的许多技术,如a c t i v e x ,d i r e c t x 以及o l e 等 都是基于c o m 而建立起来的。并且m i c r o s o f t 的开发人员也大量使用c o m 组件来 定制他们的应用程序及操作系统。 c o m 所含的概念并不止是在m i c r o s o f tw i n d o w s 操作系统下才有效。c o m 并 浙江大学硕士学位论文 e p a f f 组态软件的研究与开发 不是一个大的a p i ,它实际上象结构化编程及面向对象编程方法那样,也是一种 编程方法。在任何一种操作系统中,开发人员均可以遵循“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 组 1 6 浙江大学硕士学位论文 e p a - f f 组态软件的研究与开发 件打交道。从整体上讲,客户对于一个组件可以说是知之甚少的。通常情况下, 客户甚至不必知道一个组件所提供的所有接口。 客户同组件的交互是通过接口完成的。在客户查询组件其他的接口时,也是 通过接口完成的。这个接口就是i u n k n o w n 。i u n k n o w n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年功能性饮料在运动康复中心的市场推广与效果评估报告
- 中医药现代化进程中的国际市场拓展:2025年中亚市场机遇与挑战研究报告
- 2025年公共基础知识试题库带答案详解
- 2025年垃圾分类知识竞赛题库及答案大全
- 2025年大学警卫学专业题库-警卫员队伍专业化培训
- 2025年湖南省邵阳市社会工作者职业资格社会工作法规与政策真题含答案
- 基于2025年标准的智能家居系统互联互通技术深度报告
- 2025年大学华文教育专业题库- 教学评估方法与学生学业反馈
- 2025-2032年全球主要城市新能源汽车充电网络布局策略研究报告
- 2025年电气自动化练习题与答案(附解析)
- DB65-T 4803-2024 冰川厚度测量技术规范
- 护理专业新进展介绍
- 大疆无人机培训课件
- 中级消防员维保培训课件
- 小儿推拿进修总结汇报
- 2025公司应急预案演练计划(5篇)
- 医疗机构医院全员培训制度
- 2025仓库保管员试题及答案
- 生猪养殖场实施方案
- 矛盾纠纷化解培训课件
- 2025年成人高考语文试题及答案
评论
0/150
提交评论