一种采用动态链接库进行仿真系统硬件控制隔离的方法技术方案

技术编号:15189714 阅读:92 留言:0更新日期:2017-04-19 19:40
本发明专利技术公开一种采用动态链接库进行仿真系统硬件控制隔离的方法,将硬件控制软件的通用代码与差异代码相分离,通用代码实现为上位控制程序,差异代码实现为下位动态库,上位控制程序可以不加修改地重用于不同的硬件控制系统;下位动态库实现与具体硬件控制技术相关的操作,将其封装为动态库,使上位控制程序及下位动态库成为高内聚、低耦合的代码;上位控制程序还为下位动态库提供了微妙级高精度定时时钟,足以满足几乎所有仿真系统硬件控制对时钟的要求;硬件设备由于老化或长期使用损耗,通常会出现指示不准确的问题。本发明专利技术通过引入外部精度表技术,使得可以通过修改精度表文件而不是修改软件来达到调整指示精度的目标。

【技术实现步骤摘要】

本专利技术涉及仿真硬件控制
,特别是涉及一种可应用于仿真系统的对具体硬件控制进行隔离的方法。
技术介绍
在飞行模拟器仿真、电站仿真等包括人在回路的仿真系统中,会涉及到人对设备的操纵、设备对仿真结果的反映,对设备硬件的采集、驱动、通信传输一直是实现此类仿真系统的一个重要方面。此类仿真系统,必然涉及两类程序:硬件程序和仿真程序。硬件程序是实现对设备硬件进行采样、驱动的程序;仿真程序是使用硬件程序的采样值、生成硬件程序所需的设备硬件驱动值、通常完成特定仿真任务的程序。从目前公开的方法看,在设备硬件的访问、通信传输方面还没有一个规范的方法可以依据。专利技术《一种仿真系统硬件控制量访问传输的方法》(公开号:104267609A)公开了一个较规范的方法,该方法以访问传输系统的实现方法为核心,把通用代码和差异代码分离,使与设备硬件的访问、通信传输相关的软件产品达到了较高的可重用性。但该方法的分离工作并不彻底,硬件计算机的硬件程序仍然是通用代码和差异代码的混合体,这里通用代码包括控制量的监控、自测试等功能,差异部分则是与具体硬件技术相关的部分;二者的混合不仅使通用部分无法重用,也使得差异代码的独立开发、特别是硬件设备改造外包带来极大的不便。此外,硬件设备由于老化或长期使用损耗,通常会出现指示不准确的问题,因此需要进行维护调整,使其指示精度满足系统指标要求。通常的做法是通过修改软件来调整指示精度,这实际上并没有从根本上解决这一问题。
技术实现思路
本专利技术的目的是公开一种采用动态链接库进行仿真系统硬件控制隔离的方法;将与具体的硬件控制技术相关的硬件控制软件部分实现为动态链接库,从而实现与硬件控制通用代码的隔离,一方面使通用代码可以重用,另一个更重要的方面是使动态链接库具有非常简洁的导出接口,可以使硬件开发人员摆脱琐碎的集成协议、规约带来的负担而集中于硬件本身技术的开发,这非常有利于硬件控制的独立开发、特别是工程外包。此外,硬件设备由于老化或长期使用损耗,通常会出现指示不准确的问题,本专利技术也将解决这一硬件设备交付后的维护问题。本专利技术所述的一种采用动态链接库进行仿真系统硬件控制隔离的方法,其技术解决方案:包括硬件设备(110),一台或多台硬件计算机(121),一台或多台仿真计算机(122);所述硬件设备(110)与硬件计算机(121)相联,所述硬件计算机(121)和仿真计算机(122)通过以太网络(180)相联;所述的硬件计算机(121)中运行硬件程序(131);所述的仿真计算机(122)中运行仿真程序(132);硬件计算机(121)和仿真计算机(122)中还包括硬件访问传输系统(14A,14B,以下称访问传输系统)、硬件配置文件(15A,15B)和传输配置文件(16A,16B);所述硬件程序(131)是直接或间接对硬件设备(110)进行采样获取采样值和/或根据驱动值对硬件设备(110)进行驱动的程序;所述仿真程序(132)是使用硬件程序(131)产生的采样值和/或产生对硬件设备(110)进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为硬件控制量,以下也称控制量;所述硬件控制量被划分为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;所述控制量标识符采用二维标注法(也称二维标识符),具体形式为:ri(i,j)表示连续输入量,ro(i,j)表示连续输出量,si(i,j)表示离散输入量,so(i,j)表示离散输出量,其中i(大于或等于0)为面板号,j(大于或等于0)为局部于面板i上的控制量号;硬件程序(131)和仿真程序(132)通过访问传输系统(14A,14B)进行硬件控制量的访问和传输;所述硬件配置文件(15A,15B)列出控制量的二维标识符,作为所述访问传输系统(14A,14B)确定硬件控制量的依据;所述传输配置文件(16A,16B)定义硬件控制量的接收和发送路由,作为所述访问传输系统(14A,14B)确定硬件控制量接收和发送的依据;其特征在于,所述硬件程序(131)被划分成通用的上位控制程序(171)及存储在硬盘上的精度表集合(170),以及与具体硬件控制技术相关的下位控制动态链接库(DynamicLinkLiberary)(172)(以下称下位动态库);所述上位控制程序(171)是可独立运行的可执行程序,为所述下位动态库(172)提供硬件控制所需要的微妙级定时时钟、连续输入量设置函数、连续输出量获取函数、离散输入量设置函数、离散输出量获取函数;所述下位动态库(172)导出三个接口函数:初始化接口Init,退出接口Exit,硬件控制接口Update;所述精度表文件集(170)是存储在硬盘目录LookupTables下的一系列文本文件,每个文本文件称为精度表文件,每个精度表文件包括n行文本(n大于或等于0),每行称为插值行,由一个(x_val,y_val)值对构成,其中x_val,y_val表示为浮点数形式;一个精度表文件的所有插值行的x_val值构成x列,所有插值行的y_val值构成y列;对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab;对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab;上位控制程序(171)启动后,所有的精度表文件被读入内存,称为精度表;对连续输入量ri(i,j)的精度表,给定一个y列的值y_val,采用线性插值方法可获得对应x列的值,该插值过程和/或插值结果记为interp_ri(i,j,y_val);对连续输出量ro(i,j)的精度表,给定一个x列的值x_val,按线性插值可获得对应y列的值,该插值过程和/或插值结果记为interp_ro(i,j,x_val);若精度表为空(即行数为0的插值表),规定interp_ri(i,j,y_val)返回y_val,interp_ro(i,j,x_val)返回x_val;所述上位控制程序(171)和所述下位动态库(172)协作完成对硬件控制量的采用和驱动,具体协作控制过程如下:步骤1,上位控制程序(171)加载访问传输系统(14A);访问传输系统(14A)执行如下操作:步骤1.1,对硬件配置文件(15A,15B)进行语法、语义分析,在内存创建完全反映其信息的数据结构及其它派生数据结构;步骤1.2,对传输配置文件(16A,16B)进行语法、语义分析,在内存创建完全反映其信息的的数据结构;步骤1.3,访问传输系统(14A,14B)在一个独立线程下循环执行自动更新模块(205),完成上位控制程序(171)传输数据(17A,17B)的网络收发操作,并为上位控制程序(171)提供访问硬件控制量的访问接口(211);步骤2,上位控制程序(171)执行加载精度表文件集(170)操作本文档来自技高网...

【技术保护点】
一种采用动态链接库进行仿真系统硬件控制隔离的方法,其特征在于:包括硬件设备(110),一台或多台硬件计算机(121),一台或多台仿真计算机(122);所述硬件设备(110)与硬件计算机(121)相联;所述硬件计算机(121)和仿真计算机(122)通过以太网络(180)相联;所述的硬件计算机(121)中运行硬件程序(131);所述的仿真计算机(122)中运行仿真程序(132);硬件计算机(121)和仿真计算机(122)中还包括硬件访问传输系统(14A,14B)、硬件配置文件(15A,15B)和传输配置文件(16A,16B);所述硬件程序(131)是直接或间接对硬件设备(110)进行采样获取采样值和/或根据驱动值对硬件设备(110)进行驱动的程序;所述仿真程序(132)是使用硬件程序(131)产生的采样值和/或产生对硬件设备(110)进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为硬件控制量,以下也称控制量;所述硬件控制量被划分为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;所述控制量标识符采用二维标注法,具体形式为:ri (i, j)表示连续输入量,ro (i, j) 表示连续输出量,si (i, j) 表示离散输入量,so (i, j) 表示离散输出量,其中i(大于或等于0)为面板号, j(大于或等于0)为局部于面板i上的控制量号;硬件程序(131)和仿真程序(132)通过访问传输系统(14A,14B)进行硬件控制量的访问和传输;所述硬件配置文件(15A,15B)列出控制量的二维标识符,作为所述访问传输系统(14A,14B)确定硬件控制量的依据;所述传输配置文件(16A,16B)定义硬件控制量的接收和发送路由,作为所述访问传输系统(14A,14B)确定硬件控制量接收和发送的依据;所述硬件程序(131)被划分成通用的上位控制程序(171)及存储在硬盘上的精度表集合(170),以及与具体硬件控制技术相关的动态链接库(Dynamic Link Liberary)(172)(以下称下位动态库);所述上位控制程序(171)是可独立运行的可执行程序,为所述下位动态库(172)提供硬件控制所需要的微妙级定时时钟、连续输入量设置函数、连续输出量获取函数、离散输入量设置函数、离散输出量获取函数;所述下位动态库(172)导出三个接口函数:初始化接口Init,退出接口Exit,硬件控制接口Update;所述精度表文件集(170)是存储在硬盘目录LookupTables下的一系列文本文件,每个文本文件称为精度表文件,每个精度表文件包括n行文本(n大于或等于0),每行称为插值行,由一个(x_val, y_val)值对构成, 其中x_val, y_val表示为浮点数形式;一个精度表文件的所有插值行的x_val值构成x列,所有插值行的y_val值构成y列;对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab; 对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab; 上位控制程序(171)启动后,所有的精度表文件被读入内存,称为精度表;对连续输入量ri(i,j)的精度表, 给定一个y列的值y_val, 采用线性插值方法可获得对应x列的值, 该插值过程和/或插值结果记为interp_ri(i,j, y_val);对连续输出量ro(i,j)的精度表, 给定一个x列的值x_val, 按线性插值可获得对应y列的值, 该插值过程和/或插值结果记为interp_ro(i,j, x_val);若精度表为空(即行数为0的插值表),规定interp_ri(i,j, y_val)返回y_val, interp_ro(i,j, x_val)返回x_val;所述上位控制程序(171)和所述下位动态库(172)协作完成对硬件控制量的采用和驱动,具体协作控制过程如下:步骤1,上位控制程序(171)加载访问传输系统(14A);访问传输系统(14A)执行如下操作:步骤1.1, 对硬件配置文件(15A,15B)进行语法、语义分析,在内存创建完全反映其信息的数据结构及其它派生数据结构;步骤1.2,对传输配置文件(16A,16B)进行语法、语义分析,在内存创建完全反映其信息的的数据结构;步骤1.3,访问传输系统(14A,14B...

【技术特征摘要】
1.一种采用动态链接库进行仿真系统硬件控制隔离的方法,其特征在于:包括硬件设备(110),一台或多台硬件计算机(121),一台或多台仿真计算机(122);所述硬件设备(110)与硬件计算机(121)相联;所述硬件计算机(121)和仿真计算机(122)通过以太网络(180)相联;所述的硬件计算机(121)中运行硬件程序(131);所述的仿真计算机(122)中运行仿真程序(132);硬件计算机(121)和仿真计算机(122)中还包括硬件访问传输系统(14A,14B)、硬件配置文件(15A,15B)和传输配置文件(16A,16B);所述硬件程序(131)是直接或间接对硬件设备(110)进行采样获取采样值和/或根据驱动值对硬件设备(110)进行驱动的程序;所述仿真程序(132)是使用硬件程序(131)产生的采样值和/或产生对硬件设备(110)进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为硬件控制量,以下也称控制量;所述硬件控制量被划分为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;所述控制量标识符采用二维标注法,具体形式为:ri(i,j)表示连续输入量,ro(i,j)表示连续输出量,si(i,j)表示离散输入量,so(i,j)表示离散输出量,其中i(大于或等于0)为面板号,j(大于或等于0)为局部于面板i上的控制量号;硬件程序(131)和仿真程序(132)通过访问传输系统(14A,14B)进行硬件控制量的访问和传输;所述硬件配置文件(15A,15B)列出控制量的二维标识符,作为所述访问传输系统(14A,14B)确定硬件控制量的依据;所述传输配置文件(16A,16B)定义硬件控制量的接收和发送路由,作为所述访问传输系统(14A,14B)确定硬件控制量接收和发送的依据;所述硬件程序(131)被划分成通用的上位控制程序(171)及存储在硬盘上的精度表集合(170),以及与具体硬件控制技术相关的动态链接库(DynamicLinkLiberary)(172)(以下称下位动态库);所述上位控制程序(171)是可独立运行的可执行程序,为所述下位动态库(172)提供硬件控制所需要的微妙级定时时钟、连续输入量设置函数、连续输出量获取函数、离散输入量设置函数、离散输出量获取函数;所述下位动态库(172)导出三个接口函数:初始化接口Init,退出接口Exit,硬件控制接口Update;所述精度表文件集(170)是存储在硬盘目录LookupTables下的一系列文本文件,每个文本文件称为精度表文件,每个精度表文件包括n行文本(n大于或等于0),每行称为插值行,由一个(x_val,y_val)值对构成,其中x_val,y_val表示为浮点数形式;一个精度表文件的所有插值行的x_val值构成x列,所有插值行的y_val值构成y列;对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab;对每个连续输入量ri(i,j),其精度表文件名为ri(i,j).tab;上位控制程序(171)启动后,所有的精度表文件被读入内存,称为精度表;对连续输入量ri(i,j)的精度表,给定一个y列的值y_val,采用线性插值方法可获得对应x列的值,该插值过程和/或插值结果记为interp_ri(i,j,y_val);对连续输出量ro(i,j)的精度表,给定一个x列的值x_val,按线性插值可获得对应y列的值,该插值过程和/或插值结果记为interp_ro(i,j,x_val);若精度表为空(即行数为0的插值表),规定interp_ri(i,j,y_val)返回y_val,interp_ro(i,j,x_val)返回x_val;所述上位控制程序(171)和所述下位动态库(172)协作完成对硬件控制量的采用和驱动,具体协作控制过程如下:步骤1,上位控制程序(171)加载访问传输系统(14A);访问传输系统(14A)执行如下操作:步骤1.1,对硬件配置文件(15A,15B)进行语法、语义分析,在内存创建完全反映其信息的数据结构及其它派生数据结构;步骤1.2,对传输配置文件(16A,16B)进行语法、语义分析,在内存创建完全反映其信息的的数据结构;步骤1.3,访问传输系统(14A,14B)在一个独立线程下循环执行自动更新模块(205),完成上位控制程序(171)传输数据(17A,17B)的网络收发操作,并为上位控制程序(171)提供访问硬件控制量的访问接口(211);步骤2,上位控制程序(171)执行加载精度表文件集(170)操作,把硬盘上所有精度表文件的内容读入到内存;步...

【专利技术属性】
技术研发人员:张志春张继夫赵秀影赵振鹏步健
申请(专利权)人:中国人民解放军空军航空大学军事仿真技术研究所
类型:发明
国别省市:吉林;22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1