王万金
(中国人民解放军91550 部队,辽宁 大连 116023)
遥测数字量参数用于记录飞行器上各系统的工作状态,利用转发的方式记录于遥测波道中,采用帧头、帧长、数据以及校验和的格式存储,且位置不固定。传统处理手段采用“因地制宜”的方式,针对不同系统数字量参数依据数据处理协议的约定,根据帧头、帧长和对应的状态标识进行单独处理。不同数字量在状态标识位置、长度、编码格式,数据段的划分原则,分帧周期、数量以及数据嵌套的逻辑结构等方面差异明显,且不同阶段的飞行器试验,其数字量参数类型和格式不断变化,传统的处理手段对处理系统的维护能力和维护周期都有较高要求[1],寻求处理模式的高度抽象和处理性能的不断提升,降低数据处理系统维护成本是该文的目的所在。
如上所述,遥测数字量有多种类型,不同类型间差异明显,多为嵌套格式且结构复杂[2-3],为方便系统设计过程中抽象共同特征[4],差异化配置设置[5],先简要说明常见的数字量格式。
单层(数据区不含子嵌套层,通常只包含一个数据段落)单状态的数字量格式较为简单,由帧头、帧长、数据区(单一状态)与校验和组成,为最简单的一种格式。
单层多状态与单层单状态数字量格式的主要区别在数据区部分,其由区分时间段落的不同状态组成,不同状态通过状态标识位进行区分。其中,状态标识位的长度依据不同数字量类型有所区别,数据区的长度则又分为定长和不定长两种格式。
多层(数据区含子嵌套层,通常包含多个数据段落)多状态无分帧格式通常指数据区含有多个数据段落,每个段落含有一种或多种状态,通过状态标识位加以区别,但每种状态较为固定,不再含有子嵌套,即不含有分帧等子格式。每个数据段落的长度又分为定长和不定长两种。
多层多状态多分帧格式与多层多状态无分帧格式的主要区别在于子嵌套层(某个数据段落)的某种状态又含有子嵌套,即含有分帧格式。该种格式其父层即状态层的长度通常固定,即为多层多状态定长格式。分帧格式(子嵌套的子嵌套层)的帧标识ID通常有两种编排方式,即通过相对时间求余数以及通过某字节高低位分别编排状态和分帧标识。
上述列举了较为常见的数字量格式,还有一些更为复杂的格式,主要体现在嵌套层更多,状态信息更繁杂,分帧格式含有分帧,状态信息标识和分帧标识ID 更灵活,甚至需要二次组帧等。种类如此繁多的格式,灵活多变的状态和分帧等嵌套,使遥测数字量类型参数的处理变得复杂、困难,在处理协议解析和处理算法上的调整需要较高成本[6]。因此,高效通用的处理系统能够提高处理效率,降低系统维护成本[7]。
上述各类型数字量格式间的差异,要想实现处理算法和流程上的统一,则需要抽象处理方法以及使接口差异化,进而实现处理系统的通用性[8]。分析整个处理流程不难发现,各种格式数字量的处理过程由帧头、帧长、跨帧与校验和判断的预处理过程以及提取出具体数据区后的分路和量纲还原处理过程构成,而在此两个处理过程间可以通过模式查找方法提取各种格式的具体数据区,即具体格式的解析[9]。因此,处理系统的设计可以从预处理、格式解析和量纲还原三方面着手[10]。
遥测数字量参数通用处理系统的设计本着面向对象的思想,依据高内聚、低耦合的“解耦”原则,使各个功能模块尽量独立,以规范接口,降低系统后续的维护成本。处理系统主要由预处理模块、格式解析模块、量纲还原模块和参数数据库模块等部分组成。其中,预处理模块、格式解析模块和量纲还原模块作为整个处理系统的核心,分别实现了系统设计中的各类型数字量参数的统一预处理、各类型格式的具体解析和参数物理量纲还原的功能。系统总体结构如图1 所示。
图1 遥测数字量参数处理系统总体结构
预处理模块主要实现各类型原始数字量数据的有效性检测功能,旨在通过其检测遥测数字量通道内数据的有效性,即通过帧头、帧长和校验和等标识提取有效的结构化数据,为下步其所含各种格式的解析做准备。预处理模块主要由标识位(帧头、帧长)检测子模块、跨帧检测子模块和校验和检测子模块组成。
格式解析模块主要实现子嵌套层(段落、状态、分帧等)具体数据区(块)的解析功能,通过其能够查找和提取该数据区(块)的数据,为下步具体参数的量纲还原做准备。格式解析模块主要由模式生成子模块、模式查找(匹配)子模块和具体数据区(块)提取子模块组成。
量纲还原模块主要实现具体数据区(块)内包含的参数的物理量纲还原功能,通过其能够生成具体参数(温度、压力、载荷等)在时域内的物理量,为数据分析提供保障。量纲还原模块主要由参数分路子模块和量纲还原子模块组成。
数据库模块主要实现上述各模块所需的外部参数或数据的存储和交互功能,通过分析预处理模块、格式解析模块和量纲还原模块所需交互的外部参数或数据可知,数据库表应包括数字量配置表、主帧配置表和参数信息表等[11-12]。详细结构如表1-3 所示。
表1 数字量配置表详细结构
表2 主帧配置表详细结构
表3 参数信息表详细结构
预处理模块主要实现原始数字量数据的有效性检测,其算法包含三方面内容。
1)当前帧的有效性,即通过帧头和帧长标识位判别数字量当前帧数据的有效性;
2)当前帧的完整性,即在有效性基础上根据数字量当前帧与遥测全帧的关系,从当前帧所处位置判断其是否跨帧,进而判断其完整性[13];
3)校验和检验,即检验数字量当前帧数据区数值的和是否与校验和的值相等,若相等则说明当前帧有效,否则无效。通常受各种因素影响,数据区存在一定程度的误码率,进而导致其难以与校验和完全相等,若严格执行该检验原则,则会使有效帧大幅减少,实际数据处理过程中应根据实际需要进行取舍。
数字量预处理算法的具体流程如图2 所示。
图2 数字量预处理算法流程图
格式解析模块主要实现子嵌套层具体数据区的提取,其算法实现过程主要包含匹配数据源和模式的生成,通过模式匹配算法获取匹配结果集[14],依据匹配结果集获得逻辑结构数据(具体数据区)的帧索引,并根据其提取逻辑结构数据[15]。数字量格式解析算法的具体流程如图3 所示。
图3 数字量格式解析算法流程图
量纲还原模块主要实现逻辑层具体数据区(块)所包含参数的物理量纲还原功能,其算法首先是交互数据库,访问主帧配置表和参数信息表相关字段,获取参数配置及量纲还原信息,并生成对应的文件。然后依次遍历该文件内每个参数信息,获取分路索引、长度等,再遍历对应的数据区及时间文件[16],提取参数对应的物理量原始值。最后将物理量原始值、参数量纲还原系数等代入量纲还原模型,获取该参数的物理量时域历程。数字量量纲还原算法的具体流程如图4 所示。
图4 数字量量纲还原算法流程图
遥测数字量参数通用处理系统基于Visual Studio、Visual C++和SQL Server 平台开发实现,运行于Windows 系统。系统的配置灵活,各类型数字量的嵌套层格式可以通过表1 的字段ID 和ParentID 来完成嵌套结构的配置,各种格式的模式可以通过表1和表2 及模式生成类来配置,参数的量纲还原可以通过表2 和3 结合还原算法完成。近几年来,该系统主要应用于Ⅲ型飞行器的数据处理工作,相较于先前的处理系统,该系统的应用大幅度地提高了处理效率,整体的维护周期和成本大大降低。如表4 所示,系统应用过程中,Ⅰ型飞行器新旧系统5 次数据处理维护平均用时分别为4.4 h 和18.64 h,Ⅱ型分别为6.22 h 和23.92 h,Ⅲ型分别为11.74 h 和41.22 h。统计发现,Ⅲ型数据处理工作中,旧系统的平均维护成本是新系统的3.51 倍,新系统的应用能够极大地提高数据处理工作效率,降低维护成本。
表4 系统应用过程维护成本统计
针对遥测数字量参数处理协议纷繁复杂、系统维护周期和成本高的问题,提出应用模式查找的方法设计并实现了通用化的处理系统,系统的核心由预处理、格式解析和量纲还原三部分构成。预处理模块通过帧头、跨帧和校验与检测实现了数字量参数的有效性检测,获得了一致的结构化数据。格式解析通过模式生成、模式查找和数据提取实现了具体数据区的解析。量纲还原通过参数分路获取参数物理量原始值,结合具体采样相对时间实现参数的时域历程。系统在Ⅲ型飞行器的数字量参数处理上进行了应用,统计结果显示,新系统的效率接近先前系统的4 倍,能够大幅提高处理效率,降低维护周期和成本,解决传统处理手段在处理模块耦合强、版本多及代码维护周期长方面的问题。系统的设计和实现在遥测数字量参数处理上具有通用性,可广泛应用于遥测数据处理领域。