基于Graphics View的组态仿真框架的设计

来源 :硅谷 | 被引量 : 0次 | 上传用户:cser905
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]设计一种基于Qt Graphics View的组态仿真框架。按照Graphics View模块化的设计思路,首先介绍其每个模块的特性,并在此基础上提出组态仿真的设计要素。最后提出控制策略和数据库的设计思路。
  [关键词]Qt Graphics View 组态 仿真 控制策略
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320043-01
  
  一、引言
  随着信息技术和自动化技术的飞速发展,可视化组态软件系统在工程设计、地形勘测、游戏开发等诸多领域都有着广泛的应用。开发一款控制算法高效、功能完善且具有灵活扩展性的组态仿真软件可能是一项十分复杂的工作,但优秀的软件框架无疑是至关重要的。
  Qt是一套优秀的跨平台应用程序开发包,自4.2版本开始引入的Graphics View框架对于开发者有很大的吸引力。Graphics View提供基于图元的模型视图设计方式,具备完善的图元管理、碰撞检测、外部事件处理及坐标变换等功能。Graphics View包含三个主要模块,它们分别是场景(Scene)、视图(View)和图元(Item)。下文将从模块的角度,利用Graphics View设计一个通用的组态仿真框架。
  二、视图模块
  Graphics View的视图模块提供了场景的载体,其实现类为QGraphicsView, 该类继承自QAbstractScrollArea,是一个可滚动的窗口组件。在设计过程中,可以直接利用QGraphicsView的子类作为软件的顶层组件,更常用的方法是将其作为QMainWindow的中心部件,这样可以充分利用QMainWindow的菜单栏和工具栏实现功能的统一化布局和管理。
  视口的几何变换功能可以在该模块完成。QGraphicsView类提供了统一的视口变换方法setMatrix,从而将旋转、缩放、平移、仿射等变换统一为矩阵变换。值得注意的是,矩阵变换仅改变场景的显示效果,并不影响实际的图元数据。所有这些功能可以转化成为模块的接口,通过信号槽机制连接用户界面,响应用户操作。
  三、场景模块
  Graphics View的场景模块主要由QGraphicsScene类来实现。绘图场景模块位于整个组态仿真框架的中间层次:外层有可视化模块QGraphicsView的支持,同时场景也管理着框架最内层次的图元模块、控制着图元的几何变换和渲染、重绘、设置字体和颜色等变换。利用场景可以实现对大量不同类型图元的系统方便的管理。
  在仿真框架中,我们将控制逻辑加入到该模块,使其具有控制器的功能。根据软件的具体需求不同,该模块可能执行不同的操作,一般分为以下几类:1.响应各种鼠标和键盘事件,实现对图元的编辑功能;2.响应图元状态改变的事件(包括图元焦点事件、位置改变事件、文字插入事件等);3.通过控制逻辑执行相应的图元处理,并将处理结果反馈给视图模块和相应的图元;4.通过事件广播机制管理场景内各种类型图元的属性。
  场景模块中的控制逻辑部分用来定义应用程序在整个场景和图元之上的行为。场景从视图模块获得用户命令,然后传送给控制逻辑执行,对图元进行相应的处理。最后场景模块更新图元数据,并将更新通知给视图模块。实现了三个模块的同步更新。对于控制逻辑的管理可采用策略模式(Strategy Pattern)进行:定义统一的接口,不同的控制算法以不同的方式实现此接口。
  四、图元模块
  Graphics View框架中的图元是软件中需要管理和编辑的对象。基类QGraphicsItem定义了所有图元类型的共同属性和方法,另外,框架也提供了最常用的几种标准图元,如矩形图元(RectItem)、文本图元(TextItem)、位图图元(PixmapItem)等。在框架的设计过程中,我们可以根据需求继承QGraphicsItem,实现自己的图元类型。在实际应用中,我们常常需要在同一场景中建立大量不同类型的图元对象,对它们的统一管理也可使用策略模式。QGraphicsItem的接口type()可进行图元类型统一识别。
  考虑到实际应用中众多的模块类别及数据流格式,对于图形化组态仿真来说,关键是如何建立起反映实际拓扑结构的模块和流程。Graphics View中的图元具有碰撞检测、外部事件响应及相互之间的逻辑关联、定向信息传递等特性,利用这些特性可以很容易地实现组态仿真软件中的数据流动、信息反馈、实时监控等业务逻辑。例如,用户可以根据连线的源图元和目的图元类型及连线方向很容易地判断出相关业务信息。另外,QGraphicsScene通过二叉搜索算法进行图元查找,大大提高了搜索效率,对于业务逻辑非常复杂、模块众多的仿真仍能够做到很高的实时性。
  五、控制策略
  组态仿真重要的是做到准确、实时地模拟实际系统,在模拟的过程中,控制策略起着关键作用。本文涉及的控制策略主要包含两个部分:场景的控制和单个图元的控制。场景的控制即系统全局状态的控制由场景模块的控制逻辑部分来完成,而单个图元的控制通过图元对象自身与外界的交互来完成。这种集中加分布式的控制策略既便于整个仿真系统的统一管理,也增加了系统各个逻辑模块自主运作的灵活性,减轻了控制逻辑的工作负担。
  六、数据库
  组态仿真系统的数据库用来记录系统中各个模块的属性和当前状态信息,以及模块之间的关联信息。对于一般框架而言,数据库中应包含如下信息:1.图元的静态属性(编号、名称、模块类别、所执行的业务逻辑等);2.图元的动态属性(位置、大小、当前状态等);3.图元的输入接口和输出接口的属性;4.图元之间连线的属性(连线的序号、信息流向、上下游图元的接口号等)。
  如果软件设计为单机模式,控制策略和数据库可作为与视图、场景并列的模块;如果软件设计为客户机/服务器模式,则可由服务器负责数据库和控制策略算法的管理。
  七、结束语
  本文讨论了Qt的Graphics View各个模块的主要特性以及如何利用这些特性完成一个通用的组态仿真软件框架的设计,该框架虽然不够细化,但能反映出一般组态仿真系统的一些共性。在控制策略完善的情况下,利用Graphics View框架可以设计出界面美观、执行效率高、一体性和灵活性较好的仿真系统,CISCO公司的仿真软件Packet Tracer 5便是一个成功的案例。
  
  参考文献:
  [1]薛福珍、侯菲莉,基于环节的控制系统图形组态仿真软件[J].系统仿真学报,2002,14(7).
  [2]杨晨、钟晶亮,分布式控制系统可视化组态仿真软件开发[J].系统仿真学报,1999,11(4).
  [3]蔡志明,精通Qt4编程[M].北京:电子工业出版社,2008.
  [4]Nokia. Qt 4.4.3 Reference Documentation,2008.
其他文献
[摘要]设计一种Windows下的入侵检测系统,将入侵检测系统的工作流程和工作模式进行描述,并将Snort与其他工具进行比较。  [关键词]Snort 入侵检测 系统  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320022-01    目前,我国的局域网建设发展迅速,它已经成为信息交流、信息共享和通信联络不可缺少的有力工具,但随之而来的是局域网的安全问题越来越突出
期刊
[摘要]阳谷县供电公司通过红外抄表技术应用,实现农村10kV线路配变台区电能表使用位置定位、每月1日零点数据信息转存抄录和窃电、计量故障准确记录,避免各种原因引起的抄表时间差错,杜绝电能表抄录工作的人为影响,确保10kV及0.4kV线损的真实性和准确性,为窃电、计量故障的查处处理提供了有力的证据。减少了计量纠纷和电量流失,取得了良好的经济效益和社会效益。  [关键词]红外抄表 技术应用 农村10k
期刊
[摘要]通过对焦作万方电厂3500m2自然通风冷却塔填料改造,使冷却塔的冷却能力得到较大的改进,提高了机组的真空,机组的经济性有了较大的提高。  [关键词]冷却塔改造 热力性能 经济性  中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0320020-01    一、设备概述  焦作某自备电厂装有两台125MW火力发电机组,1#、2#机组分别于1997年和1998年投产发电
期刊
[摘要]SQL*Loader是Oracle的高速批量数据加载工具,它具有速度快、对Oracle数据库的控制功能强等优点。介绍如何利用SQL*Loader快速导入数据的方法,以实例的形式演示执行过程,并结合实例对一些参数做说明。  [关键词]SQL*Loader Oracle SQL  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320035-01    SQL*LOA
期刊
[摘要]随着信息技术的不断发展,网上考试是教育信息化的必然发展趋势。针对浙江越秀外国语学院的实际情况,开发无纸化CET-4在线模拟考试系统对促进教学质量、提高工作效率、节约考试成本等有着十分重要的作用。  [关键词]在线考试 自动组卷 B/S .NET  中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0320044-01    一、开发背景  浙江越秀外国语学院是浙江省唯
期刊
[摘要]介绍单片机与上位PC机串行通信的方法,设计单片机与PC机之间基于串行接口RS-232标准的串行通信接口电路。系统使用MAX232芯片以及外围电路进行电平转换实现单片机串行通讯口与PC机串行通讯口的互连,给出单片机与PC机实现串行通信的软件设计方法。  [关键词]串行通信 串行接口RS-232标准 电平转换  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)03200
期刊
[摘要]Ajax是近几年web应用方面的热点技术,其应用越来越广泛。一般来说传统的web应用中几乎没有使用设计模式,但在Ajax的开发中却涉及到了部分设计模式,就此内容做一个简要的介绍和分析。  [关键词]Ajax 设计模式 Adapter Facade  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320032-01    一、Ajax中使用设计模式的原因  尽管A
期刊
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320049-01    在国土资源部矿产资源储量空间数据库建设过程中,基础工作也是最主要的工作就是图件的数据采集及入库过程,目前主要采用的是国土资源部推广的内蒙古自治区和湖北省国土资源厅所建矿产资源储量库的工作经验,即内蒙古自治区的人工数据采集和湖北省的MAPGIS投影数据采集法。    一、技术路线    内蒙古自治区数
期刊
[摘要]IPv6作为下一代互联网协议已经引起各国家、各运营商的足够重视,目前中国高校和科研机构已经与一些运营商合作,对IPv6进行研究实验,但还没有普遍推广,而是处于IPv6与IPv4相互并存和过渡的阶段。  [关键词]IPv6网络 IP地址 部署技术  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320042-01    一、引言  随着Internet的规模以几何
期刊
[摘要]主要论述通过OFS(OPC)与Twido PLC的通讯。  [关键词]OFS(OPC) Twido 通讯  中图分类号:TN92文献标识码:A文章编号:1671-7597(2009)0320014-01    一、引言  OPC作为一种通用的通讯方式在上位机层面有着广泛的应用基础。作为一种开放式的通讯方式,OPC有开放,易用等特点。可以把上位编程人员从PLC的底层通讯协议解放出来,真正做到
期刊