




已阅读5页,还剩56页未读, 继续免费阅读
(控制理论与控制工程专业论文)组态软件图形开发系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
笙里三奎堂堡主里垡堡茎 摘要 图形系统是组态软件的一个重要组成部分,它以图形方式对控制系统现场环境中客 观存在的事物进行模拟,并且建立它们之间的信息关系,形成简洁、直观、生动的现场 背景和工艺流程图以及用户与系统之间的交互图。 本文结合实际项目的任务需求,在参考国内外成熟组念软件的基础上,选择工厂模 式对软件的主体结构进行设计,保证了系统的一致性和可扩展性。 组态软件图形丌发系统以v i s u a lc + + 为开发平台,采用将图形系统分为图形编辑组 态、动画连接组态和x m l 文档交互三个功能模块的设计方案。其中,图形编辑模块负 责各类矢量图元的创建、移动、无级缩放与属性编辑,同时引入图库,并利用微软组件 对象模型( c 0 m ) 技术为用户提供a c t i v e x 控件的载入与编辑。软件通过动画连接组态 模块实现组态图元与工业控制现场的i 0 变量的关联,并以此为基础对现场设备情况进 行模拟和监控,文中给出了动画连接组态模块的具体实现过程。x m l 文档交互模块是 组态软件通信软总线的重要组成部分,从功能上该模块又分为组态数据读取和运行数据 生成两部分,前者负责与组态软件开发部分进行数据交互,后者生成画面组态信息供运 行系统使用,x m l 描述文档的生成和解析采用微软的d o m ( 文档对象模型) 解析器 m s x m l 来实现。利用x m l 文档进行信息描述和数据传递方便了用户浏览,也为组态信 息的w e b 发布提供了便利。 组态软件图形开发系统界面友好,操作简便,与运行系统连接紧密。系统在实际项 目中投入运行,达到了预期的效果,也证明了本系统可以应用于电力、化工等多个工控 领域。 关键词:图形组态:动画连接;x l i l l :组件对象模型 i 丝查竺壁里星茎垄墨竺塑堡笪皇壅墨一 d e s i g n a n d i m p l e m e n t a t i o n o f g r a p h i c a lc o n f i g u r a t i o ns y s t e m a b s t r a c t t h e g r a p h i c a lc o n f i g u r a t i o ns y s t e mi sa ni m p o r t a n tp a r to f t h ed e v e l o p m e n te n v i r o n m e n t i nac o n f i g u r a t i o ns o f t w a r e t h es y s t e ma b s t r a c t sc o n c r e t eo b j e c t si nt h ec o n t r o lf i e l du s i n g g r a p h i c sm o d e ,b u i l d s t h er e l a t i o n s h i po f t h e m , a n df o r m st e c h n i q u ef l o wc h a r ta n dm u t u a lv i e w b e t w e e nu s e r sa n d s y s t e m i nt h ee n d c o n s i d e r i n gt h ed e m a n do f t h ec u s t o m e ra n dr e f e r r i n ge x c e l l e n tc o n f i g u r a t i o ns o f t w a r ei n t h ew o r l d ,t h i sp a p e rc h o o s e sf a c t o r ym e t h o df r o ms e v e r a lc l a s s i c a lm e t h o d st od e s i g nt h e f l - a m e w o f ko ft h es o f t w a r e t h em e t h o d sa p p l i e di nt h i sp a p e ra s s u r ec o n s i s t e n c ya n do p e n i n g o f t h e s y s t e m t h es y s t e mi sd e v e l o p e db yv i s u a lc - h 6 0 ,a n dd i v i d e di n t ot h r e em o d u l e s ,a c c o r d i n gt o t h ei d e ao f m o d e l i n gd e s i g n t h em o d u l e s o f g r a p h i c a le d i t o ra r ei nc 1 1 a r g co fc r e a t i o n ,m o t i o n , z o o ma n de d i tt h eg r a p h i c s i ta l s oi m p o r t st h eg a l l e r ya n da c t i v e xc o n t r o lu s i n gt h et e c h n o l o g y o fc o m t h es o f t w a r ei m p l e m e n t st h ec o n n e c t i o nb e t w e e ng r a p h i c sa n dy ov a r i a b l eb y a n i m a t i o nm o d u l e i nt h i sw a y ,u s e rc a nw a t c ha n dc o n t r o lt h ed e v i c e si nt h ef i e l d t h em o d u l e o fx m ld o c u m e n ti sas i g n i f i c a n tp a r to fd a t as o f tf l e l d b u so ft h ec o n f i g u r a t i o ns o l r , d r e f u n c t i o n a l l y ,i tc o n s i s t so f t w op a r t s o n ei sf o rr e a d i n g t h ec o n f i g u r a t i o nd a t aa n dt h eo t h e ri s u s e dt og e n e r a t et h er u n n i n gi n f o r m a t i o n t h i sp a p e r a d o p t sm s x m l t oc r e a t ea n d p a r s et h e x m l d o c u m e n t t h eg r a p h i c a ls y s t e mi sac o n f i g u r a t i o ns o f t w a r ew i t hf r i e n d l yi n t e r f a c ea n de a s yt ob e u s e d i ti s a p p l i e di np r o j e c t s t h a ta l lh a v eg o o da p p l i c a t i o ne f f e c t s ,w h i c ha l s op r o v e st h e s o f t w a r ec a nb e a p p l i e d i ni n d u s t r i a lc o n t r o lf i e l d s ,s u c ha sc h e m i s t r y ,p o w e r , e t c k e yw o r d s :g r a p h i c a lc o n f i g u r a t i o n ;a n i m a t i o n ;x m l ;c o m 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究 工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 大连理工大学或其他单位的学位或证书所使用过的材料。与我一同工作 的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢 意。 作者签名:刘田日期:丝虫塑:! 燮堡王查堂堡主堂堡堡壅 1 绪论 随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展, 作为用户无需改变运行程序原代码的软件平台工具工控组态软件日渐成熟。由 于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期 以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制工程现场操作技 术和经验的矛盾,极大地提高了自动化工程的工作效率。目前世界上有不少专业厂 商包括专业软件公司和硬件系统厂商生产和提供各种组态软件产品。近年我国的组 态软件市场也有了较快的发展,每年的市场增幅都在加大,未来的发展前景十分看 好【1 。2 1 。 1 1 工业控制组态软件动态 1 1 1 组态软件技术发展现状 “组态”的概念最早来自英文,其含义c o n f i g u r a t i o n 是使用软件工具对计算机及 软件的各种资源进行配置( 包括进行对象的定义、制作和编辑,并设定其状态特征属 性参数) ,达到使计算机或软件按照预先设置,自动执行特定任务,满足使用者要求 的目的。它是伴随着集散型控制系统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 ) 如何与采集、控制设备问进行数据交换;( 2 ) 使来自设备的数据与 计算机图形画面上的各元素关联起来;( 3 ) 处理数据报警及系统报警;( 4 ) 存储 历史数据及历史数据的查询;( 5 ) 各类报表的生成和打印输出:( 6 ) 为使用者提 供灵活多变的组态工具,可以适应不同应用领域的需求;( 7 ) 最终生成的应用系统 稳定可靠: ( 8 ) 具有与第三方程序的接口,方便数据共享 2 - 7 。 组态软件产品于上世纪8 0 年代初出现,目前世界上的组态软件有近百种之多。 国际上知名的工控组态软件有美国商业组态软件w o n d e r w a r e 公i n t o u c h ,i n t e l l u t i o n - l - 丝查竺壁望垄丝墨丝堕堡盐皇塑 公雌j f i x 、n e m as o i l 公司的p a r a g o n 、t ae n g i n e e r i n g 公司的a i m a x 、通用电气公 司的c i m p l i c i t y 、r o c k - w e l l 公司的r s v i e w 3 2 、信肯通公司的t h i n k & d o 、n a t i o n a l i n s t r u m e n t s 公司的l a b v i e w 、i c o n i c s 公司的g e n e s i s ,德国西门子公司的w i n c c ,以色 , i j p cs o t t 公司的w i z c o ,澳大利亚c i t e c h 公司的c i t e c h 等。 国内的组态软件起步也比较早,目前实际工业过程中运行可靠的有北京昆仑通 态自动化软件科技有限公司的m c g s 、北京三维力控科技有限公司的力控、北京亚控 科技发展有限公司的组态王以及台湾研华的0 e 卜i e 等 3 】【5 】 6 】。 1 1 , 2 组态软件的发展趋势 在组态软件赖以普及发展的诸多因素中,有技术层面的,也有商业层面的,但 制造业的需求是决定性的。制造业的发展,带来了对组念软件需求的提升;也决定 了组态软件将由过去单纯的组态监控功能,向着更高和更广的层面发展【4 】。未来,组 念软件的发展将主要表现为如下一些特征: ( 1 ) 开放性技术 组念软件正逐渐成为协作生产制造过程中不同阶段的核心系统,无论是用户还 是硬件供应商都将组态软件作为全厂范围内信息收集和集成的工具,这就要求组态 软件大量采用“标准化技术”,女n o e c 、d d e 、a c t i v e x 控件、c o m d c o m 等,使 组态软件演变成软件平台,在软件功能不能满足用户特殊需要时,用户可以根据自 己的需要进行二次开发。组态软件采用标准化技术还便于将局部的功能进行互连。 在全厂范围内,不同厂家的组态软件也可以实现互连。 ( 2 ) 构造全厂信息平台 如何使实时历史数据能够进入企业信息管理系统,是现代信息工厂迫在眉睫的 需求。随着大型数据库技术的日益成熟,全球主要的自动化厂商已发展了相关平 台,使组态软件向着生产制造和管理信息系统的方向发展。组态软件已经成为构造 全厂信息平台的承上启下的重要组成部分。在未来企业的信息化进程中,组态软件 将成为中间件,因为组态软件厂商在既了解企业工艺、控制及生产制造需求,又能 完成现场历史数据的记录、存储及为e r p 提供生产实时数据方面有着得天独厚的优 势。 ( 3 ) 瘦客户技术 组态软件正在从单机向客户服务器方向发展,使得通过i n t e m e t j n t r a n e t 观察和控 制生产过程的需求成为可能并且急剧增长。瘦客户技术使得用户可以在企业的任何 2 燮里三查塑主兰鱼堡茎 地方都可以方便的获取信息。而且,在企业人才和资源比较缺乏的情况下,使用瘦 客户技术只需要对服务器端进行维护升级,可以使系统安装和维护费用大幅度降 低。 ( 4 ) 基于平板电脑币i p d a 的人机界面解决方案 预装了 w i n c e 的平板电脑在价格上、功能上、可靠性上比传统的工控机都显示 出巨大的优势,尤其在一些控制要求相对简单且需要人机界面的场合,平板电脑大 有取代工控机的趋势。平板电脑还有很好的扩展,带有现场总线接口的平板电脑不 仅具有美观的人机界面,还可以同时兼顾分布式现场控制。另外,数字终端已具备 越来越强的功能和智能化。软件方面,以x m l 为基础的w m l 语言标准已经建立。这些 技术的发展为无线的人机界面解决方案提供了先决条件。和其他技术相比,无线的 人机界面具有更低的费用、更快的连接、更容易地获取重要的生产信息等优点。 ( 5 ) 嵌入式应用软件 目前的嵌入式应用软件主要基于d o s 和各种实时多任务操作系统,大多应用在 一些特殊场合和特殊设备上,随着现代制造业的发展,对这些特殊设备的控制也提 出了更多的要求,尤其是人机界面和复杂控制方面的需求,p c 的小型化、w i n c e 的 发展为满足这种需求奠定了基础。为嵌入式系统量身定制的微型化的人机界面软件 是组态软件厂商的新的发展方向。 ( 6 ) 软硬件整体解决方案 “一站式购买”是现在种比较成功的商业模式。在工控行业就是软硬件整体 解决方案。西门予、g e 、r o c k w e l l 是传统的p l c 提供商,但短短几年时间,他们 都在h m i 市场获得巨大成功,像西门子的w i n c c 更是超越众多老牌的产品成为世界 第二。w o n d e r w a r e 在1 9 9 8 年被英 虱i n v e n s y s 并购,i n t e l l u t i o n 在1 9 9 5 年被爱默生电 气并购,这都是软硬件整体解决方案的最好例证。所以,组态软件厂商与硬件厂商 合作,为用户提供软硬件整体解决方案将是未来组态软件发展的一大特征。 ( 7 ) 大规模定制 全球组态软件厂商大多基于微软的w i n d o w s 平台,技术也类似,产品功能上难以 形成巨大的差距,不可能产生垄断性的核心技术,即挟定性的技术优势已经难以建 立。所以,个性化方案和服务在竞争中日益重要。随着现代工业“小批量、多品 种”特征的形成,今后的组态软件将朝着针对特殊行业和生产过程的大规模定制方 向发展。即用特殊定制的产品来代替标准化的产品。如亚控针对电力的输配电行业 的特殊需求开发了“组态王电力版”。 - 3 组态软件图形开发系统的设计与安现 ( 8 ) 以客户为导向的软件设计 如何站在客户的角度来设计软件是所有组态软件厂商都应面对的挑战,组态软 件涉及从控制、人机界面到生产管理的多个层次,相应存在着多个模块,如亚控目 前有组态王和软逻辑两大产品模块,保持了不同模块的一致性,能有效地减少用户 学习的时间。相同的数据结构也便于产品在企业内集成。这种一致性不仅表现在外 观和感受上,还表现在兼容性、平台、编程工具、数据访问、控制引擎及e - b u s i n e s s 等诸多方面。例如西门子的w 抽c c 和编程软件s t e p 7 使用了相同的数据结构,所以用 户只需将系统中的数据点定义一次。 ( 9 ) 成为全球供应商 w t o 将给国内的自动化厂商带来深刻的影响,一方面国门对外打开,另一方 面,国外的市场对国内的自动化厂商也已打开。因为目前中国的市场份额只占全球 的3 ,所以成为全球组态软件供应商对于国内组态软件公司的发展至关重要。另 外,国内越来越多的系统集成商和设备制造商在未来可能成为世界级的公司,他们 的产品向全球销售时,他们更需要世界级的软件厂商向他们提供产品和服务,这对 国内的组态软件生产商是一个很好的发展机遇口卅。 1 2 论文主要任务 本论文课题源自大连电子研究所电除尘监控组态软件项目,于2 0 0 3 年4 月进入 实际开发阶段。大连电子研究所电除尘监控组态软件是为大连电子所开发的组态软 件平台,该系统除实现通用组态软件的基本功能外,特别提供对大连电子所高压 柜、低压柜等硬件产品的图形动画组态、数据采集、数据处理等功能的支持。实现 了上位机对各类现场i o 设备的监控。2 0 0 4 年5 月起开发本软件的2 0 版本,升级后 的软件除添加相应的功能之外,软件的架构更具开放性,同时编辑环境也更加符合 用户的使用习惯。 软件由开发系统、图形组态系统、运行系统三部分组成,本论文实现其图形组 态部分。该系统主要实现以下几部分功能: 1 矢量图形的绘制与编辑: 2 设备图库以及c o m 组件的引入与编辑; 3 图元的动画连接组态; 4 与开发系统的x m l 数据交互: 5 与运行系统的x m l 数据交互。 4 盔垄堡三奎堂塑主堂堡堡皇 2 图形开发系统结构分析和设计 2 1 组态系统软件结构 本文的组态软件由三部分组成,分别是开发系统、图形组态系统以及运行系 统。三者都是独立的w i n d o w s 程序,可以单独使用,但又相互依存。其关系如图2 1 所示。 开发系统 运行系统 图形组态系统 工程管理 p _系统实时运 r v j v 集成开发环境 行环境,监 工程浏览 控工程现 场。 i 档 图2 1 组态软件结构图 f i g 2 1t h e s t r u c t u r eo f c o n f i g u r a t i o ns o f t w a r e 其中,开发系统负责工程管理和浏览,以及变量定义、资源配置等,图形组态 系统用于模拟现场工况,分为静态图形设计和动态属性设置两个过程,图形组态完 毕后,进入运行系统,对工控现场进行监视和控制。三者之间的数据交互通过亿 描述文档实现。 2 2 组态软件图形开发系统结构划分 组态软件图形开发系统以w i n d o w s 2 0 0 0 为开发平台,v i s u a lc + + 6 0 为开发工 具。由动画连接组态模块,界面生成模块和x m l 数据交互模块三部分组成,各模块 之间的关系如图2 2 所示。 界面生成模块是整个系统的核心部分,该模块将图元分为矢量图、图库、组件 等类别,工程人员可以方便的进行任意图元的创建和编辑工作。软件通过动画连接 组态模块建立图元与现场i 变量、内存变量等的关联,以此为基础实现组态软件的 动画连接。x m l 数据交互模块分为组态数据读取和运行数据生成两部分,前者用来 与开发系统进行交互,后者负责生成运行系统需要的组态信息。 - 5 组态软件图形开发系统的设计与实现 动画连接模块 建立图元与变量的连接关系 八o 界面生成模块 型元创建 图元编辑 0v 懿蝴f黻f 交互模块l 一一 f i g 2 2t h es t l 卫咖r eo fg r a p h i c a lc o n f i g u r a t i o ns o f t w a r e 2 3 系统设计模式的选择与应用 设计模式是软件设计过程中经常出现的问题的解决方法,一个好的模式能使 所生成的系统体系结构更加精巧简洁和易于理解。在程序开发过程中,设计模式的 选择非常重要,软件领域中的设计模式为开发人员提供了一种使用专家设计经验的 有效途径。所有结构良好的面向对象软件体系结构中都包含了许多经典模式。在面 向对象的编程中,软件编程人员更加注重以前的代码的重用性和可维护性。而软件 设计模式选择和应用的是否恰当,正是评判个面向对象的软件系统质量好坏的重 要标准。 2 3 1 工厂模式( f a c t o r ym e t h o d ) 在实际软件项目中,工厂模式是应用最广泛的设计模式。工厂模式定义一个用 于创建对象的接口,让予类决定实例化哪一个类。类工厂是一个生产不同对象的 类,并将不同的类对象作为接口返回。即工厂模式可以根据不同的条件产生不同的 实例”川。当然这些不同的实例通常属于相同的类型,有共同的父类,工厂模式把创建 这些实例的具体过程封装起来了,简化了客户端应用,使得将来做最小的改动就可以 6 大连理丁大学硕+ 学位论文 加入新的待创建的类。工厂模式真正的目的在于可以灵活的、有弹性的创建不确定 的对象。以下是工厂模式的结构图: o 僖a t o t f 峨口r 州e 灿d 口 a n o 州抽n 0 o - - c o n c r e 把c r e q m r f a c t o r m e m o d 0 o _ 图2 3 工厂模式结构图 f i g 2 3t h e s t r u c t u r eo f f a c t o r ym e t h o d 其中:p r o d u c t 定义工厂方法所创建的对象的接口,c o n c e t e p r o d u c t 实现p r o d u c t 接 口,c r e a t o r 声明工厂方法,该方法返回一个p r o d u c t 类型对象。c r e a t o r 也可以定义一 个工厂方法的缺省实现,它返回一个缺省的c o n c r e t e p r o d u c t 对象。可以调用工厂方法 实现一个p r o d u c t 对象,c o n c r e t e c r e a t o r 方法重定义工厂方法以返回个 c o n c r e t e p r o d u c t 实例嘲。 工厂模式设计思想适用于下列情况: l 、当一个类不知道其必须创建的对象的类的时候: 2 、当一个类希望由其子类指定所创建的对象的时候。 鉴于工厂模式的上述特征,并结合本组态软件图形系统的自身特点和要求,采 用工厂模式来实现本系统的主体架构。 2 3 - 2 基于工厂模式的类设计 图形系统中,根据系统特点,设计图元基类c d r a w o b j 以及图元绘制类 c d r a w t o o l 。其中,图元基类抽象了所有图元的属性及相关操作,下设直线、矩形、 椭圆、圆、控件等图元子类,其层次结构如图2 4 。 图元绘制工具类用于处理绘图时坐标的记录和鼠标事件的处理,并创建新的图 元实例,下设子类分别用来处理矩形、多边形、文本等不同类型的图元,其层次结 构如图2 5 。 7 组态软件图形开发系统的设计与实现 图2 4 图元基类结构 f i g 2 4t h e s t r u c t u r eo f g r a p h i c a lb a s i cc l a s s e s f i g 2 5t h es t r u c t u r eo f c l a s s 姻f o rd r a w i n g ic d m 、v t 0 0 i c r e c t t o o i + o n c r e a t e 0 :c r e c t t o o l 图2 6 系统类关系模式 f i g 2 6t h ep a t t e r no f c l a s s 哪r e l a t i o n s h i p 8 目个目 大连理工大学硕士学位论文 图元基类c d r a w o b j 和图元绘制类c d r a w t o o l 共同构成了工厂模式。对应于工 厂模式,c d r a w o b j 为p r o d u c t ,亦即需要创建的实例的抽象类,而c d r a w r e c t 、 c d r a w p o l y 等组成具体的子类( c o n e r e t e p r o d u c t ) ;c d r a w t o o l 为c r e a t o r ,也就是抽 象创建器的接1 2 1 ,具体的创建器( c o n c r e t e c r e a t o r ) 由c r e c t t o o l 、c p o l y t o o l 等子类 实现。对应结构如图2 6 。 c d r a w t o o l 类相当于一个对象生成的工厂,针对需要生成的不同对象使用相对 应的不同的工具。该模型的建立为软件提供了更好的一致性和可扩展性,也为后期 维护和升级提供了便利。 - 9 塑查鏊壁望咝墨堡塑丝生皇塑 3 组态软件图形开发系统的实现 3 1 图形元素 3 1 1 基本图元 组态软件的图元就用途而言,分为静态和动态两部分。静态部分用来模拟监控 现场没有设置相应测点的背景对象,比如车间的设备布置、房间等。这些图形元素 的设黄有利于给操作人员建立种现场感。在设计静态图元时通常引入现场照片作 为监控背景。监控对象本身的静态部分则一般可用软件提供的图形构造工具产生, 以便于在设计监控画面时动态调整监控对象在背景中的布局,并方便在监控系统的 投入运行后,如果被控对象发生改变后对相应的图形元素进行再编辑。 动态部分的任务是反映被控对象的变化。比如从屏幕上了解罐的液位、管道内 流体的流向等,一般需要直接在屏幕上显示数据变化。同时辅以直观的动画来模拟 现场。这部分功能可以通过基本矢量图形和仪表、电机等控件来实现。 基于以上的分析,将系统的图形元素分为基本矢量图元、图片以及控件三大 类。并在此基础上细分,层次关系如图3 1 。 图3 1 系统图形类别 f i g 3 1s o r t so f g r a p h i c s 3 1 2 图元的整合和分解 用户在对图元的编辑过程中,常常要对几个图元整体采取移动、删除等操作。 软件除了提供全选之外,还提供整合分解功能。 - 1 0 - 大连理工大学硕士学位论文 具体操作上:将几个图元全选之后,点击鼠标右键,选择菜单“整合”,即可 实现整合功能,此后这几个图元将作为一个整体供用户编辑。用户选中整合后的图 元,点选右键菜单“分解”,即可将整合的图元还原为原有的多个图元。 该功能的主要实现过程如下:在c d r a w o b j 中定义一个标 己! 变量m _ u n i t e f l a g , 当用户选择图元并点选“整合”时,将m _ u n i t e f l a g 置为非零;点选“分解”时, m _ u n i t e f l a g 置为零,在对图元的编辑过程中,如鼠标移动,则判断m _ u n i t e f l a g 值,非零且m _ u n i t e f l a g 值相同的图元采用相问的偏移量。相关主要函数如下: 整合函数: v o i d c s e l e c t t o o l :o n u n i t e ( c d r a w v i e w + p v i e w ) m u n i t e f l a g + + ; p o s i t i o n p o s 2 p v i e w - m _ s e l e c t i o n g e t h e a d p o s i t i o n 0 ; w h i l e ( p o sf _ n u l l 、 产遍历选中图元列表,将其m _ u n i t e f l a g 置为相同数4 c d r a w o b j + p o b j 2 p v i e w - m _ s e l e c t i o n o e t n e x t ( p o s ) ; p o b j 。 m _ u n i t e f l a g = m _ u n i t e f l a g ; ) 分解函数: v o i d c s e l e c t t o o l :o n d e t a c h ( c d r a w v i e w * p v i e w ) m u n i t e f l a g + + ; p o s i t i o n p o s 2 p v i e w - m _ s e l e e t i o n g e t h e a d p o s i t i o n 0 ; w h i l e ( p o s ! = n u l l ) 严遍历选中图元列表,将其r n _ u n i t e f l a g 都置为零,表已分解+ c d m w o b j + p o b j 2 p v i e w - m _ s e l e c t i o n g e t n e x t ( p o s ) ; p o b j - m _ u n i t e f l a g = 0 ; ) - 1 1 组态软件图形开发系统的设计与实现 3 1 3 图形元素的类设计 在对图形元素分类的基础上,基于面向对象的思想,对要设计的图形元素进行 抽象,设计出图元基类c d m w o b j ,下面列出图元基类的典型变量和函数: c r e c tmp o s i t i o n ;图元的矩形区域 c d r a w d o c * mp d o c u m e n t ;文档指针 v i r t u a lv o i d d r a w ( c d c 4p d c ,c d r a w v i e w + p v i e w ) ;绘制图元 e r l u m t r a c k e r s m t e n o r m a l ,s e l e c t e d ,a c t i v e 图元跟踪状态 v i r t u a lv o i dd r a w t r a c k e r ( c d c + p d c ,t r a c k e r s t a t e s t a t e ) ;图元跟踪 v i r t u a lv o i dm o v e t o ( c o n s t c r e c t & p o s i t o n ,c d r a w v i e w + p v i e w = m _ r l d d l j ;动位 置 v i r t u a li n th i t t e s t ( c p o i n t p o i n t , c d r a w v i e w + p v i e w , b o o lb s e l e c t e d ) ;,选中测试 v i r t u a lb o o l i n t e r s e c t s ( c o n s tc r e c t & r e e o 矩形内判断 v i l t u b lv o i d m o v e h a n d l e t o ( i n tn h a n d l e ,( :p o i n tp o i n t ,c d r a w v i e w * p v i e w = n u l l ) ;艉多动热点句柄 v i r t u a lv o i d o n o p e n ( c d r a w v i e w * p v i e w ) ;! 打开属性对话框 v t r t u a lv o i d o n e d i t p r o p e r t i e s 0 ;, 裙性编辑 v t r t u a lv o i d o n a n i m a t i o n 0 ;# 动画连接 v i m l a l c d r a w o b j + c l o n e ( c d r a w d o c 4p d o c = n u l l ) ;i 复制单元 v i r t u a lv o i d r e m o v e 0 ;热j 除单元 v i r t u a lv o i d s e r i a l i z e ( c a r c h i v e & a r ) :序列化 由图元基类c d r a w o b j 派生出其他具体图元类,包括c d r a w r e c t 、c d r a w t e x t 、 c d r a w p o l y 等,各派生类实现基类全部或部分接口功能。 3 2 图形编辑模块 3 2 i 图元创建 在程序中,图元的创建主要分为下面三个步骤: 1 创建新的图元实例。 2 跟踪鼠标移动修改图元,获得所见即所得的视觉效果。 3 确定并保存新建的图元实例。 此三个步骤都是结合鼠标操作来完成,在v c 下主要的鼠标事件如表3 1 所示: 1 2 _ 大连理,l :大学硕士学位论文 表3 1 主要鼠标事件 t a b 3 1m a i nn l o u s ee v e n t s 下面以绘制矩形图元为例,概述整个图元的绘制过程。 第一步:创建新的图元实例 首先通过鼠标左键在工具栏中选择图元类型,当鼠标左键在绘图区按下时,创 建i 习元类实例,并将实例指针保存到成员变量n 1 _ o b j e c t s 中,r e _ o b j e c t s 的类型说明如 下: t y p e d e f c t y p e d p t r l i s t c d r a w o b j l i s t ; 相关代码: v o i d c d r a w t o o l :o n l b u t t o n d o w n ( c d m w v i e w + p v i e w , u i n tn f l a g s ,c o n s t c p o i n t & p o i n t ) p v i e w - s e t c a p t u r e 0 ; c _ n d o w n f l a g s = n f l a g s ; c _ _ d o w n 2 p o i n t ; c l a s t 2 p o i n t ; v o i d c r e c t t o o l :o n l b u t t o n d o w n ( c d r a w v i e w + p v i e w , u n ti l f l a g s ,c o n s tc p o i n t & p o l o c d r a w t o o l :o n l b u t t o n d o w n ( p v i e w , n f l a g s ,p o i n t ) ; c p o i n t l o c a l = p o i n t ; p v i e w - c l i e n t t o d o c ( 1 0 c a l ) ; c d r a w r e c t + p o b j 2 n e w c d r a w r e c t ( c r e c t ( 1 0 c a l ,c s i z e ( 0 ,0 ) ) ) ; s w i t c h ( m _ d r a w s h a p e ) 1 3 - 组态软件图形开发系统豹设计与实现 d e f a u l t : a s s e r t ( 山s e ) ;u n s u p o r t e ds h a p e ! c a s er e c t : p o b j 一 r n _ n s h a p e 2 2c d r a w r e c t :r e c t a n g l e ; b r e a k ; c a s cm u n d r e c t : p o b j - m _ n s h a p e 2 c d r a w r e e t :r o u n d r e c t a n g l e ; b r e a k ; c a s e e l l i p s e : p o b j - m _ n s h a p e 2 c d r a w r e c t :e l l i p s e ; b r e a k ; c a s el i n e : p o b j 一 m _ n s h a p e = c d r a w r e c t :l i n e ; b r e a k ; g a s ec i r c l e : p o b j - m _ n s h a p e = c d r a w r e c t :c i r c l e ; b r e a k ; p v i e w - g e t d o c u m e n t 0 - a d d ( p o b j ) ; p v i e w - s e l e c t ( p o b j ) ; s e l e c t m o d e = s i z e ; n d r a g h a n d l e = l ; l a s t p o i n t = l o c a l ; ) 其中,c _ n d o w n f l a g s 用于指示当前绘图状态( 在o n m o u s e m o v e 事件程序中使 用) ,当该变量为真时,进入图元移动状态。c _ d o w n 和cl a s t 记录当前矩形的左上 角和右下角坐标。 黼3 p v i e w - g e t d o c u m e n t 0 - a d d ( p o b j ) ;中调用文档类中的添加图元函数, 如下: v o i d c d r a w d o c :a d d ( c d r a w o b j * p o b j ) m _ o b j e c t s a d d t a i l ( p o b j ) ; p o b j - m _ p d o c u m e n t = t h i s ; 1 4 大连理工大学硕士学位论文 s e t m o d i f i e d f l a 9 0 ; 该函数实现了将新创建的图元实例存入指针链表中。 下图为鼠标左键响应过程的流程图 l鼠标左键在视图中单击 l 触发0 n l b u t t o n d o w n 事件 ( 翌鲨皇竺! 困 图3 2 鼠标左键响应流程 f i g 3 2t h e r e s p o n s ef l o wo f t h el e f tb u t t o no f t h em o u s e 第二步:调整图元 当进入图元移动状态后,图元将随着鼠标的移动而随时移动。该过程在 c d r a w t o o l 的o n m o u s e m o v e 事件程序中实现。使用调整图元可以获得动态的图元创 一1 5 塑查塑里垄丝墨竺塑塑盐皇壅墨 建效果,实现所见即所得的功能,使用户在绘图时立即看到绘图效果,增强软件的 友好性和互动性。实现调整图元功能的代码是: cl a s 唧o h :改变当前矩形的右下角坐标 s e t c u r s o r ( a f x g e t a p p 0 - l o a d s t a n d a r d c u r s o r ( i d c _ a r r o w ) ) ; 以及c r e c t t o o l 类中的如下代码: s e t c u r s o r ( a f x g e t a p p 0 - l o a d s t a n d a r d c u r s o r ( i d c _ c r o s s ) ) ; s e l e c t t 0 0 1 o n m o u s e m o v e ( p v i e w , n f l a g s ,p o i n t ) ; 第三步:保存数据 当用户抬起左键时,代表已完成图元绘制。程序需保存图元数据,恢复绘图前 的程序设置并更新视图显示。在c d r a w t o o l 的o n l b u t t o n u p 中加入下列代码实现该 功能: r e l e a s e c a p t u r e o ;释放鼠标锁定 i f ( p o i n - c _ d o w n ) c _ d r a w s h a p o = s e l e c t i o n ; 并在c r e e t t o o l 类中执行如下代码: i f ( p o i n t = 一e _ d o w n ) c d r a w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物细胞生长特性与遗传规定研究报告
- UML理论的基本概念与原理
- 农产品价格监测预案
- 民生银行唐山市丰润区2025秋招笔试性格测试题专练及答案
- 离婚净身出户协议书:财产清偿及子女抚养权归属
- 离婚无房财产分配及子女抚养协议书
- 光大银行株洲市石峰区2025秋招半结构化面试题库及参考答案
- 仓储物流中心租赁押金合同与货物配送服务协议
- 婚姻关系解除后赡养责任起始时间协议书
- 离婚财产分割协议中车辆贷款权益确认及归属协议
- 《商务英语视听说(3)》教学大纲
- 洱海保护课件
- 2024呼和浩特粮油收储有限公司招聘19名工作人员笔试备考试题及答案解析
- 乡村医生法律法规培训
- (北师大版2024)七年级数学上学期期中测试卷
- 义务教育法主题班会课件
- 全国计算机等级考试一级历年考试真题试题库(含答案)
- 《系统工程与决策分析》全册配套课件
- 数据驱动的教育决策
- 租房转让协议书
- 译林版七年级上学期英语第一次月考试卷(含答案解析)
评论
0/150
提交评论