在电力系统中还有很多标准的字体和颜色,例如不同电压等级显示的颜色不同但是有规范,所以可在公共部分定义公共的字体和颜色等公共样式。 在图元实例化的过程中可引用在公共部分定义的公共样式。公共样式一般在〈style〉,…,〈/style〉元素中定义。上述的图元模型和公共样式在SVG文件中是属于描述规则的部分,可以在SVG文件〈defs〉,…,〈/defs〉元素中进行定义。 2.1.3实例化 上述描述规则定义完后,就在画面确定的位置上布置各种图元实例并定义各种图元实例的属性。 对于静态的基本图元直接描述其形状和位置等基本属性,同时可以把字体、线宽、填充模式等静态图元公共的样式放在〈g〉中一起定义,将样式相同的基本静态图元在SVG文件中按组放在一起。 对于动态图元通过〈use〉元素来实例化各种类型的图元,xlink:href属性描述其引用的defs文件中的元件模型,class属性描述其电压等级所引用字体和颜色等样式。同样在SVG文件中把相同类型的图元通过〈g〉放在一起,通过〈g〉元素的Id属性对同组动态图元的类型进行标识,该标识名可以和CIM文件中电力资源类型相对应形成类型的映射。对于具体的每一个动态图元在SVG图形除了定义其位置和通过引用等方式定义其外形和样式之外,更重要的是要实现和CIM具体的电力资源对象的关联,使每一个动态图元能代表具体的电力资源设备,从而通过动态的表现形式反映系统中实际设备的运行状态和当前的量测等属性。 2.1.4图元与CIM对象关联 通常SVG图形与CIM关联可采用以下方式中的一种。a.Id关联:即通过SVG对象的Id属性与CIM对象关联实现。对于某一电力设备的图形(SVG中对象)和模型(CIM对象)可以采用相同的Id号(图形文件与模型文件分离,不会发生Id冲突),或者采用一定关联关系的Id号,即可在应用程序中利用关联Id同时对图形和模型进行各种操作,实现图模一体化。 b.Metadata(元数据)关联。Metadata是一种描述数据的数据,主要用于描述数据资料的一些属性,用来标明数据资料的存储位置、查询方式等信息。SVG规范提供〈metadata〉元素用来描述其他SVG元素的属性。本文在实现图元和CIM对象关联的同时还考虑各厂商画面图元和数据库对象点关联的特点采用结合了上述2种关联的方法,即通过〈use〉实例化一个具体的图元对象,并定义图元的大小和坐标位置等属性,通过引用〈symbol〉中的图元类型来定义其形状,并且通过其Id属性来和CIM文件中具体的电力资源对象进行关联。同时,在实际各个厂商的系统中,CIM文件中的每一个资源对象在系统的数据库中可能有一个对应的ObjectId。通过在〈metadata〉元素中定义Id的方式,可以将画面上的每一个图元和数据库中的对象点相关联,实现画面图元和数据库对象的关联。由于各厂家的系统处理对象在数据库中的对象号的方法是不一样的,图元所关联的数据库对象号在各厂商数据库中必然是不一样的,由于〈metadata〉元素支持任何XML兼容的Metadata语法,因此可以通过指定命名空间的方法,将〈metadata〉中的Id号定义为各厂商专用的对象号,这样既便于在SVG文件导回到各厂商自己系统中时,通过识别专用的命名空间来解析图元和数据库对象的关联而不至于在倒回原系统时重新生成图元代表的数据库对象实例导致数据库对象的重复,而在导入到其他厂商的系统中时可以将专用命名空间过滤掉,由其他厂商在进行画面导入时结合CIM文件,生成图元对应对象的数据库对象号实现图模库一体化。由于CIM文件中定义的电力资源对象,各厂商之间可以交互且都遵守CIM资源类型的命名规范,而〈g〉元素Id号和动态图元的类型名对应并满足CIM资源类型的命名规范,〈use〉元素的Id属性和CIM文件中的RDF/Id关联,从而各厂商系统就能互相识别出动态图元所属类型和代表具体哪一个电力资源设备,从而可以实现动态图元的交互。 2.1.5位置布局 在〈use〉元素引用图元模板进行实例化时要确定图元实例在画面中的布局位置,在〈use〉元素中由transform属性的translate来定位在defs中所定义图元的Viewbox的中心点,rotate指翻转的角度,scale指放大和缩小的倍数,并由x、y、width和height来定义其位置大小。图元中心位置和视口大小确定后,通过平移和缩放等矩阵变换可以实现各图元实例在画面上任意位置的布局。 2.1.6命名空间 电力系统画面中有一部分内容是定义动态图元对应电力设备实际运行状态时的动态表现形式,如开关分位显示绿色矩形,合位显示红色矩形,这一部分内容在各厂商的应用系统中实现方式和表现形式各不相同,但在SVG文件中只要标明了该动态图元代表什么类型的电力资源设备,并且该图元实例关联了哪个具体的资源设备对象,各厂商应用之间就应该能够实现图形的交互,至于实际运行时的动态表现形式,属于各厂商应用系统中专用的实现方式,可不必在SVG文件中体现,应由各厂商在将SVG图形文件转换成自己内部专用格式的画面文件时实现。 在SVG文件利用〈use〉元素进行图元实例化时重要的是标明图元的类型、图元视口占据的大小、图元中心点的位置及图元关联的CIM对象等,通过这些属性,其他厂商系统在将SVG文件导入时可以在相同的位置生成相同类型的图元并且关联相同的CIM对象,至于图元的外在表现形式及动态显示方式,各厂商可采用自己专用的定义方式和实现模式,在将SVG文件导入到各厂商自己应用系统生成专用文件格式时进行添加和替换。在〈symbol〉元素中可以通过不同的名字空间将各厂商的专用属性内容进行区分。 因此通过命名空间,将SVG中的文件分成2个部分,一部分是公共命名空间,这部分是各厂商之间能够交互的SVG文件,主要包括了画面上各图元的位置、类型、关联CIM对象以及各厂商之间互相遵守标准的样式,如Text、线条等基本SVG图符,这些组成了画面的基本形式。另一部分是专用命名空间,是各厂商自己专用的翻译规则,包括各图元的形状,样式等。各厂商之间在进行图形交换时可采用也可替换,由各厂商根据自己图形文件的实现方式自行决定。 至于图元的动态表现属性并不在SVG文件中体现,由各厂商导入生成专用格式的图形文件时处理。 2.1.7画面背景及尺寸 在SVG文件中除了上述讲述的图元的定义外,底图可以用〈image〉元素进行定义,画面之间的链接可以用〈a〉元素进行定义,画布的尺寸和背景色在〈svg〉的样式中可以进行定义。画面背景作为实际中经常使用的图形元素,可以作为一个内嵌的〈image〉元素来描述,方便地实现引用。热点链接也是常用的,如从一个厂站画面链接到其他厂站画面,这里用〈axlink:href=“***.svg”〉完成链接。 2.1.8头文件 除此而外,整个SVG文件还要满足SVG文件定义的格式,在SVG文件的开头定好头文件。 上述各部分内容组合在一起,一幅厂站接线图就可以采用以SVG格式并遵守IEC61970CIM的图形文件表现出来,同时和CIM文件一起能实现各厂商图形文件的交互。 2.2电力系统图形文件结构 电力系统图形就是在一定尺寸画布上根据实际电力资源的地理分布情况在画面上的某个具体位置布置代表特定电力设备资源类型的图元对象并将其进行连接,并且描述各图元对象在画面上布局的大小及样式。同时还要描述各图元对象实例和CIM文件中的RDF/Id的关联关系,除此而外还包括部分开关编号、线路名、标签名等静态图元。有了上述内容,各厂商系统就能知道各画面所描述的内容,标识各图元实例的类型名时要和IEC61970CIM中规定的相对应,以使各厂商系统都能识别。图元布局位置及静态图元的布置等信息严格按照SVG标准,确保各厂商系统之间画面能准确地还原,图元模型在model中进行定义。目前在标准中还没有具体的规范,因此各厂商将公共的SVG画面文件导入生成自己专用格式的画面文件时可采用别的厂商的图元模板也可不采用而用自己的图元模型进行替换。图元实例中关联的数据库对象号也属于各厂商专用信息,可通过命名空间来区分,仅在各厂商将SVG画面导回到自己系统中使用,在各厂商系统之间进行交互时对该部分内容进行过滤。至于图元的动态显示方式各厂商实现的方式各不相同,也不属于画面交互的内容,各厂商可采用自己专用的定义方式和实现模式,在将SVG文件导入到各厂商自己的应用系统生成自己内部的专用文件格式时实现。 3、基于SVG标准化图形文件的导入、导出为了保证图形的互操作性,首先要保证数据模型的一致性。图形的互操作应包括2个部分,一个是图形的导出,另一个是图形的导入。当然前提是模型的导入、导出提前或同步完成。 3.1图形文件的导出 |