• 1.38 MB
  • 69页

基于web的现场工况监控系统图形化集成及应用

  • 69页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于Web的现场工况监控系统图形化集成及应用重庆大学硕士学位论文(专业学位)学生姓名:谭茜指导教师:张可副教授兼职导师:鲁远祥研究员学位类别:工程硕士(控制工程领域)重庆大学自动化学院二O一三年四月 GraphicalintegrationandapplicationofsiteconditionsmonitoringsystembasedonWebAThesisSubmittedtoChongqingUniversityinPartialFulfillmentoftheRequirementforProfessionalDegreeByTanxiSupervisorbyAss.Prof.ZhangkePluralisticSupervisedbyProf.LuYuanxiangSpecialty:ME(ControlEngineeringField)CollegeofAutomationofChongqingUniversity,Chongqing,ChinaApril2013 重庆大学硕士学位论文中文摘要摘要随着企业信息化的不断推进和网络技术的飞速发展,实时远程监控系统在企业的安全生产中发挥着越来越重要的作用,但传统的实时监控系统由于其安装繁琐、兼容性差等缺点,已不能满足企业系统集成及远程监控的发展要求,而将实时监控系统与Web技术相结合,提供分布式的、可视化的、瘦客户端的监控服务,有利于解决传统监控系统所出现的问题。本文以煤矿行业为应用背景,分析了当前监控系统所出现的一些问题,并将Web技术、组件化技术和实时监控技术结合起来,形成了一种新的基于Web的现场工况图形化监控系统集成方法。本系统主要研究三个方面的内容:①基于Web的图形化组态开发系统:首先利用组件化技术构建SVG图元库,再通过对图元的引用设计了一个在线图形组态系统,用于对现场地貌的真实模拟;②实时数据的发布:通过比较几种主流的前端数据可视化展示技术,就这些技术用于煤矿行业的可行性进行了详细分析,最终选用SVG+Ajax的方式进行实时数据的动态展示,实现了对现场设备的实时监控;③异构系统间的数据集成:本文分析了当前煤矿行业监控系统所出现的问题,比较了DCOM、CORBA和WebServices三种集成方式的优缺点,最终利用WebServices的松耦合的方式实现系统的集成,然后在基于WebServices的系统集成方式和SVG+Ajax的实时数据展示上构建了一种基于Web的实时监控系统,该系统具有易集成性和较强的扩展性。本文在最后将设计的图形化监控系统集成于川煤集团安全综合监控联网系统中,实现了对矿区设备的多方面的监控和展示,在提高了煤矿生产安全的同时也验证了该系统的实用性和有效性。关键词:远程工况实时监控,Web服务,动态数据图形化,异构系统集成,煤矿安全I 重庆大学硕士学位论文英文摘要ABSTRACTWiththerapiddevelopmentofnetworkandenterpriseinformationtechnology,theremotereal-timemonitoringsystemplaysanmoreandmoreimportantroleinsafetyproductionofenterprise.However,duetotheshortcomingsofinstalltrivalandpoorcompatibility,thetraditionalreal-timemonitoringsystemscannotsatisfyrequirementsofenterprisesystemintegrationandremotemonitoring.Combiningthereal-timemonitoringsystemwithWebtechnologyandprovidingdistributedandvisualizationmonitoringservicesusingthinclientscanbeconducivetoresolvetheproblems.Intheapplicationbackgroundofcoalindustry,thispaperanalysisessomeproblemsofcurrentmonitoringsystems,andcombiningWebtechnologywithcomponenttechnologyandreal-timemonitoringtechnologytoformanewintegratedmethodologyforsiteconditionsmonitoringsystembaseonWeb.Thedissertationmainlyincludesthreeaspectsasfollows:①GraphicalconfigurationdevelopmentsystembasedonWeb:Firstly,usescomponenttechnologiestobuildaSVGGraphicslibrary,andthenreferenceGraphicslibrarytodesignanonlineconfigurationsystemtoachieverealsimulationofthesitefeatures.②Releaseofreal-timedata:AjaxandSVGareusedtodisplayreal-timedatadynamicallyaftercomparingwithseveralmethodsandadetailedanalysisthatifthetechnologisecanbeusedinthecoalindustry.Andimplementationofreal-timemonitoringoffielddevices.③Realizetheintegrationwithothermonitoringsystems:Thisdissertationanalyzesthecharacteristicsofthecurrentmonitoringsystemanddiscussesadvantagesanddisadvantagesofthesethreesystemintegrationmodesasthefollowing,DCOM,CORBAandWebServices.Finally,chooseslooselycoupledWebServicestorealizesystemintegration.Thenareal-timemonitoringsystembasedonWebServicesandSVGandAjaxisbeenbuilt,thesystemhaseasyintegrationandstrongexpansibility.InthefinalthegraphicalremotemonitoringsystemisintegratedwithmonitoringnetworksystemforSiChuanCoalGroupandimplementationofthemultiplemonitoringanddisplayofminingequipment.Notonlyimprovethesafetyproductionincoalminebutalsoverifytheeffectivenessandpracticalityofthesystem.Keywords:Remotesiteconditionsreal-timemonitoring,WebServices,Dynamicdatagraphical,HeterogeneousSystemintegration,CoalMineSafetyII 重庆大学硕士学位论文目录目录中文摘要····································································································I英文摘要···································································································II1绪论········································································································11.1选题背景及意义·······················································································11.2国内外研究现状·······················································································21.2.1监控系统研究现状···············································································21.2.2图形技术研究现状···············································································31.3系统的特点·····························································································41.4主要研究的内容·······················································································51.5本章小结································································································52系统关键技术分析·················································································62.1动态页面发布技术····················································································62.2面向WEB2.0的数据传输与服务···································································72.2.1应用层数据传输协议与技术···································································72.2.2WebServices·······················································································92.3组件化技术分析·····················································································112.4本章小结······························································································123系统可行性分析···················································································133.1应用背景······························································································133.2需求分析······························································································143.2.1功能需求························································································143.2.2性能需求························································································163.3SVG技术可行性分析···············································································163.3.1SVG描述矿图可行性分析····································································173.3.2矿图文件格式转换分析·······································································173.4系统关键问题分析··················································································213.4.1实时数据发布··················································································213.4.2异构数据源的整合·············································································223.5系统设计方案························································································233.5.1方案的提出·····················································································233.5.2系统体系结构··················································································24III 重庆大学硕士学位论文目录3.5.3异构系统解决方案·············································································253.6技术路线和开发环境···············································································263.6.1技术路线························································································263.6.2开发环境························································································263.7本章小结······························································································264系统详细设计方案···············································································274.1设备图元库设计·····················································································274.1.1SVG图元的生成················································································274.1.2SVG图库的管理················································································284.1.3脚本程序的构造················································································294.2图形组态模块设计··················································································304.2.1矿图处理加载流程·············································································314.2.2图形绘制功能··················································································334.2.3模块类结构设计················································································374.2.4菜单模块设计··················································································384.2.5右键菜单重构··················································································394.3实时数据的动态发布机制··········································································404.3.1图元与设备的映射·············································································414.3.2实时数据的获取················································································424.4数据库设计···························································································444.4.1系统数据库E-R图(部分)·································································444.4.2系统数据结构设计·············································································454.5本章小结······························································································475系统实现······························································································485.1系统集成的实现·····················································································485.1.1集成方案描述··················································································485.1.2集成前后系统对比·············································································495.1.3Web客户端运行流程··········································································515.2客户端组态界面的实现············································································525.2.1基本图形的绘制················································································525.2.2设备图元的绘制················································································525.2.3矿图管理模块··················································································535.3基于WEB图形监控的实现·······································································545.4本章小结······························································································56IV 重庆大学硕士学位论文目录6总结全文与展望···················································································576.1论文的主要工作·····················································································576.2展望····································································································57致谢··································································································59参考文献··································································································60V 重庆大学硕士学位论文1绪论1绪论1.1选题背景及意义在企业生产过程中,随着自动化程度的不断提高,工业监控系统发挥着越来越重要的作用,已成为企业生产过程不可或缺的一部分。然而随着生产技术的提高和企业需求的不断变化,目前基于专用操作系统和专用机且运行在本地的传统[1]监控系统难以无法满足当前企业发展的要求。同时随着企业生产规模的不断扩大,生产地域也越来越分散,部门也越来越多,且每个部门或生产地都建立有自己的监控系统,由于这些部门在建立监控系统时都具有一定的自主性,这导致了个部门的系统是基于不同的平台、不同厂商、不同的语言,导致各部门的系统相[2]互独立,数据不能共享,形成了“信息孤岛”,不利于企业对整个生产情况的掌握,严重阻碍了企业的发展。另一方面,传统的监控系统通常都是以数据表格的形式对企业现场设备进行实时监控,而不能以图形的形式直观的展示出当前现场设备的状况,不具有良好的用户体验。面对这些情况,企业急需一种能够方便各部门异构系统集成,且能以矢量图形的方式展示现场工况的远程监控系统。随着Internet技术的发展和普及,图形图像技术在互联网行业发挥着越来越重要的作用。目前WEB图形技术主要是以位图为主的对图像简单显示,但随着图像应用的逐渐深入,人们对图像的质量和性能的要求越来越高,而位图由于其本身数据量大、缩放失真、交互性差等缺点已经不能满足人们的需求。就是在这种[3]情况下,SVG(可缩放矢量图形)技术逐渐的发展起来。SVG作为W3C的推荐标准,它使用XML描述图形应用和二维图形结构,具有文件小、图形矢量性、人机交互好等优点。它也可以在移动电话、手持设备或Web浏览器等多种设备上[5]显示。图形化远程监控是指本地客户端通过网络连接远程设备,以矢量图型的方式实现对现场生产过程的监控。管理者不必亲临现场就能通过网络直接的观测到现场生产情况,并根据这些信息在本地发出指令,对现场设备进行相应的调控,从而大大的减少了物力和人力。其意义在于:①Web客户端是以矢量图形的形式展现当前现场的生产状况,工作人员能更加形象生动的监测当前现场的信息,提供了良好的人机交互环境。②生产管理者在不亲临现场的情况下,就能掌握现场的实时工作情况,完成相关数据的监测和设备故障的恢复,提高了生产效率。③该监控系统有利于各地的专家通过网络监测和分析故障的原因,从而得到1 重庆大学硕士学位论文1绪论最优的解决方案。④通过各异构系统的集成,企业领导能对企业有一个全局的掌控,从而合理的安排生产,有利于企业各部门间的合作,提高企业的核心竞争力。1.2国内外研究现状1.2.1监控系统研究现状随着经济全球化发展,现代的企业也逐渐向国际化发展,企业生产地分布也越来越广泛,形成了分布式生产。特别是随着Internet的出现,使得分布式生产方式更加容易实现。因此,基于Web的分布式监控系统,已成为当前研究的热点之一。国外在基于Web分布式监控系统的研究已非常广泛,如在人工智能领域中,美国国家航天局(NASA)与德州的大学合作,通过Internet在NASA控制德州两所大学的机器人,并进行相关监测和分析,成功实现了对机器人远程分布式控制。1994美国南加州大学成功完成Mercury试验,该试验允许用户通过Web浏览器[4]控制机器人进行文物挖掘等工作。在工业生产领域中,美国NorthAndover公司通过将PLC接入Internet中,用户在Web客户端实现了与PLC间的通信,并对过程参数进行远程设定或者控制对象的开启与闭合,但不足之处是不能用于控制设备。而美国南太平洋科学仪器公司,由控制计算机提供原始数据,利用总线技术传送数据,通过Web技术实现传感器与控制器之间的会话,并与实际生产过程中[5]的数据综合,以检测故障,控制现场生产以及相关控制参数的设定。在设备远程故障领域中,美国波音公司将Web网络技术应用到设备维护系统中,利用Web浏览器和以太网TCP/IP协议实现了对机器和设备进行维护和远程诊断。加拿大Granby公司使用Web浏览器技术,通过以太网对机床进行故障诊断,排查以及维[6]护。目前国内也有一些这方面的研究,如基于Web技术的B/S模式油田监控系统[7],将Web技术与Active技术结合起来运用到电力监控系统中,从而形成一种新[8]的基于Web的电力监控系统。而对基于Web的实时监控技术,国内许多研究机构和高校也对监控系统展开了研究。另外,国内的一些组态软件厂商也开始将Web[9]技术引入监控系统中,如力控软件、北京亚控的组态王等都已经支持基于Web的分布式监控系统的开发和运行,但也存在着缺陷和不足,主要表现在远程客户通过该监控系统只能对现场情况进行实时监视,而不能对监测的变量做相应的改变,与正真的监控系统还有一定的差距。目前,基于Web的监控系统在许多领域已经得到很好应用,并取得了良好的效益。随着监控技术的进一步发展,其对核电站监控,煤矿安全监控、电网监控、2 重庆大学硕士学位论文1绪论石油输送管道监控等方面的发展将起到巨大的推动作用。1.2.2图形技术研究现状近年来,在中央和地方政府的督导下,企业信息化技术应用越来越广泛,各地的企业也都相继开发了一些图形监控系统,如利用AUTOCAD软件进行二次开发,或购买一些专业图形软件来进行二次开发,但这些系统软件都还存在着一些问题。①网络传输缓慢、图形缩放失真。目前国内大多数图形软件都是以光栅格式存储和显示的。相比于矢量图形,光栅图形的数据量比较大,因此在远程网络将数据从服务器发送到客户端时,数据传输相对较慢。另外,由于光栅图形是由像素的单个点组成的,因此在对光栅图像进行放大时可以看见构成整个图像的单个像素方块,为了显示清晰,浏览器不得不为那些在原始的图形图像中,插入不存[10]在的猜测数值或像素,从而导致线条有锯齿形状且显得参差不齐。因此光栅格式的图形无论是在图形质量或网络传输都不能满足当前煤矿图形监控系统的发展。②图形内容交互性差、管理困难。随着企业规模的不断扩大、图形的显示和管理也变得越来越复杂,如何将这些图元设备组织管理好,在图形监控界面中准[11]确、形象、分层次的表达出来是现代企业图形系统最重要的功能。③浏览形式单一且兼容性差。目前,企业图形监控系统主要是以Web浏览器的方式显示,而不能在移动终端或手持设备上显示。现在市面上存在着多种浏览器,且各个浏览器厂家标准不尽相同,所以怎样使图形软件兼容各个浏览器,带来良好的用户体验,也是一个重要的问题。鉴于出现的以上问题,本课题提出了用SVG矢量图作为图形监控界面的图形显示技术。矢量图形不是新近才出现的,在Web发展之处并存在于网络中。迄今为止,尽管有许多标准被提出了,但是还没有单一的标准存在,最新的主流浏览器的组[12]件还没有实现统一的标准。目前Web矢量图支持的格式主要包括DrawML、PGML(精确图形描述语言)和VML(矢量标记语言),它们都是基于XML(扩[13]展标记语言)应用。DrawML是一种建立流程图和图表的标记语言,它拓展了Java的应用来定义绘制于屏幕的图形。PGML和VML是由W3C组织(WorldWideWebConsortium,全球万维网联盟的简称)在1998年提出作为矢量图初始标准。PGML和VML有很多相似的地方,PGML适合公众出版和专业设计的图像,但VML比较适合一些普通的图像。随着图像标准的进一步发展,W3C成立了SVG工作组。SVG工作组将PGML和VML的优势结合到一起,重新推出了新的标准矢[14]量格式,这就是SVG。3 重庆大学硕士学位论文1绪论从SVG的提出到现在已经经历了多个版本,SVGTiny1.2为目前W3C推荐的[15]版本,在不久的将来W3C会推出SVG1.2版本。SVG标准提出后,国外就涌现出了大量使用SVG应用,由于SVG是一种专门为网络而设计的基于文本的图像格式且在图形存储和展示方面的优势,它已经应用在一些领域的图形显示。如将SVG应用到地理信息系统、医学图像系统、电力系统及移动设备终端的图像显[16][17]示。SVG技术在的应用还包括使用了SVG技术的模式识别装置,将其它格[18][19]式的图形文件转换成SVG格式文件,如将光栅图形转换成SVG格式。1.3系统的特点本文提出了使用SVG技术作为企业图形监控系统的可视化技术,该系统为企业监测系统提出了一种新的图形处理手段,实现了现场设备可视化查询和实时修改的功能。同时引入了SVG图元技术,实现了现场设备和图元的动态绑定。采用图元技术能通过我们对图元的引用构造复杂的图形,降低了图元之间的耦合性,[20]不仅减少了图形绘制的复杂度,也提高代码的可重用性。该系统可集成于企业其他异构系统,通过应用的集成实现数据的共享。在对企业现场的图形监控中,本系统具有如下特点:①该系统是基于B/S架构实现的,因此对用户终端不需要安装其他软件,只要连接Internet,就能实现对设备的监管和控制,实现远程监控。工作人员不必亲临现场就可以完成相关参数的设置与调整,大大提高了生产效率。②设备图形格式是基于SVG格式储存和传输的,由于SVG是基于XML语言描述的,所以相比于传统监控系统,图形的数据量变小很多,更有利于网络传输。③提高了显示精度。传统的WEB显示主要是以JPEG、BMP等几种格式,虽然它们数据量较小且实现简单,但它们都不能在客户端无限放大或缩小,否则将使图像失真。本系统图形是基于SVG标准的,由于SVG的矢量图性,能实现无限放大和缩小而不失真,从根本上提高了图形的精确性,解决了图形放大失真问题。④在实时数据的发布问题上,本系统引入了Ajax技术,作为服务端和客户端的数据通信工具,实现无刷新动态实时显示,为企业监控系统建立了良好的人机交互界面。⑤本系统是一种分布式系统,利用了WebServices技术,能集成于其他的异构系统,实现了各异构数据的交互和共享。4 重庆大学硕士学位论文1绪论1.4主要研究的内容本文以煤矿行业为应用背景,在认真研究了当今煤矿监控系统的问题,通过分析煤矿图形的实际需求,提出了一种基于Web的煤矿图形监控系统框架模型。该框架模型主要研究以下几个方面:①分析了目前常用到的动态页面发布技术,并最终选择SVG作为了矿区图形监控系统的Web页面图形展示技术。②对当前矿区图纸格式进行了研究,为了兼容以前绘制的矿区图,设计了从老矿区图形到SVG图形的格式转换方案。③建立矿区图元库。由于矿井下设备众多、图形交互复杂,为了简化作图,提高绘图效率,本系统引入了图元技术,采用专业绘图工具设计出煤矿行业的专有图元,并用JavaScript脚本封装图元,建立图形组件库。④分析了实时数据动态发布技术,并将Web页面动态展示技术与实时数据发布技术相结合,实现了对矿区的实时监控。⑤利用WebServices技术实现与煤矿联网系统的集成,统一数据交互。本文共分为六个部分。论文的组织结构如下:第一章为绪论,首先介绍了课题应用的背景和研究意义;其次介绍国内外监控系统的研究现状及出现的问题;最后介绍了主要研究内容和论文的章节安排。第二章分析了系统涉及到的关键技术,即动态页面发布技术、Web应用层数据传输相关技术和组件化技术。第三章以煤矿行业为应用背景,对系统进行了可行分析,从应用背景、需求分析、系统关键问题分析、系统解决方案、系统技术路线这几个方面进行了全面的分析。第四章结合第二章的关键技术分析和第三章对系统的可行性分析,提出了系统的详细设计方案。本章从图元库的设计、图形组态模块的设计、实时数据的发布和数据库设计几个方面对系统进行了详细的分析。第五章为系统实现,利用WebServices技术实现了本系统与煤矿联网系统的集成。第六章为论文总结和展望部分,总结本文做的研究和工作,指出今后有待进一步研究的问题。1.5本章小结本章主要介绍了本课题的应用背景、意义、国内外研究现状、系统的特点和主要研究的内容。5 重庆大学硕士学位论文2系统关键技术分析2系统关键技术分析本章首先是对基于Web的实时监控系统中动态页面如何发布和异构系统之间的数据如何交互两个方面进行相关技术的分析和研究,通过对现有技术的比较,进一步得出本系统的关键技术方案。最后也对图形组件化技术进行了分析和介绍。2.1动态页面发布技术在基于Web的图形监控系统中,Web客户端页面是监控系统的窗口,用户通过该Web页面实现对现场情况的监控,客户端页面对实时数据的展示情况直接影响到用户体验,因此需要一种方法用于对实时数据的动态展示。目前常用的Web[21][22]客户端动态页面发布技术主要有:ActiveX、Flash、JavaApplet和SVG等,下面将简单介绍这几种技术。ActiveX技术是微软提出的利用对象模型COM及相关技术实现网络中基于不[23]同语言开发的应用组件之间的交互技术。利用ActiveX技术设计的ActiveX组件与HTML相结合,能使用户观测现场监控画面,了解矿区现场情况。由于服务器和Web客户端通常位于不同的地方,只能通过网络连接,因此要想实现Web端与服务器的数据通信就需要通过添加网络传输控件方式来实现,通过该控件对Web服务器上ASP页面的访问,实现了对服务器数据库的访问,从而实现了ActiveX控件与数据库之间的交互。Active控件与Web数据库的交互过程如图2.1所示。浏览器Web服务器数据库服务器HTMLActiveX控件ASPADO数据库图2.1ActiveX与Web数据库的交互过程Fig.2.1InteractionofActiveXanddatabase然而在利用ActiveX技术进行动态页面展示时,对客户端浏览器的要求相对较高,并且在客户端部署ActiveX组件也相对较难。同时,由于ActiveX是基于微软6 重庆大学硕士学位论文2系统关键技术分析COM组件的,因此该技术只适用于Windows平台,具有局限性。JavaApplet是基于Java的一些小应用程序,可以通过它们在网页中实现对图形绘制、声音和动画的插入、颜色和字体的控制、网络交流、人机交互等功能。由于JavaApplet是基于Java的,所以有较好的跨平台性,可以运行在不同系统的Web客户端。但由于每次运行客户端监控界面时都需要下载相应的Java程序,所以当网络环境不好时,会降低运行速度,影响用户体验。SVG,是可缩放矢量图形(ScalableVectorGraphics)的简称,SVG标准由权威的W3C组织制定并推荐,它基于XML(ExtensibleMarkupLanguage,可扩展标示语言)格式,继承了XML的跨平台性,是一个全新的标准开放的矢量图像和动画格式。虽然Flash也能提供矢量图像和动画功能,但Flash是基于二进制格式的,不能实现文字检索功能,而且Flash在与脚本语言交互方面也比较受限,需要借助[24]于其他技术才能实现。而SVG的文本特性,使SVG文件可以通过文字检索的形式被检索到,也意味着可以直接用记事本生成SVG图像,方便了对SVG图像的更新和二次修改。SVG也完全符合DOM(DocumentObjectModel,文档物件模型)规范,可以通过JavaScript脚本直接操控SVG文件里面的DOM节点,实现数据交互。将SVG可视化技术应用于监控系统的客户端数据展示已成为一种新的趋势。2.2面向Web2.0的数据传输与服务2.2.1应用层数据传输协议与技术针对在异构环境下对数据传输的要求,目前流行的分布式传输协议及技术主[25]要有DCOM、CORBA和SOAP等。它们都是基于对象的分布式协议,下面将分别对他们进行介绍。DCOM(DistributedComponentObjectModel)是基于微软COM(ComponentObjectModel)的分布式组件对象模型,支持在Internet、广域网和局域网上不同计[26]算机之间的通信。COM对象实例由COM服务器创建,每个COM对象都支持多个接口,并且每个接口都有相对应的方法。COM对象之间的通信主要是通过COM对象接口指针对COM方法的调用实现。COM规范的定义采用二进制代码级的标准,并不依赖于特定语言,实现不同语言的应用程序的数据交互。DCOM是基于COM应用程序、工具、组件的基础之上的,将这些组件或应用程序重新组合起来形成具有完整功能的应用程序,实现各异构系统之间的数据交换。图2.2为DCOM与客户端之间的通信示意图。DCOM组件具有效率高、开发相对容易等优点,但由于DCOM是基于Windows平台的,因此DCOM没有良好的跨平台性,难以与第三方进行交互。7 重庆大学硕士学位论文2系统关键技术分析DCOM协议协议栈协议栈安全提远程安全提远程供器调用供器调用客户COM运行库COM运行库客户图2.2DCOM与客户端的通信Fig.2.2DCOMcommunicatewiththeclientCORBA(CommonObjectRequestBrokerArchitecture)是由OMG(ObjectManagementGroup)制定的一种面向对象的实现各应用程序数据交互和相互操作[27]的规范。CORBA的组成部分包括:对象请求代理ORB、公共设施、应用接口、域和对象服务。其中ORB为最核心部分。ORB可看作是建立用户与服务关系的中间件,通过该中间件,用户可以透明的调用服务对象所提供的服务,而并不需要知道该服务对象的具体位置,即服务对象可以运行在本地机器上,也可以运行在[28]其他机器上通过网络与客户进行交互。ORB首先会截取客户发出的请求,然后在软件总线上找到相对应的服务对象,然后完成相关方法、参数的调用,并返回[29]最终的结果,实现数据交互。图2.3显示了CORBA应用程序各部件之间的调用关系,ORB在CORBA客户与服务器传递方法调用和相关信息。客户机应用对象实例框架存根stubSkeleton基本对象ORBSmartAgentCORBA适配器图2.3CORBA应用程序结构Fig.2.3CORBAapplicationstructure8 重庆大学硕士学位论文2系统关键技术分析CORBA虽然能实现各异构系统间的数据交互,但它的缺点是要求每个应用系统都要使用相同的ORB产品。SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单协议,是计算机网络Web服务中默认的消息传递方式。它将XML与Web技术完美的结合,提供了一种新的实现异构系统集成和数据交[30]互的手段。相比于其他协议,SOAP协议还具有如下优势:①DCOM或CORBA在对单个企业的某一部门实现数据集成方面,有一定的优势,但对于网络环境下的异构系统,使用DCOM或CORBA就有自己的局限性,数据之间的通讯明显表现出不足。主要原因在于DCOM是基于Windows平台,应用受到限制,而CORBA虽然与平台无关,但由于其相互通信的系统都需要运行ORB产品,其应用限制也比较苛刻。而SOAP消息传递是基于XML的,与应用系统平台无关,并且SOAP使用的HTTP协议能与目前的通信技术实现最大限度的融合。②使用DCOM和CORBA容易受到防火墙的拦截,使其在网络环境下应用受到限制。而在使用SOAP传输数据时,由于SOAP是基于HTTP协议通信的,而HTTP协议又是网上公认的协议,因此使用SOAP可以不受限制的穿越防火墙。③由于使用DCOM和CORBA专用性较强且需掌握较高技术,因此比较不容易实现。而SOAP只需利用现在已经很成熟的HTTP和XML协议即可,因此相对容易实现。通过上面对各数据协议的比较,很容易发现SOAP方式比DCOM和CORBA方式有较大的优势,因此本文最终选择SOAP方式作为本系统的数据传输协议,而SOAP是WebServices框架中默认的消息传递方式,因此本系统选择WebServices用于实现各异构数据的集成。2.2.2WebServices基于Web的煤矿图形化实时监控系统是一个分布式系统,该系统可以集成于煤矿人员定位、瓦斯报警等系统,从而将各种异构异地的数据和资源连接起来,[31]达到资源共享的目的。然而,这些应用系统往往是基于不同的平台和语言开发的,并且运行在不同的数据库和操作系统上,导致了它们之间的通信协议不一致,很难实现数据共享。而随着信息化的发展,几乎所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换,因此如何实现异构系统间的集成,实现数据交互,就成了一个关键问题。而WebServices技术就是在这种背景下产生的。WebServices是一个自包含的、松耦合的、平台独立的、基于可编程的web的应用程序,可以通过XML标准来描述、发现、发布、配置和协调这些应用程序9 重庆大学硕士学位论文2系统关键技术分析[32]。WebServices默认SOAP为消息传递方式,并通过HTTP协议传送XML数据格式,实现各系统之间的数据交互。WebServices打破了各种设备、网站和软件应用之间的格格不入的状态,实现了异构系统无缝集成的目标。在构建Web服务时,主要使用下面几个关键的技术和规则:[33]①XML(可扩展标记语言):是WebService描述数据的基本格式并且是与平台和厂商无关的。[34]②SOAP(简单对象访问协议):基于XML格式的,是WebService平台默认的数据传输协议,通过HTTP协议实现各系统之间的数据交互。③WSDL(Web服务描述语言):定义Web服务的接口规范,描述Web服务之间如何通信的基于XML的消息格式。④UDDI(UniversalDescription,DiscoveryandIntegration):Web服务的功能注册表,它能通过标准化的方式来储存各种服务信息。通过UDDI能发现和发布各种服务,再通过统一的方法实现对服务的调用。实际上,WebServices的主要目标是跨平台的可互操作性。为了达到这一目标,WebServices完全基于XML、XSD等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,使用WebServices的优势在于:①跨防火墙通信。由于客户端和服务器之间通常会有防火墙或者代理服务器,因此当有成千上万的用户与服务器通信时,使用DCOM就会变得比较复杂,且不利于对客户端程序的发布。如果使用传统的做法,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。因此如果使用WebServices技术,将中间层换成WebServices的话,用户界面可以直接调用中间层组件,不仅缩短了周期还减少了代码复杂度。②应用程序集成。由于企业经常需要把用不同平台开发的程序集成起来,而通过一般方法集成将花费大量精力。因此如果使用WebService技术,通过标准的方法把应用程序的功能和数据"暴露"出来,供其它应用程序使用,就能实现不同系统间的集成③软件和数据的重用。WebServices不仅可以重用代码,还可以重用代码后的数据,因此在使用WebServices重用软件时,不必先从第三方购买、安装软件组件,再调用这些组件,只需要直接调用远端的WebServices就可以了。WebServices主要提供一些服务接口供客户端远程调用,而客服端只需要通过格式化的XML消息机制来实现对这些服务接口的访问,并不需要知道服务是如何实现的。WebServices将所有实体都被抽象成服务,是一种面向服务的体系架构,10 重庆大学硕士学位论文2系统关键技术分析具体分为服务提供者(ServiceProvider)、服务请求者(ServiceRequester)、服务代理(ServiceBroker)三种角色。服务的提供者即服务的所有者,主要是将服务接口发布到服务器上供其他服务调用,提供了服务的平台;服务请求者从应用角度上主要指需要请求特定功能的企业,用于向服务器发送SOAP消息获取所需要的服务;服务代理是将服务提供与服务请求联系起来的桥梁,服务提供方在这里发布服务,[35]服务请求方在这里查找相应的服务,获取服务的绑定信息。与三种角色相对应有发布(Publishing)、查找(Finding)、绑定(Binding)三种操作。发布是指服务提供者将服务进行一定的描述并注册到服务器上,服务提供者需要通过注册服务器的身份验证,才能对服务描述信息进行修改;查找主要分为浏览和直接获取两种查找模式,服务请求者根据注册服务器提供的规范接口发出查询请求,以获取绑定服务所需的相关信息。绑定主要是指服务请求方通过分析从注册服务器中得到服务调用的参数、服务的访问路径、安全要求、返回结果、传输协议等服务绑定信息,对自己的系统进行相应配置,进而远程调用服务提供者所提供的服务。WebServices体系架构如图2.2所示。服务提供者注册发布发送请求的服务提供服务发布服务发现服务服务请求者服务代理联系服务提供者和请求者图2.4WebServices体系架构Fig.2.4WebServicessystemarchitecture2.3组件化技术分析组件是独立于特定的应用程序和设计语言、自包含和可重用的软件成分,这些软件成分可以很容易的被组合到更大的程序当中而不用考虑其本身的实现细节。在一个系统中,组件是一个可替换单元,因此,软件系统更易开发且具有更大的灵活性。组件技术被认为是面向对象技术的延伸,与面向对象技术相比组件技术注重于宏观层次上对模块(即组件)的划分,确定模块之间划分的合理性和依赖性,11 重庆大学硕士学位论文2系统关键技术分析[36]而面向对象技术更注重于应用程序的微观层次,关心数据如何封装成对象。用户使用组件技术不必关心组件的实现细节,只需要调用组件提供的相关接口即可实现对组件的调用。当用户需求发生变化时,并不需要对整个系统进行修改、编译,而只需对受影响的组件进行修改编译,然后重新组合就能得到新的软件。组件在设计的时候都拥有与具体实现相对应的规范,这种规范定义了如何对组件进行封装,主要包括如何封装组件的相关属性和事件、不同组件之间如何相互组合、如何为其他组件或功能模块提供公共接口。如果所有组件都符合了相应的规范,那他们之间的交互操作就变得非常简单,完全不需要额外编写代码。这[37]种集成方式被称为即插即用(plug-and-play)集成。在对SVG图元库的创建和管理中使用组件化技术会具有如下优势:①图元重用。使用组件化技术把每一个图元封装成一个相对独立的对象,当需要对图元进行操控的时候,只需要调用该图元对外开放的接口即可。②易于扩展。由于每个图元是相对独立的,所以当用户需要增加或修改图元时,只需要通过组件化技术进行添加或修改相应图元,不需修改系统的其他部分。③更加专业化。通过组件化技术对专业图元的封装,使用户在图形绘制的时候能绘制出专业的图元,使系统更加专业化。2.4本章小结本章主要对煤矿图形监控系统所涉及到的关键技术进行了分析,首先对ActiveX、Flash、JavaApplet和SVG等技术进行了比较分析,并选择SVG作为Web前端显示技术,然后分析了面向Web2.0数据传输技术,并选择WebServices技术实现与其他异构系统集成和数据的共享。最后对组件化技术进行了分析,并分析了组件化技术在本系统所具备的优势。12 重庆大学硕士学位论文3系统可行性分析3系统可行性分析本系统以煤矿行业为应用背景,设计一个图形化的远程实时监控系统,该系统是通过矢量图形的方式展示当前矿区的设备信息,实现了对煤矿井下信息的远程监控。该系统主要分成三个部分,首先是利用组件化技术构建基于SVG的面向煤矿安全生产管理的基本图元库;其次是利用建立好的SVG图元库,对煤矿井下设备运行情况进行图形仿真,实现实时数据的图形化展示;最后,充分考虑系统的可扩展性,将该系统集成于其他的一些监控系统,实现各异构系统的数据交互。3.1应用背景煤炭作为我国的主要能源,是我国经济维持长期快速发展的总要保障,在我国经济中占有重要地位。在未来几十年,我国以煤炭为主的能源结构将不会改变,煤炭依旧是我国的主要能源和重要原料,因此煤炭的安全生产受到国家的高度重[38]视。虽然近几年煤矿的开采已经逐渐规范化,开采技术也有所提高,但是煤矿的安全问题仍然是煤矿生产的主要难题,制约着煤矿生产的发展。据统计,2011年,全国煤矿发生事故1201起、死亡1973人,虽然已下降14.4%和19.0%,但远[39]远高于世界平均水平。在社会安全事故、自然灾害、公共卫生事件和事故灾难四类突发事件中,影响最为恶劣,损失最为惨重的都是在事故灾难中发生的。如何提高煤矿安全,最大限度的降低人员伤亡成了煤矿行业急需解决的关键问题。煤矿出现事故的原因是复杂和多方面的,有宏观因素,有微观因素;有自然的原因,也有人为的原因。但几乎所有的煤矿事故都是由于没有及时了解到井下设备运行情况和井下地理信息,从而导致了灾难的发生。例如煤矿中最常见的瓦斯爆炸事故,我们可以在矿井下安装相关气体检测设备,通过该设备检测当前瓦斯等相关气体的浓度,并实时传递相关数据到监控系统中,通过系统对当前数据的分析,如果发现有瓦斯泄漏或其他安全事故,系统会马上报警通知矿下人员撤离矿井并检查泄漏原因,有效的预防事故,避免了灾难的发生。因此煤矿灾难的最主要原因在于生产技术的落后,没有及时的对生产技术进行更新换代。所以加大对煤矿生产技术的投入,建立安全的煤矿监控监测系统,对煤矿的安全生产具有重要意义。目前,国内各级煤矿都已经安装了安全监控系统,如KJ90、KJ95、KJF2000,但都还存在一些问题。一方面各级管理部门缺乏有效的监管手段,使煤矿监控系统不能充分发挥应有的作用,另一方面,现在大部分系统主要作重于参数的监测和控制,而以图形动画的方式展现井下设备状态和地理信息的形式较少。虽然也13 重庆大学硕士学位论文3系统可行性分析有一些监控系统以图形的形式对井下设备和地理信息的显示,但这些系统大部分是以栅格图形的形式来展现井下的地理信息,仅仅能够实现井下地理信息的可视化,对井下地理信息的操作控制以及信息采集和变更等要求,均无法满足。由于煤矿行业危险性大、长期的地下作业等特性,对矿区的可视化研究就变得尤为重要。可以说煤矿安全生产的方方面面都要用到图形可视化技术,如矿区地理信息管理、井下设备管理、人员轨迹查询、煤矿建设和设计决策等方面。在煤矿行业中使用的可视化软件不仅要求具有图形输入、数据监视等功能,还需要能对监测的数据进行远程控制,方便各地的专家通过实时数据诊断故障,并提出最优的解决方案。3.2需求分析3.2.1功能需求①图形组态功能在对煤矿图形监控系统的开发中首先需要实现的功能就是图形界面组态的功能。该功能主要是实现对矿区现场设备的真实模拟,在实时监控时能进行友好的人机交互。而由于在实际的组态过程中,有许多图形是相同的,只是使用在不同的区域,如风机、水泵、皮带等。将这些经常使用的图形在作图时以图元的形式描述出来,在实际作图中只需简单的引用即可。预先设计图元有以下好处。首先图形界面开发变得简单,用户只需对图元简单的拖拽就能完成图形绘制。其实,通过专业工具绘制的图元可以实现煤矿图形的标准化,规范化,特别是在用户需要某个设备表示方法时,不必逐个修改已作好的图形,只是简单修改某个图元即可,将图元制作从图形界面的开发分离出来。因此在进行系统开发时,首先需要建立矿区图元库,对各个图元进行组态化设计。图形监控界面主要分为两种:一种是各个矿区或者子公司总体监控。通过该监控界面能观测到各个矿区或子公司的数据上传情况和是否有异常数据。另一种则是对矿区井下设备的详细监控。主要表现在监控界面要根据实时数据的变化而周期性的刷新动态图形(如实时数据显示、设备实时动画、设备控制按钮等),这些图形是工作人员根据当前矿区的实际情况动态添加上去的,通过与监控测点的绑定,能真实表现出当前矿区和矿井下的设备运行状况。而这两种监控界面又是相关联的,通过总体监控界面可以进入到具体矿井的详细监控界面,对各个矿区的详细信息进行监测。②实时监控功能实时监控为煤矿图形监控系统中最核心的功能,通过该功能就能实时监测矿井下的设备信息,并能对相关参数做出控制。通过对当前煤矿行业分析,发现煤14 重庆大学硕士学位论文3系统可行性分析矿监控系统在对矿井下测点和设备监控的时候监控画面必须显示各种实时信息,包括重要数据显示、设备动画显示、人员位置显示等,画面上信息的显示状态是随着实时数据的刷新而变化的。因此,在对煤矿现场进行监控时,要不断的访问实时数据库,并根据得到的数据刷新监控界面。对于已构建的图元对象,在系统的数据库中都有相关的描述信息,每实例化一个图元对象,也会在系统数据库保存该实例化图元的信息,通过这些信息系统就能知道该图元的类别、具体位置及其关联的对象。所以在开发图形监控界面时,用户还需要将界面上的图形对象与煤矿现场设备或测点绑定起来,使得监控界面能动态实时反映当前所监控设备或测点的信息变化。要想在Web客户端实现实时数据的显示,就必须先获得矿区现场的实时数据。当前矿区在矿区现场的实时数据主要是通过现场监控系统首先将矿井下的数据上传到矿上,再由矿上根据相关协议上传到局里,最后再解析到实时数据库并通过Web服务将数据发布出来。Web客户端调用相关服务接口,实现对数据的实时监控。因此本系统在研究时,还应考虑到实时数据的获取,即数据是怎么进行通信的。系统网络结构如图3.1所示。数据采集服务器双机设备应用应用客户端Web服务服务服务数据存储器器器中心数据交换防火墙核心交换机矿矿矿123图3.1系统网络结构Fig.3.1SystemNetworkArchitecture15 重庆大学硕士学位论文3系统可行性分析数据采集服务器:用于实时采集矿段生产数据。采集服务器采用两台机器构建双机热备模式,保证始终有一台数据采集服务器能处于正常工作状态,确保系统工作正常。这是系统的一种自我恢复能力体现。采集服务器故障会导致整个现场环境、人员监控、煤炭调运系统处于失控状态,严重影响调度与决策。数据存储中心:用于存储实时采集数据、业务数据、其它第三方数据。采用双机设备与磁盘阵列保证存储系统可靠运转与数据不会丢失。在一定的硬件设备支撑下可以保证系统可用性达到99.9%。WEB服务器:用于发布内网信息与外网信息门户,提供网络访问接口,处理相关数据。防火墙:用于系统安全防护,防治非法入侵。③异构系统集成当前已有很多应用系统应用于煤矿监控和系统管理,但由于各个系统采用的体系结构、应用技术、应用领域及管理对象都不尽相同,导致了各个系统自成体系,数据交互困难,系统间难以集成。因此本系统需解决各个子系统中数据的异构问题,实现子系统之间的数据共享。3.2.2性能需求①数据实时性矿区底层监控设备以几秒/次的速率采集实时数据,并上传到数据服务器,用于监控界面的实时显示,因此监控界面的数据刷新必须满足数据上传速率。本系统使用Ajax技术来实现界面的无闪烁刷新,可以满足数据的实时显示。②图形动画本监控系统在进行实时监控时,主要对矿区井下测点监控和仪表仪器的数据显示,所以不存在大量的复杂的图元动画的情况,在图元动画方面对系统的性能要求不高,用SVG进行动画展示完全满足当前要求。③适应性该系统用于煤矿行业的实时监控,因此必须遵守煤矿行业对监控系统的相关规定,由于当前矿区图纸大部分是用AutoCAD绘制而成,所以本系统设计必须兼容以前的矿区图纸。图元的设计也需要根据矿井下的实际情况设计煤矿行业的专有图元,并根据实时数据接口设计对应的图元接口。3.3SVG技术可行性分析本文在第二章对动态页面发布技术进行了分析,通过对当前技术的比较,选择SVG作为本系统的Web客户端的动态页面发布技术,下面将分别从SVG描述矿图的可行性和矿图文件格式转换两个方面对该技术用于煤矿监控系统的可行性16 重庆大学硕士学位论文3系统可行性分析进行分析。3.3.1SVG描述矿图可行性分析SVG标准不是为了某一种应用而制定的,但它的许多特性都被广泛的应用于矿图的信息处理中,将通过下面几点来说明:①SVG提供了文字(text)、路径(path)、圆(circle)、直线(line)、图标(symbol)、图像(image)等丰富的对象,通过对这些图形对象的组合完全能够满足煤矿图元描述的需要。在进行图形组合时,可以对这些图形对象设置不同的显示样式和属性来实现不同的显示效果。由于SVG是基于XML格式的,所以在对图形对象属性的获取或赋值时可以调用getAttribute或setAttribute方法,方便了对图形对象的[36]操控。SVG里面还定义了许多容器标签,如:等。标签是SVG文档最外面的标签,它告诉浏览器这是一个SVG文件,一个SVG文件里面可以有多对标签,但它们必须是成对嵌套的。通过标签的嵌套可以向SVG文件里面引入外部SVG文件,从而实现了将外部的SVG格式的矿区图元添加到矿区底图上面。标签可以用来管理矿区图层或实现图元某一区域的动画显示。标签通常用于引用已经预定义好的简单图形,如矿图符号等。②SVG具有丰富的事件响应函数和消息触发机制,如鼠标点击、鼠标移动、[37]键盘按键等。事件的响应可以根据不同的需求定义到不同的对象,既可以定义到单个图形对象上,也可以定义到整个文档中。如果要给某个矩形定义鼠标事件,可以先通过SVG文档对象的getElementById()方法获取该矩形对象,然后就可以通过setAttribute方法向该对象添加事件。SVG还提供了一些的状态事件,如onload事件,该事件在数据加载完毕后被触发,主要用作一些初始化的处理。所以有了这些事件响应函数我们就能很容易的完成对煤矿图元的操作,实现人机交互。③Web客户端对SVG的支持越来越完善。随着微软加入SVG工作组,且发布的InternetExplorer9中已经提供了对SVG格式的支持,表明SVG已受到浏览器厂商越来越多的重视。现在几乎所有的主流浏览器都提供了对SVG的支持。这推动了SVG技术的发展,促使SVG技术能应用到更多的领域,成为新一代网络图形的标准。通过上面的分析发现,使用SVG技术描述矿图,无论是从SVG图形对矿区地貌的展示还是人机图形的交互,SVG都能很好的满足当前的需求,所以本系统采用SVG作为煤矿图形监控系统的可视化技术,实现对当前矿区信息的远程监控是完全可行。3.3.2矿图文件格式转换分析煤矿地图是煤矿企业安全生产的重要信息资源,它反映了矿区地物、地貌和井下工作面、巷道、设备的空间位置关系。煤矿地图大概分为三类:矿井地质图、17 重庆大学硕士学位论文3系统可行性分析[40]矿井测量图和其他图纸,它们大多以二维平面图为主。目前,矿区现场的设备图纸大多是工作人员通过AutoCAD图形工具绘制而成的,因此其主要的文件格式为DWG和DXF,但由于AutoCAD公司一直没有公开DWG文件格式,所以如果要想直接读取DWG文件里面的信息,实现与DWG文件的人机交互,就必须分析该文件的二进制数据,破译其格式,这种方法工作量大且非常困难。当然也可以通过AutoCAD公司提供的ActiveX接口获取各个图形对象的信息,但这种方法也只是利用了AutoCAD的二次开发技术,并没有完全的摆脱AutoCAD平台,所以基于这种方法开发的应用程序也会受限于AutoCAD。DXF是AutoCAD公司开发的图形交换格式,它是一种开放的矢量数据格式,以ASCII格式和二进制格式储存,可以用文本编辑器进行查看,简单易读,应用广泛。下面将对DXF的文件格式作简单的介绍。DXF文件是由很多的“代码”和“值”组成的“数据对”构造而成,这里的代码又称为“组码”(groupcode),表示其后的值的类型和用途。每个数据对占两行,其中组码和值分别占一行。一个DXF文件分为多个段(section),没个段又分成多个组,[41]如图3.2(a)所示。每个段以组码“0”和字符串“SECTION”开头,紧接着是组码“2”和表示段名的字符串(如HEADER)。段的中间,可以使用组码和值定义段中的元素。段的结尾使用组码“0”和字符串“ENDSEC”来定义。如图3.2(b)为DXF文件中的HEADER区域。HEADER段0SECTION2HEADER区域的开始CLASSES段HEADERTABLES段9<变量>BLOCKS段<重复每一头部变量组码><值>ENTITIES段OBJECTS段0ENDSECHEADER区域结束THUMBNAILMAGE段(a)DXF文件的组织结构(b)DXF文件中的HEADER区域(a)OrganizationalstructureoftheDXFfile(b)HeaderareaintheDXFfile图3.2DXF文件结构Fig.3.2FilestructureofDXF18 重庆大学硕士学位论文3系统可行性分析通过对当前矿图文件格式的分析发现,如果直接利用AutoCAD文件进行图形监控系统的开发,只能实现对矿区图形的简单编辑,但如果要实现对图元的引用以及实时动画展示当前实时数据的信息相对就比较困难,因此本系统并不直接处理AutoCAD文件,而是先将AutoCAD文件通过一定的方法转换为SVG文件,再对SVG文件进行处理。通过分析发现DXF文件和SVG文件在表现方式上有一些相似的地方,首先它们通过记录图形的特征数据来描述图形的,如在描述圆的时候它们都记录了半径、圆心等数据;其次它们都是文本文件,都可以用文本编辑器查看。但在有些图形的描述上,记录的特征数据是不同的,比如椭圆等。所以,实现CAD文件到SVG文件的转换,不仅要分析AutoCAD中的每一类型的二维矢量图形对象在DXF文件中的对应实体描述,以及SVG中对应于DXF文件中的实体的元素,而且应针对DXF[42]记录的特征数据利用相应的公式推导出SVG需要的数据。经过认真深入的研究,得到SVG元素与DXG文件中的实体、AutoCAD中的对象之间的元素对应表,如表3.1所示。表3.1AutoCAD中的对象、DXF文件中的实体和SVG中的元素对应表Table3.1ObjectsintheAutoCADandDXFfileentitiesandSVGelementsAutoCAD图形对象DXF文件实体SVG对应元素矩形、多边形、多线段LWPOLYLINEPolyline圆CIRCLECircle椭圆ELLIPSEEllipse直线LINELine圆弧ARCPath椭圆弧ELLIPSEPath样条曲线SPLINEPath图块和块引用BLOCK/INSEPTDefs/g/use等文字TEXT/MTEXTText图像MAGEImage多线MLINEPolyline图案填充HATCHDefs/g/use等参照线XLINELine尺寸DMENSIONDefs/g/use等通过上面对AutoCAD文件的分析,下面将对转换中的出现的问题,提出具体19 重庆大学硕士学位论文3系统可行性分析的解决方案:①坐标系的转换在AutoCAD中采用的是世界坐标系(WCS),即X轴向右为正方向,Y轴向上为正方向,坐标原点在屏幕的左下角。而在SVG的坐标系中原点的位置正好相反为屏幕的左上角,X轴、Y轴分别为正向朝右和正向朝下。要想转换后得到正确的图形,必须将所有的图形进行坐标变换。将AutoCAD坐标系转换为SVG坐标系有很多方法,这里只介绍其中一种常用的方法,即在SVG文件对应的视口中使用transfrom=”translate(0,Ymax)scale(1,-1)”语句.其中translate(0,Ymax)表示将坐标原点有原来的位置平移到(0,Ymax)位置,其中Ymax表示DXF文件中读取的最大纵坐标,而scale(1,-1)指的是X轴方向不变,Y轴正方向与原来的相反。②椭圆由于DXF文件和SVG文件对椭圆特征数据的记录是不相同的,所以从DXF文件中获取的特征数据并不能直接用于表示SVG文件中椭圆,必须将获取的数据经过一定的转换才能用于在SVG文件中。在SVG中,表示椭圆元素主要需要半短轴、半长轴、椭圆圆心等数据。而DXF文件中则记录了半长轴与半短轴的比例、长轴的端点(相对于圆心的相对值)、椭圆圆心等数据。并且DXF文件中的椭圆的长轴可以和水平轴成任意角度,如果直接用SVG中的元素所绘的图形只能使椭圆的长轴平行于水平轴,因此,需要先计算长轴和水平轴所成角度,再使用旋转变换。所以应利用下面公式转换:bc=sqr(n2*n2+m2*m2)cc=bc*f1dd=Atn(m2/n2)*180/3.1415926其中bc表示椭圆的半长轴,n2和m2为长轴的端点,cc代表椭圆的半短轴,f1是半长轴与半短轴的比例,dd表示椭圆的水平轴与长轴的角度。③文字在对图形进行坐标系的转换时,由于文字不同于其他图形,在图形转换自后会出现文字反转的情况,这时为了保证文字的正常显示,应将文字相对于原所在位置的基线进行镜像。在由DXF向SVG转换以后,可能出现SVG中的中文不能显示的情况,这是因为SVG有Utf-16、Utf-8和Iso-8859-1(ASCII)三种编码形式。Utf-16和Utf-8是Unicode形式的编码,Utf-16对于任何一个字符都是用两个字节来表示,Utf-8支持多种语言,每个ASCII字符使用一个字节表示,其他字符使用三个字节来表示,这两种编码都能正常显示汉字,而Iso-8859-1(ASCII)不能直接使用汉字字符。在编程时,如果SVG文档使用的是ASCII码,则不能正确显示汉字。需要将ASCII20 重庆大学硕士学位论文3系统可行性分析码文档转换为Unicode,可以利用C++里的库函数WideCharToMultiByte实现汉字编码转换问题。④图块在文件转化时,DXF中的图块对象可以用SVG文件中元素定义,将该元素ID与图块名称相关联,元素就能根据不同的ID名称调用不同的图块信息。这种方式支持图块的嵌套,提高了图形绘制效率。⑤图层由于AutoCAD将图形对象根据不同的类别放在了不同的图层中,因此在图形转换时,可以根据需求的不同有选择的对图形进行转换,增强了灵活性,提高了转换效率。3.4系统关键问题分析基于Web的煤矿图形监控系统的关键问题主要体现为两个方面:一个是如何实现矿区井下实时数据的动态发布;另一个是如何进行异构数据源的整合,实现个异构子系统的数据交互。3.4.1实时数据发布本文在前面第二章已经对Web页面发布技术进行了分析,并决定使用SVG作为Web客户端的动态页面展示技术,但基于Web的实时监控系统还有一个关键问题是动态数据的实时发布,该问题主要包括如何将后台实时数据实时的传送到Web客户端和如何根据接收到的实时数据实时更新监控界面信息两个方面。目前,[43]对于SVG实时数据动态发布主要有隐藏页面和调用Ajax两种方案。隐藏页面通常是用HTML来实现的,是指通过一个隐藏的页面实现数据中转的功能。具体实现为:将Web客户端要展示的HTML页面分为隐藏页面和SVG文件,然后将JSP页面嵌入HTML主页面,JSP页面主要是负责定时读取数据库里的数据。隐藏页面中的JavaScript功能函数通过JSP读取的数据更新相应的SVG图元。每调用JSP页面一次,就会执行相应的JavaScript功能函数一次。所以通过JSP不断的对实时数据的读取,SVG图元就根据得到的实时数据进行相应的图形变化,达到实时监控的目的。该方式虽然数据交互安全、实现简单,但数据每更新一次就会请求一次服务器,所以当数据是实时更新时,客户端会不断向服务器发送请求,服务器也会不断的向客户端返回请求结果,因此客户端会出现闪烁情况,严重影响了用户体验。Ajax的出现恰好解决了前面隐藏页面方式所出现的客户端闪烁情况。它通过DOM技术,实现了部分元素更新,解决了以整个页面为单位传输的问题;同时,它通过异步请求的方式,让服务器和客户端通信更加灵活。如图3.3所示。21 重庆大学硕士学位论文3系统可行性分析从图中可以看出基于Ajax的实时数据动态发布模型分为数据表现层、业务逻辑层、数据层三个部分。数据表现层是通过嵌入的SVG文件展示的,并引入JavaScript脚本文件对SVG文件的操控。由于SVG完全支持DOM,我们可以通过该技术把SVG文件看成一个文档树,并访问文档接口,能修改文档的任意节点。因此,实现了部分页面更新,避免了整个页面的刷新。业务逻辑层分为两个部分“业务逻辑2”主要提供Web服务,“业务逻辑1”分担了客户端Web应用程序中的一部分逻辑业务,它主要是利用了客户机的计算资源,将能在客户端完成的任务预先处理,不但减轻了服务器的负担,而且即使给用户反馈,提高了交互性。数据层主要是指提供的实时数据库。具体实现过程为:①利用脚本程序在Web客户端创建XMLHttpRequest对象,并初始化。②创建和初始化SOAP包,设置定时器,定时向服务器端发送HTTP服务请求。③服务端接收并解析服务请求,根据得到的参数去数据层查询相关的数据。④将查询的数据以XML格式返回给XMLHttpRequest对象并解析获取实时数据。⑤调用相应的JavaScript函数,根据获得的实时数据更新SVG图元,实现图形与数据的同步。由于该系统在服务端采用了Web服务技术,并使用了XML的数据格式在客服端和服务器进行交互,因此该模型能集成各种应用系统且具有很好的松耦合性。客户端服务端数据表现层业务逻辑层数据层事件SVG文档模型业务逻辑1数据源事件数回据据修调数请问改求访JavaScript业务逻辑2图3.3基于Ajax的Web应用模式Fig.3.3WebapplicationmodebasedonAjax3.4.2异构数据源的整合信息集成主要是通过把位于异构的、不同的信息源上的数据整合起来,实现用户对这些数据的统一视图,统一对异构数据集成系统进行操作。因此,处理各种各样的异构情况成为信息集成的主要任务。22 重庆大学硕士学位论文3系统可行性分析在80年早期,信息集成技术已经开始研究,现在信息技术集成已应用到众多实际领域中,并取得了很大的进展,但在我国的应用还不是很多。目前,用于信息集成系统开发的方法主要有物化方法和虚拟方法两类。物化方法:物化方法又叫数据仓库法。它在数据源(服务器)与客户端之间增加一层用于存储来自各数据源的待集成数据,这一层通常称为数据仓库。系统提供对这个数据仓库的查询机制。物化方法的优点是既可用于决策支持查询,又可用于信息集成。该方法的不足是,数据仓库中的数据需跟着信息源数据的变化做相应的修改。因此,这种间接访问方式会引起数据重复存储,数据更新不及时等缺点。通常需要一些新的技术来对这种方法进行改善,如增量更新维护和有效数据加载等。虚拟方法:虚拟方法又称为中间件法。该方法将数据保存在各数据源上,与数据仓库法使用的数据仓库完全不同,因此集成系统只需提供一个虚拟的集成视图和对该集成视图查询的处理机制。该系统依赖两类软件组件:中间件(mediators)和包装器(wrappers),通过该类组件能自动地将用户对全局模式的查询请求转换成对各异构数据源的查询。在一定程度上,中间件中并没有数据,只是信息源中数据的一个视图,用户可以对中间件进行查询,对于每一个用户的查询模式需要一个中间件。包装器包装数据源,底层的数据对象被转换为统一的数据模型;中间件通过集成不同数据源信息,从其他中间件或包装器中获取信息,并解决它们之间的冲突来提炼信息,然后把信息提供给其他的中间件或用户。由于该方法不需要重复存储大量数据,并能保证查询到最新的数据,因此比较适合于更新变化快、集成数量多、且高度自治的异构信息源集成。通过上面对物化方法和虚拟方法的比较,我们选择虚拟方法来实现已有系统的集成。本文针对目前信息化发展状况,将基于WebService的信息集成引入本系统中,用于解决异构数据源的整合问题,实现数据共享。3.5系统设计方案3.5.1方案的提出目前,在煤矿企业中已经安装了一些用于井下的实时监控系统,但由于该类监控系统主要是以数据报表或文字的形式展示井下的实时数据,而以图形动画的方式展示当前井下的实时数据的系统较少。因此用户不能直观的展示当前井下的状况,不能实现友好的人机交互。再加上煤矿企业内开发了多个监控系统以实现对矿井进行多方面的监控,而这些监控系统大多是基于不同平台和语言开发的,这些系统之间很难相互集成,实现数据共享。因此,本课题的主要目的就是探索一条在Web客户端以图形动画的方式实现对煤矿井下的实时监控并解决与煤矿其23 重庆大学硕士学位论文3系统可行性分析他异构系统集成的解决方案。该方案以煤矿行业为背景,但不局限于煤矿行业,主要采用的方法如下:①由于当前矿区图纸大多数是用AutoCAD绘制而成的,为了兼容以前的矿区图形,本文分析AutoCAD文档和SVG文档的文件格式,设计由DXF格式向SVG格式的转换方案。②用专业绘制工具绘制SVG图元,编写JavaScript脚本封装绘制好的图元,通过对图元的引用实现煤矿监控界面的开发。③实时数据的发布使用了Ajax技术,通过Ajax的异步调用实现了图形界面的无闪烁刷新,建立了友好的人间交互界面。④使用WebService实现客户端和服务器端的通信,并实现各异构系统的集成。3.5.2系统体系结构本系统整体设计框架如图3.4所示,该系统主要由Web服务端、远程客户端、数据服务端三部分组成。矿区图纸图元库Web上传服格式转换图形界面开发务调数据展现(SVG图形界面)用客JavaScript调用HTML+CSSdata户端JAXA引擎SOAP/XMLSOAP/XML请求服务响应服务Web服务Web服务_1服务_m服务_n服务WebServices适配器数据服系统_1系统_m系统_n务器图3.4系统总体框架Fig.3.4Generalframeworkofthesystem24 重庆大学硕士学位论文3系统可行性分析远程客户端:用户可通过浏览器实现对监控界面的开发和实时远程监控现场信息,现场的实时数据信息是以SVG图形动画的方式展现出来,能真实的模拟现场情况,具有良好的用户体验。数据服务器:首先是接收并解析WEB服务器发送过来的服务请求消息,然后根据解析的结果调用相应的接口查询数据库,最后将查询得到的数据格式化后返回给WEB服务器。WEB服务器:本系统选择IIS7.0为WEB服务器,负责处理来自数据存储或者发送给数据存储的数据。3.5.3异构系统解决方案基于Web的煤矿图形监控系统研究的重要目标之一是解决各异构系统的集成问题,通过系统之间的集成实现的数据的共享。因此本文提出了利用WebServices架构来解决异构系统间的集成问题,通过WebServices对服务的定义,调用相应的服务接口,其中旧应用系统的复杂性被隐藏了,从而很好的解决异构系统之间的交互(如数据挖掘、数据交换等)问题。针对本文的需求,通过WebServices架构来实现异构系统之间数据的交互和业务的衔接。具体而言,将各个子系统看作Web服务体系结构中的服务提供者,由于各个系统存在异构性,因此需要设计一层中间件,用于将原有系统的功能接口转化为统一的服务接口,这其实就是利用WSDL技术对旧系统接口的改造和更高层次抽象,所有的接口信息都以WSDL文档形式展现给下层的系统模块。并根据需要把用WSDL描述的Web服务发布到注册中心以供查询,同时所有这些工作均可使用支持规范的工具来完成。此时,系统之间的集成就变为Web服务的对接。开发人员可以使用UDDIAPI在Web服务注册中心查询或与相关技术人员进行交流,获取相应Web服务的WSDL描述文档,然后通过平台工具自动将WSDL描[44]述文档装载到自己的开发平台中,生成相应的接口。同时,开发人员可以使用XMLSchema工具快速地理解应用交互需要使用的数据结构,然后在自己的应用中引入刚刚使用平台工具生成的调用接口和数据结构,使用SOAP技术与对方的Web[45]服务进行交互,从而完成系统应用集成。对于不同的用户来说,需求也是不同的,在很多情况下,需要结合多个子系统中的数据做一些数据挖掘或数据分析的工作。例如,当管理人员发现瓦斯超标了,需要分析局部通风机工作是否正常、瓦检员是否到位、人员是否撤离、当班是否有跟班领导、技术人员是否具备专业资质、设备是否按期调校等等。这些复杂的需求需要对多个系统的数据进行数据挖掘,而不能由一个简单的独立系统得出结论的。中间服务层其实就是这样的一些分析系统,在整个体系结构中,它们应该是被看作是Web服务体系结构中的服务请求者的角色;而对于用户来说,它25 重庆大学硕士学位论文3系统可行性分析们相当于更高抽象层次的服务,可以进行可视化的操作。正是它们对于上层子系统提供的服务发出了调用请求。由于上层子系统各自的功能服务已经由WSDL进行了统一的抽象描述,以统一的接口形式暴露给下层,所以对于中间服务层模块来说,只要把对各个子系统的服务调用请求按照SOAP规范进行封装,就可以顺利实现相关的调用。面向服务的架构是实现高效信息系统之间数据和业务无缝衔接的理想方案,它在服务层中将各业务功能点以服务的形式暴露于系统之外,其他信息系统可以通过服务协议对服务进行访问。这种技术简化了系统集成,可以非常容易、快捷地对业务需求的变化做出相应的反应。另外,面向服务的架构是与语言和平台无关的,因此无需考虑应用实施的环境是位于何种平台系统和设备。面向服务的集成和其他的系统集成技术相比,是异构数据源体系架构的理想解决方案。3.6技术路线和开发环境3.6.1技术路线架构:基于WebServices面向服务的架构可视化技术:SVG+JavaScript技术实时数据发布技术:SVG+Ajax技术实现模式:B/S模式3.6.2开发环境操作系统:MicrosoftWindows7应用服务器:IIS7.0浏览器:IE9数据库:MicrosoftSQLServer2008开发平台:VisualStudio2010后台语言:C#3.7本章小结本章通过第二章对关键技术的分析,提出了以煤矿行业为应用背景,设计一个图形化远程实时监控系统。本章首先介绍了应用背景,并针对煤矿行业进行了系统需求分析。然后对本系统涉及的一些关键问题进行了详细分析,如用SVG描述矿图的可行性分析,矿区图纸的格式转换、实时数据的发布、系统的数据源异构等。并设计了系统的具体解决方案。最后介绍了本系统使用的技术路线和开发环境。26 重庆大学硕士学位论文4系统详细设计方案4系统详细设计方案本文所设计的基于Web的煤矿图形监控系统是建立在煤矿井下信息网络集成的基础上的,通过SVG、Ajax、SOAP、WebServices和图元组件化技术实现对煤矿井下设备的远程监控,实现煤矿企业内部个异构系统间的应用集成和数据共享。结合第二章的关键技术分析和第三章对系统的可行分析,本章节对系统的主要的功能模块进行了详细的设计和分析。4.1设备图元库设计为了提高提高绘图效率和图形生成过程的智能化,支持图形更高的重用性,本文引入图元模型。通过对特定图元的专业绘制并构造相应的图元组件库实现对SVG图形的统一管理和图形生成。本文基于SVG组件化的图形生成基本框架如图4.1所示。SVG图元生成SVG图元管理SVG图形文件生成脚本生成脚本管理图4.1基于SVG组件化的图形生成框架Fig.4.1GraphicsgenerationframeworkofcomponentbasedonSVG系统组件库包含SVG图元库及SVG图元对应的脚本库,要实现组件库的构造,首先需要生成SVG图元,然后再为SVG图元封装事件,图元对应的脚本负责控制图元中各元素的一些属性修改和事件响应。完成组件库的构造后,根据图元不同的功能对组件库中的图元和脚本程序文件进行分类储存和管理。最后通过设计好的图元组态系统对图元的引用实现。4.1.1SVG图元的生成SVG图元的生成有很多种方法,如采用绘图工具生成、手动输入生成、面向对象程序设计生成。由于煤矿井下有大量复杂的图元,为了提高绘图效率,降低错误率,本系统选择绘图工具生成图元。目前在图形设计领域内,有很多专业的图形生成软件,它们都能高效的绘制27 重庆大学硕士学位论文4系统详细设计方案复杂的图形,基于AdobeIllustrator强大的功能和体贴的用户界面,本文选择Adobe公司的AdobeIllustrator矢量图形软件来绘制矿区图元。在图元绘制时,为了方便脚本程序对图元的操控,可以使用SVG提供的元素将相关的元素包在一个容器内,可以通过对这个容器的属性更改来改变容器内的所有元素。最常用到元素的情况,是将SVG图元文件里面的响应事件的元素或需要做动画的元素用元素包含起来,这样直接操控元素就能实现对它所包含元素的操控。对于一些不同的图元出现了相同的基本构成部分时,可以使用元素定义该部分图形结构的描述规则,然后通过模板元素定义图形的颜色、样式、形状等信息,元素位于元素内,由于中的内容在文件解析是不能直接渲染,因此当需要调用该部分图元时,需要使用标签来引用前面定义的图元。通过这种方式绘制的图元,不仅提高了绘图效率,也提高了代码的重用性。绘制好的SVG图元文件可以通过标签嵌入到HTML文件中,用户在绘图时就能引用该SVG图元。在图元绘制完成后,考虑到要为图元编写相应的脚本程序,为了让脚本程序能更好的操控图元,实现友好的人机交互,可在图元定义时添加一些信息。在本系统中,绘制的SVG图元文件不仅仅包含构成该图元的基本图形,还需要向SVG图元文件添加一些信息表明响应该图元事件的对象是哪些元素或该图元事件能对哪些元素的属性进行修改。所以,在SVG文件描述字段的内容应包含图元事件发生对象、事件类型、图元类型等。4.1.2SVG图库的管理由于煤矿井下有大量的设备,如果把SVG图元文件简单的放到一个文件里,不仅不利于对图元的查找,也不利于对图元的管理,所以在设计图元库的时候要考虑到系统对图元的扩充和修改特性的支持。在提高图形的生成效率时,必须要对图形文件进行有组织的管理和存放。由于SVG是基于XML格式的,因此可以参考XML的存储方式来实现对SVG文件的储存,从图元文件的管理方便、系统实现简单方面来考虑,本系统采用将图元文件集中按树形结构保存在一个文件目录下。通过图元的不同的特性将图元分类保存,SVG图元结构如图4.2所示。基本图元:基本图元主要包括静态的,不与现场设备绑定图元,该类图元大多作为监控界面的底图和背景。设备图元:包括所有常用的煤矿井下设备图元,这些图元根据不同的类型分为了开关量图元和模拟量图元。如风门、主扇被分为开关量图元,甲烷、一氧化碳被分为模拟量图元。功能图元:该类图元主要用于实现用户特定的功能操作,如可以通过控制按28 重庆大学硕士学位论文4系统详细设计方案钮控制与它像关联的设备,可以通过跳转按钮实现对不同矿区的转换,数据测点标签能实时显示当前关联测点值等。SVG图元库基本图元设备图元功能图元数模其其开控跳据拟它它关制转测量模开量按按点设拟关设钮钮标备量量备签一甲氧风温主风水皮风烷化速度扇门泵带筒碳图4.2基于SVG的图元结构图Fig.4.2PixelstructurebasedonSVG4.1.3脚本程序的构造在图形绘制的时候,为了能更好的操控图元和实现图元的动画显示,本系统利用面向对象的思想把图元的属性和事件都封装到一个类里面。当用户需要调用某一个图元时,只需要实例化该类就能生成一个图元对象。通过该对象就可以轻易的获取图元的属性和事件,如果要对图元作一些操控或者更改的时候,直接改变图元的属性或调用图元的事件即可。本系统在为每一个图元编写类文件时,充分利用了面向对象的封装、继承等特性,能很好对类库进行扩展。本系统利用了JavaScript的原型链的方法,来为每一类图元编写脚本函数,本文以风机图元为例,如我们需要封装风机图元时,由于风机在图元库里面是属于设备类图元的,所以会首先继承设备类的属性,然后自己再添加专有的属性和事件。具体代码如图4.3所示:29 重庆大学硕士学位论文4系统详细设计方案functionDevice(id){//设备父类this.idval=id;//设备编号唯一this.idname;//图元标识id,唯一his.x=0;//坐标this.y=0;//坐标this.width=3;//图元宽this.height=3;//图元高this.type;//图元类型this.Name="";//站点名称}functionFan(){//风机子类Device.call(this,id);//继承了父类的基本属性this.svgobj;//设备svg对象this.State;//站点类型this.Val="";//当前实时值this.Fanrootg=null;//动画对象this.currentAngle=0;//当前角度this.alarm;//报警类型this.Swichflag=-2;//值为1是表示开,0表示关。//其他属性}Fan.prototype.rotatee=function(){//风机转动函数//风机转动实现}图4.3设备类核心代码Fig.4.3Corecodeofthedeviceclass通过上面的代码可以看出,系统首先建立了矿区设备的一个公共的父类Device类,该类里面定义了设备图元的公共的属性,如图元的x、y坐标,图元的类型等。然后定义了Fan子类,子类继承了Device父类的所有属性,然后在构造函数里定义了自己专有的属性,并使用了Function的prototype方法来添加图元的专有函数。因此当需要创建风机图元时,只需要对该类进行实例化,具体代码如下:varObj=newFan();//实例化对象Obj.rotatee();//调用风机的旋转方法Obj.x=20;//给图元的X坐标赋值Obj.y=100;//给图元的Y坐标赋值因此通过对每一个图元的封装,当需要操控具体的图元时,只需要调用该图元的属性和相关方法即可,并不需要知道该方法是怎么实现的,使开发变得简单、系统,提高了开发效率。4.2图形组态模块设计在矿区图元库建立好以后,本系统需要设计一个基于SVG在线图形组态模块,30 重庆大学硕士学位论文4系统详细设计方案使用户能在线编辑矿区图,快速的开发煤矿图形监控界面。该图形组态模块按功能可分为矿图管理模块、图形绘制模块、编辑管理模块、工具栏管理模块等四大部分。基于SVG的图形组态结构图如图4.4所示。图形组态系统图形绘制模块矿图管理模块编辑管理模块图形放大/缩小图纸上传基本图形设备图形图纸修改删除图形文本SVG图元移动画线脚本文件图纸格式转化画圆旋转图4.4图形组态系统的结构功能图Fig.4.4Structurediagramofgraphiceditingsystem矿图管理模块主要是对矿区图纸的管理,包括图纸的上传、新建、修改以及对图形格式的转换等功能。图形绘制模块分为基本图形的绘制和设备图元的绘制,基本图形绘制主要是指对直线、圆、矩形、折线、文本等图形的绘制,绘制设备图元时不需要用户再从头绘制图形,只需要调用已经建立好的图元库。编辑管理模块主要在图形编辑时完成对图形的一系列操控,如图形的放大、缩小、保存、图形漫游、图元旋转等操作。4.2.1矿图处理加载流程在使用本系统开发煤矿图形监控界面时,为了能够更加真实的展现当前矿区矿井下地貌,可以导入当前矿区的实时矿图作为图形监控界面的背景图,工作人员再在此基础上进行图形监控界面的开发。矿图处理流程如图4.5所示。31 重庆大学硕士学位论文4系统详细设计方案开始选择矿区导入矿图否是否为SVG格式文件格式转换是客户端渲染SVG文件初始化文件加载Onload事件是是否为编辑状态执行编辑否是是否为监控状态执行监控否开始图4.5矿图处理流程Fig.4.5Processofminemap从矿图的处理流程可以看出在系统开始前,工作人员会首先上传需要处理的图纸,根据当前选择的矿区导入相应的矿区图纸。导入了矿区图以后,系统会自动判断载入图纸的格式,如果是其他图形格式,系统会转入格式转换程序,调用XSLT转换文档进行格式转换,当转换完成后,浏览器会对SVG文档进行渲染,浏览区域会显示导入图纸。同时,系统会加载OnLoad函数进行系统初始化设置,并注册鼠标事件和键盘事件,当OnLoad函数加载完成后系统便会进入相应的事件响应处理。OnLoad函数的核心代码如图4.6所示:32 重庆大学硕士学位论文4系统详细设计方案functionOnLoad(svgid){varsvgobj=GetSvgObject(svgid);varsvgroot=GetSvgRootObject(svgobj);if(svgroot!=null){//注册鼠标滚轮事件和键盘按下事件svgroot.addEventListener("mousewheel",zoomViaMouseWheel,false);svgroot.addEventListener("keydown",processKeyPress,true);//注册鼠标按下、鼠标移动、鼠标弹起事件svgroo.setAttribute("onmousedown","parent.OnMouseDown(evt)");svgroo.setAttribute("onmousemove","parent.OnMouseMove(evt)");svgroo.setAttribute("onmouseup","parent.OnMouseUp(evt)");}currentZoomFactor=svgroot.currentScale;//获得当前缩放率docwid=svgroot.getAttribute("width");//获取SVG文档宽度dochei=svgroot.getAttribute("height");//获取SVG文档高度//获得SVG视口宽度和高度winwid=window.document.getElementById("svgid").offsetWidth;winhei=window.document.getElementById("svgid").offsetHeight;scale=Math.min(winwid/docwid,winhei/dochei);//设置SVG文档显示位置svgroot.setAttributeNS(null,"preserveAspectRatio","xMinYMin");}图4.6OnLoad函数核心代码Fig.4.6CorecodeofOnLoadfunction4.2.2图形绘制功能图形绘制主要分为两个部分:第一部分主要是对矩形、椭圆、直线、多边形、文本等基本图形的绘制;第二部分是通过对建立好的矿区图元库的引用绘制已经封装好的图形。①基本图形的绘制基本图形的绘制主要是通过SVG定义的基本图形实现的,下面将以绘制矩形为例详细介绍其设计,其他图形的绘制原理大同小异。在创建图形时必须首先获取HTML页面里面的SVG文档对象,详细代码如下所示:functionGetSvgObject(svgid){varsvgobj=window.document.getElementById(svgid).getSVGDocument();returnsvgobj;}GetSvgObject函数通过getSVGDocument()方法获得了SVG文档对象,其中svgid为SVG文档在HTML里面的id值。在获取了SVG文档对象后,还需要得到SVG文档里面的SVG根元素,创建的矩形图形就可以添加到SVG根元素下面。该实现的详细代码如图4.7所示:33 重庆大学硕士学位论文4系统详细设计方案functionGetSvgRootObject(svgobj){varsvgroot=svgobj.firstChild;while(svgroot+"H"!="[objectSVGSVGElement]H"){if(svgroot+"H"=="nullH"){window.setTimeout("GetSvgObject(svgid)",1000);InitTimes++;}else{window.alert("无图像数据。");return;}svgroot=svgroot.nextSibling;}returnsvgroot;}图4.7获取SVG根元素函数Fig.4.7FunctionofgettheSVGrootelement最后编写矩形类文件,核心代码如图4.8所示:functionRectClass(id,svgid){this.svgid=svgid;//初始化SVG文档IDthis.id=id;//初始化矩形的IDthis.x=0;//创建矩形的X坐标this.y=0;//Y坐标this.width=0;//创建矩形的宽度this.height=0;//高度this.color=0;//背景颜色}//添加矩形方法RectClass.Prototype.DrawRect=function(){varSvgDoc=GetSvgObject(this.svgid);//得到SVG文档对象varSvgRoot=GetSvgRootObject(SvgDoc);//得到SVG元素对象varRect=SvgDoc.createElementNS("http://www.w3.org/2000/svg","rect");Rect.setAttribute("id",this.id);//设置矩形各种属性Rect.setAttribute("x",this.x);Rect.setAttribute("y",this.y);Rect.setAttribute("width",this.width);Rect.setAttribute("height",this.height);Rect.setAttribute("fill",this.color);SvgRoot.appendChild(Rect);//将矩形添加到SVG根元素下}图4.8矩形类文件代码Fig.4.8Codeofrectangleclass用户在绘图时,用户先后会触发鼠标按下、鼠标移动和鼠标弹起三个事件,34 重庆大学硕士学位论文4系统详细设计方案在鼠标按下事件中,系统首先会获取当前按下位置的坐标,然后调用CreatRect()方法在按下位置创建矩形,当鼠标在画布上移动时,会触发鼠标移动事件,并调用MouseMoveRect()方法计算所画矩形的大小并实时刷新矩形,在鼠标弹起事件中清空前面的数据,具体流程如图4.9所示。绘图员点击煤矿是是否绑定测点选择测点否点击绘图按钮在画布上按下鼠标左键触发onmousedown鼠标事件调用绘图函数或图元引用函数生成默认大小图元在画布上拖动鼠标触发onmousemove鼠标事件调用鼠标移动函数改变图元大小释放鼠标触发Onmouseup鼠标事件调用相应函数清空操作类型绘制完毕图4.9图形绘制流程图Fig.4.9Drawingflowchart函数核心代码如下所示;functionCreatRect(evt,id,svgid){varRectobj=newRectClass(id,svgid);//创建矩形对象//计算鼠标点击的X、Y坐标Rectobj.x=(evt.clientX)/scale*currentZoomFactor+parseFloat(view1);Rectobj.y=(evt.clientY)/scale*currentZoomFactor+parseFloat(view2);Rectobj.DrawRect();//调用绘图方法}35 重庆大学硕士学位论文4系统详细设计方案在CreatRect函数中,evt参数表示鼠标按下的事件本身,可以通过evt获取与当前事件相关的信息,如evt.clientX、evt.clientY表示鼠标点击的X、Y坐标,该坐标值是基于SVG画布的,如果想得到屏幕上的准确坐标值还需要计算出其他的参数,如scale、currentZoomFactor、view1等。scale为SVG文档的长或宽与SVG视图窗口的长或宽比值的最小值,currentZoomFactor为对SVG底图的放大缩小系数,view1、view2分别为SVG文件的向左或向右的平移量。通过对这些参数的正确计算就可以得到当前鼠标按下的准确位置。functionMouseMoveRect(evt,Rectobj,origX,origY){//计算鼠标X和Y方向的位移varwidth=(evt.clientX-origX)/scale*currentZoomFactor;varheight=(evt.clientY-origY)/scale*currentZoomFactor;Rectobj.setAttribute("width",width);//设置矩形宽Rectobj.setAttribute("height",height);//设置矩形高}在MouseMoveRect函数中,Rectobj参数为创建的矩形对象,origX、origY为鼠标开始按下的X轴、Y轴坐标,通过计算得出鼠标向X轴、Y轴方向的位移。②矿区图形绘制在对矿区图形的绘制时,由于在建立图元库时已经把有用的图元绘制和封装好,所以在对图元绘制时,不需要编写图形绘制函数只需要对编写好的图元引用即可。在图形绘制流程上和基本图形的绘制流程一样,都是先后触发鼠标按下、鼠标移动、鼠标弹起三个鼠标事件,这里不再多做介绍。下面主要介绍怎么样实现对矿区图元的引用,具体引用函数如图4.10所示:使用该函数引用矿区图元时,需要传递两个参数,一个是被引用SVG文档里面的元素对象,用node参数表示。另一个是嵌入在HTML页面里面的document对象,用doc表示。该函数通过递归调用的方法,把传递进来的元素里面所有的子元素赋给了新建clone对象,最后返回该对象。用户在绘制图元时,通过cloneToDoc函数获得被引用图元的所有元素节点,再通过appendChild方法把所引用的元素节点添加到SVG底图中。具体代码如下;vardoc=GetSvgObject(id);//获得被引用图元SVG文档varsvgroot2=GetSvgRootObject(doc);//得到SVG元素节点varcloneobj=cloneToDoc(svgroot2,svgdoc);svgroot.appendChild(cloneobj);36 重庆大学硕士学位论文4系统详细设计方案functioncloneToDoc(node,doc){if(!doc)doc=document;varclone=doc.createElementNS(node.namespaceURI,node.nodeName);if(node.attributes!=null){for(vari=0,len=node.attributes.length;i............图4.12菜单模块代码Fig.4.12CodeofMenumodule38 重庆大学硕士学位论文4系统详细设计方案上面展示了菜单的配置信息,主要包括简单图形的绘制和对图形的基本操作,根据配置文件构建菜单如图4.13所示。开始获得菜单配置文件解析配置文件,获得菜单名称获得所有模块的菜单动作根据菜单名称,创建菜单结束图4.13菜单流程图Fig.4.13Flowchartofmenu4.2.5右键菜单重构为了更加方便的绘制图形,我们对SVG右键菜单进行了自定义,用户在绘制图形点击右键时,会出现各种对图形的操作,如复制、粘贴、剪切、放大、缩小灯。具体实现为,首先在标记内定义一个菜单,菜单中可以通过action属性引用内置的函数,通过onactivate属性调用用户自定义的Javascript函数。若给菜单添加链接,则可以设置xlink:href属性。此外,通过元素的嵌套使用,还可以定义多级菜单,详细代码如图4.14所示。/*定义新菜单*/copypastecutdelete/*定义分隔符*/ZoomInZoomOut图4.14右键重构代码Fig.4.14Codeofright-clickrefactoring39 重庆大学硕士学位论文4系统详细设计方案定义好了菜单项之后,需通过下面的语句将原始菜单替换为新定义的菜单。varnewMenuRoot=parseXML(printNode(document.getElementByIdx("newMenu")),contextMenu);contextMenu.replaceChild(newMenuRoot,contextMenu.firstChild);具体调用每一项的功能时,应调用相应的Javascript函数实现具体操作功能,如删除操作,需要在Javascript文件中添加下面函数。functiondelete(evt){varobjdet=evt.target;svgroot.romoveChild(objdet);}4.3实时数据的动态发布机制通过前面对实时发布技术的分析,本系统选择SVG与Ajax技术相结合的模式实现实时数据的动态发布,其发布的框架模型如图4.15所示,该框架模型分为数据展现层、业务逻辑层和数据层三个部分。数据展现层又分为嵌入HTML文件SVG图形和JavaScript文件两个部分。通过Ajax技术与JavaScript的结合实现对实时数据的获取与更新,最后通SVG图形展现出来。业务逻辑层主要用于提供各种服务。数据层是指提供数据的实时数据库和历史数据库。WEB/表现层将查询结果以逻辑层SOAPX/ML格式返回实时数据层HTMLJS调用Dom数据返回结果页面更新数据数查询实时数Ajax据接口据库SVG引服文擎务档历史数器历史据库JS定时调用将查询请求以数据SQL请求XMLHttpRequst查询SOAPX/ML格对象接口式下发图4.15基于SVG和Ajax实时数据发布框架Fig.4.15Real-timedatapublishingframeworkbasedonSVGandAjax实时数据的动态发布主要涉及到两个关键问题:一是如何将获得的数据与监控界面上的图形关联起来,即通过界面上的SVG图形能反映出数据的情况。另一个是实时数据是如何获取的,即数据是如何通信。本系统通过在数据交换方面是通过基于XML的数据交换格式和SOAP的通信协议来实现的,而图形与数据的关40 重庆大学硕士学位论文4系统详细设计方案联是通过用户在绘制图形时对图形的数据绑定实现的。下面将对这两个方面进行详细介绍。4.3.1图元与设备的映射本系统中,所有的实时数据都是通过SVG图形界面表现的,如图4.16所示,每一个SVG图形监控界面都是由多个SVG图元组成的,由于创建图元时对每个图元都进行了封装,每个图元都拥有自己的属性和事件,如idname属性表示该图元的id,是该图元的唯一标识,通过它可以将不同的图元区分开来,idval属性用于关联实际测点或设备。Acton为图元对应的函数。SVG监控界面SVG图元对象SVG图元对象idnameidname属属性性idvalidval事事Action件Action件SVG图元对象SVG图元对象idname属idname属性idval性idval事事Action件Action件图4.16SVG监控界面结构图Fig.4.16StructureofSVGmonitoringinterface用户在添加SVG图元时,除了设置图元的基本属性外,用户还需要将该图元与矿区设备相关联,即把关联设备的地址赋给该图元对象,前面在图元定义的时候已经定义了idval接口用于接收设备地址。最后将所有图元的信息保存到数据库中。当运行SVG监控界面时,系统会先查询数据库获得图元的相关数据并把它们放到一个数组里面,然后实例化图元,给相应的图元属性赋值,由于前面创建图元的时候已经将设备id赋值给图元的idval属性,所以图元id与设备id被实例化的图元对象关联起来,如图4.17所示。41 重庆大学硕士学位论文4系统详细设计方案嵌有SVG的HTML页面载入初始化页面查询数据库实例化图元对象SVG图元对象SVG图元对象映射映射其他属性其他属性图元id设备id图元id设备id和事件和事件图4.17初始化监控界面图Fig.4.17Diagramofinitializemonitorinterface4.3.2实时数据的获取实时数据的获取主要包括数据传输格式的定义与数据传输实现两个部分,下面将对分别对这两个方面详细说明。①数据传输格式本系统在进行数据查询时,主要分为实时数据查询和历史数据查询两个部分。实时数据查询主要用于对矿区设备实时监控,历史数据查询主要用于是对以往设备运行情况的回放。这两种查询都是基于XML格式的,下面分别详细说明。1)实时数据查询接口设计根据客户端的时数据查询请求,其接口定义如图4.18所示。实时查询接口RealTQuery(......)各个参数说明PointList监测点列表QueryType查询类型Url服务定位CallBFun回调函数图4.18实时查询接口设计Fig.4.18Designofreal-timequeryinterface42 重庆大学硕士学位论文4系统详细设计方案RealTQuery为实时查询接口,PointList参数为要查询的监测点的集合,QueryType参数为查询类型(实时查询、历史查询),服务器端通过它来调用相应的查询接口,Url参数用于定位与服务器通信,CallBFun为客户端收到服务器端返回的结果时需要调用的函数,该函数主要用于处理返回结果,更新数据。2)历史数据查询接口设计用户执行历史数据查询时,其接口定义如图4.19所示,除了多了查询开始时间、结束时间两个参数外,其他参数与实时数据查询一样。历史数据查询接口PastReQuery(......)各个参数说明PointList监测点列表QueryType查询类型Url服务定位CallBFun回调函数Starttime开始时间Endtime结束时间图4.19历史查询接口设计Fig.4.19DesignofhistoricalqueryInterface对于各个查询接口而言,其查询条件都是被封装为XML数据格式,并通过SOAP包的形式发送给服务器端。如图4.20所示,查询条件被封装为XML数据格式,其中QueryType表示查询类型,sscy为实时数据查询,lscy为历史数据查询,而PointList为要查询的数据监测点,conditionlist标签里为与查询相关的控制条件。get/setsscy/lscyvalue_1value_2con_1con_2图4.20查询条件的XML数据格式Fig.4.20QueryofXMLdataformat43 重庆大学硕士学位论文4系统详细设计方案②实时数据的获取1)调用相关函数,创建和初始化XMLHttpRequest对象。2)利用客户端接口函数将查询条件封装为基于XML数据格式的SOAP包。3)调用XMLHttpRequest对象的send()方法向服务器发送HTTP请求。4)Web服务器接收并解析相应的服务请求,将得到的参数以XML的数据格式发送给数据服务器端,数据服务器通过传递进来的消息获取对应的参数,从而调用相应的接口去查询数据库获得相应数据,最后再将获得的数据以XML格式返回给Web服务器。5)客户端通过创建的XMLHttpRequest对象获取返回的XML数据,再调用相关函数解析XML,更新数据。6)系统在进入实时监控状态时,需要定时不断的向Web服务器请求实时数据,所以需要在客户端通过定时器定时触发XMLHttpRequest对象发送和获取数据。整个数据的发送和接收过程都是基于XML数据格式的,因此能够很好的实现客户端数据与服务器数据的交互。4.4数据库设计4.4.1系统数据库E-R图(部分)本系统的数据库E-R图,如图4.21所示:44 重庆大学硕士学位论文4系统详细设计方案标识标识煤矿编号点编号所属文件名实时值SVG图形信息实时数据图形类型值时间nnY坐标状态属于产生X坐标值/状态描述图层11标识设备编号矿信息煤矿编号图形宽度单位全称图形长度地址核定生产力实际生产力图4.21系统数据库E-R图(部分)Fig.4.21E-Rdiagramofsystemdatabase(part)4.4.2系统数据结构设计本系统数据库设计主要分为两个部分,一部分是用于保存所绘制图形的基本信息,另一部分用于保存各个矿区的基本信息和实时数据。SVG图形的数据表(WS_TB_SVG):存放监控界面添加的SVG图形的基本信息。45 重庆大学硕士学位论文4系统详细设计方案表4.1SVG图形数据表Table4.1DatatableofSVGgraphics物理名称逻辑名称类型其它备注ID标识INTPK数据库表自动增长的标识MineCode煤矿编号VARCHAR(20)FK外键MineInfo.MineCodePointID绑定点编号VARCHAR(20)FK外键RealData.PointIDSvgFileName所属文件名称VARCHAR(50)TypeName图形类型名称VARCHAR(20)XposizionX坐标VARCHAR(50)YposizionY坐标VARCHAR(50)ValueText文本值VARCHAR(50)图形为文本值,其它类型Width图形宽度FLOAT为NULLHeight图形长度FLOATColor颜色VARCHAR(20)Radius半径FLOATIndex图层设置INT圆形为半径,其他类型为NULL矿(单位)信息表(WS_TB_MineInfo):存放所有煤矿及行政级别的相关信息,该数据由用户通过WEB终端进行建立。表4.2矿(单位)信息表Table4.2TableofMine(units)物理名称逻辑名称类型其它备注ID标识INTPK数据库表自动增长的标识MineCode煤矿编码VARCHAR(20)ShortName简称VARCHAR(20)该名称将用于报表等各处FullName单位全称VARCHAR(100)显示ContactMan联系人/矿主VARCHAR(20)Tel联系电话VARCHAR(50)Address地址VARCHAR(100)格式不限,只用于显示ApprovedPro核定生产能力FLOAT单位:万吨ActurlPro实际生产能力FLOAT单位:万吨ApprovedNumber核定下井人数INT单位:人46 重庆大学硕士学位论文4系统详细设计方案续表4.2:物理名称逻辑名称类型其它备注GasGrade煤矿瓦斯等级VARCHAR(100)RemarkText描述VARCHAR(200)DataFlag备注信息INTDeleteTime数据标志DATETIMETimestamp数据删除时间DATETIME数据未被删除时该值为空时间戳默认为GETDATE()实时数据表(WS_TB_RealData):存放所有煤矿所有点的实时数据及状态等信息。表4.3实时数据表Table4.3Tableofreal-timedata物理名称逻辑名称类型其它备注ID标识INTPK数据库表自动增长的标识MineCode煤矿编号VARCHAR(20)FK外键MineInfo.MineCodePointID点编号INTFK外键DeviceInfo.PointIDRealValue实时值FloatVTime值时间DATETIME当前实时值的取得时间ShowText值/状态描述VARCHAR(10)AlarmBeginTime报警开始时间DATETIMEMaxValue最大值FLOATMaxTime最大值时间DATETIMEMinValue最小值FLOATMinTime最小值时间DATETIMEAvgValue平均值FLOAT4.5本章小结结合上一章对系统的可行性技术分析,本章对煤矿图形监控系统进行了详细设计。首先,设计了整个系统框架并阐述了各个功能模块,然后分别从矿区图元库的建立、图形编辑模块的设计、实时数据发布机制,数据库设计这几个方面详细的分析了整个系统。47 重庆大学硕士学位论文5系统实现5系统实现经过上述章节对煤矿图形监控系统的分析和设计,本章通过把该系统集成到川煤集团安全综合监控联网系统中(简称联网系统),实现与川煤集团下所有的子公司和子矿的数据共享。该系统作为联网系统的矢量图形监控部分,通过调用各个子公司及矿区的数据接口,实现对各个矿区实时数据的获取,并在Web客户端对每个矿区的地理信息和设备运行情况进行直观形象的展示。5.1系统集成的实现以前的联网系统主要用于实现各个矿区的数据联网,并以报表的形式查询和展示当前矿区数据情况,然而随着煤矿行业的快速发展,简单的数据表格形式以不能满足用户的需求,为了实现更好的人机交互,联网系统以矢量图形的方式展示各个矿区的关系以及矿井下的设备动态必不可少。下面将介绍如何将基于SVG的图形监控系统集成到联网系统实现系统的数据共享。5.1.1集成方案描述系统集成框架如图5.1所示,主要分为三个部分,第一部分为基于WebServices的技术标准,通过该技术标准,将各类应用接口转换为服务;第二部分为基于Web的应用集成服务器,主要包括集成各异构系统应用的适配器和基于SOAP的消息传递。第三部分为客户端服务平台。主要包括数据查询、信息管理、图形监控等。UDDI注册中心服务请求客户端服WebServices应用集成务平台图形监控数据查询适配器系统Web服SOAP信息管理务器路由适配器联网系统图形监控WebServices技术标准和规范SOAPXMLWSDL图5.1系统集成框架Fig.5.1Systemintegrationframework48 重庆大学硕士学位论文5系统实现在系统集成框架中,利用WebServices技术,通过Web应用服务器首先将图形监控系统和联网系统的接口转换为Web服务,然后注册到UDDI中;当用户需要调用图形监控这项服务时,首先需要将该调服务用WSDL描述出来,然后以SOAP的方式发送给UDDI注册中心,即实现了对服务查询命令的下发。然后,UDDI会返回用户所请求的服务方法的WSDL描述,用户根据返回的WSDL服务描述信息生成相应的SOAP请求,即实现了与图形监控系统的绑定。在此过程中,基于SOAP的服务请求通过Web服务器传递到相应的SOAP路由器,然后SOAP路由器会根据收到的请求SOAP包找到相应的Web服务适配器,Web服务适配器收到服务请求后,即被激活,会调用相应的图形监控模块,然后将结果又通过Web服务适配器生成SOAP消息包返回给Web服务器,最后通过Web服务器,将结果返回给用户,至此完成了对图形监控模块的调用。5.1.2集成前后系统对比在图形监控模块集成到联网系统前,联网系统主要是以数据报表的形式呈现各个矿的实时数据,如图5.2所示。图5.2联网系统集成前首页Fig.5.2Homepageofbeforeintegratewithnetworksystem当图形监控模块集成到联网系统后,联网系统不仅可以以矢量图的形式展示各个矿区的实时数据,还能根据各个矿区的地理位置建立矿区地理分布图,如图5.3所示。左边的联网列表绑定着对应矿区的信息图纸,由于地理信息图上的各个矿区图标是与矿区实时数据相关联的,所以用户可以通过该地理信息图上的图标颜色变化有一个整体和直观的判断哪些矿区的数据是正常的,哪些矿区数据又是中断或者是有异常。用户也可以点击各个子公司或矿区图标进入下一层级的地理49 重庆大学硕士学位论文5系统实现信息图,对各个具体的矿区更加详细的监测,矿区的川煤集团的矿区层级如图5.4所示。图5.3联网系统集成后首页Fig.5.3Homepageofafterintegratewithnetworksystem川煤集团攀煤公司芙蓉公司达竹公司广能公司白杉白白白皎木皎皎皎瓦树煤电煤斯煤矿厂矿罐矿图图纸纸12图5.4川煤集团矿区层级图Fig.5.4HierarchicalgraphofSiChuancoalgroup50 重庆大学硕士学位论文5系统实现5.1.3Web客户端运行流程本系统主要是在各个矿区井下设备实现了数据采集并上传的基础上构建的,因此重点实现在客户端建立友好的人机交互界面并对矿区井下设备信息的观测以及对设备的控制。具体运行流程如图5.5所示;用户进入登录界面输入用户名和密码否提示错误信息用户名和密码是否正确返回登录界面进入主页否提示无用户权限是否有用户权限不显示数据是点击左侧属性菜单查看相应矿区界面否是否有用户权限提示用户没有权限是显示相应界面是是否编辑图形在线编辑图形否保存图形退出图5.5客户端运行流程Fig.5.5Clientrunningprocesses①在进入系统时,首先进入登录页面,输入用户名和密码,如果正确则进入监控主页面,否则提示登录错误信息。②在登录主页后,用户可以根据根据左侧矿区列表查看对应的监控窗口,在51 重庆大学硕士学位论文5系统实现此过程中会检查用户权限,如果权限通过则可以看到对应矿区的图形监控界面,否则提示用户没有该项权限。③在进入监控页面后,如果入户想对该监控界面进行再一次编辑时,可以点击编辑按钮,如果用户拥有该项权限则进入界面编辑状态,如图否则提示用户没有相关权限。④编辑完成后,点击保存按钮,则进入图形监控状态。5.2客户端组态界面的实现5.2.1基本图形的绘制在Web客户端,基本图形的绘制主要包括直线、矩形、圆形、文字、按钮等图形的绘制。绘制基本图形不用绑定实际测点,该功能主要用于描述矿图的背景和一些文字的说明。双击图形可以弹出该图形的属性对话框,如图5.6所示。图5.6绘制基本图形Fig.5.6Drawupthebasicgraph该图形弹出的为按钮的属性对话框,通过该对话框可以设置按钮属性,如按钮的名称、背景颜色、按钮的功能,上图按钮设置为跳转按钮,即通过该按钮可以从本矿区跳转到其他的矿区,方便了图形的操作。5.2.2设备图元的绘制在进入到图形组态界面时,系统会先加载当前矿区所有的测点,所以在绘制设备图元时,需要首先选定该图元相对应的实际测点,如图5-7所示,该图将水槽与实际的水位测点联系起来,当进入监控状态时,实际水位发生变化时,设备图元变会做出相应的变化。由于设备图元在系统设计时,它的属性和事件已被脚本函数封装起来,所以设备图元的绘制就变得非常简单,用户只需对实际测点的绑52 重庆大学硕士学位论文5系统实现定和图元的相互组合就能完成监控界面的开发,大大提高了绘图效率。图5.7绘制设备图元Fig.5.7Drawingequipmentprimitives5.2.3矿图管理模块矿图管理模块主要用于对矿区图纸的基本管理和操作,如图5.8所示。图5.8矿图管理模块Fig.5.8Minemapmanagementmodule在进行图形绘制前,需要通过矿图管理模块上传矿区图纸,矿区图纸主要用于对矿井下巷道或矿区背景的显示。当上传图纸格式不为SVG时,系统便会自动转53 重庆大学硕士学位论文5系统实现入格式转换程序进行图形格式转换。转换完成后,便通过初始化函数对图纸进行初始化。5.3基于WEB图形监控的实现在实现Web图形监控前,需要利用图形组态软件进行相应监控界面的开发,图5.8为正在对水环式真空泵运行示意图界面的开发,图中蓝色文本框为实时值显示标签,里面显示的数字为该标签绑定实际测点的编号,当进入监控状态时,该文本框便会显示该测点当前的实时值。在图形监控界面开发完成后,系统便会进入到实时监控状态,Web客户端就会通过我们定义的数据接口,实时的向服务器发送查询消息,通过对实时数据库查询后返回给Web客户端,实现了数据的实时显示。图5.9为水环式真空泵运行示意图的监控状态,从该监控界面可以看到每个设备或测点当前的状态或实时值,当鼠标移到具体图元上时,就会弹出蓝色矩形方框用于显示该图元的详细信息,如图元类型、测点编号、当前状态、实时值等。这便于了对井下设备的全面的了解,当有设备出现故障时,能快速准确的作出判断,并及时的处理。图5.9图形组态界面Fig.5.9Interfacegraphicalconfiguration54 重庆大学硕士学位论文5系统实现图5.10实时监控界面Fig.5.10Real-timemonitoringinterface图5.11为对小宝鼎矿、大宝鼎煤矿和花山煤矿的瓦斯抽样与利用的模拟示意图,通过该示意图能直观的观测到各个矿区瓦斯抽放的详细信息,如当前瓦斯的抽放状态、管道浓度、管道绝压、标准瞬时纯流量等信息。通过对这些信息的监测就能实时掌握当前矿进下的工作状况,实现对现场设备的实时监控。图5.11瓦斯监控界面Fig.5.11InterfaceofGasmonitoring55 重庆大学硕士学位论文5系统实现5.4本章小结本章将第四章设计的煤矿图形监控系统集成到了煤矿联网系统中,作为联网系统的矢量图形监控部分。首先分析了系统集成方案,并对联网系统集成前后的系统功能进行比较,介绍了图形监控的系统具体运行流程,然后从图形组态实现和Web监控实现两个方面对本系统进行了介绍,并提供了系统实际运行效果图。56 重庆大学硕士学位论文6总结全文与展望6总结全文与展望6.1论文的主要工作本论文的主要工作是根据煤矿行业的相关背景,开发了基于Web的煤矿现场工况图形化实时监控系统,提供了以SVG矢量图的方式对矿区现场和井下设备的图形化展示,并将SVG与Ajax技术相结合实现对煤矿井下实时数据的动态发布,最后基于WebServices框架实现了本系统与煤矿联网系统的无缝集成,通过应用集成实现了数据集成。本文主要完成的工作如下:①分析了当前煤矿行业图形监控方面的所面临的问题,提出了将SVG可视化技术作为矿区图形展示技术,并根据当前矿区图纸的格式分析了该方案的可行性并提出了相应解决方案。②对当前矿区设备进行分类,并用专业的SVG图形工具设计对应的矿区图元,用JavaScript脚本对矿区图元编写相应的事件,最终封装成图形控件,并根据图元的不同属性进行分类,建立矿区图元库。③通过对建立好的矿区图元库的引用,设计了用于矿区图形界面开发的组态软件,工作人员通过该软件进行图形在线组态,简化了图形监控界面的开发,提高了绘图效率。④分析了实时数据发布技术,并最终选择了SVG和Ajax技术作为本系统的实时数据发布技术,当用户在Web客户端实时监控时,监控界面能实现数据的无闪烁刷新,具有良好的人机交互界面和用户体验。⑤分析了常用的应用层数据传输协议的优缺点,最后选择了SOAP协议作为数据传输协议。⑥解决异构系统集成问题。本文最后利用WebServices的模型框架将基于Web的图形监控系统无缝集成到了煤矿联网系统中,通过应用集成实现了数据集成。6.2展望在基于Web的煤矿图形系统模型中,可以发现在矢量图的展示和异构系统集成等方面取得一定的成果,但仍还有一些方面需要进一步研究。①实时性方面。由于数据是通过网络传输的,而传输速率与当前网络负载状况有密切关系,当前网络传输状况较差时会导致延迟比较严重,甚至会出现数据丢失,所以以后会在实时性方面进行进一步的研究②系统性能方面。虽然本系统目前不会遇到大量图形动画的情况,但是如果57 重庆大学硕士学位论文6总结全文与展望系统需要处理大量图形时,比如有上千动画图元,这时在图形实时监控时,会出现图形动画不连贯或延迟现象,这直接影响了用户体验和系统的实时性,所以系统性能问题也是以后需要重点研究的对象。58 重庆大学硕士学位论文致谢致谢研究生生活马上就要结束了,在此我要感谢我的老师、同学、亲人和朋友们,感谢你们在我读研期间对我的支持和帮助。感谢柴毅教授,给我提供了学习和科研的机会,他严谨细致、对学术一丝不苟的作风使我受用一生,柴老师教给我们的不仅仅是科研知识,更重要的是做人的道理和对生活的态度。感谢我的指导老师张可老师对我的帮助和论文的指导,这篇论文能顺利完成离不开张老师耐心的指导。同时,我还要感谢实验室的郭老师、尹老师、屈老师、魏老师,感谢他们在我读研期间对我的支持和帮助。感谢重庆煤科院测控分院为我的论文研究提供了实践环境,谢谢院里面的领导在实践过程中给予我的支持和帮助。其中,我要特别感谢我所实习的部门软件研究所,感谢所里面的领导和同事在我实习期间给予我的指导和帮助,在煤科院的实习让我学到了不少的东西,对我今后的职业生涯有非常大的帮助。感谢实验室的兄弟姐妹们,感谢你们在我读研期间对我的帮助,特别感谢我的室友们,感谢你们在我最艰难的时刻对我的支持和鼓励。感谢我的爸爸妈妈和所有的亲人,感谢你们无时无刻对我的关心,你们永远健康快乐是我最大的心愿。最后,由衷的感谢参加论文审批和答辩的各位专家、教授,非常感谢您百忙之中花费了宝贵时间参加论文审批和答辩。谭茜2013年4月于重庆大学59 重庆大学硕士学位论文参考文献参考文献[1]王建新,杨世风,史永江等.远程监控技术的发展现状和趋势[J].国外电子测量技术,2005,33(9):9-12[2]黄江.基于Web的实时远程监控系统的研究:[D].河北:华北电力大学计算机应用技术,2008.12[3]DitherCourtaud.TheSVGLanguage,November,2003.http://www.renater.fr/Video/2003ATHENS/DC-SVG_eng_2003/all.pdf[4]GuijieLiu,TingTang,LingLiu.StudyontheWebBasedRemoteMonitoringandcontrollingSystemforHeatExchanger[J].ProceedingsofISCIT,2005[5]LiD,SerizawaY,KiuchiM.ConceptdesignforaWeb-basedsupervisorycontrolanddata-acquisition(SCADA)system.TransmissionandDistributionConferenceandExhibition:AsiaPacific,Yokohama,2006,1:32-36[6]JiZhang,Wen-BangCao,Bing-shuWang,etal.RealizationforDataCommunicationsoftheSupervisoryInformationSystemofPlantLevelinPower[J].ProceedingsOfTheIEEE,2005,32(2):74-85[7]贾智平,李明.基于Internet的电力监控组态软件的关键技术[J].电力系统自动化,2006,26(16):62-65[8]吕浩杰,谢志明,侯学军.基于B/S模式的油田监控系统研究[J].制造业自动化2005(7):540-542[9]李琳.基于Internet/Intranet的工控组态软件Web发布系统的研究:[D].安徽:合肥工业大学机械电子工程,2006.03[10]Vaughan-NicholsSJ.WillvectorgraphicsfinallymakeitonthewebComputer,2001,34(5).[11]吴信才.地理信息系统发展现状与展望计算机工程与应用[J].2001,4:8~10.[12]马安岭.SVG技术在WebGIS上的研究与应用[D],天津工业大学,2007.[13]J.DavidEisenberg.SVGEssentials.FirstEdition.Sebastopol,California,USA:O’Reilly&Associates,2002.13~24[14]ShengYe,FengXuezhi,ShaotaoYuan,etal.VisualizationGMLwithSVG.In:A.B.McBratney,M.L.MendoncaSantos,ElsevierA.EHartemink,etaleds.ProceedingsofIEEEInternationalGeoscienceandRemoteSensingSymposium(IGARSS’05).Seoul,Korea.2005.NewYork:Wiley-IEEEPress,2005.3648~3651[15]FabioVitali,LucaBompani,PaoloCiancarini.HypertextfunctionalitieswithXML.MarkupLanguages,2000,2(4):389~41060 重庆大学硕士学位论文参考文献[16]ZuoXiaqing,LiQingquan.ThedeliverandvisualizationofgeospatialinformationinmobileGIS.In:H.Kodeshed.ProceedingsofInternationalConferenceonWirelessCommunications,NetworkingandMobileComputing.Wuhan,China.2005.NewYork:IEEEPress,2005.1348~1351[17]RexSandwith.Patternrecognitiondeviceusingscalarvectorgraphics.In:M.ZHAO,Z.SHI,eds.ProceedingsoftheInternationalJointConferenceonNeuralNetworks.Portland,Oregon,USA,2003.NewYork:IEEEPress,2003.2187~2192[18]S.Battiato,G.D.Blasi,G.Gallo,etal.SVGRenderingforInternetImaging.In:Wileyed.ProceedingsoftheSeventhInternationalWorkshoponComputerArchitectureforMachinePerception.Palermo,Italy.2005.NewYork:IEEEPress,2005.333~338[19]B.Antoniou,L.Tsoulos.ThepotentialofXMLencodingingeomaticsconvertingrasterimagestoXMLandSVG.ComputerandGeosciences,2006,32(2):184~194[20]陈传波,吴方文.基SVG的图元对象描述模型的研究.华中科技大学学报(自然科学版),2002,30(10):50~52[21]朱前飞,高芒.COM组件和ActiveX技术在B/S体系结构中的应用[J].计算机工程与设计,2005,26(3):654-656[22]荆峰峰,庞彦斌.实时监控中WEB发布技术的应用开发技术[J].北京大学学报,2003,30(3):82-84[23]李海.VISUALBASIC编程晋级:ACTIVEX控件[M].北京:北京航天航空大学出版社,2003[24]王沛,冯曼菲.征服AjaxWeb2.0开发技术详解[M].北京:人民邮电出版社,2007.6[25]段海英.浅议基于XML和SOAP协议的网络异构数据共享平台[J].科技信息,2007(12):234-235[26]叶小阳.电子商务平台中的分布式技术研究[D].武汉:武汉大学,2005[27]刘艳辉,董碧丹,张峰.数据交换平台的分布式应用研究[J].计算机工程与设计,2009(16):3780-3782[28]张昭理,胡金柱.CORBA构件模型在分布式体系结构中的应用[J].计算机工程,2004,34(12):81-83[29]AthmanBouguettaya,BoualemBenatallah.UsingJavaandCORBAforImplementingInternetDatabase[J].IEEECommunicationMagazine,2005,71(4):218-217[30]ZhangJY,ChenQM.SurveyonPerformanceandSafetyofSOAP[J].ComputerTechnologyandDevelopment,2009,19:163-167[31]MAoyama,SWeerawarana,HMaruyama.WebServicesEnginrrring:PromiseandChallenges,ICSE"02,May200261 重庆大学硕士学位论文参考文献[32]YuWD,AravindD,SupthaweesukP.SoftwareVulnerabilityAnalysisforWebServicesSoftwareSystem[C].InIEEESymposiumonComputersandCommunications.IEEEPress,2006[33]WangCR,XuZW,YuanHJ.DesignandimplementationofWebServicessecuritybasedonmessagelayer[J].WuhanUniversityJournalofNaturalSciences,2004,9(5):755-759[34]周辉.基于Web服务的企业应用集成技术研究:[D].浙江:浙江大学,2004[35]张富国.基于XML的通用数据交换平台的设计与实现[J].科技广场,2005(1):100-102[36]Szyperski,Clemens.ComponentSoftware:BeyondObject-OrientedProgramming.(Secondedition).AddisonWesley,1997.32~64[37]李建军.基于COM/DCOM的组件技术研究与应用:[D].上海:同济大学图书馆,2006[38]王建新,杨世风,史永江等.远程监控技术的发展现状和趋势[J].国外电子测量技术,2005,33(9):9-12[39]黄江.基于Web的实时远程监控系统的研究:[D].河北:华北电力大学计算机应用技术,2011.12[40]郭玉社,杨喜春.矿井测量与矿图[M],北京:化学工业出版社,2007,140-156[41]史玉红.浅谈劫AutoCAD的接口DXF文件[J],山东煤炭科技,2002(1):38一39[42]袁家政,须德,鲍乱.基于XML的矢量图形SVG的数据库模型与存储研究[J],计算机研究与发展,2006,43(suppl):444-450[43]EDMoreno,JIFOliveira.ArchitecturalimpactofSVG-basedgraphicalcomponentsinWebapplications[J].ComputerStandards&Interfaces,2009(31):1150-1157[44]WilliamA.Ruh,FrancisX.Maginnis.WilliamJ.BrownEnterpriseApplicationIntegration[J].ProceedingsOfTheIEEE,2006,23(12):74-95[45]杨先娣,何宁,吴黎兵.中间件法解决异构数据集成问题,中国教育网络,2007.07.0562'