一种程序仿真测试方法及系统的制作方法

xiaoxiao2020-10-23  16

一种程序仿真测试方法及系统的制作方法
【技术领域】
[0001]本发明涉及系统仿真领域,尤其涉及一种程序仿真测试方法及系统。
【背景技术】
[0002]嵌入式程序是应用到特定领域完成对应功能的专用程序,程序需借助上位机的交叉编译器生成嵌入式装置可执行目标文件,通过网络或串口下载到目标系统上运行。软件调试时,根据嵌入式装置的辅助硬件输出信息查询相关数据。在实时调试之前需依赖具体目标系统环境,搭建硬件装置,装置在实时运行过程中,无法及时获取程序运行的上下文环境信息,调试难度大,程序的问题定位存在较大困难。
[0003]另外,在电力系统领域,实时仿真通过实时数字仿真仪(Real Time DigitalSimulator,RTDS)进行,非实时仿真主要用电磁暂态仿真软件(Power Systems ComputerAided Design,PSCAD)进行。而实际的工业控制领域,通常由上百台嵌入式装置协同控制,在工程出厂前,如果等所有装置生产完毕,再搭建实际系统验证,存在开发周期长的问题。即使在现场,对于已经实际运行的系统,不宜直接构建故障工况,也需要模拟相关输入数据,进行逻辑功能验证测试。

【发明内容】

[0004]有鉴于此,本发明实施例期望提供一种程序仿真测试方法及系统,能够通过以可视化方式搭建仿真应用程序、调试仿真,加快应用程序的开发、验证、测试效率。
[0005]为达到上述目的,本发明实施例的技术方案是这样实现的:
[0006]本发明实施例提供一种程序仿真测试方法,所述方法包括:
[0007]基于可视化编程软件生成仿真程序;
[0008]根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0009]将所述各仿真组件混合编译为上位机可运行的仿真进程节点;
[0010]运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
[0011 ]上述方案中,所述方法还包括:
[0012]在运行所述仿真进程节点的过程中将所述仿真程序中的变量数据显示在图形页面上。
[0013]上述方案中,所述将所述各仿真组件混合编译为上位机可运行的仿真进程节点,包括:
[0014]对所述仿真程序进行代码编译形成可执行代码;
[0015]利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。
[0016]上述方案中,在对所述仿真程序进行代码编译形成可执行代码之后,所述方法还包括:
[0017]链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。
[0018]本发明实施例还提供一种程序仿真测试方法,所述方法包括:
[0019]基于可视化编程软件生成仿真程序;
[0020]根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0021]根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程;
[0022]通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点;
[0023]分别在对应的M个上位机上运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试;
[0024]其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。
[0025]上述方案中,当所述M等于I时,所述N个仿真进程节点之间采用传输控制协议TCP报文的形式交互数据;
[0026]当所述M大于I时,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。
[0027]本发明实施例还提供一种程序仿真测试系统,所述系统包括仿真服务平台、编译器和上位机;
[0028]所述仿真服务平台,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0029]所述编译器,用于将所述各仿真组件混合编译为上位机可运行的仿真进程节点;
[0030]所述上位机,用于运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
[0031 ] 上述方案中,所述仿真服务平台,还用于将所述仿真程序中的变量数据显示在图形页面上。
[0032]上述方案中,所述编译器包括代码生成组件和混合编译组件;其中,
[0033]所述代码生成组件,用于对所述仿真程序进行代码编译形成可执行代码;
[0034]所述混合编译组件,用于利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。
[0035]上述方案中,所述编译器还包括代码编译组件;其中,
[0036]所述代码编译组件,用于链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。
[0037]本发明实施例又提供一种程序仿真测试系统,所述系统包括:仿真服务平台、编译器和M个上位机;
[0038]所述仿真服务平台,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程;
[0039]所述编译器,用于通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点;
[0040]所述上位机,用于运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试;
[0041]其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。
[0042]上述方案中,当所述M等于I时,所述N个仿真进程节点之间采用传输控制协议TCP报文的形式交互数据;
[0043]当所述M大于I时,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。
[0044]本发明实施例所提供的程序仿真测试方法及系统,基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;将所述各仿真组件混合编译为上位机可运行的仿真进程节点;运行所述仿真进程节点,完成对所述仿真程序的仿真测试。如此,能够通过以可视化方式搭建仿真应用程序、调试仿真,加快应用程序的开发、验证、测试效率。
【附图说明】
[0045]图1为本发明实施例程序仿真测试方法的实现流程示意图一;
[0046]图2为本发明实施例嵌入式程序可视化仿真运行架构图;
[0047]图3为本发明实施例将所述各仿真组件混合编译为上位机可运行的仿真进程节点的实现流程示意图;
[0048]图4为本发明实施例程序仿真测试方法的实现流程示意图二 ;
[0049]图5为本发明实施例嵌入式程序单机多进程的可视化仿真运行架构图;
[0050]图6为本发明实施例嵌入式程序多机多进程的可视化仿真运行架构图;
[0051]图7为本发明实施例程序仿真测试系统的组成结构示意图一;
[0052]图8为本发明实施例程序仿真测试系统的组成结构示意图二。
【具体实施方式】
[0053]在本发明实施例中,基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;将所述各仿真组件混合编译为上位机可运行的仿真进程节点;运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
[0054]在本发明另一实施例中,基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程;通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点;分别在对应的M个上位机上运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试;其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。
[0055]下面结合附图及具体实施例对本发明再作进一 步详细的说明。
[0056]实施例一
[0057]图1为本发明实施例程序仿真测试方法的实现流程示意图一,如图1所示,本发明实施例程序仿真测试方法包括:
[0058]步骤SlOl:基于可视化编程软件生成仿真程序;
[0059]其中,所述仿真程序通常为图形界面程序。
[0060]具体地,在如图2所示的单机单进程形态中,通过仿真服务平台基于可视化编程软件按照需要生成仿真程序。首先,按照功能将仿真程序划分为若干组件,每个组件由若干个程序页面组成,一个程序页面对应一个任务;其次,从图形符号库中选择相关图形符号,释放到程序页面中,并设置相关图形符号的变量类型、实例名等;最好,使用连接线完成所述相关图形符号之间的数据流连接。
[0061]步骤S102:根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0062]其中,所述仿真组件包括仿真输入组件、仿真任务程序组件和仿真输出组件。所述仿真输入组件、仿真任务程序组件和仿真输出组件均是按照仿真服务平台所定义的统一规范实现,均由数据结构体和任务页面函数组成。
[0063]具体地,仿真服务平台根据所述仿真程序在可视化页面中关联仿真输入组件、仿真任务程序组件和仿真输出组件之间的变量映射关系。这里,在关联所述各仿真组件之前,需要从组件库中挑选已经开发的仿真输入组件和仿真输出组件,也可以基于标准的组件接口,自定义开发新的仿真输入组件和仿真输出组件。
[0064]步骤S103:将所述各仿真组件混合编译为上位机可运行的仿真进程节点;
[0065]具体地,如图3所示,将所述各仿真组件混合编译为上位机可运行的仿真进程节点,包括:
[0066]步骤S1031:对所述仿真程序进行代码编译形成可执行代码;
[0067]具体地,如图2所示,仿真服务平台利用所述可视化编程软件通过调用代码生成和编译组件对所述仿真程序进行代码编译,形成可执行代码;其中,所述可执行代码可以为C/C++应用程序代码。
[0068]步骤S1032:利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。
[0069]这里,通常情况下一个仿真进程节点代表一台前入式装置,也可将多台嵌入式装置的程序功能串行组织,合并为一个仿真进程节点。
[0070]在一示例中,所述仿真程序通过跨平台的可视化编程工具开发,以图形符号块搭建应用程序,自动形成标准的C/C++代码;进一步地,调用vc/gcc等编译器,编译形成windows/linux等不同的操作系统对应的仿真进程节点。
[0071]在一实施例中,在步骤S1031执行对所述仿真程序进行代码编译形成可执行代码之后,所述方法还包括:链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。
[0072]在一示例中,所述仿真程序通过跨平台的可视化编程工具开发,以图形符号块搭建应用程序,自动形成标准的C/C++代码;进一步地,调用嵌入式系统交叉编译器,形成嵌入式装置所需的目标文件。
[0073]这样,同一套图形界面程序通过链接不同的系统库,能够形成在不同系统上运行的目标文件,实现实际运行程序和仿真程序同源可视化维护,并支持仿真程序的可视化调试功能,仿真过程中,双击图形页面程序连接线,即可显示对应变量值。
[0074]步骤S104:运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
[0075]具体地,通过可视化编程软件启动所述仿真进程节点,开始在上位机上运行所述仿真进程节点。当然,在所述运行所述仿真进程节点之前,需要设置仿真步长、仿真时间及仿真进程节点编号(ID)。这样,所述仿真进程节点会根据所述仿真步长周期性地执行任务程序并更新输入输出数据。
[0076]在一实施例中,所述程序仿真测试方法还包括:
[0077]步骤S105:在运行所述仿真进程节点的过程中将所述仿真程序中的变量数据显示在图形页面上。
[0078]具体地,在运行所述仿真进程节点的过程中,通过所述可视化编程软件和所述仿真进程节点间共享内存的数据交互,所述可视化编程软件在图形页面的数据连接线上显示变量数据,进行仿真程序功能的验证调试。
[0079]通过本发明实施例所述程序仿真测试方法,基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;将所述各仿真组件混合编译为上位机可运行的仿真进程节点;运行所述仿真进程节点,完成对所述仿真程序的仿真测试。如此,能够通过以可视化方式搭建仿真应用程序、调试仿真,加快应用程序的开发、验证、测试效率。
[0080]实施例二
[0081]图4为本发明实施例程序仿真测试方法的实现流程示意图二,如图4所示,本发明实施例程序仿真测试方法包括:
[0082]步骤S401:基于可视化编程软件生成仿真程序;
[0083]其中,所述仿真程序通常为图形界面程序。
[0084]具体地,通过仿真服务平台基于可视化编程软件按照需要生成仿真程序。首先,按照功能将仿真程序划分为若干组件,每个组件由若干个程序页面组成,一个程序页面对应一个任务;其次,从图形符号库中选择相关图形符号,释放到程序页面中,并设置相关图形符号的变量类型、实例名等;最好,使用连接线完成所述相关图形符号之间的数据流连接。
[0085]步骤S402:根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0086]其中,所述仿真组件包括仿真输入组件、仿真任务程序组件和仿真输出组件。所述仿真输入组件、仿真任务程序组件和仿真输出组件均是按照仿真服务平台所定义的统一规范实现,均由数据结构体和任务页面函数组成。
[0087]具体地,仿真服务平台根据所述仿真程序在可视化页面中关联仿真输入组件、仿真任务程序组件和仿真输出组件之间的变量映射关系。这里,在关联所述各仿真组件之前,需要从组件库中挑选已经开发的仿真输入组件和仿真输出组件,也可以基于标准的组件接口,自定义开发新的仿真输入组件和仿真输出组件。
[0088]步骤S403:根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程;
[0089]其中,N为大于I的自然数。
[0090]具体地,仿真服务平台根据应用程序规模和实际操作系统的需求,将所述仿真程序划分为N个仿真进程,即将所述仿真程序编译为单机多进程、多机多进程等形态,以使仿真服务平台和上位机之间可以通过网络、串口等方式进行多进程之间数据交互和协同仿真运行。
[0091]步骤S404:通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点;
[0092]其中,M为大于等于I的自然数,且M小于等于N。
[0093]这里,当所述M等于I时,如图5所示,所述仿真程序编译为单机多进程形态,所述N个仿真进程节点之间采用传输控制协议(Transmiss1n Control Protocol,TCP)报文的形式交互数据。在所述步骤S404执行之前,需要预先设置各个仿真进程节点的ID编号和上位机的TCP通信端口号,使得所述各个仿真进程节点之间通过预设的ID编号选择接收TCP报文。
[0094]这里,当所述M大于I时,如图6所示,所述仿真程序编译为多机多进程形态,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。在所述步骤S404执行之前,需要预先设置各个仿真进程节点的ID编号,各个上位机的IP地址、MAC地址、TCP通信端口号。这样,在基于网络方式交互数据时,采用组播方式发送TCP报文的形式按照各进程预设的ID编号选择接收报文。
[0095]步骤S405:分别在对应的M个上位机上运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试。
[0096]这里,需要说明的是,如图6所示,当所述M大于I时,需要将所述各个仿真进程节点依次分散到不同的上位机上,分别在对应的M个上位 机上运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试。
[0097]如此,通过本发明实施例所述程序仿真测试方法,通过将所述仿真程序编译为单机多进程、多机多进程等形态,以使仿真服务平台和上位机之间可以通过网络、串口等方式进行多进程之间数据交互和协同仿真运行,能够实现以可视化方式搭建仿真应用程序、调试仿真,加快应用程序的开发、验证、测试效率。
[0098]实施例三
[0099]图7为本发明实施例程序仿真测试系统的组成结构示意图一,如图7所示,所述系统包括仿真服务平台701、编译器702和上位机703 ;
[0100]所述仿真服务平台701,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;
[0101]所述编译器702,用于将所述各仿真组件混合编译为上位机可运行的仿真进程节占.V,
[0102]所述上位机703,用于运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
[0103]在一实施例中,如图7所示,所述仿真服务平台701,还用于将所述仿真程序中的变量数据显示在图形页面上。
[0104]在一实施例中,如图7所示,所述编译器702包括代码生成组件7021和混合编译组件7022 ;其中,
[0105]所述代码生成组件7021,用于对所述仿真程序进行代码编译形成可执行代码;
[0106]所述混合编译组件7022,用于利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。
[0107]在一实施例中,所述编译器702还包括代码编译组件7023 ;其中,
[0108]所述代码编译组件7023,用于链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。
[0109]需要说明的是,本发明实施例四所述系统中的上位机803包括但不限于台式计算机、笔记本电脑、平板电脑、工控机、移动终端等具有进程运行功能的电子设备。
[0110]实施例四
[0111]图8为本发明实施例程序仿真测试系统的组成结构示意图二,如图8所示,所述系统包括仿真服务平台801、编译器802和M个上位机803 ;
[0112]所述仿真服务平台801,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程;
[0113]所述编译器802,用于通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点;
[0114]所述上位机803,用于运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试;其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。
[0115]在一实施例中,当所述M等于I时,所述N个仿真进程节点之间采用传输控制协议TCP报文的形式交互数据;当所述M大于I时,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。
[0116]需要说明的是,本发明实施例四所述系统中的上位机803包括但不限于台式计算机、笔记本电脑、平板电脑、工控机、移动终端等具有进程运行功能的电子设备。
[0117]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【主权项】
1.一种程序仿真测试方法,其特征在于,所述方法包括: 基于可视化编程软件生成仿真程序; 根据所述仿真程序关联各仿真组件之间的变量映射关系; 将所述各仿真组件混合编译为上位机可运行的仿真进程节点; 运行所述仿真进程节点,完成对所述仿真程序的仿真测试。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在运行所述仿真进程节点的过程中将所述仿真程序中的变量数据显示在图形页面上。3.根据权利要求1或2所述的方法,其特征在于,所述将所述各仿真组件混合编译为上位机可运行的仿真进程节点,包括: 对所述仿真程序进行代码编译形成可执行代码; 利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。4.根据权利要求3所述的方法,其特征在于,在对所述仿真程序进行代码编译形成可执行代码之后,所述方法还包括: 链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。5.一种程序仿真测试方法,其特征在于,所述方法包括: 基于可视化编程软件生成仿真程序; 根据所述仿真程序关联各仿真组件之间的变量映射关系; 根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程; 通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点; 分别在对应的M个上位机上运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试; 其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。6.根据权利要求5所述的方法,其特征在于, 当所述M等于I时,所述N个仿真进程节点之间采用传输控制协议TCP报文的形式交互数据; 当所述M大于I时,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。7.—种程序仿真测试系统,其特征在于,所述系统包括仿真服务平台、编译器和上位机; 所述仿真服务平台,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系; 所述编译器,用于将所述各仿真组件混合编译为上位机可运行的仿真进程节点; 所述上位机,用于运行所述仿真进程节点,完成对所述仿真程序的仿真测试。8.根据权利要求7所述的系统,其特征在于,所述仿真服务平台,还用于将所述仿真程序中的变量数据显示在图形页面上。9.根据权利要求7或8所述的系统,其特征在于,所述编译器包括代码生成组件和混合编译组件;其中, 所述代码生成组件,用于对所述仿真程序进行代码编译形成可执行代码; 所述混合编译组件,用于利用所述可执行代码对所述各仿真组件混合编译,得到上位机可运行的仿真进程节点。10.根据权利要求9所述的系统,其特征在于,所述编译器还包括代码编译组件;其中, 所述代码编译组件,用于链接不同系统对应的系统程序库对所述可执行代码进行编译,形成在所述不同系统上运行的目标文件。11.一种程序仿真测试系统,其特征在于,所述系统包括:仿真服务平台、编译器和M个上位机; 所述仿真服务平台,用于基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;根据应用程序规模和操作系统结构,将所述仿真程序划分为N个仿真进程; 所述编译器,用于通过分别对所述N个仿真进程进行代码编译的方式将所述各仿真组件混合编译为M个上位机上可运行的N个仿真进程节点; 所述上位机,用于运行所述N个仿真进程节点,完成对所述仿真程序的仿真测试; 其中,N为大于I的自然数,M为大于等于I的自然数,且M小于等于N。12.根据权利要求11所述的系统,其特征在于, 当所述M等于I时,所述N个仿真进程节点之间采用传输控制协议TCP报文的形式交互数据; 当所述M大于I时,所述N个仿真进程节点之间采用组播方式发送TCP报文的形式交互数据。
【专利摘要】本发明实施例公开了一种程序仿真测试方法及系统,基于可视化编程软件生成仿真程序;根据所述仿真程序关联各仿真组件之间的变量映射关系;将所述各仿真组件混合编译为上位机可运行的仿真进程节点;运行所述仿真进程节点,完成对所述仿真程序的仿真测试。
【IPC分类】G06F11/36, G06F9/455
【公开号】CN104881358
【申请号】CN201510282608
【发明人】陈宏君, 刘克金, 文继锋, 冯亚东, 周强, 张翔, 余群兵, 曹冬明, 沈全荣, 陈松林, 程璐璐, 熊蕙
【申请人】南京南瑞继保电气有限公司, 南京南瑞继保工程技术有限公司
【公开日】2015年9月2日
【申请日】2015年5月28日
转载请注明原文地址:https://www.famiwei.com/read-8138717.html

最新回复(0)