CN106445640B - 一种嵌入式虚拟装置运行方法和*** - Google Patents
一种嵌入式虚拟装置运行方法和*** Download PDFInfo
- Publication number
- CN106445640B CN106445640B CN201610913664.6A CN201610913664A CN106445640B CN 106445640 B CN106445640 B CN 106445640B CN 201610913664 A CN201610913664 A CN 201610913664A CN 106445640 B CN106445640 B CN 106445640B
- Authority
- CN
- China
- Prior art keywords
- real
- time
- virtual
- data
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
本发明公开一种嵌入式虚拟装置运行方法和***:将嵌入式装置划分为管理进程、若干实时模块、若干非实时模块。管理进程读取配置文件,加载各个处理器的实时、非实时模块库,通过虚拟的CAN总线、FIFO通信完成初始化交互。管理进程启动实时线程,按照任务周期设置关系,分级串行调度实时任务;管理进程启动若干非实时线程,调用非实时模块周期任务,实现和多个调试客户端的并行通信。实时模块之间通过虚拟数据总线交互数据,实时模块和非实时模块通过共享内存交互数据。
Description
技术领域
本发明属于嵌入式装置开发领域,具体涉及嵌入式虚拟装置运行方法和***。
背景技术
嵌入式装置是电力***、工业控制等领域安全稳定运行的关键设备,其专业化门槛高,研发过程复杂,复杂功能需要团队化开发,研发成本高。嵌入式装置研发包括应用算法、软硬件平台、装置调试等过程。当前嵌入式装置集成化程度也越来越高,例如集中式保护测控装置包括了线路保护、变压器保护、母线保护、稳定控制、测控等多个专业的功能,装置串行开发研发周期长,而并行研发需要更多的装置样品和调试设备。为了提高装置研发效率,降低研发成本,有必要提供嵌入式虚拟装置运行方法和***,可模拟装置实际硬件环境,基于虚拟输入数据,测试装置功能。已有文献的虚拟方法,往往侧重于应用算法的仿真测试,未涉及整装置的等价模拟方法,而实际的装置开发,除支持应用功能外,还需进行人机界面、通信等功能调试,这些也是产品研发的重要部分,故有必要提供嵌入式装置整机仿真的等价运行方法和***,实现完整的装置功能验证测试,本案由此产生。
发明内容
本发明的目的是实现嵌入式装置的虚拟运行环境,具备整机虚拟运行测试功能。为了达成上述目的,本发明提供一种嵌入式虚拟装置运行方法,其特征在于虚拟管理进程读取装置配置文件,加载实时模块、非实时模块,在实时调度线程中按照任务周期设置关系分级串行调度各实时模块的任务,实现多处理器数据交换精确同步。虚拟管理进程启动多个线程运行非实时模块的事件回调和周期任务,实现和多个规约调试客户端的并行通信。具体包括如下步骤:
第一步:PC机仿***界面进程获取仿真设置信息,启动嵌入式装置的虚拟管理进程。虚拟管理进程读取装置配置文件,获取硬件配置信息,加载各个处理器的实时模块,获取主CPU的进程配置信息,加载对应的非实时模块;管理进程读取配置文件中人机通信配置信息,创建配置共享内存;管理进程在加载模块时,提取并记录预定义的模块导出函数地址。
第二步:虚拟管理进程按照硬件声明顺序,通过虚拟CAN总线和实时模块进行初始化交互,管理进程汇总各个实时模块的数据交换信息,创建数据总线。虚拟管理进程按照配置文件中的非实时进程声明顺序,通过虚拟FIFO和非实时模块进行初始化交互。
第三步:虚拟管理进程启动虚拟实时任务调度线程,调用实时模块预定义的导出接口,对各个周期实时任务串行分级调度。虚拟管理进程启动多个非实时线程,调用非实时模块周期任务,实现和多个调试客户端的并行通信。
第四步:虚拟装置运行过程中,实时模块基于数据总线获取处理器之间的交互数据,实时模块和非实时模块基于共享内存交互数据。实时SLAVE模块将非实时模块的变量代理刷新到数据总线,传递给其它处理器。
进一步地,所述的第一步中,DSP处理器实时模块是动态链接库,由嵌入式装置的无操作***的应用程序和虚拟DSP***库编译形成。主CPU的实时模块SLAVE是动态链接库,由嵌入式装置基于操作***开发的实时程序移植重构后和虚拟的主CPU实时***库编译形成。非实时模块由嵌入式装置基于操作***开发的非实时程序移植重构后和虚拟的主CPU非实时***库编译形成。基于虚拟的PC机平台库,装置应用程序只需切换编译环境重新编译,无需修改代码。虚拟仿真装置和实际装置共用相同的配置文件,应用人员无需修改装置配置。
进一步地,所述的第三步中,按照周期等级串行管理各个实时模块的任务,虚拟实时任务调度线程计算装置的多个实时任务周期的最小公倍数,按照最小公倍数作为步长循环,步长累加到对应等级的周期值时,调用该等级的任务,并更新虚拟装置的时标到共享内存,最小分辨率为虚拟微秒。
进一步地,虚拟实时任务调度线程支持按照数据总线读、实时运算任务、数据总线写的顺序调度,精确模拟嵌入式装置并行总线1个点延时;也支持数据总线读、数据总线写、实时运算任务的顺序调度,精确模拟嵌入式装置串行总线2个点延时,调度方式可配置。
进一步地,所述的第三步中,非实时线程的周期调用接口中,支持基于事件触发的通信报文收发任务,支持读取PC机的实际时间执行毫秒级的周期任务。
进一步地,所述的第四步中,实时模块SLAVE创建循环缓存区,可存储数据总线累计秒级数据,用于虚拟装置录波时记录触发录波前若干周期数据。非实时模块根据共享内存中当前虚拟时标从缓存区中读取对应点的数据上送给调试客户端显示。
进一步地,所述的第三步中,调试客户端支持可视化页面调试、IEC61850规约调试、IEC103调试、LCD液晶调试调试等,基于***公共库,可灵活扩展新的调试规约,开发新的模块。
进一步地,所述的第一步中,PC机仿***界面进程在启动虚拟管理进程后,通过输出重定向,支持实时显示虚拟装置初始化和运行过程中的提示信息。PC机仿***界面进程支持指定Comtrade波形文件输入、PSCAD/Hypersim数据阵列输入、过程层网络GOOSE数据、空数据等仿真模式。PC机仿***界面进程支持导入应用程序目录,自动形成Makefile,调用PC机编译器,形成应用程序动态链接库。仿***界面进程获取虚拟管理进程记录的任务运算统计信息,并提供界面展示,包括各个等级任务运算时间、当前任务计数,并支持表格化、图形化的信息展示。
一种嵌入式虚拟装置运行***,其特征在于,所述***包括:可视化配置子***、仿真界面子***、虚拟管理子***、实时子***、非实时子***、平台接口库子***、虚拟数据输入子***、调试客户端子***。其中:
所述的可视化配置子***,用于嵌入式装置的硬件和软件功能配置,采用图形化符号、可视化页面搭建装置应用功能,形成装置驱动包和配置文件。
所述的仿真界面子***,用于仿真信息设置、启动停止仿真、虚拟装置输出信息和任务统计展示、应用程序自动编译等功能。仿真界面子***支持用户导入若干目录文件,自动形成Makefile,编译应用程序。仿真界面子***支持设置仿真模式和仿真数据源,启动虚拟管理进程,获取虚拟管理进程的输出信息并展示。获取实时任务统计信息并按照表格、图表等方式展示。
所述的虚拟管理子***,读取装置配置文件,加载装置实时子***、非实时子***,进行实时任务、非实时任务调度,创建释放共享内存。
所述的实时子***,对应装置各个处理器的程序功能,编译为动态链接库。
所述的非实时子***,对应装置主CPU基于操作***开发的非实时进程,包括各种通信服务器端、装置公共服务进程模拟,编译为动态链接库。
所述的平台接口库子***,包括DSP实时库、主CPU实时库、主CPU非实时库,提供装置平台化公共接口和服务,定义实时模块、非实时模块的导出接口函数,提供数据注册、变量管理、总线通信等功能。
所述的虚拟数据输入子***,为虚拟装置提供数据源,支持波形读取解析和通道映射、支持第3方仿真软件例如EMTDC/PSCAD、Hypersim软件的输出数据,支持自定义格式的数据阵列等。
所述的调试客户端子***,包括可视化调试客户端,支持可视化页面调试;包括虚拟液晶调试客户端,展示物理装置液晶的层次菜单和主画面内容;包括IEC61850调试客户端,展示装置模型、报告、数据集和定值;包括IEC103调试客户端,展示通用分组数据,上装波形;包括打印客户端,打印装置菜单、定值、波形数据。调试客户端子***基于公共***库接口开发,可灵活增加新的子模块。
采用上述方案后,本发明具有如下有益效果:通过将装置划分为管理进程、实时模块和非实时模块,支持装置整机功能的完整模拟和测试,基于平台化的开发方法,装置研发人员的配置和程序可在实际装置和虚拟装置中运行,并进行同源维护,显著提高了开发效率,加快了开发过程中问题诊断和问题排查效率,提高了开发质量。装置研发人员在出差过程中、装置不具备的条件下,也能并行开发,缩短了开发周期。
附图说明
图1是本发明中嵌入式虚拟装置运行架构图;
图2是本发明中嵌入式虚拟装置初始化过程;
图3是本发明中嵌入式虚拟装置实时任务调度原理;
图4是本发明中嵌入式虚拟装置***结构图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。将嵌入式装置分为虚拟管理进程Master、若干实时模块、若干非实时模块,虚拟管理进程读取装置配置文件,加载实时模块、非实时模块,虚拟管理进程启动实时调度线程,按照任务周期设置关系分级串行调度各实时模块的任务,实现多处理器数据交换精确同步。虚拟管理进程启动多个线程运行非实时模块的事件回调和周期任务,实现和多个规约调试客户端的并行通信。嵌入式虚拟装置运行实现方法如图1所示,包括如下步骤:
1)PC机仿***界面进程提供设置界面,获取仿真设置信息(装置配置文件路径名、仿真输入数据、仿真时间等),并通过命令行调用,启动嵌入式装置的虚拟管理进程Master。虚拟管理进程读取装置配置文件,获取硬件配置信息,在Windows操作***中,通过LoadLibrary加载各个处理器对应的实时模块(优选地,,主CPU的SLAVE实时模块为SLAVE.dll,其它处理器以ID命名,例如B02.dll、B03_C1R1.dll等)。获取主CPU(带操作***的处理器,例如嵌入式装置Linux操作***)的多个进程配置信息(进程名、进程调用形参等),加载对应的上位机非实时模块(例如LCD.dll、IEC61850.dll等);管理进程读取配置文件中人机通信配置信息(LCD菜单引用表、变位报告、录波等变量配置分组),创建配置共享内存;管理进程在加载模块时,提取并记录预定义的模块导出函数地址,预定义的函数接口在***库中定义,例如newModule、initModule、freeModule、runTask1、runTask2等接口。
基于嵌入式装置的***库,在Windows操作***下进行移植重构,形成DSP***库、主CPU实时库、主CPU非实时库。DSP处理器实时模块是应用程序的动态链接库,由嵌入式装置的无操作***的应用程序和虚拟DSP***库编译形成。主CPU的实时模块SLAVE是动态链接库,由嵌入式装置基于操作***开发的实时程序移植重构后和虚拟的主CPU实时***库编译形成。非实时模块由嵌入式装置基于操作***开发的非实时程序移植重构后和虚拟的主CPU非实时***库编译形成,PC机仿***界面进程支持导入应用程序目录,自动形成Makefile,调用PC机编译器(VC或GCC编译器),形成应用程序动态链接库。基于虚拟的PC机平台库,装置应用程序只需切换编译环境重新编译,无需修改应用层代码。
优选地,嵌入式装置的配置文件,通过可视化配置工具形成,虚拟仿真装置和实际装置共用相同的配置文件,应用人员无需修改装置配置。
PC机仿***界面进程在启动虚拟管理进程后,通过输出重定向,获取Master虚拟装置初始化和运行过程中的提示信息(获取printf/perror等输出信息),并显示在界面上。仿***界面进程获取虚拟管理进程记录的任务运算统计数据(优选地,通过进程间Pipe通信获取相关数据),并提供界面展示,包括各个等级任务运算时间、当前任务计数,并支持表格化、图形化的信息展示。
PC机仿***界面进程还支持设置虚拟仿真数据源,可选Comtrade波形文件输入、PSCAD/Hypersim/自定义数据阵列输入(优选地,采用文本格式,按照通道逐点存储)、过程层网络GOOSE数据(优选地,通过winpcap抓包获取链路层GOOSE报文)、空数据等仿真模式,Master根据命令形参切换对应的仿真模式,当以波形、数据阵列输入时,由Master在实时线程中逐点读取数据,实时模块通过回调函数按照通道号获取当前点输入数据。
2)虚拟管理进程按照硬件声明顺序,通过虚拟CAN总线和实时模块进行初始化交互,实时模块上送输入输出变量注册信息、定值注册信息,管理进程下发装置任务周期信息,汇总各个实时模块的数据交换信息,分配数据总线中各个中断的变量数据交换地址,创建数据总线。虚拟管理进程按照配置文件中的非实时进程声明顺序,通过虚拟FIFO和非实时模块进行初始化交互,非实时模块上送变量注册信息、定值注册信息,管理进程下发共享内存的相关信息,非实时进程在初始化过程中可读取配置共享内存,完成该模块对应的初始化工作。嵌入式虚拟装置的初始化过程如图2所示。
3)虚拟管理进程启动虚拟实时任务调度线程,调用实时模块预定义的导出接口,对各个周期实时任务串行分级调度。实时线程的任务调度原理如图3所示,按照周期等级串行管理各个实时模块的任务,虚拟实时任务调度线程计算装置的多个实时任务周期的最小公倍数,按照最小公倍数作为步长循环,步长累加到对应等级的周期值时,调用该等级的任务,并更新虚拟装置的时标到共享内存,最小分辨率为虚拟1微秒。虚拟实时任务调度线程支持按照数据总线读、实时运算任务、数据总线写的顺序调度,精确模拟嵌入式装置并行总线1个点延时;也支持数据总线读、数据总线写、实时运算任务的顺序调度,精确模拟嵌入式装置串行总线2个点延时,调度方式可配置。非实时线程的周期调用接口中,支持基于事件触发的通信报文收发任务(TCP的select/poll事件、串口的读写事件等),支持读取PC机的实际时间执行毫秒级的周期任务(平台库提供AddTimerTask管理周期任务,在周期调用接口通过计算当前时间和上次时间差进行非实时模块的多周期任务调度)。1个非实时模块对应1个线程,管理进程启动多个非实时线程,调用非实时模块周期任务,实现和多个调试客户端的并行通信。
4)虚拟装置运行过程中,实时模块基于数据总线获取处理器之间的交互数据,实时模块和非实时模块基于共享内存交互数据。实时SLAVE模块支持将非实时模块的变量代理刷新到数据总线,传递给其它处理器。实时模块SLAVE创建循环缓存区,可存储数据总线累计秒级数据(例如累计3秒的串行高速总线中断交互数据),用于虚拟装置形成波形文件时,可前推触发录波前若干周期数据。非实时模块根据共享内存中当前虚拟时标从共享数据缓存区中读取对应点的数据上送给调试客户端显示。
一种嵌入式虚拟装置运行***,所述***包括:可视化配置子***、仿真界面子***、虚拟管理子***、实时子***、非实时子***、平台接口库子***、虚拟数据输入子***、调试客户端子***,如图4所示。其中:
所述的可视化配置子***,用于嵌入式装置的硬件和软件功能配置,支持图形化符号、可视化页面搭建装置应用功能,支持表格化配置定值分组、装置人机接口信息、通信点表配置等,形成装置驱动包和配置文件;其形成的配置文件是虚拟装置的输入文件;
所述的仿真界面子***,用于仿真信息设置、启动停止仿真、虚拟装置输出信息和任务统计展示、应用程序自动编译等功能。在仿真界面子***中,支持用户导入若干目录的h/c文件,该子***自动扫描获取目录下h/c文件,自动形成VC、GCC编译器所需的Makefile,调用编译器,链接***库,编译应用程序,形成动态链接库*.DLL文件。该子***支持设置仿真模式和仿真数据源(可选Comtrade波形文件输入、PSCAD/Hypersim/自定义数据阵列输入、过程层网络GOOSE数据、空数据等仿真模式),该子***启动虚拟管理子***,获取虚拟管理进程的输出信息并展示,获取实时任务统计信息并按照表格、图表等方式展示;
所述的虚拟管理子***,在main入口函数中读取装置配置文件,获取硬件配置信息,加载装置实时子***,获取主CPU进程配置信息,加载非实时子***,创建相关线程,进行实时任务、非实时任务调度,创建、释放共享内存;
所述的实时子***,对应装置各个处理器的程序功能,编译为动态链接库。
所述的非实时子***,对应装置主CPU基于操作***开发的非实时进程,包括各种通信服务器端、装置公共服务例如打印等功能;
所述的平台接口库子***,包括DSP实时库sysapi_dsp.lib、主CPU实时库sysapi_cpu_rt.lib、主CPU非实时库sysapi_cpu_nrt.lib,该子***提供装置平台化公共接口和服务,定义实时模块、非实时模块的导出接口函数,提供数据注册、变量管理、总线通信等功能;
所述的虚拟数据输入子***,为虚拟装置提供数据源,支持波形读取解析和通道映射、支持第3方仿真软件例如EMTDC/PSCAD、Hypersim软件的输出数据,支持自定义格式的数据阵列等;
所述的调试客户端子***,包括可视化调试客户端,支持双击可视化页面的连接线,下发变量给虚拟管理子***,虚拟管理子***上送变量值,可视化调试客户端实时显示数据;包括虚拟液晶调试客户端,展示物理装置液晶的层次菜单和主画面内容,下发调试控制命令;包括IEC61850调试客户端,通过IEC61850协议读取装置模型,展示报告、数据集和定值;包括IEC103调试客户端,通过IEC103网络、串口协议,展示通用分组数据,上装波形;包括打印客户端,基于网络协议,打印装置菜单、定值、波形数据。调试客户端子***基于公共***库接口开发,可灵活扩展增加新的子模块。支持在仿真子***中点击相关按钮,启动相关调试客户端,通过127.0.0.1进行TCP通信,支持虚拟键盘响应事件、串口收发等。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (11)
1.一种嵌入式虚拟装置运行方法,其特征在于,所述方法具体步骤包括:
第一步:设置仿真信息,启动嵌入式装置的虚拟管理进程,虚拟管理进程读取装置配置文件,获取硬件配置信息,加载各个处理器的实时模块,获取主CPU的进程配置信息,加载对应的非实时模块;虚拟管理进程读取配置文件中人机通信配置信息,创建配置共享内存;虚拟管理进程在加载模块时,提取并记录预定义的模块导出函数地址;
第二步:虚拟管理进程按照硬件声明顺序,通过虚拟CAN总线和实时模块进行初始化交互,虚拟管理进程汇总各个实时模块的数据交换信息,创建数据总线;虚拟管理进程按照配置文件中的非实时进程声明顺序,通过虚拟FIFO和非实时模块进行初始化交互;
第三步:虚拟管理进程启动虚拟实时任务调度线程,调用实时模块预定义的导出接口,对各个周期实时任务串行分级调度;虚拟管理进程启动多个非实时线程,调用非实时模块周期任务,实现和多个调试客户端的并行通信;
第四步:虚拟装置运行过程中,实时模块基于数据总线获取处理器之间的交互数据,实时模块和非实时模块基于共享内存交互数据;实时SLAVE模块将非实时模块的变量代理刷新到数据总线,传递给其它处理器。
2.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第一步中,DSP处理器的实时模块是动态链接库,由嵌入式装置的无操作***的应用程序和虚拟DSP***库编译形成;
主CPU的实时模块SLAVE是动态链接库,由嵌入式装置基于操作***开发的实时程序移植重构后和虚拟的主CPU实时***库编译形成;
非实时模块由嵌入式装置基于操作***开发的非实时程序移植重构后和虚拟的主CPU非实时***库编译形成;基于虚拟的PC机平台库,装置应用程序切换编译环境实现重新编译,虚拟仿真装置和实际装置共用相同的配置文件。
3.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第三步中,按照周期等级串行管理各个实时模块的任务,虚拟实时任务调度线程计算装置的多个实时任务周期的最小公倍数,按照最小公倍数作为步长循环,步长累加到对应等级的周期值时,调用该等级的任务,并更新虚拟装置的时标到共享内存。
4.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第三步中,虚拟实时任务调度线程按照数据总线读、实时运算任务、数据总线写的顺序调度,精确模拟嵌入式装置并行总线1个点延时;
或者,虚拟实时任务调度线程按照数据总线读、数据总线写、实时运算任务的顺序调度,精确模拟嵌入式装置串行总线2个点延时。
5.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第三步中,非实时线程的周期调用接口中,支持基于事件触发的通信报文收发任务,支持读取PC机的实际时间执行毫秒级的周期任务。
6.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第四步中,实时模块SLAVE创建循环缓存区,存储数据总线累计秒级数据,用于虚拟装置录波时记录触发录波前若干周期数据;非实时模块根据共享内存中当前虚拟时标从缓存区中读取对应点的数据上送给调试客户端显示。
7.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第一步中,在启动虚拟管理进程后,通过输出重定向,实时显示虚拟装置初始化和运行过程中的提示信息。
8.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第一步中,所述仿真信息对应支持的仿真模式包括指定Comtrade波形文件输入、PSCAD/Hypersim数据阵列输入、过程层网络GOOSE数据或者空数据。
9.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第一步中,通过导入应用程序目录,形成Makefile,调用PC机编译器,形成应用程序动态链接库。
10.如权利要求1所述的一种嵌入式虚拟装置运行方法,其特征在于:所述的第一步中,对虚拟管理进程记录的任务运算统计信息提供界面展示,所述信息界面展示的内容包括各个等级任务运算时间、当前任务计数,信息界面展示的形式支持表格化、图形化的信息展示。
11.一种嵌入式虚拟装置运行***,其特征在于,所述***包括:可视化配置子***、仿真界面子***、虚拟管理子***、实时子***、非实时子***、平台接口库子***、虚拟数据输入子***和调试客户端子***,其中:
所述的可视化配置子***,用于嵌入式装置的硬件和软件功能配置,采用图形化符号、可视化页面搭建装置应用功能,形成装置驱动包和配置文件;
所述的仿真界面子***,用于仿真信息设置、启动停止仿真、虚拟装置输出信息和任务统计展示、应用程序自动编译;
仿真界面子***支持用户导入若干目录文件,自动形成Makefile,编译应用程序;仿真界面子***支持设置仿真模式和仿真数据源,启动虚拟管理进程,获取虚拟管理进程的输出信息并展示,获取实时任务统计信息并按照表格、图表方式展示;
所述的虚拟管理子***,读取装置配置文件,加载装置实时子***、非实时子***,进行实时任务、非实时任务调度,创建释放共享内存;
所述的实时子***,对应装置各个处理器的程序功能,编译为动态链接库;
所述的非实时子***,对应装置主CPU基于操作***开发的非实时进程,包括各种通信服务器端、装置公共服务进程模拟,编译为动态链接库;
所述的平台接口库子***,包括DSP实时库、主CPU实时库、主CPU非实时库,提供装置平台化公共接口和服务,定义实时模块、非实时模块的导出接口函数,提供数据注册、变量管理、总线通信功能;
所述的虚拟数据输入子***,为虚拟装置提供数据源,支持波形读取解析和通道映射、支持第3方仿真软件的输出数据,支持自定义格式的数据阵列;
所述的调试客户端子***,包括可视化调试客户端,支持可视化页面调试;包括虚拟液晶调试客户端,展示物理装置液晶的层次菜单和主画面内容;包括IEC61850调试客户端,展示装置模型、报告、数据集和定值;包括IEC103调试客户端,展示通用分组数据,上装波形;包括打印客户端,打印装置菜单、定值、波形数据;
调试客户端子***基于公共***库接口开发,可灵活增加新的子模块。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610913664.6A CN106445640B (zh) | 2016-10-20 | 2016-10-20 | 一种嵌入式虚拟装置运行方法和*** |
BR112019008039A BR112019008039A2 (pt) | 2016-10-20 | 2017-05-26 | método de execução para dispositivo e sistema virtual do tipo embarcado |
EP17862886.3A EP3525094A4 (en) | 2016-10-20 | 2017-05-26 | EXECUTION METHOD FOR INTEGRATED TYPE VIRTUAL DEVICE AND SYSTEM |
PCT/CN2017/086081 WO2018072445A1 (zh) | 2016-10-20 | 2017-05-26 | 一种嵌入式虚拟装置运行方法和*** |
US16/343,389 US10949242B2 (en) | 2016-10-20 | 2017-05-26 | Development of embedded type devices and running method for embedded type virtual device and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610913664.6A CN106445640B (zh) | 2016-10-20 | 2016-10-20 | 一种嵌入式虚拟装置运行方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106445640A CN106445640A (zh) | 2017-02-22 |
CN106445640B true CN106445640B (zh) | 2019-06-18 |
Family
ID=58176862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610913664.6A Active CN106445640B (zh) | 2016-10-20 | 2016-10-20 | 一种嵌入式虚拟装置运行方法和*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US10949242B2 (zh) |
EP (1) | EP3525094A4 (zh) |
CN (1) | CN106445640B (zh) |
BR (1) | BR112019008039A2 (zh) |
WO (1) | WO2018072445A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445640B (zh) | 2016-10-20 | 2019-06-18 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和*** |
CN107479983B (zh) * | 2017-07-11 | 2021-04-20 | 核动力运行研究所 | 基于时域控制技术的变步长多程序同步计算***及方法 |
CN108460216B (zh) * | 2018-03-12 | 2021-09-10 | 中国人民解放军国防科技大学 | 航天器测控覆盖分析设计平台 |
CN109948123B (zh) * | 2018-11-27 | 2023-06-02 | 创新先进技术有限公司 | 一种图像合并方法及装置 |
CN110955602B (zh) * | 2018-11-30 | 2023-07-07 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种基于资源共享的分布式嵌入式软件测试*** |
CN109814478B (zh) * | 2019-01-14 | 2020-04-24 | 浙江工业大学 | 基于iOpenWorks的虚拟调试*** |
CN109858111A (zh) * | 2019-01-15 | 2019-06-07 | 天津大学 | Rlv虚拟仿真平台设计及实现方法 |
CN110784545B (zh) * | 2019-10-31 | 2022-02-11 | 上海埃威航空电子有限公司 | 实时数据分发*** |
CN110781103B (zh) * | 2019-11-05 | 2022-02-15 | 中电科思仪科技股份有限公司 | 一种pxi总线开关模块控制***及方法 |
CN111078666B (zh) * | 2019-12-11 | 2023-06-27 | 中国建设银行股份有限公司 | 基于跨中心多数据库的自动化卸数供数的方法 |
CN111176136B (zh) * | 2019-12-18 | 2023-04-25 | 中国船舶重工集团公司第七一五研究所 | 一种机电液装备虚实一体化仿真*** |
CN111143218B (zh) * | 2019-12-27 | 2024-03-26 | 深圳市共进电子股份有限公司 | 适用于5G嵌入式设备的log调试方法、装置和可读存储介质 |
CN111258571A (zh) * | 2020-02-11 | 2020-06-09 | 达闼科技(北京)有限公司 | 机器人应用程序开发方法、***、装置及存储介质 |
CN111352616A (zh) * | 2020-02-20 | 2020-06-30 | 苏宁云计算有限公司 | 实时计算可视化开发***及其应用方法 |
CN111404793B (zh) * | 2020-03-11 | 2022-01-21 | 超越科技股份有限公司 | 一种控制物理can口和虚拟can口进行映射的方法,***,设备及可读存储介质 |
CN112379866A (zh) * | 2020-11-03 | 2021-02-19 | 中国直升机设计研究所 | 一种综合任务处理***仿真软件架构及工作方法 |
CN112328313B (zh) * | 2020-11-09 | 2023-07-14 | 中国船舶重工集团公司第七0七研究所九江分部 | 一种应用于嵌入式软件的通用*** |
CN112463614B (zh) * | 2020-12-01 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种基于硬件板卡接入的软件虚拟化测试环境构建方法 |
CN112612523B (zh) * | 2020-12-17 | 2022-06-03 | 威胜集团有限公司 | 一种嵌入式设备驱动***及方法 |
CN112612672B (zh) * | 2020-12-18 | 2022-03-01 | 四川九洲电器集团有限责任公司 | 一种嵌入式软件实时运行状态监控方法 |
CN112685095B (zh) * | 2020-12-25 | 2024-03-22 | 北京浪潮数据技术有限公司 | 一种虚拟设备的加载方法、装置、设备及存储介质 |
CN114756225B (zh) * | 2020-12-25 | 2024-06-28 | 中国科学院沈阳自动化研究所 | 基于模型化开发的Zynq加速平台及其加速方法 |
CN112685197B (zh) * | 2020-12-28 | 2022-08-23 | 浪潮软件科技有限公司 | 接口数据的交互*** |
CN112765018B (zh) * | 2021-01-12 | 2022-09-13 | 武汉光庭信息技术股份有限公司 | 一种仪器仪表调试***及方法 |
CN113064708B (zh) * | 2021-04-06 | 2022-03-18 | 上海大学 | 高速连续运动中的机械臂***多任务协同与信息同步方法 |
CN113438008B (zh) * | 2021-04-20 | 2022-10-28 | 北京控制工程研究所 | 一种适用于姿轨控***多机容错架构的多机时标仿真方法 |
CN113515302A (zh) * | 2021-05-17 | 2021-10-19 | 南京熊猫汉达科技有限公司 | 一种基于Vxworks的短波综合业务显控设备及方法 |
CN113608782B (zh) * | 2021-06-22 | 2023-08-01 | 天津津航计算技术研究所 | 一种能够重定向于can总线的控制台设计方法 |
CN113407214B (zh) * | 2021-06-24 | 2023-04-07 | 广东泰坦智能动力有限公司 | 一种基于can通信的可重构化多线程并行上位机*** |
CN113609694B (zh) * | 2021-08-13 | 2024-01-02 | 国家电网有限公司华北分部 | 基于pscad的继电保护闭环仿真***数据传输及同步方法 |
CN113806012B (zh) * | 2021-08-17 | 2023-10-17 | 南京南瑞继保工程技术有限公司 | 一种电力***嵌入式设备功能集成的***及其运行方法 |
CN113608879B (zh) * | 2021-08-27 | 2024-02-09 | 北京易智联科技有限公司 | 一种可重构的模拟器或测试设备架构设计方法 |
CN113759245B (zh) * | 2021-09-14 | 2024-06-21 | 许昌开普检测研究院股份有限公司 | 基于统一硬件平台的继电保护静模测试和动模测试方法 |
CN113792444A (zh) * | 2021-11-15 | 2021-12-14 | 成都泰盟软件有限公司 | 一种机能学虚拟仿真实验波形构建方法 |
CN113821330B (zh) * | 2021-11-24 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN114347072A (zh) * | 2021-12-06 | 2022-04-15 | 埃夫特智能装备股份有限公司 | 一种机器人控制器模拟化平台及其虚拟方法 |
CN114201149B (zh) * | 2022-02-18 | 2022-05-31 | 北京阿丘科技有限公司 | 运行流程生成方法、装置、***与计算机可读存储介质 |
CN114756492B (zh) * | 2022-03-29 | 2023-11-03 | 中国西安卫星测控中心 | 适用于多种运载器的1553b数据总线处理方法 |
CN114915515B (zh) * | 2022-05-04 | 2024-01-26 | 中国第一汽车股份有限公司 | 一种基于soc的can通信方法及*** |
CN115002190B (zh) * | 2022-05-27 | 2024-06-21 | 努比亚技术有限公司 | 一种功能配置文件调控方法、设备及计算机可读存储介质 |
CN114968745B (zh) * | 2022-06-10 | 2023-06-16 | 北京世冠金洋科技发展有限公司 | 一种处理***模型的运行信息的方法及装置 |
CN115102278B (zh) * | 2022-06-16 | 2024-01-23 | 国网信息通信产业集团有限公司 | 一种分布式光伏电能质量的配置监测***及方法 |
CN115080280B (zh) * | 2022-08-16 | 2022-12-27 | 南方电网数字电网研究院有限公司 | 一种多时间尺度数据融合的边缘计算平台控制***和方法 |
CN115658277B (zh) * | 2022-12-06 | 2023-03-17 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置及电子设备和存储介质 |
CN116090372B (zh) * | 2023-03-23 | 2023-06-27 | 湖南泛联新安信息科技有限公司 | 一种基于fpga的芯片仿真加速方法和*** |
CN116775038B (zh) * | 2023-06-26 | 2024-06-04 | 国电南京自动化股份有限公司 | 支持iec和c++任务同时或独立运行的运行时*** |
CN116842763B (zh) * | 2023-08-31 | 2024-01-26 | 国汽(北京)智能网联汽车研究院有限公司 | 仿真测试方法、装置、电子设备和存储介质 |
CN117880117B (zh) * | 2024-03-12 | 2024-06-25 | 泉州华中科技大学智能制造研究院 | 一种用于虚拟调试的EtherCAT虚拟从站实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453371A (zh) * | 2008-06-26 | 2009-06-10 | 北京科技大学 | 网络化嵌入式***的仿真方法及其装置 |
CN102508697A (zh) * | 2011-11-25 | 2012-06-20 | 武汉钢铁(集团)公司 | 一种Java实现8位嵌入式CPU仿真运行环境的方法 |
CN103235756A (zh) * | 2013-04-22 | 2013-08-07 | 北京航空航天大学 | 一种面向嵌入式***分区应用程序软件的仿真测试方法 |
CN105718305A (zh) * | 2016-03-15 | 2016-06-29 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
CN102609297B (zh) * | 2010-12-28 | 2016-08-17 | 微软技术许可有限责任公司 | 虚拟化嵌入式设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444853A (en) * | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
US5892941A (en) * | 1997-04-29 | 1999-04-06 | Microsoft Corporation | Multiple user software debugging system |
US7047176B2 (en) * | 2000-05-05 | 2006-05-16 | Fujitsu Limited | Method and system for hardware simulation |
WO2006101836A2 (en) * | 2005-03-16 | 2006-09-28 | Gaterocket, Inc. | Fpga emulation system |
US20070204271A1 (en) * | 2006-02-28 | 2007-08-30 | Andrew Gaiarsa | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform |
US8600556B2 (en) * | 2009-06-22 | 2013-12-03 | Johnson Controls Technology Company | Smart building manager |
US8631403B2 (en) * | 2010-01-04 | 2014-01-14 | Vmware, Inc. | Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure |
US9042366B2 (en) * | 2010-09-30 | 2015-05-26 | Vitesse Semiconductor Corporation | Timestamp predictor for packets over a synchronous protocol |
CN104205050B (zh) * | 2012-03-30 | 2019-02-15 | 英特尔公司 | 访问远程机器上的设备 |
TW201421420A (zh) * | 2012-11-21 | 2014-06-01 | Inst Information Industry | 圖形處理單元虛擬裝置、圖形處理單元主機裝置及其圖形處理單元程式處理方法 |
JP6241144B2 (ja) * | 2013-08-30 | 2017-12-06 | 富士通株式会社 | 制御プログラム、制御方法および制御装置 |
US9898388B2 (en) * | 2014-05-23 | 2018-02-20 | Mentor Graphics Corporation | Non-intrusive software verification |
CN104267283A (zh) * | 2014-09-26 | 2015-01-07 | 上海科梁信息工程有限公司 | 一种数字化变电站过程层到间隔层测试平台及方法 |
CN104750068B (zh) * | 2015-02-13 | 2018-08-21 | 湖北锐世数字医学影像科技有限公司 | 一种多节点传感器网络的数据传输及控制装置 |
CN106445640B (zh) | 2016-10-20 | 2019-06-18 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和*** |
-
2016
- 2016-10-20 CN CN201610913664.6A patent/CN106445640B/zh active Active
-
2017
- 2017-05-26 EP EP17862886.3A patent/EP3525094A4/en not_active Ceased
- 2017-05-26 US US16/343,389 patent/US10949242B2/en active Active
- 2017-05-26 WO PCT/CN2017/086081 patent/WO2018072445A1/zh unknown
- 2017-05-26 BR BR112019008039A patent/BR112019008039A2/pt unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453371A (zh) * | 2008-06-26 | 2009-06-10 | 北京科技大学 | 网络化嵌入式***的仿真方法及其装置 |
CN102609297B (zh) * | 2010-12-28 | 2016-08-17 | 微软技术许可有限责任公司 | 虚拟化嵌入式设备 |
CN102508697A (zh) * | 2011-11-25 | 2012-06-20 | 武汉钢铁(集团)公司 | 一种Java实现8位嵌入式CPU仿真运行环境的方法 |
CN103235756A (zh) * | 2013-04-22 | 2013-08-07 | 北京航空航天大学 | 一种面向嵌入式***分区应用程序软件的仿真测试方法 |
CN105718305A (zh) * | 2016-03-15 | 2016-06-29 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
Also Published As
Publication number | Publication date |
---|---|
BR112019008039A2 (pt) | 2019-07-02 |
US20190317791A1 (en) | 2019-10-17 |
EP3525094A4 (en) | 2019-11-13 |
WO2018072445A1 (zh) | 2018-04-26 |
EP3525094A1 (en) | 2019-08-14 |
US10949242B2 (en) | 2021-03-16 |
CN106445640A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445640B (zh) | 一种嵌入式虚拟装置运行方法和*** | |
CN108919765A (zh) | 一种基于数字孪生的智能制造工厂虚拟调试和虚拟监控方法及方法 | |
Feldbrugge et al. | Petri net tool overview 1986 | |
CN106372370A (zh) | 一种飞行控制分布式实时仿真*** | |
CN112036023B (zh) | 一种发电机变压器组保护装置软件一体化生成*** | |
CN103150451B (zh) | 一种仿真***及仿真***数据通讯方法 | |
CN110838961B (zh) | 一种通用航空总线消息调度*** | |
CN103678815A (zh) | 一种机械产品协同仿真平台***及其仿真方法 | |
CN106453506A (zh) | 一种资源统一调度的试验***及方法 | |
CN109876445A (zh) | 一种基于行为树的高解耦引导方法及*** | |
Feldbrugge | Petri net tool overview 1992 | |
CN109032577A (zh) | 一种数据仿真方法 | |
Lawson | Philosophies for engineering computer-based systems | |
CN109002641A (zh) | 用于空间光学载荷电接口信号测试的通用仿真测试设备 | |
CN103942092A (zh) | 一种支持LabView图形化编程的HLA协同仿真方法 | |
Schwarz et al. | ABMland-a tool for agent-based model development on urban land use change | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
CN116225925A (zh) | 一种计算机软件在线实时可视化调试方法 | |
CN113192190A (zh) | 一种基于vr技术的保密培训考试方法和*** | |
CN107239373B (zh) | 一种嵌入式继电保护设备的仿真方法及*** | |
CN110147307A (zh) | 一种嵌入式***仿真ram、rom结果对比*** | |
Panesar-Walawege et al. | Cresco: Construction of evidence repositories for managing standards compliance | |
CN103152224B (zh) | 一种实时动态监控模拟网络的方法及*** | |
Nadkarni | Mocking Microservice Architectures through Message Sequence Models | |
Luo et al. | Component integration manufacturing middleware for customized production |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |