基于SVG的智能变电站SSD中一次设备绘图信息的建模方法与流程

文档序号:16404134发布日期:2018-12-25 20:19阅读:374来源:国知局
基于SVG的智能变电站SSD中一次设备绘图信息的建模方法与流程

本发明涉及变电站设备,具体涉及一种基于svg的智能变电站ssd中一次设备绘图信息的建模方法。

背景技术

系统规范描述文件ssd(systemspecificationdescription)是智能变电站一次设备设计的重要依据和源头;为了规范智能变电站系统配置描述文件,提高智能变电站的建设效率,降低智能变电站的系统集成成本,国网公司提出了《智能变电站系统配置描述文件技术规范》;该规范在ssd文件的一次设备节点conductingequipment中定义了name、desc、virtual、type属性以外,还扩充了4个私有绘图属性:图元左上点的横坐标esg:x、图元左上点的纵坐标esg:y、图元宽度esg:width、图元高度esg:height、图元标识esg:symbol、旋转角度esg:rotate;虽然给出了图元标识,但是该规范并没有给出设备图元的具体图形绘制信息的定义,使得各设备厂家难以依据ssd文件直接绘制出电气主接线图。



技术实现要素:

本发明提供了一种基于svg的智能变电站ssd中一次设备绘图信息的建模方法,以提高一次设备图形绘制的通用性、提升ssd中一次设备的绘图属性修改的便利性。

本发明采用的技术方案是:基于svg的智能变电站ssd中一次设备绘图信息的建模方法,包括以下步骤:

步骤1:针对各类典型一次设备图元,构造相应的svg格式图元文件;

步骤2:构造链表控件对象,在其中加入各类一次设备图元模板控件;

步骤3:构造绘图场景对象,将步骤2链表中某个一次设备图元模板控件拖放到绘图场景中释放,新生成相应的一次设备图元;

步骤4:解析scd文件中的ssd部分,构造三级树形控件,构造一个哈希表,建立三级树形控件中每个一次设备的树子节点与ssd中对应一次设备的节点之间的映射关系;选中步骤3中生成的一次设备图元,将选中的一次设备图元与ssd中对应一次设备的节点进行关联;

步骤5:在绘图场景中移动、旋转、缩放一次设备图元时,同步地将各图元的图形参数赋值给该图元的图形成员变量;图元左上角横坐标x、纵坐标y、宽度width、高度height、缩放比例scale、旋转角度rotate;

步骤6:根据一次设备图元的图形成员变量,分别对ssd中对应一次设备的节点的各绘图属性esg:x、esg:y、esg:width、esg:height、esg:scale、esg:rotate、esg:symbol、esg:svgfilename进行赋值,并保存scd文件,将一次设备图元的图形变量写入或更新到ssd中对应一次设备的节点的绘图属性。

进一步的,所述步骤3的生成一次设备图元方法如下:

s1:获取被选中一次设备图元模板控件在链表控件对象中的索引号;

s2:根据该索引号在图元svg文件名数组中找到对应一次设备的图元svg文件名svgfile;

s3:根据该索引号在图元标识数组中找到对应一次设备的图元标识symbol;

s4:生成一个新的一次设备图元对象mysvgitem,将步骤s2中找到的一次设备图元svg文件名赋给mysvgitem,由图元对象mysvgitem加载该svg文件;

s5:将拖放后的鼠标释放点的坐标赋给mysvgitem,在鼠标释放点显示该一次设备图元。

进一步的,所述步骤4中建立每个一次设备的树子节点与ssd中对应一次设备的节点之间的映射关系过程如下:

构造三级树形控件treewidget,包括电压等级、间隔、一次设备三级节点;在treewidget中每增加一个一次设备树子节点时,就将该一次设备的树子节点与ssd中对应一次设备的qdomelement节点成对地加入到哈希表hash_conequ,建立每个一次设备的树子节点与ssd中对应一次设备的节点之间的映射关系。

进一步的,所述步骤4中将选中的一次设备图元与ssd中对应一次设备的节点进行关联方法如下:

先在绘图场景对象中选中一次设备图元,然后在三级树形控件treewidget中选中一个相应的一次设备的树子节点;

对于该一次设备的树子节点,通过哈希表hash_conequ,找到相应的ssd中对应一次设备的节点对象;

将ssd中对应一次设备的节点对象赋值给当前选中一次设备图元的成员变量mydom。

进一步的,对绘图场景中每个一次设备图元,遍历该图元拥有的ssd中对应的一次设备的节点对象mydom,检查它是否有绘图属性;

对于绘图场景中每个一次设备图元,遍历该图元拥有的ssd中对应的一次设备的节点对象mydom,检查它是否有绘图属性;

若没有,则新增该节点对象的各绘图属性,否则更新该节点对象的各绘图属性;

在更新节点对象时,将每个图元的成员变量分别赋值给该节点相应的绘图属性的属性值,保存scd文件,这样将各一次设备的绘图属性写入或更新到ssd中对应一次设备的节点。

本发明的有益效果是:

(1)本发明针对智能变电站的各典型一次设备,构造统一的各类典型一次设备的svg图元文件,如某个svg文件发生改变,能够根据变化后的svg文件,重新绘制相应一次设备的图形,可大大提高绘制一次设备图形的通用性和方便性;

(2)本发明通过在界面上的图形化拖放各类一次设备图元模板控件,很方便地在界面上形成对应的一次设备图元,并通过移动、旋转、缩放来改变其位置、大小、缩放比例、旋转角度等。

(3)本发明通过对ssd中一次设备的绘图属性进行扩展,将扩展后的图元的绘图属性写入到ssd,从而方便各厂家从中读出一次设备的图形信息加以绘制。

附图说明

图1为本发明流程示意图。

图2为本发明实施例中串联阻抗图元示意图。

图3为本发明实施例中断路器的图元示意图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步说明。

如图1所示,一种基于svg的智能变电站ssd中一次设备绘图信息的建模方法,构建了通用的一次设备图元svg模板文件,通过拖放各类一次设备图元模板控件,绘制各一次设备图元,将一次设备的绘图属性写入ssd中对应一次设备的节点,构造了ssd中一次设备节点的图形扩展模型,包括以下步骤:

步骤1:针对各类典型一次设备图元,构造相应的svg格式图元文件;

针对各类典型一次设备图元,分别构建一个svg格式文件,在其中给出一次设备拥有的各图形元素的信息,利用svg文件,绘制出各类一次设备的统一图形。

步骤2:构造链表控件对象,在其中加入各类一次设备图元模板控件;

采用qt在界面上构造一个链表控件对象listwidget,向listwidge分别加入各类一次设备图元模板控件,它们的上方为图片,下方为文字;构造一个字符串数组,命名为图元svg文件名数组filename_list,向filename_list分别加入每类一次设备图元模板控件对应的图元svg文件名字符串;构造一个字符串数组,命名为图元标识数组symbol_list,向symbol_list分别加入每类一次设备图元模板控件对应的图元标识字符串。

步骤3:构造绘图场景对象,将步骤2链表控件中某个一次设备图元模板控件拖放到绘图场景中释放,新生成相应的一次设备图元;

在界面上构造一个绘图场景对象inputsscene,选中链表控件listwidget中某类一次设备图元模板控件,将它拖放到场景inputsscene中某个位置上释放鼠标;响应inputsscene的拖放事件dropevent;在该事件中,首先得到当前被选中的一次设备图元模板控件在链表控件listwidget中的索引号,带着该索引号在图元svg文件名数组filename_list中找到对应一次设备的图元svg文件名svgfile;带着该索引号在图元标识数组symbol_list中找到对应一次设备的图元标识symbol;然后,在场景中新生成一个一次设备图元qgraphicssvgitem对象mysvgitem,将找到的一次设备图元svg文件名赋给mysvgitem,这样在mysvgitem中加载该svg文件,再将拖放后的鼠标释放点的x,y坐标赋给mysvgitem;这样mysvgitem能在场景的x,y处显示出该一次设备图元的图形;为每个图元对象mysvgitem构造成员变量:qdomelement节点mydom、图元左上角横坐标x、纵坐标y、宽度width、高度height、缩放比例scale、旋转角度rotate、图元svg文件名svgfile、图元标识symbol;将svgfile、symbol分别赋值给该图元的成员变量svgfile、symbol。

步骤4:解析scd文件中的ssd部分,构造三级树形控件,构造一个哈希表,建立三级树形控件中每个一次设备的树子节点与ssd中对应一次设备的节点之间的映射关系;选中步骤3中生成的一次设备图元,将选中的一次设备图元与ssd中对应一次设备的节点进行关联。

采用dom方式,读取与解析scd文件中ssd部分,依次读取ssd中系统配置语言scl、变电站substation、电压等级voltagelevel、间隔bay、一次设备conductingequipment等各级qdomelement节点;在一个对话窗口dialog的界面中的树形控件treewidget中,分三级添加和展示各电压等级voltagelevel、间隔bay、一次设备conductingequipment的树子节点;每个树子节点包含两列,第1列是该节点的标签名,第2列是该节点的各属性内容;构造一个哈希表hash_conequ,在树形控件treewidget中增加一个一次设备树子节点时,将该一次设备的树子节点与ssd中对应一次设备的qdomelement节点成对加入到hash_conequ,建立每个一次设备的树子节点与ssd中对应一次设备的节点之间的映射关系。

当用户在绘图场景inputsscene中选中一次设备图元,然后在对话窗口dialog的树形控件treewidget中选中一个相应的一次设备的树子节点。

再由该一次设备的树子节点通过哈希表hash_conequ,找到ssd中对应一次设备的节点,将它赋值给当前选中一次设备图元的成员变量mydom,这样将选中的一次设备图元与ssd中对应一次设备的qdomelement节点进行关联。

步骤5:在绘图场景中移动、旋转、缩放一次设备图元时,同步地将各图元的图形属性赋值给该图元的图形成员变量:图元左上角横坐标x、纵坐标y、宽度width、高度height、缩放比例scale、旋转角度rotate。

在绘图场景inputsscene中移动某一次设备图元,记录下该一次设备图元的最新图元左上角横坐标x、纵坐标y,将它们赋值给该图元的成员变量x、y;在绘图场景inputsscene中旋转某一次设备图元,记录下该一次设备图元的最新旋转角度rotate,将它赋值给该图元的成员变量rotate;在绘图场景inputsscene中缩放某一次设备图元,记录下该一次设备图元的最新宽度width、高度height,将它们赋值给该图元的成员变量width、height;将最新宽度与原始宽度的比值作为缩放比例scale,将它赋值给该图元的成员变量scale。

步骤6:根据一次设备图元的成员变量,对ssd中对应的一次设备节点的各绘图属性esg:x、esg:y、esg:width、esg:height、esg:scale、esg:rotate、esg:svgfilename、esg:symbol分别进行赋值,并保存scd文件,将一次设备图元的图形变量写入或更新到ssd中对应的一次设备节点的绘图属性。

针对绘图场景inputsscene中每个一次设备图元,处理该图元拥有的ssd中对应的一次设备的节点对象mydom;检查mydom是否有绘图属性esg:x、esg:y、esg:width、esg:height、esg:scale、esg:rotate、esg:svgfilename、esg:symbol,如果没有,则新增这8个绘图属性;否则,就更新它们;在新增或更新mydom对象时,将每个图元的成员变量:图元左上角横坐标x、纵坐标y、宽度width、高度height、缩放比例scale、旋转角度rotate、图元svg文件名svgfile、图元标识symbol,分别赋值给该节点的8个绘图属性的属性值。然后保存scd文件,这样将各一次设备的绘图属性写入到ssd中相应节点。

下面将以串联电抗图元的svg格式文件为例进行说明,由国网规范给出该图元的结构如图2所示;观察该图元的结构,可得到它由2个圆、2条直线、一段3/4圆弧组成。建立一个svg格式文件,命名为2_reactor_p.svg;其中2表示连接点数量,reactor_p表示本图元标识symbol;在2_reactor_p.svg文件中的分别添加2个circle标签、2个line标签、1个path标签,设定各标签的位置、线宽、填充等属性值,具体svg的代码如下:

<svgwidth="30"height="60"version="1.1"xmlns="http://www.w3.org/2000/svg">

<circlecx="15"cy="2"r="2"stroke="red"stroke-width="2"fill="none"/>

<linex1="15"y1="4"x2="15"y2="25"style="stroke:rgb(255,0,0);stroke-width:2"/>

<pathd="m025a15150111540"stroke="red"stroke-width="2"fill="none"/>

<linex1="0"y1="25"x2="15"y2="25"style="stroke:rgb(255,0,0);stroke-width:2"/>

<linex1="15"y1="40"x2="15"y2="56"style="stroke:rgb(255,0,0);stroke-width:2"/>

<circlecx="15"cy="58"r="2"stroke="red"stroke-width="1"fill="white"/>

</svg>

第1行添加了svg标签,width和height属性定义了图元的宽度和高度,xmlns属性定义了命名空间;第2行circle标签定义一个圆,其圆心坐标是(15,2),半径是2,线宽为2,颜色为红色,圆内部无填充;第3、5、6行line标签定义了直线,分别从(15,4)到(15,25)、(0,25)到(15,25)、(15,40)到(15,56);第4行path标签定义了一个path命令绘制的3/4圆,起点坐标为(0,25),终点坐标为(15,15),半径为15;第7行circle标签定义了一个圆,其圆心坐标是(15,58),半径是2;这段代码定义串联阻抗图元,可通过ie浏览打开并查看图形样式。

下面将以断路器的svg格式文件为例进行说明,由国网规范给出该图元的结构如图3所示;断路器图元的svg格式文件的内容如下:

实施例1

下面以某scd文件ssd部分的间隔5011中各一次设备的绘图属性的扩展和建模为例,说明本发明方法的工作过程和结果。

在界面上构造一个链表控件,分别加入各类一次设备图元模板控件。

从链表控件中通过拖放图元模板控件,分别形成两个一次设备,即一个断路器和隔离开关。

解析ssd文件,在一个对话窗口中构造一个树形控件,在该树形控件中增加和展示ssd中三级节点电压等级、间隔、一次设备。

在树形控件的三级节点中,选中电压等级v1下间隔q5的一次设备n1,将它与界面上被选中的断路器图元进行关联;然后移动、旋转、缩放该图元,记录下该图元的最新图元左上角横坐标x、纵坐标y、图元宽度width、图元高度height、缩放比例scale、旋转角度rotate、图元svg文件名svgfile、图元标识symbol的成员变量。

同理,针对ssd中电压等级v1下间隔q5的一次设备n2,形成一个隔离开关图元,进行类似的处理。

最后,将界面上的断路器图元、隔离开关图元的最新图元左上角横坐标x、纵坐标y、图元宽度width、图元高度height、缩放比例scale、旋转角度rotate、图元svg文件名svgfile、图元标识symbol,分别赋给ssd中描述desc为“5011开关”的断路器、描述desc为“50111刀闸”的隔离开关的相应绘图属性esg:x、esg:y、esg:width、esg:height、esg:scale、esg:rotate、esg:svgfilename、esg:symbol。

在ssd文件中间隔5011的原始xml代码如下:

<baydesc="5011"name="q5">

<conductingequipmentdesc="5011开关"name="n1"type="cbr"virtual="false">

</conductingequipment>

<conductingequipmentname="n2"desc="50111刀闸"virtual="false"type="dis">

</conductingequipment>

……

</bay>

经过本发明方法对ssd中电压等级v1下间隔q5的一次设备n1、n2进行图形信息建模,ssd文件中间隔5011的新的xml代码如下,其中粗体部分为新生成的一次设备的扩展图形属性信息:

<baydesc="5011"esg:width="150"esg:height="390"name="q5"esg:x="462"esg:y="146">

<conductingequipmentname="n1"desc="5011开关"virtual="false"type="cbr"

esg:x="133"esg:y="152"esg:width="30"esg:height="60"esg:scale="1"

esg:rotate="0"esg:symbol="cbreaker"esg:svgfilename="2_cbreaker.svg">

</conductingequipment>

<conductingequipmentname="n2"desc="50111刀闸"virtual="false"type="dis"

esg:x="133"esg:y="92"esg:width="30"esg:height="60"esg:scale="1"

esg:rotate="0"esg:symbol="disconnector"esg:svgfilename="2_disconnector.svg">

</conductingequipment>

……

</bay>

本发明采用svg矢量图格式,构建了各类典型一次设备的图元模板文件,对ssd中各一次设备节点的绘图属性做了扩展,增加了缩放esg:scale、图元模板文件名esg:svgfilename扩展属性,构建了图模一体化的扩展模型,使得各厂家采用一次设备svg图元文件、依据ssd中一次设备节点的绘图属性来绘制统一的一次设备图形;当各svg图元文件被国网公司标准化定义后,各一次设备的绘制也变得标准化;如果某个svg文件发生改变,本发明能够根据变化后的svg文件,重新绘制相应一次设备的图形,可大大提高绘制一次设备图形的通用性;通过在界面上的图形化拖放一次设备模板文件,很方便地在界面上形成对应的一次设备的图元,并通过移动、旋转、缩放来改变其位置、大小、缩放比例、旋转角度;通过对ssd中一次设备的绘图属性进行扩展,将改变后图元的绘图属性写入到ssd,从而很方便地实现了对ssd中一次设备的绘图属性的写入和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1