APP下载

数据字典在火控系统报文解析中的应用

2019-05-05王瑞雪张振华程子兵段笑笑

兵器装备工程学报 2019年4期
关键词:火控系统可扩展性配置文件

王瑞雪,张振华,张 宾,程子兵,段笑笑

(北方自动控制技术研究所, 太原 030006)

元数据是描述数据的数据,描述了资源信息所具有的根本特征信息,数据字典是一种元数据的管理系统,为元数据提供了一个集中存储空间。经常使用可扩展标记语言(XML)来描述元数据,将元数据描述集中存储生成数据字典。

参考文献就关于XML和数据字典的开发与应用进行了研究与探讨,其中有的针对XML文件在边境指挥信息系统领域、军事装配技术和武器装备保障领域中存储模型数据、实现数据格式互转和传输协议互通进行了研究。有的基于元数据描述语言构建了海量实验数据管理平台[1]、实现格式化数据链消息向结构化XML文档的转化[2]和消息字典[3]。有的在工业控制领域提出了多协议报文解析方法[4]、通用电文解析技术[5],在指挥信息系统领域设计了可变消息格式的报文解析工具,在多平台数据环境下设计了解析工具[6]。现在元数据和数据字典在指挥系统和工业等领域多有使用,虽然在国内的火控领域也提出了元数据和数据字典概念,但只是用于规范数据本身。

在炮兵压制武器领域,指挥信息系统报文变更、报文类型随炮兵各系列武器差异较大、弹种和设备扩展改进等导致的报文变更问题较为突出。首先,随着各级指挥信息系统报文不断优化变更(“067”报文协议2015年9月版和2016年8月版),导致炮兵压制武器火控系统报文协议进行适应性改进。其次,不同炮兵武器平台和不同系列火箭炮、身管炮火控系统往往开发了各自的报文编解码应用软件,导致编解码软件通用性差。最后,随着新型传感器的发展,火控系统中新增弹种和设备,也对火控系统报文解码提出了报文解析的可扩展性要求。

为了解决上述的3个问题,结合数据字典领域的当前研究现状,和数据字典可以将数据流分解为具有实际含义数据值的功能。采用XML描述报文数据结构和约束条件的方法,建立指挥信息系统报文变更、炮兵各系列武器平台火控系统不同以及弹种和设备扩展等原因导致的火控系统报文变更的通用报文解码方法。

1 协议信息数据结构

为了保证火控系统通信的安全可靠与实时性,经常使用CAN协议作为通信报文的传输协议。CAN通信报文的结构如图1所示。

图1 CAN报文结构

其中CAN报文由CAN报头与CAN数据组成。其中CAN报头由报文端口号等信息组成,报文数据项里包含真正需要传输的数据信息内容。一般都为显示为十六进制数的二进制原始数据,具有编码性质和内容“块”的特点,根据不同的通信协议,有不同的编码含义。

对于每一个火控系统数据元,都要对它的所有约束信息和火控系统协议数据的组织结构进行规范化定义。这些信息就是描述报文元数据结构的关键信息。包括元数据ID、元数据名称、元数据长度、长度单位、编码类型、编码名称和编码描述等内容。其中,元数据ID用于报文描述时确定元数据;元数据名称用于报文可视化组装过程,将数据信息注入,是元数据全局使用的标识;元数据长度用于确定元数据在报文中占据的数据长度,长度单位分为Byte和Bit两种(Byte是1个字节有8位,而Bit就是一位,是0或1);编码类型、编码名称和编码描述主要用于报文在可视化组装过程中,解析代码的自动生成过程。根据元数据名称,应用元数据组建火控系统数据池,包含了所有要用到的火控系统元数据。

由于炮兵压制武器领域存在的报文频繁变更问题,对元数据提出了可以进行动态添加、删除和修改的操作的需求。同时也要对火控系统数据元的约束信息和协议数据的组织结构进行描述和限制。考虑到这些需求,为了达到更好描述火控系统报文数据信息和方便对报文数据信息进行修改和扩展的目的,结合XML允许用户自定义所需标记、可进行无限扩展、定义任意复杂度结构等性质,采用XML文件描述对于火控系统元数据的所有约束信息和报文数据组织结构。

2 数据字典实现

根据第1节中的报文的数据结构,设计火控系统报文协议的XML描述格式,使用前需要事先编辑好XML配置文件,保存至本地,等待使用。

由于XML具有良好的可扩展性,XML非常适合用来描述元数据。采用XML文件描述元数据的约束信息和数据结构信息,这样做的优点是:数据字典结构清晰,具有良好的可维护性和可扩展性,而且在生成难度较低的同时具有很高的生成效率。下面以定位信息报文为例,展示存储数据字典的XML配置文件内容格式。

下面是XML配置文件的一个示例,主要展示了定位信息的XML描述,这段代码对报文里每个元数据的约束信息都清晰详细的进行了描述:

针对XML协议配置文件,引用TinyXML开源库,设计一种解析原始数据流的方法,将数据流与配置文件中的内容一一匹配,刷新数据池中的元数据值。流程如下:

1) 读取XML配置文件后,判断文件是否存在且格式正确,如果正确进入下一步,如果不正确,直接结束进程;

2) 读取报文标识位,计算报文类型ID,判断与XML配置文件中的默认报文ID是否一致,如果一致则进入下一步,如果不一致,则返回上一步,遍历报文标识位,匹配相应的报文配置段;

3) 校验报文字段的位置与长度,与元数据池中对应的元数据名的变量相对应进行复制,更新数据池中的元数据值。

3 解析工具的设计

报文解析工具由五个模块组成:数据读取模块、数据处理模块、读取XML配置文件模块、数据字典模块和结果显示模块。

各个组成模块的具体功能:

1) 数据读取模块:访问数据库,在线查询数据,将查询后的数据缓存到内存中,进入数据处理模块处理后解析;

2) 数据处理模块:判别原始数据中的伪报头与校验码,根据各个协议的具体要求,输出相应的数据结构;

3) 读取XML配置文件模块:XML配置文件是数据字典的存储形式,用来描述元数据模型,保存了对于元数据的所有约束信息和报文数据的组织结构,通过这个模块将XML文件读入;

4) 数据字典模块:数据处理模块输出的数据结构与读取XML配置文件模块中的报文数据信息进行匹配,同时与数据字典对应元数据进行匹配,将数据信息赋值给数据池中的元数据,向结果显示模块输出数据信息,完成二进制数据向可视化数据转化的解码工作;

5) 结果显示模块:将数据解析的结果信息显示在界面,将报文数据信息可视化。

Qt是一个用C++编写的跨平台开发框架,具有良好的跨平台界面开发软件,对象主要采用了信号和槽的通信方式,信号和槽机制可实现各模块间的松耦合,使用Qt编程可以增强软件的可扩展性和可移植性。

在开发时,采用Qt软件开发C++程序,使用QtCreator完成:使用MySQL与C++的接口函数操作数据库读取相应数据;对数据库中查询到的原始数据进行数据处理;调用数据字典方法;读取XML配置文件。采用QtDesigner设计用户界面,提高软件的人机交互性能。

4 验证

运行系统为Linux系统,软件为已完成的报文解析工具。

数据来源为已存储在数据库的CAN通信原始数据,是火控系统在正常工作状态下,各个单体相互通信的数据。

实验过程是:启动解析工具,选择查询条件参数,从数据库查找出信息后会在界面显示原始数据,选中待解析的一条数据,加载XML配置文件,进行匹配解析,将解析结果显示在界面。

功能检测:可扩展性,改变协议内容,如交换两个元数据的位置,只更改XML配置文件的内容,将X,Y位置交换,然后解析数据,发现解析后数据的值位置发生变化。

图2为某火控系统中,两个单体通信数据的解析结果,可以看出解析工具将元数据清晰地解析并显示。

图2 数据解析结果

原始配置文件如第二节所示,修改后的配置文件如下:

图3为在XML配置文件中修改了经度、纬度的相关描述信息,经纬度位置互换,对经度和纬度的编码类型和描述进行了更改,并且删除了高度信息的描述。

图3 修改XML后解析结果

5 结论

本文按照火控系统协议的数据结构,针对火控系统报文信息的组成原则和数据特征,结合XML的优势,用XML配置文件描述元数据信息,设计了通用的协议解析方法,解决了指挥信息系统报文变更、各系列炮兵压制武器平台差异和弹种设备扩展导致报文解码扩展性差的问题。同时,基于数据字典技术开发了一个火控系统报文解析工具,具有界面操作和显示功能,既可以验证数据字典的可扩展性,又可以作为辅助软件应用在火控系统中。

本文首次将数据字典应用于火控系统软件应用开发中,建立了火控系统跨平台通用报文解析方法;增强了火控系统报文解码的可扩展性;实现了火控软件与协议松耦合,削弱了协议信息组织方式变化对上层应用的影响。

猜你喜欢

火控系统可扩展性配置文件
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
光电探测技术在火控系统中的应用及发展
略谈增强火控专业教学紧贴实战化的几点思考
系统工程在我国指控、火控系统中的应用
刍议火控系统故障预测与健康管理技术
基于微软技术的高可扩展性中小企业系统解决方案研究
大数据分析平台