一种通用可扩展编程符号建模方法与流程

文档序号:11949463阅读:213来源:国知局
一种通用可扩展编程符号建模方法与流程

本发明涉及电力系统,尤其涉及一通用可扩展编程符号建模方法。



背景技术:

在可视化编程系统中,符号的建模是最基础的工作,由于应用系统的复杂多变,因此导致符号模型也经常发生变化,同时应用系统在扩展新功能时,经常需要新增符号,且新增符号的数据模型是多变并且复杂的。

可视化编程符号建模方法,已经有初步研究和应用。有的技术使用了一种用于可视化编程的功能块函数建模方法,将功能块函数的文本段定义为7个关键字段:描述信息、包含的头文件内容、参数信息、成员变量、构造代码段、初始化代码段和函数体代码段。该方法仅是针对编程功能块函数的最终形成代码建模方式,未涉及功能块其它可配置属性的建模。另外在可视化编程软件中,除了功能块函数外,还需有跨页面链接的输入、输出符号、用户自定义的元件符号、和底层硬件及驱动相关的配置符号、编译选项设置符号等。这些符号不形成直接的函数代码,属性建模相差很多。如果针对每一个符号都采用一对一的具体建模方式,则新增加符号种类时,由于不能有效的支持自我描述及扩展,因此需要修改代码来支持符号功能及接口的扩展,无法满足新增的应用需求,也不能很好适应底层支撑平台的接口变化。



技术实现要素:

本发明的目的是:通过定义一种通用可扩展的符号库格式,支持可视化编程符号功能定义的扩展,支持统一可扩展的建模方法,支持统一的数据存取接口,支持层次化的数据访问方式,通过开放符号的扩展定义功能及多种图形化数据信息展现方式,实现了可视化编程工具开放性,扩展性,适应性及可定制性。

本发明的技术方案是:一种通用可扩展编程符号库建模方法,其特征在于:

第一部分:一维数据建模作为粒度最小的基本数据,二维数据建模由若干一 维数据的实例组成,三维数据由若干二维数据的实例组成,符号库的数据由若干一维、二维、三维数据实例组成;其中一维数据建模包括名称、英文描述、本地语言描述、值、值列表;

第二部分:设计了属性设置值的图形化展现图元:通用属性值显示图元和单选属性值显示图元。

上述方案中:符号的数据模型能够扩展一维、二维、三维属性实例,基于通用的存储接口和显示编辑界面,新增删除属性,不需要修改相关软件代码,而能够实现编程符号的自我描述和扩展定义。

上述方案中:通过多级属性的层次索引名来访问操作数据。

上述方案中:通用属性值显示图元以字符串的方式在图形符号上显示整形、浮点型、字符型属性值;对于值列表是二值状态类型的属性,通过矩形图元是否勾选、圆形图元是否填充状态来表示。

本发明具有如下有益效果:

(1)将可视化编程符号的数据按照三维、二维、一维等层次划分建模,可实现各种编程符号的属性灵活扩展,编程软件基于统一的层次索引名的访问操作接口,无需修改任何代码,可新增符号或修改属性,实现编程符号和编程软件的解耦,提高了软件的适用领域。

(2)可在编程符号的图形块上直观展示属性设置值,可提供字符串、复选图符、单选图符等图形化的显示方式,提高了数据展示能力,可满足应用的特殊需求。

附图说明

图1本发明的数据状态图元外观示意图

图2本发明的数据建模编辑及信息展示界面示意图

图3为本发明符号图形外观示意图

图4为本发明数据建模文件内容示意图

图5为本发明图形建模文件内容示意图

具体实施方式

第一部分,可扩展数据定义方法。通过定义一维元数据,来定义数据的最小单元。通过一维元数据的组合,形成二维数据。通过二维数据组合形成三维数据。一维、二维、三维数据的组合形成整个符号的数据定义。通过图2所展示的数据编辑展示界面,来增加、删除、修改及展示数据定义内容。

1)一维元数据定义:一维数据定义了最小粒度的数据,其成员属性有名称、描述、设置值、值列表、标记等。其存储定义格式如下:

<data1inst=""desc="" value="" vl="" flag=""/>

其中inst是属性名,desc是界面上显示的描述,value是设置值,vl是值列表(可选),flag属性标记(只读、可编辑、不能为空等)。附图2上根节点上展示的Name,Enable两个属性属于一维数据,描述了符号的名称和是否使能两个属性信息。

2)二维数据定义:二维数据由一系列一维数据组合而成,其存储定义格式如下:

附图2中的数据Setting1和Setting2节点属于二维数据定义,其特点是每一个二维数据由若干个一维数据组合而成。

3)三维数据定义:由一系列二维数据组成。

data1节点是一维数据,data2节点是二维数据,data3节点是三维数据,通过以上数据建模方式,实现可任意复杂数据的建模,并支持数据建模的扩展和修改。

在图2所示的编辑界面中,Settings节点为三维数据节点,其结构特点是由若干个二维和一维数据组合而成。

在附图2所展示的数据定义中,如果需要增加一个单位属性,则只需要在根节点上增加一个名为Unit的一维数据即可。Settings节点下面已经存在连个Setting数据,如果需要增加Setting数据,则只需要在Settings节点下新建一个Settings3节点即可完成。各个层次的节点都可以使用类似的方法扩展数据的定义。

第二部分为数据统一的存取访问方法。数据属性采用层次化的名称来检索,获取三维数据中的某一个数据项时,使用该数据项层次名称作为标示来识别,例如存取三维数据局中的某一项时,层次化名称为三维数据名、二维数据名称和一维数据名称的组合,形式为data3inst.data2inst.data1inst,采用层次名称作 为数据的唯一标识。附图2所以的数据建模定义中,如果需要访问Setting2节点下的设置值属性,其层次名称为Settings.Setting2.Value.

第三部分为图形数据展现及数据和图形的关联。数据与图形关联,是指数据发生变化时,图形上要能够直观的展示数据的变化情况,提高可视化符号的表项能力。为此定义了三种与数据关联的图元,分别是通用属性值显示图元、二值属性矩形显示图元、二值属性圆形显示图元。

1)通用属性值显示图元,通用属性值外观形式如附图1(a)所示:

图形表现形式为字符串,字符串显示的字符就是对应属性的设置值,可显示整形、浮点型、字符串型等属性设置值。

2)二值属性矩形显示图元,表现形式如附图1(b)所示:

此类符号用于表现设置类似CheckBox复选框的布尔类型的属性设置值,附图1(b)中的两个符号为属性的设置值分别为1和0时的图形显示情况。

3)二值属性圆形显示图元,表现形式如附图1(c)所示:

参数圆形符号用于表现类似ComboBox单选框的属性设置值,附图1(c)中两个符号分别为属性的设置值为1和0时的图形显示情况。

图形与数据的关联是通过在图形中记录数据的ID来实现的,例如参数圆形符号的建模数据如下:

<RADIOBOX w="13" x="19" y="71" h="13" d="data3inst.data2inst.data1inst">

其中d表示的是此图元对应的数据ID,当此数据设置值为1时,显示实心圆,设置值为0时,显示空心圆。

附图2为数据建模定义,附图3为数据建模对应的图形建模,附图3上显示的Com1字符是通用属性值显示图元,其对应的数据层次名为Name,当根节点的Name设置值发生变化时,图形上显示的字符内容会根据数据的设置值变化。附 图3展示的Enable二值矩形显示图元,其对应的数据为附图2上的定义的Enable设置值数据,其层次化名称为Enable。附图3中展示的Setting2为二值属性圆形显示图元,其对应的数据为附图2上定义的Settings2设置值数据,其层次化名称为Settings.Setting2.Value

以下将结合附图,对本发明的技术方案进行详细说明。

本发明提供通用可扩展编程符号库建模方法,结合附图,实施步骤包括三个部分:数据建模、图形建模、图形建模和数据建模关联。

第一部分,使用专用的符号编辑器创建一个符号,然后进行符号的数据建模工作,需要建模的数据主要包括输入数据、输出数据、参数属性数据等。符号编辑器提供树形编辑组件来进行数据建模工作,编辑及显示界面如附图2所示,在空白的界面上首先新建一维数据Name和Enable,三维数据Settings,然后在Settings节点下新建二维数据节点Setting1和Setting2,分别在Setting1和Setting2节点下新建一维数据Name和Value。数据节点支持拷贝和粘贴,方便数据模型重用。数据建模的内容存储在数据建模文件中,其格式如附图4所示。

第二部分,符号编辑器提供各类图元绘制编辑功能进行图形建模,提供了各种常规的图形编辑功能,同时提供了通用属性值显示图元、二值属性矩形显示图元、二值属性圆形显示图元本发明中的专用图元,专用图元如附图1所示。符号编辑器编辑完成的图形符号外观如附图3所示。各属性展示图元通过右键菜单设置其对应的数据模型内容。图形建模数据存储到图形建模文件中,其格式如附图5所示。

第三部分,在图元上可以设置图元关联显示的数据属性。图形数据通过右键菜单设置关联的数据层次化名称信息。通过对图符设置关联的数据的层次化名称,并在图形文件中记录对应的数据层次化名称,使图形和数据关联,从而使图形可以显示数据的状态。附图5所示的各项图形数据的d属性即为图元所对应的 数据层次名称。

第四部分,可视化编程工具使用的统一方法来对符号进行实例化建模,使用统一的数据访问接口来访问数据对象。符号定义扩展时,编程工具不需要随之修改,可以适应符号的演变。数据设置值发生变化时,可视化编程工具能实时的将最新的设置值更新到图形符号界面上。

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