一种页面模块封装重用方法及装置与流程

文档序号:12122176阅读:664来源:国知局
一种页面模块封装重用方法及装置与流程

本发明涉及一种页面模块封装重用方法及装置,属于电力系统离线数字仿真技术领域。



背景技术:

PSCAD/EMTDC是电力系统电磁暂态分析中的专业仿真工具。PSCAD是用户仿真界面,EMTDC是仿真引擎。它具有精确和丰富的电力系统应用模型、方便的数据输入方式以及强大的数据分析能力,是进行电力系统分析和工程研究的有用工具,在全世界范围内有着广泛的应用。页面模块是该仿真系统中一种特殊形式的元件,该元件模型有独立的图形页面,并含有硬编码脚本与之对照,图形页面程序由基本功能元件和连线组成,还包括输入、输出、参数符号块,并且可以包含其他页面模块,从而拥有分层建模能力。但目前单个页面模块定义只能创建一个实例。在使用过程中,存在将页面模块进行封装重用的需求,即将页面模块封装成可重用的库元件,通过实例化库元件定义,功能可多次重用。另外目前很多直流工程均是使用PSCAD/EMTDC软件进行仿真研究,在面向海外市场时迫切需要进行相关细节的隐藏,给用户只提供顶层封装模块,不开放源图形页面程序,从而有效保护核心技术。

通过重用功能稳定的页面模块,可加快开发效率,提高仿真速度。公布号为CN103885782的专利申请文件公开了一种可视化编程页面程序库函数封装重用方法,该方法通过形成封装库函数的图形文件,形成封装库函数的头文件、形成封装库函数的源文件,形成封装库函数的二进制目标文件,完成库函数的实例化重用。虽然该文件提供了一种页面封装重用的方法,但是该方法需要形成和处理页面模块的头文件,并且需要重新定义代码文本形成规则,以及重新编写库函数的构造接口、初始化接口、运行阶段的任务调用接口,增加了编程和调试的难度,封装的工作量比较大。



技术实现要素:

本发明的目的是提供一种页面模块封装重用方法及装置,以解决目前页面模块封装过程中需要重新定义代码文本形成规则导致编程和调试的难度增大,以及封装的工作量大的问题。

本发明为解决上述技术问题而提供一种页面模块封装重用方法,该方法包括以下步骤:

1)选择需要封装的页面模块,并编译生成页面模块的源程序文件;

2)从页面被编译后生成的源程序入手,修改数据存储方式,将数据存储位置从系统内部存储数组修改到用户自定义存储数组;

3)将修改后的页面模块的源程序文件链接到用户自定义库页面中,并通过编译该用户自定义库得到页面模块的二进制目标文件;

4)在自定义库中将页面模块封装为库元件;

5)在任一工程实例中创建封装后库元件,将其链接到页面模块形成的二进制文件,即可实现页面模块的功能重用功能。

步骤2)是将数据存储位置从系统内部存储数组STOL、STOI和STOF修改到用户自定义存储数组STORL、STORI和STORF。

步骤4)是在用户自定义库中新建元件定义,使该库元件图标外形和连接节点与页面模块相同,能直接复制页面模块的图形文件,并在库元件脚本中设置接口函数以调用页面模块的二进制文件,以实现与页面模块的相同功能。

步骤1)是将需要封装的页面模块单独加载到一个新的案例工程中,编译后即可得到该页面模块的源程序文件。

本发明还提供了一种页面模块封装重用装置,该页面模块封装重用装置包括编译模块、修改模块、目标文件形成模块、页面封装模块和重用模块;

所述编译模块用于选择需要封装的页面模块,并编译生成页面模块的源程序文件;

所述修改模块用于从页面被编译后生成的源程序入手,修改数据存储方式,将数据存储位置从系统内部存储数组修改到用户自定义存储数组;

所述目标文件形成模块用于将修改后的页面模块的源程序文件链接到用户自定义库页面中,并通过编译该用户自定义库得到页面模块的二进制目标文件;

所述页面封装模块用于在自定义库中将页面模块封装为库元件;

所述重用模块用于在任一工程实例中创建封装后库元件,将其链接到页面模块形成的二进制文件,即可实现页面模块的功能重用功能。

所述的修改模块是将数据存储位置从系统内部存储数组STOL、STOI和STOF修改到用户自定义存储数组STORL、STORI和STORF。

所述页面封装模块是用于在用户自定义库中新建元件定义,使该库元件图标外形和连接节点与页面模块相同,能直接复制页面模块的图形文件,并在库元件脚本中设置接口函数以调用页面模块的二进制文件,从而实现与页面模块的相同功能。

所述的编译模块是将需要封装的页面模块单独加载到一个新的案例工程中,编译后即可得到该页面模块的源程序文件。

本发明的有益效果是:本发明通过编译生成页面模块的源程序文件,直接修改简化源程序文件,并将其编译生成对应的二进制目标文件,同时将页面模块封装为库元件。整个过程,本发明不需要形成和处理页面模块的头文件;不需要重新定义代码文本形成规则,不需要重新编写库函数的构造接口、初始化接口和运行阶段的任务调用接口;不需要通过分析页面程序和拓扑连线即可形成封装后的图形符号,操作更加简单,并大大降低了编程和调试的难度,减少了封装的工作量。

附图说明

图1为本发明的页面模块封装重用示例;

图2为本发明的页面模块封装重用流程图;

图3为本发明的页面模块源文件函数结构示意图。

具体实施方式

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

本发明的页面模块封装重用方法可选择任意页面模块将其封装为用户自定义库中的元件,并通过将元件定义多次运用于工程实例来实现页面模块的实例化重用。面向终端用户只提供封装后库元件的图形符号和脚本,以及页面模块的二进制目标文件,不提供源图形页面程序和Fortran源文件,实现了页面模块的重用,加快了开发效率,提高了仿真速度,并且封装后图形页面程序不可见,有利于保护核心技术。

下面以PSCAD/EMTDC仿真系统中的页面模块封装重用方法为例对本发明进行详细说明,该方法实现流程如图2所示,具体包括以下步骤。

1.生成页面子模块的源程序文件。

在PSCAD仿真系统中将需要封装的页面模块单独加载到一个新的案例工程中,如PICH.psc,编译后即可得到页面模块的源程序文件(如PICH.f)。

2.修改简化页面子模块的源程序文件。

本实施例从页面模块别编译后生成的Fortran源程序入手,修改数据存储方式,将数据存储位置从系统内部存储数组STOL、STOI和STOF,并简化一些不必要的代码。页面模块源程序函数结构如图3所示,在变量声明、记录本地索引、读取存储数组数据和写入存储数组数据四部分中,将数据存储位置从系统分配存储数组SLOT、STOL、STOI和STOF修改到用户自定义存储数组STORL、STORI和STPRF。

3.生成页面模块的二进制目标文件。

本步骤是将修改后的页面模块的源文件(如PICH1.f)链接到用户自定义库页面中,并通过编译该用户自定义库即可得到页面模块的二进制目标文件,如PICH.obj。

4.将页面模块封装为库元件。

本实施例中将工程的用户自定义库(如PICH.psl)中创建一个新的元件定义,其图标外形和输入输出接口与需要封装的页面模块相同,并在其脚本中添加接口函数以调用页面模块的子函数。以PICH为例,相关接口函数如下:

#STORAGE LOGICAL:1INTEGER:1REAL:17;功能:预处理,声明函数使用用户自定义存储数组大小。

#SUBROUTINE PICHDyn;功能:预处理,对被调用函数进行声明。CALL PICHDyn($W,$X,$KP,$TN,$LL,$LU,$Y,$QL,$QU);功能:函数调用。

封装后的库元件其图标外形和连接节点与页面模块相同,可直接复制页面模块的图形文件,并在库元件脚本中设置接口函数来完成页面模块的功能调用。

5.完成页面模块的实例化重用。

本步骤中可在任一工程实例中(如test.psc)创建多个封装后库元件,并设置该工程属性,将其链接到页面模块形成的二进制文件,即可实现页面模块的重用功能,如图1所示。

本发明还提供了一种页面模块封装重用装置,该页面模块封装重用装置包括编译模块、修改模块、目标文件形成模块和重用模块,编译模块用于选择需要封装的页面模块,并编译生成页面模块的源程序文件;修改模块用于从页面被编译后生成的源程序入手,修改数据存储方式,将数据存储位置从系统内部存储数组修改到用户自定义存储数组;目标文件形成模块用于将修改后的页面模块的源程序文件链接到用户自定义库页面中,并通过编译该用户自定义库得到页面模块的二进制目标文件,同时在自定义库中将页面模块封装为库元件;重用模块用于在任一工程实例中创建封装后库元件,将其链接到页面模块形成的二进制文件,即可实现页面模块的功能重用功能。各模块的具体实现手段已在方法的实施例中进行了详细说明,这里不再赘述。

本发明通过在PSCAD仿真软件中编译生成页面模块的源程序文件,直接修改简化源程序文件,并将其编译生成对应的二进制目标文件,同时将页面模块封装为库元件。整个过程,本发明不需要形成和处理页面模块的头文件;不需要重新定义代码文本形成规则,不需要重新编写库函数的构造接口、初始化接口和运行阶段的任务调用接口;不需要通过分析页面程序和拓扑连线即可形成封装后的图形符号,操作更稳简单。大大降低了编程和调试的难度,减少了封装的工作量,并结合了PSCAD仿真系统的具体应用环境,令本发明更具有可重复操作性。

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