CN104267609B - 一种仿真系统硬件控制量访问传输的方法 - Google Patents

一种仿真系统硬件控制量访问传输的方法 Download PDF

Info

Publication number
CN104267609B
CN104267609B CN201410014951.4A CN201410014951A CN104267609B CN 104267609 B CN104267609 B CN 104267609B CN 201410014951 A CN201410014951 A CN 201410014951A CN 104267609 B CN104267609 B CN 104267609B
Authority
CN
China
Prior art keywords
hardware
access
profile
program
control amount
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
Application number
CN201410014951.4A
Other languages
English (en)
Other versions
CN104267609A (zh
Inventor
侯宇航
李友毅
何昀
赵秀影
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jilin Tianyi Simulation Technology Co., Ltd
Original Assignee
Military Simulation Technical Institute Of Air Force Aviation University Of Chinese People's Liberation Army
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Military Simulation Technical Institute Of Air Force Aviation University Of Chinese People's Liberation Army filed Critical Military Simulation Technical Institute Of Air Force Aviation University Of Chinese People's Liberation Army
Priority to CN201410014951.4A priority Critical patent/CN104267609B/zh
Publication of CN104267609A publication Critical patent/CN104267609A/zh
Application granted granted Critical
Publication of CN104267609B publication Critical patent/CN104267609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种仿真系统硬件控制量访问传输方法,包括硬件设备、硬件计算机、仿真计算机、以太网络、访问传输系统、硬件配置文件和传输配置文件。依据差异部分和通用部分相分离的发明目标,访问传输系统可不做任何修改地应用于任何仿真系统,具有通用性;硬件配置文件和传输配置文件分离差异性,依赖于特定仿真系统的硬件设备和硬件控制量传输需求。对于新的仿真系统,只需通过定义硬件配置文件和传输配置文件这两个配置文件,就可实现新的仿真系统硬件控制量的访问传输任务,避免了重复性劳动和相关项目资源消耗,可大大提高工程开发效率和产品质量。

Description

一种仿真系统硬件控制量访问传输的方法
技术领域
本发明涉及仿真硬件控制及通信技术领域,特别是涉及一种可应用于仿真系统的涉及硬件控制量的访问及通信传输的方法。
背景技术
在飞行模拟器仿真、电站仿真等包括人在回路的仿真系统中,会涉及到人对设备的操纵、设备对仿真结果的反映,对设备硬件的采集、驱动、通信传输一直是实现此类仿真系统的一个重要方面。此类仿真系统,必然涉及两类程序:硬件程序和仿真程序。硬件程序是实现对设备硬件进行采样、驱动的程序;仿真程序是使用硬件程序的采样值、生成硬件程序所需的设备硬件驱动值、通常完成特定仿真任务的程序。从目前公开的方法看,在设备硬件的访问、通信传输方面还没有一个规范的方法可以依据。通常的作法是,硬件开发人员对特定设备进行改造,实现硬件程序,完成设备硬件的采集、驱动,并定义出特定的设备控制格式,通常是字节、bit位等针对具体硬件设备改造技术的底层描述;然后网络开发人员对这一特定的格式定义网络传输数据包,把这些字节、bit位通过网络传输在硬件程序和仿真程序之间传输;最后,仿真开发人员要在仿真程序中接收这些特定的字节、bit位,对其按位解析,理解硬件状态;硬件开发人员同样需要接收、解析来自仿真程序的字节、bit位。这种方法的不足主要表现在:一是基于字节、bit位的底层描述不够直观,增大了仿真开发人员、硬件开发人员对硬件状态解析的工作量和错误率;二是如果不同的仿真程序具有不同的设备硬件控制需求,则通常需要定义不同的通信数据格式;三是由于不同仿真系统硬件设备的固有差异,需要对通信数据格式进行重定义;四是当一个硬件设备被调整到另一台设备控制计算机时也会引发对通信数据格式的修改;五是当仿真系统因硬件设备更新需要升级时,会引发对通信数据格式的修改;六是通信代码固化于硬件程序、仿真程序中,造成通信代码重复开发,而且当通信方的网络分布发生改变时,需要对硬件程序、仿真程序的相关通信代码进行修改。以上原因导致的通信数据格式的差异和修改,常常引发通信方因通信数据格式的不一致而造成开发、调试、集成成本的增加;通信代码固化于硬件程序、仿真程序中,使通信代码无法重用,造成相似源程序的重复性开发。这种重复性项目资源消耗,在不同的仿真项目中周而复始地出现,其根源是不同仿真系统硬件设备天然存在的固有差异。只有把差异部分从通用部分分离出来,才能达到解决问题的最佳有效。
发明内容
为了解决上述硬件设备采集、驱动、通信传输方式的不足,本发明的目的是公开一种仿真系统硬件控制量访问传输方法。一种较字节、bit位的底层描述更为直观、简洁、规范的硬件控制量描述方法,以便于硬件开发人员、仿真开发人员更容易地识别硬件控制量;以便硬件开发人员、仿真开发人员能够方便地使用该方法对硬件进行访问或控制;可以有效地解决通信数据格式的不一致性问题和通信数据格式的修改问题,使硬件控制量的通信传输变得十分容易;将差异部分从通用部分中分离,使其具有通用性,可在不同的仿真系统中被重复使用。为实现上述目的,本发明的技术解决方案如下:
一种仿真系统硬件控制量访问传输方法,包括硬件设备,一台或多台硬件计算机,一台或多台仿真计算机;硬件计算机和仿真计算机统称为主机;所述硬件设备与硬件计算机相联,所述硬件计算机和仿真计算机通过以太网络相联;所述的硬件计算机中运行硬件程序;所述的仿真计算机中运行仿真程序;所述硬件程序是直接或间接对硬件设备进行采样获取采样值和/或根据驱动值对硬件设备进行驱动的程序;所述仿真程序是使用硬件程序产生的采样值和/或产生对硬件设备进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为硬件控制量,以下简称控制量;所述控制量被划分为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;
其特征在于,硬件计算机和仿真计算机中还包括硬件访问传输系统、硬件配置文件和传输配置文件;
硬件程序和仿真程序通过访问传输系统进行硬件控制量的访问和传输;硬件程序和仿真程序称为访问传输系统的客户程序;所述访问是指设置硬件控制量的值、获取硬件控制量的值,还可包括获取硬件控制量的数量;所述传输是指将硬件控制量的值从一个客户程序传输到另一个客户程序;
所述硬件配置文件用于定义硬件控制量标识符,还可包括值域范围;所述控制量标识符用于唯一地确定控制量,必须为仿真系统内的每个控制量都定义一个标识符;
所述传输配置文件用于定义硬件控制量的接收配置、发送配置及其它与传输相关的信息;所述发送配置用于定义发送路由;所述接收配置、发送配置使用IP地址、端口或其它可确定IP地址、端口的数据表达进行定义;
每个硬件程序和仿真程序对应一个访问传输系统、一个硬件配置文件、一个传输配置文件;所有客户程序的访问传输系统是完全相同的;所有客户程序的硬件配置文件的语法格式和有效内容是完全一致的;所有客户程序的传输配置文件的语法格式是完全一致的,有效内容通常是不一致的;
每台主机运行一个或多个客户程序;
访问传输系统提供的编程接口包括进行访问接口,还可包括初始化接口、传输接口和获取控制量个数的枚举接口;
访问传输系统具有通用性,可不做任何修改地应用于任何仿真系统,通过配置新的硬件配置文件、传输配置文件就可完成新的仿真系统的控制量的访问和传输。
访问传输系统可实现为静态库、动态库或组件;
所述硬件控制量访问传输方法步骤如下:
步骤1,定义硬件配置文件;
步骤2,按照客户程序之间的硬件控制量传输关系,定义传输配置文件;
步骤3,访问传输系统的初始化;
访问传输系统执行的初始化操作包括:
a)对硬件配置文件进行语法、语义分析,在内存创建完全反映其信息的数据结构及其它派生数据结构;
b)对传输配置文件进行语法、语义分析,在内存创建完全反映其信息的的数据结构;
以下步骤对硬件配置文件、传输配置文件信息的引用都是指对其内存数据结构相关信息的引用;
步骤4,硬件程序产生输入量的采样值,通过访问接口,把采样值传输给访问传输系统;
步骤5,访问传输系统执行发送操作,所述发送操作步骤如下:
a)生成传输数据包;
b)按照传输配置文件定义的发送配置发送传输数据包;
步骤6,访问传输系统执行接收操作,所述接收操作步骤如下:
a)按照硬件传输配置文件定义的接收配置,接收传输数据包;
b)执行数据包解析,取得驱动值;
步骤7,硬件程序通过访问接口取得驱动值,对硬件设备进行驱动;
步骤8,访问传输系统执行接收操作,所述接收操作步骤如下:
a)按照传输配置文件定义的接收配置,接收传输数据包;
b)执行数据包解析,取得采样值;
步骤9,仿真程序通过访问接口取得采样值;
步骤10,仿真程序完成仿真任务,产生输出量的驱动值,通过访问接口把驱动值传输给访问传输系统;
步骤11,访问传输系统执行发送操作,所述发送操作步骤如下;
a)生成传输数据包;
b)按照传输配置文件的发送配置发送传输数据包;
根据本发明的实施例,所述控制量标识符采用二维表示法,具体形式如下:
ri (面板号, 面板局部控制量号):连续输入量;
ro (面板号, 面板局部控制量号):连续输出量;
si (面板号, 面板局部控制量号):离散输入量;
so (面板号, 面板局部控制量号):离散输出量;
在二维标注法的编程接口实现上,可以采用紧缩二维索引来提高二维标注法的存储效率和访问时间效率。
根据本发明的实施例,访问传输系统的访问接口在源程序中可用做左值。
根据本发明的实施例,所述离散量的状态由基于0的连续整数表示,并可通过访问传输系统的访问接口取得这些值;
根据本发明的实施例,所述访问传输系统提供如下C++语言形式的接口:
(1)初始化接口包括:
a)void rsio_init();
(2)访问接口
a)double& ri(int i, int j);
返回访问控制量ri(i, j)的引用;
其中,i为面板号,j为面板局部硬件控制量号,以下i,j的含义同;
b)double& ro(int i, int j);
返回访问控制量ro(i, j)的引用;
c)unsigned char& si(int i, int j);
返回访问控制量si(i, j)的引用;
d)unsigned char& so(int i, int j);
返回访问控制量so(i, j)的引用;
e)double& ri(int k);
返回第k个连续输入量的引用;
其中,k为全局控制量号,全局控制量号为按照控制量标识符面板号优先、面板号和面板局部控制量号从小到到大的顺序依次排列为从0开始的连续递增的整数,以下k的含义同;
f)double& ro(int k);
返回访问第k个连续输出量的引用;
g)unsigned char& si(int k);
返回访问第k个离散输入量的引用;
h)unsigned char& so(int k);
返回访问第k个离散输出量的引用;
(3)枚举接口:
a)int ri_cnt ();
返回连续输入量数量;
b)int ro_cnt ();
返回连续输出量数量;
c)int si_cnt ();
返回离散输入量数量;
d)int so_cnt ();
返回离散输出量数量;
(4)传输接口
a)void s_update();
实现硬件控制量发送操作;
b)void r_update();
实现硬件控制量接收操作。
有益效果:一、本发明提供了硬件控制量访问传输方法,包括硬件设备,硬件控制计算机,仿真开发计算机与硬件设备和以太网络连接;所述的硬件控制计算机中运行硬件控制程序;仿真开发计算机运行仿真开发程序;
硬件控制计算机,仿真开发计算机是一台计算机或是多台计算机,硬件访问传输系统、仿真访问传输系统同时支持同一个仿真系统的多台计算机内的多个不同的客户程序,或在同一台计算机上同时运行多个客户程序。
使用控制量标识符表示法替代字节、bit位,并使用访问传输系统实现了控制量标识符表示法。在本发明的实施例中,控制量标识符采用二维表示法,通过紧缩二维索引解决简洁、方便与存储效率和访问时间效率之间的矛盾。控制量标识符表示法给出了一种直观、简洁、规范的硬件控制量描述方法,它克服了基于字节、bit位的底层描述的局限,使硬件开发人员、仿真开发人员可以无二义性地、极方便地识别硬件控制量,可简洁、方便地在源程序中使用控制量标识符对硬件控制量进行访问,避免了基于字节、bit位解析的低效和易错;控制量标识符表示法也可以用于技术文档描述和系统需求描述,消除文字描述的不精确性;ri、ro、si、so的使用,可以非常容易地识别硬件控制量的类型,一维、二维下标的使用,可以非常容易地在面板图中定位硬件控制量,无论对于提高源程序的可阅读性、还是技术文档的可阅读性,都是十分有益的。
二、通过配置新的硬件配置文件,可以方便地确定仿真系统内的硬件控制量需求,并能快速适应硬件控制量的变化,因为硬件控制量的变化只需变更硬件配置文件。
三、通过硬件配置文件,使所有客户程序的通信数据格式得以统一,可以有效地解决通信数据格式的不一致性问题和通信数据格式的修改问题,消除了通信数据格式的维护负担。
四、通过硬件传输配置文件、仿真传输配置文件可以方便地确定仿真系统内客户之间的通信结构,并能快速适应这种通信结构的变化,因为通信结构的变化只需变更硬件传输配置文件、仿真传输配置文件,而通常采用的在源程序中嵌入这些通信语句的方法则必须修改源程序。
五、通过硬件配置文件、硬件传输配置文件、仿真传输配置文件,实现了将差异部分从通用部分中分离的目标,使访问传输系统具有通用性,可在不同的仿真系统中被重复使用。差异部分为硬件配置文件和传输配置文件,通用部分为访问传输系统本身。对于新的仿真系统,只需通过修改硬件配置文件和传输配置文件这两个配置文件,就可实现另一个仿真系统对硬件控制量的访问和网络传输任务,而且不会出现差错,因为关键的代码已由访问传输系统实现。本发明的方法有效地避免了重复性劳动和相关项目资源消耗,对提高仿真系统的相关工程的开发效率和相关产品质量具有积极作用。
附图说明
图1是本发明的系统示意图。
图2是访问传输系统的示意图。
图3是根据硬件配置文件(15)形成的内存主要数据结构图。
图4是根据传输配置文件(16)形成的内存主要数据结构图。
图5是初始化模块(201)的程序流程图。
图6是自动更新模块(205)的程序流程图。
图7是接收更新模块(207)的程序流程图。
图8是发送更新模块(306)的程序流程图。
具体实施方式
下面结合附图和实施方式对本发明作进一步说明。
一种仿真系统硬件控制量访问传输方法,如图1所示,包括硬件设备110,一台或多台硬件计算机121,一台或多台仿真计算机122;硬件计算机121和仿真计算机122统称为主机;所述硬件设备110与硬件计算机121相联,所述硬件计算机121和仿真计算机122通过以太网络180相联;所述的硬件计算机121中运行硬件程序131;所述的仿真计算机122中运行仿真程序132;所述硬件程序131是直接或间接对硬件设备110进行采样获取采样值和/或根据驱动值对硬件设备110进行驱动的程序;所述仿真程序132是使用硬件程序131产生的采样值和/或产生对硬件设备110进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为硬件控制量,以下简称控制量;所述硬件控制量被划分为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;
其特征在于,硬件计算机121和仿真计算机122中还包括硬件访问传输系统14A、14B,以下称访问传输系统、硬件配置文件15A、15B和传输配置文件16A、16B;
硬件程序131和仿真程序132通过访问传输系统14A、14B进行硬件控制量的访问和传输;硬件程序131和仿真程序132称为访问传输系统14A、14B的客户程序;所述访问是指设置硬件控制量的值、获取硬件控制量的值,还可包括获取硬件控制量的数量;所述传输是指将硬件控制量的值从一个客户程序传输到另一个客户程序;
所述硬件配置文件15A、15B用于定义硬件控制量标识符,还可包括值域范围;所述控制量标识符用于唯一地确定控制量,必须为仿真系统内的每个控制量都定义一个标识符;
在本实施例中,所述控制量标识符采用二维表示法,具体形式如下:
ri (面板号, 面板局部控制量号):连续输入量;
ro (面板号, 面板局部控制量号):连续输出量;
si (面板号, 面板局部控制量号):离散输入量;
so (面板号, 面板局部控制量号):离散输出量;
在二维标注法的编程接口实现上,可以采用紧缩二维索引412、422、432、442来提高二维标注法的存储效率和访问时间效率。
在本实施例中,所述硬件配置文件15A、15B的语法如下:
m_seq
k_seq
m_seq: m| m m_seq
k_seq: k| k k_seq
m:<ri (i, j):real_type>|<ri(i, j)> |
<ro (i, j):real_type>|<ro(i, j)>
k:<si (i, j):max_state>|<si(i, j)>|
<so (i, j):max_state>|<so(i, j)>
i:非负整数
j:非负整数
real_type:double|float
max_state:非负整数
所述传输配置文件16A、16B用于定义硬件控制量的接收配置、发送配置及其它与传输相关的信息;所述发送配置用于定义发送路由;所述接收配置、发送配置使用IP地址、端口或其它可确定IP地址、端口的数据表达进行定义;
在本实施例中,所述传输配置文件16A、16B的语法如下:
<update:period>
<recv>r_seq</recv>
<send:ri >s_seq</send:ri >
<send:si >s_seq</send:si >
<send:ro >s_seq</send:ro >
<send:so >s_seq</send:so >
<send:ri,si>s_seq</send:ri,si>
<send:ro,so>s_seq</send:ro,so>
period:-1|ms
ms: 非0整数
r_seq: r| r r_seq
s_seq: s| s s_seq
r:< local_ip,local_port>
s:< local_ip,local_port><remote_ip,remote_port>
local_ip: ip
remote _ip: ip
local_port: port
remote _port: port
ip:0.0.0.0至255.255.255.255
port:0至65536
每个硬件程序131和仿真程序132对应一个访问传输系统14A、14B、一个硬件配置文件15A、15B、一个传输配置文件16A、16B;所有客户程序131、132的访问传输系统14A、14B是完全相同的;所有客户程序131、132的硬件配置文件15A、15B的语法格式和有效内容是完全一致的;所有客户程序131、132的传输配置文件16A、16B的语法格式是完全一致的,有效内容通常是不一致的;
每台主机运行一个或多个客户程序;
如图2所示,所述访问传输系统14以外部配置文件15、16为输入,包括初始化模块201、硬件配置解析模块202、传输配置解析模块203、控制量存储区创建模块204、自动更新模块205、发送更新模块206、接收更新模块207、数据包生成模块208、数据包解析模块209、控制量访问模块210;
所述访问传输系统14还包括进行访问接口211、初始化接口210、传输接口212和获取控制量个数的枚举接口213;
在本实施例中,C++语言形式的接口实现为:
(1)初始化接口210: 由初始化模块201实现
a)void rsio_init();
(2)访问接口(211):由控制量访问模块210实现
a)double& ri(int i, int j);
返回访问控制量ri(i, j)的引用;
其中,i为面板号,j为面板局部硬件控制量号,以下i,j的含义同;
b)double& ro(int i, int j);
返回访问控制量ro(i, j)的引用;
c)unsigned char& si(int i, int j);
返回访问控制量si(i, j)的引用;
d)unsigned char& so(int i, int j);
返回访问控制量so(i, j)的引用;
e)double& ri(int k);
返回第k个连续输入量的引用;
其中,k为全局控制量号,全局控制量号为按照控制量标识符面板号优先、面板号和面板局部控制量号从小到到大的顺序依次排列为从0开始的连续递增的整数,以下k的含义同;
全局控制量号主要是支持硬件控制量循环遍历,通常用于控制量初始化赋值;在源程序中利用循环语句对控制量进行遍历设置初始化值0的C++语句示例为:
int n=ri_cnt(); //取连续输入控制量总数
while(n--) ri(n)=0;//每个连续输入控制量置0
f)double& ro(int k);
返回访问第k个连续输出量的引用;
g)unsigned char& si(int k);
返回访问第k个离散输入量的引用;
h)unsigned char& so(int k);
返回访问第k个离散输出量的引用;
(3)枚举接口213:由控制量访问模块210实现
a)int ri_cnt ();
返回连续输入量数量;
b)int ro_cnt ();
返回连续输出量数量;
c)int si_cnt ();
返回离散输入量数量;
d)int so_cnt ();
返回离散输出量数量;
(4)传输接口212
a)void s_update();
由发送更新模块206实现为硬件控制量发送操作;
b)void r_update();
由接收更新模块207实现为硬件控制量接收操作。
本实施例,访问传输系统14的访问接口211在源程序中可用做左值。
本实施例,所述离散量的状态由基于0的连续整数表示,并可通过访问传输系统14的访问接口211取得这些值;
比如,一个开关si(1,2)有三档,则依次表示为:
一档0,二档1,三档2。当开关si(1,2)处于二档时,在源程序中有语句:
x= si(1,2);
则x的值为2。显然,这种方法比使用bit位表示开关档位更方便易用。
所述初始化模块201执行如下步骤(如图5):
S601,调用硬件配置解析模块202解析硬件配置文件15以创建控制量配置内存映射400(如图3);
S602,调用传输配置解析模块203解析传输配置文件16以创建传输配置内存映射500(如图4);
S603,调用控制量存储区创建模块204创建控制量存储区411、421、431、441;
S604,若发送周期580>0,则为自动更新,发送周期580为自动更新周期,此时,创建线程,该线程循环调用自动更新模块205以实现数据传输自动更新。
所述控制量存储区创建模块204执行如下步骤:
S1,根据连续输入量数量410、430、420、440及其值域范围413、433、423、443申请控制量存储区411、431、421、441;
S2,置控制量存储区411、431、421、441无效;
所述自动更新模块205的执行如下步骤(如图6):
S701,调用接收更新模块207接收控制量;
S702,S703,每隔发送周期580,调用一次发送更新模块206发送控制量。
所述发送更新模块206的执行如下步骤(如图8):
S901,调用数据包生成模块208将控制量存储区411、421、431、 441压缩至连续压缩区buf的对应区段buf1,buf2,buf3, buf4;
S902,对发送配置520, 发送区段buf1;对发送配置530, 发送区段buf2;对发送配置540, 发送区段buf1, buf2;对发送配置550, 发送区段buf3;对发送配置560, 发送区段buf4;对发送配置570, 发送区段buf3, buf4;
所述接收更新模块207的执行如下步骤(如图7):
S801,对接收配置510的每一个配置项执行S802,S803, S804;
S802),接收传输数据包17B、17D;
S803,S804,若接收成功,则调用数据包解析模块209将传输数据包17B、17D解析至控制量存储区411、421、431、441。
所述传输数据包17A、17B、17C、17D由连续的数据块构成,以字节0xff标志所有数据块结束;数据块的类型和格式如下:
(1)连续量数据块
1个字节:块类型, 解释为unsigned char,
取值为1,连续输入量数据块,取值为2,连续输出量数据块;
N个字节:连续存储如下数据片段:
2个字节: 本数据片段第一个有效控制量序号idx1,解释为short,当idx1≥0时有效,当idx1<0时表示数据块结束;
2个字节: 本数据片段最后一个有效控制量序号idx2 (≥idx1), 解释为short;
M个字节: 连续存储序号从idx1至idx2的控制量,每个控制量的类型根据硬件配置文件301中定义的类型确定为doule或float;
(2)离散量数据块
1个字节:块类型, 解释为unsigned char,
取值为3, 离散输入量数据块,
取值为4, 离散输出量数据块;
N个字节:全部离散量,每个控制量的bit位连续存储,所需位数根据硬件配置文件15A、15B中定义的状态数确定,控制量的bit位全1表示无效控制量。
所述数据包生成模块208按照上述传输数据包17A、17B、17C、17D格式的定义,对连续量,只将控制量存储区421、441中的有效控制量存入传输数据包17A、17B、17C、17D,控制量的大小由值域范围413、 433确定;对离散量,将控制量存储区421、441中的所有控制量压缩至传输数据包,依据值域范围413、 433按连续bit位存储。
所述数据包解析模块209上述传输数据包17A、17B、17C、17D格式的定义,对传输数据包17A、17B、17C、17D进行解析,丢弃无效的控制量,以有效控制量对控制量存储区411、421、431、 441进行更新。
访问传输系统(14)具有通用性,可不做任何修改地应用于任何仿真系统,通过配置新的硬件配置文件15、传输配置文件16就可完成新的仿真系统的控制量的访问和传输。
访问传输系统14可实现为静态库、动态库或组件;
所述硬件控制量访问传输方法步骤如下:
步骤1,定义硬件配置文件15A、15B;
步骤2,按照客户程序之间的硬件控制量传输关系,定义传输配置文件16A、16B;
步骤3,访问传输系统14A、14B的初始化;
访问传输系统14A、14B执行初始化模块201;
当访问传输系统14A、14B实现为动态库或组件时,可在动态库或组件加载时调用初始化模块201执行初始化操作;而当访问传输系统14A、14B实现为静态库时,无法实现对初始化模块201的自动调用,必须在客户程序131、132中通过初始化接口210rs_init显式执行初始化模块201;
步骤4,硬件程序131产生输入量的采样值,通过访问接口211,把采样值传输给访问传输系统14A;访问接口211的调用形式为:
ri(i,j)=采样值;si(i,j)=采样值;
步骤5,访问传输系统14A执行发送操作,所述发送操作即调用发送更新模块206;
步骤6,访问传输系统14A执行接收操作,所述接收操作即调用接收更新模块207;
步骤7,硬件程序131通过访问接口211取得驱动值,对硬件设备进行驱动;访问接口211的调用形式为:
驱动值=ro(i,j);驱动值=so(i,j);
步骤8,访问传输系统14B执行接收操作,所述接收操作即调用接收更新模块207;
步骤9,仿真程序132通过访问接口211取得采样值;访问接口211的调用形式为:
采样值=ri(i,j);采样值=si(i,j);
步骤10,仿真程序132完成仿真任务,产生输出量的驱动值,通过访问接口211把驱动值传输给访问传输系统14B;访问接口211的调用形式为:
ro(i,j)=驱动值;so(i,j)=驱动值;
步骤11,访问传输系统14B执行发送操作,所述发送操作即调用发送更新模块206;
若在传输配置文件16A、16B中定义的发送周期大于0,则在初始化模块201的步骤S604创建线程,该线程循环调用自动更新模块205, 此时,步骤5、步骤11的发送更新模块206及步骤6、步骤8的接收更新模块207是由访问传输系统14A、14B通过自动更新模块205自动执行的;否则,必须在客户程序131、132中通过传输接口210的s_update显示执行发送更新模块206、r_update显示执行接收更新模块207。

Claims (4)

1.一种仿真系统控制量访问传输方法,包括硬件设备(110),一台或多台硬件计算机(121),一台或多台仿真计算机(122);硬件计算机(121)和仿真计算机(122)统称为主机;所述硬件设备(110)与硬件计算机(121)相联,所述硬件计算机(121)和仿真计算机(122)通过以太网络(180)相联;所述的硬件计算机(121)中运行硬件程序(131);所述的仿真计算机(122)中运行仿真程序(132);所述硬件程序(131)是直接或间接对硬件设备(110)进行采样获取采样值和/或根据驱动值对硬件设备(110)进行驱动的程序;所述仿真程序(132)是使用硬件程序(131)产生的采样值和/或产生对硬件设备(110)进行驱动的驱动值、通常完成特定仿真任务的程序;所述采样值和/或驱动值称为控制量;所述控制量为连续输入量、连续输出量、离散输入量、离散输出量四种类别;所述连续输入量是值域属于实数、由硬件设备输入到系统的控制量;所述连续输出量是值域属于实数、由系统输出到硬件设备的控制量;所述离散输入量是值域属于有限整数、由硬件设备输入到系统的控制量;所述离散输出量是值域属于有限整数、由系统输出到硬件设备的控制量;所述连续输入量和连续输出量统称为连续量;所述离散输入量和离散输出量统称为离散量;所述连续输入量和离散输入量统称为输入量;所述连续输出量和离散输出量统称为输出量;
其特征在于,硬件计算机(121)和仿真计算机(122)中还分别包括第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B),第一硬件配置文件(15A)、第二硬件配置文件(15B)和第一传输配置文件(16A)、第二传输配置文件(16B);
硬件程序(131)和仿真程序(132)分别通过第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B)进行控制量的访问和传输;硬件程序(131)和仿真程序(132)称为访问第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B)的客户程序;所述访问是指设置控制量的值、获取控制量的值,还可包括获取控制量的数量;所述传输是指将控制量的值从一个客户程序传输到另一个客户程序;
所述第一硬件配置文件(15A)、第二硬件配置文件(15B)用于定义控制量标识符,还可包括值域范围;所述控制量标识符用于唯一地确定控制量,必须为仿真系统内的每个控制量都定义一个标识符;
所述第一传输配置文件(16A)、第二传输配置文件(16B)用于定义控制量的接收配置、发送配置及其它与传输相关的信息;所述发送配置用于定义发送路由;所述接收配置、发送配置使用IP地址、端口或其它可确定IP地址、端口的数据表达进行定义;
每个所述硬件程序(131)和仿真程序(132)对应第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B),第一硬件配置文件(15A)、第二硬件配置文件(15B)和第一传输配置文件(16A)、第二传输配置文件(16B);所有客户的硬件程序(131)和仿真程序(132)的第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B)是完全相同的;所有客户的硬件程序(131)和仿真程序(132)的第一硬件配置文件(15A)、第二硬件配置文件(15B)的语法格式和有效内容是完全一致的;所有客户的硬件程序(131)和仿真程序(132)的第一传输配置文件(16A)、第二传输配置文件(16B)的语法格式是完全一致的,有效内容通常是不一致的;
每台主机运行一个或多个客户程序;
访问传输系统(14)提供的编程接口包括进行访问接口(211),还可包括初始化接口(210)、传输接口(212)和获取控制量个数的枚举接口(213);
访问传输系统(14)具有通用性,可用于任何仿真系统;
访问传输系统(14)可实现为静态库、动态库或组件;
所述控制量访问传输方法步骤如下:
步骤1,定义第一硬件配置文件(15A)、第二硬件配置文件(15B);
步骤2,按照客户程序之间的控制量传输关系,定义第一传输配置文件(16A)、第二传输配置文件(16B);
步骤3,第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B)的初始化;
第一硬件访问传输系统(14A)、第二硬件访问传输系统(14B)执行的初始化操作包括:
a)对第一硬件配置文件(15A)、第二硬件配置文件(15B)进行语法、语义分析,在内存创建完全反映其信息的数据结构及其它派生数据结构;
b)对第一传输配置文件(16A)、第二传输配置文件(16B进行语法、语义分析,在内存创建完全反映其信息的的数据结构;
以下步骤对第一硬件配置文件(15A)、第二硬件配置文件(15B)、第一传输配置文件(16A)、第二传输配置文件(16B)信息的引用都是指对其内存数据结构相关信息的引用;
步骤4,硬件程序(131)产生输入量的采样值,通过访问接口(211),把采样值传输给第一访问传输系统(14A);
步骤5,第一访问传输系统(14A)执行发送操作,所述发送操作步骤如下:
a) 生成第一传输数据包(17A);
b) 按照第一传输配置文件(16A)定义的发送配置发送传输数据包(17A);
步骤6,第一硬件访问传输系统(14A)执行接收操作,所述接收操作步骤如下:
按照第一传输配置文件(16A)定义的接收配置,接收传输数据包(17B);
执行数据包解析,取得驱动值;
步骤7,硬件程序(131)通过访问接口(211)取得驱动值,对硬件设备进行驱动;
步骤8,第二硬件访问传输系统(14B)执行接收操作,所述接收操作步骤如下:
第二传输配置文件(16B)定义的接收配置,接收传输数据包(17C);
数据包解析,取得采样值;
步骤9,仿真程序(132)通过访问接口(211)取得采样值;
步骤10,仿真程序(132)完成仿真任务,产生输出量的驱动值,通过访问接口(211)把驱动值传输给第二硬件访问传输系统(14B);
步骤11,第二硬件访问传输系统(14B)执行发送操作,所述发送操作步骤如下;
生成传输数据包(17D);
按照第二传输配置文件(16B)的发送配置发送传输数据包(17D)。
2.根据权利要求1所述的一种仿真系统控制量访问传输方法,其特征在于,所述控制量,标识符采用二维表示法,具体形式如下:
ri (面板号, 面板局部控制量号):连续输入量;
ro (面板号, 面板局部控制量号):连续输出量;
si (面板号, 面板局部控制量号):离散输入量;
so (面板号, 面板局部控制量号):离散输出量;
在二维标注法的编程接口实现上,采用第一紧缩二维索引(412)、第二紧缩二维索引(422)、第三紧缩二维索引(432)和第四紧缩二维索引(442)。
3.根据权利要求1或权利要求2所述的一种仿真系统控制量访问传输方法,其特征在于,访问传输系统(14)的访问接口(211)在源程序中可用做左值。
4.根据权利要求1或权利要求2所述的一种仿真系统控制量访问传输方法,其特征在于,所述离散量的状态由基于0的连续整数表示,并可通过访问传输系统(14)的访问接口(211)取得这些值。
CN201410014951.4A 2014-01-14 2014-01-14 一种仿真系统硬件控制量访问传输的方法 Active CN104267609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410014951.4A CN104267609B (zh) 2014-01-14 2014-01-14 一种仿真系统硬件控制量访问传输的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410014951.4A CN104267609B (zh) 2014-01-14 2014-01-14 一种仿真系统硬件控制量访问传输的方法

Publications (2)

Publication Number Publication Date
CN104267609A CN104267609A (zh) 2015-01-07
CN104267609B true CN104267609B (zh) 2019-03-29

Family

ID=52159137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410014951.4A Active CN104267609B (zh) 2014-01-14 2014-01-14 一种仿真系统硬件控制量访问传输的方法

Country Status (1)

Country Link
CN (1) CN104267609B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569827B (zh) * 2016-11-10 2020-02-21 中国人民解放军空军航空大学军事仿真技术研究所 一种采用动态链接库进行仿真系统硬件控制隔离的方法
CN109614332B (zh) * 2018-12-07 2021-11-02 中国航空工业集团公司洛阳电光设备研究所 一种硬件虚拟化分层建模方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079731A (en) * 1989-10-17 1992-01-07 Alcon Laboratories, Inc. Method and apparatus for process control validation
CN1360688A (zh) * 1999-05-25 2002-07-24 西尔弗布鲁克研究股份有限公司 用于访问互联网的方法和系统
CN1961525A (zh) * 2003-05-02 2007-05-09 吉瑞泰克有限公司 由动态数据报转换和要求的认证和加密方案通过移动式智能数据载体启动的普适的以用户为中心的网络安全
CN103270516A (zh) * 2010-08-18 2013-08-28 安全第一公司 用于安全保护虚拟机计算环境的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079731A (en) * 1989-10-17 1992-01-07 Alcon Laboratories, Inc. Method and apparatus for process control validation
CN1360688A (zh) * 1999-05-25 2002-07-24 西尔弗布鲁克研究股份有限公司 用于访问互联网的方法和系统
CN1961525A (zh) * 2003-05-02 2007-05-09 吉瑞泰克有限公司 由动态数据报转换和要求的认证和加密方案通过移动式智能数据载体启动的普适的以用户为中心的网络安全
CN103270516A (zh) * 2010-08-18 2013-08-28 安全第一公司 用于安全保护虚拟机计算环境的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
硬件控制规范化访问API的一种实现方法;何波玲;《哈尔滨师范大学自然科学学报》;20121231;第28卷(第3期);第51-56页

Also Published As

Publication number Publication date
CN104267609A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104932364B (zh) 一种Modbus通讯协议的OPC UA转换装置及方法
CN108667807A (zh) 一种基于监控云平台与网关的协议自适应方法及系统
CN102014118B (zh) 一种实现通用抄读多种电能表的方法
CN112311808B (zh) 一种Modbus协议数据向OPCUA地址空间自动映射的方法
CN110019635A (zh) 一种基于red-mos的煤矿信息化领域系统模型的构建方法
CN109948213A (zh) 一种基于fmi标准的协同仿真方法及装置
EP4009199A1 (en) Thermal-hydraulic three-dimensional real-time dynamic simulation method and system for nuclear power plant
CN109032860A (zh) 一种arinc429总线通用仿真系统及仿真方法
CN108073688A (zh) 一种数据迁移的方法及装置
CN102799510B (zh) 基于可重新配置组件的plc仿真器
CN104267609B (zh) 一种仿真系统硬件控制量访问传输的方法
CN108628729A (zh) 一种软件测试方法和软件测试客户端
CN106294155A (zh) 一种分布式i/o仿真控制测试方法、系统及仿真计算机
CN106371869A (zh) 一种智能变电站间隔层设备的iec61850配置软件实现方法
CN115794106A (zh) 一种轨道交通二进制协议数据配置式解析的方法及系统
CN106708764A (zh) 一种机载航电系统通用io处理系统
CN109557898A (zh) 一种用于各型无人机地面控制站的通用系统综合验证设备
CN108762765A (zh) 基于contiki系统的开发板程序编译下载方法
US8160843B2 (en) Device and method for planning a production unit
KR20150080997A (ko) 마크업 언어(Markup Language)를 이용한 다중 전술데이터링크 메시지 처리 방법
CN102752238A (zh) 一种通用网关设备以及物联网系统
CN109446146A (zh) 一种应用层通信协议的状态转换序列生成方法
CN105227407A (zh) 一种协议调试方法、装置及系统
CN101834876A (zh) 基于蓝牙、数据库与udp协议的分布式半物理仿真系统及其数据汇总和分发的方法
CN112286073A (zh) 一种用于电力系统闭环仿真的通信接口装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Hou Yuhang

Inventor after: Li Youyi

Inventor after: He Yun

Inventor after: Zhao Xiuying

Inventor before: Zhang Zhichun

Inventor before: Li Youyi

Inventor before: He Yun

Inventor before: Xu Kun

Inventor before: Zhang Wang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200630

Address after: Room 1606, building 9, xuantejiayuan, Shilibao North District, Chaoyang District, Beijing 100020

Patentee after: Zhang Zhiqiu

Address before: 130022 No. 2222 nanhu road, Jilin City, Changchun Province

Patentee before: MILITARY SIMULATION TECHNOLOGY RESEARCH INSTITUTE, AVIATION UNIVERSITY OF AIR FORCE OF PLA

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200812

Address after: No.777 Xiali Road, Changchun automobile economic and Technological Development Zone, Jilin Province

Patentee after: Jilin Tianyi Simulation Technology Co., Ltd

Address before: Room 1606, building 9, xuantejiayuan, Shilibao North District, Chaoyang District, Beijing 100020

Patentee before: Zhang Zhiqiu

TR01 Transfer of patent right