高 明,黄涌浩,徐中信,刘宗阳,郭文星,黄思泳,冯瑞珏
(1.广州城市理工学院电气工程学院,广东 广州 510800;2.华南理工大学电力学院智慧能源工程技术研究中心,广东 广州 510640;3.广东电网有限责任公司广州供电局,广东 广州 510620)
变电站图纸管理存在着准确性、可靠性和效率低下的问题[1]。尤其是二次回路图纸比较复杂,由于图纸幅面有限,设计时会将二次回路图分拆在数张图纸中绘制。在实际工作过程中,变电站运维人员需要找出相关图纸进行对比,须从绘制在一张图纸的设备回路快速找到另外一张图纸中对应的设备回路,从而了解变电站二次保护回路的全貌。目前,这些过程基本是靠手工和人工经验实现的,随着二次图纸的内容丰富和数量增长,快速实现图纸的对照跳转检索日渐困难,且容易出错。
针对上述问题,本文提出并实现了具有自动跳转功能的图纸智能检索,首先从关联的角度对图纸数据的关联与检索的方法进行有关探究,提出一种图纸数据关联检索方法。通过关联查询搜索满足要求的图纸数据节点,实现对图纸数据的检索。利用节点间的关联性和基于数据库间数据表间的关联性,达到精确检索到图纸的目的。根据上述研究内容研发的变电站智能图纸管理系统,提高变电站图纸智能化管理水平,减少图纸查阅耗时及人工出错风险,提高图纸管理便捷性和可靠性。
图纸间的数据关联模型是本设计中最重要的构建模块,设计提出具有关联性的图纸数据之间的关联关系。利用图纸编码之间存在的关联关系,创建关于数据节点和编码节点之间新的关联关系,使两张图纸的数据之间较为准确地、间接地产生关联[2]。
本文研究对象为CAD电子图纸,关联模型研究所需基本数据要素信息包括图纸内的编号、端子号(如4QD1等),属性要素信息包括图纸名字、图册序号、页号、图形符号、文字符号、备注信息等,重点关注能精简表达主题的关键词信息。CAD图纸是一种特殊的图结构,图中的每个节点和每条边都包含属性信息。关联CAD图纸实质上是对大量数据要素信息的集成,使数据要素信息不仅可以由某一个文档直接获得,还能从众多相关联起来的路径获取。
本文构建的CAD图纸关联网络中包括两大类节点:一是标识每一张图纸及基本信息的数据节点;二是表示图纸中实体的实体节点。实体在这里就是一种指定类型的数据库对象,如电气元器件以及直线、圆、圆弧、文字、曲线和椭圆等。无论是实体节点还是数据节点,都能利用属性进行描述。通常来说,一个节点往往具有多个属性,它可以是和它存在关联关系的任何一个个体。
关联节点的结构如图1 所示。数据节点是图纸数据的抽象:基于图纸数据的数据,抽取出主要字段或者端子号。将主要字段或符号映射为属性,并创建相应图纸数据节点[3-4]。设计图纸编码节点,是本文关联模型的关键内容之一。把有关联性的图纸设置编码,用编码节点把拥有一样编码值的图纸数据关联起来。节点类型是编码节点的属性,它是用来分辨不同类型的数据关联节点。除了节点类型,图纸编码节点还有层次级别、编码方式和图纸编码值等不同属性。如图2所示。
图1 要素关联模型关联节点结构
图2 图纸编码节点结构
在编码方式上本文使用的是GBK 码。而GBK码也是GB 码的扩展字编码(即汉字内码扩展规范),它使用的是单双字节变长的编码方式。英文部分采用单字节编码,而且可以完整兼备ASCII字编码,而中文部分使用的是双字节编码。
图纸数据节点与编码节点间的关联关系具有如下一些特征:在图纸数据的编号值集中含有某另一张编号值,即图纸数据节点与该编号节点之间具有关联性;基于对图纸的数据检索以及图表之间关联分析的综合考虑,要求与图纸数据关联的编码节点数量越少越好,因此如果编码节点太多时,将提高图纸关联查询比较的复杂性,从而减少图纸数据检索、图表关联分析的有效性。
利用数据节点与图纸之间的传递关联,设计本文关联检索的方法。先将图纸文档数据提取,用其建立数据库,再构建索引项,最后查询图纸的关联模型。节点与图纸间的关联关系体现在变电站二次回路图纸中,比如,4QD1 是图A 里的端子号,而4QD1是图B里的端子号,则图A和图B之间存在了关联关系。检索方法流程框架如图3所示。
图3 检索方法流程图
首先进行变电站二次回路图纸关联检索,将图纸内包含的数据提取出来,以CAD图纸为例,利用软件AutoCAD 自身的数据提取功能,将CAD 图纸中所有属性的数据提取出来输出成Excel 表格文档;然后将表格文档中的数据利用SQL开发语言使其输入数据库中,在数据库中对数据表进行整理及关联,完善数据库设计;接下来利用Visual Studio 2015 编写底层脚本来设计实现关联检索的功能;最后,利用Qt自身基于C++编程语言的开发语言,进行UI界面的设计及封装。关联检索流程如图4所示。
图4 系统设计流程图
本文提出了一种通过图纸间关联的方法实现图纸数据关联检索的方法。主要步骤如图5所示。
图5 图纸数据关联检索方法
图纸编码节点包括了编码值,与图纸数据节点有直接关联的节点。根据图纸编码节点的编码值,快捷查找相关图纸中的图纸编码节点。最后,根据查询出的数据节点来获取数据,作为结果返回。
利用C++编程语言提取图纸中的数据信息,将其图纸数据信息利用SQL数据库储存并关联起来封装形成一个数据库;在利用C++编程语言来进行底层代码的编写前,首先在项目的配置文件中定义到数据库的连接信息,然后确定对象和类,利用C++的标准模板库(STL)里的关联容器将相关图纸的编号关联,以进行读操作,对类和函数分别进行封装;使用Data set类来实现检索系统的功能。
利用Qt下的Qt Creator新创建一个桌面Qt应用,包含一个基于Qt 设计师的主窗体,且其中选择MainWindow 作为基本的类并勾选附带创建界面文件,在此基础上进行界面的设计及其封装。
在自动跳转功能实现上,利用QLabel控件承载图纸的显示。在节点上插入控件以方便控制跳转。例如,在图纸中点击编号“4QD1”下的节点以跳转到所关联的目标图纸下,如图6所示。
图6 图纸关联跳转功能示意图
本文对CAD图纸关联模型和数据节点和图纸之间关联关系的研究,提出具有自动跳转功能的变电站图纸智能化实现的方法。通过关联查询搜索满足要求的图纸数据节点,实现对图纸数据的检索。利用节点间的关联性和基于数据库间数据表间的关联性,通过界面点击跳转的设计及实现,达到精确检索和展示到对应图纸的目的。