基于字典查询的卫星并行自动化测试软件设计
2018-04-25,,,,
,, , ,
(上海微小卫星工程中心 遥感总体部,上海 201210)
0 引言
随着卫星功能和技术指标的提升,各领域对卫星的需求也日渐提高,对卫星研制周期、成本、可靠性提出了更高的要求。传统人工发送指令、遥测判读的卫星测试方法已不能满足研制需求[1]。
文献[2]提出了一种多星并行测试的测控前端通用化设计方案,解决了测试软件和多星不同硬件设备的数据收发问题,但没有涉及自动化测试方法;文献[3]基于卫星工作流程提出卫星自动化测试系统方案,没有考虑多星并行测试问题;文献[4]基于有向图理论,建立卫星测试模型,提出了自动化测试语言和测试方法,其弊端在于脱离现有条件,需要重新开发测试软件,编制测试细则,开发成本高,周期长,不适合在研卫星和短周期卫星。
本文针对卫星研制过程中测试周期长、任务重、自动化程度低的缺点和研制进度加快、多星并行测试的发展趋势,提出自动化测试软件设计方法,改进现有的综合测试系统,缩短测试周期,降低研制成本,提高测试效率和测试可靠性。
1 卫星测试现状分析
针对国内外卫星的研制流程,测试时间占研制周期比约30%~40%,包括桌面联试、模飞测试、环模试验等,贯穿于卫星研制的整个过程。而目前的卫星研制测试中主要以人为干预为主,发送指令、遥测判读、执行确认、记录结果等操作均为人工,严重影响了测试效率,且高强度测试下人为疏忽导致的测试问题屡有出现,为了缩短测试周期、提高测试效率和可靠性,研制多星并行自动化测试软件,势必是卫星研制保障技术发展中重要的一环。
在研制过程中,卫星与地面测试设备的数据传输通道可分为3种,地测数据、测控数据、数传数据,3个通道数据对比如表1所示,其中地测通道和测控通道的遥测数据是测试中指令发送和执行判读的主要通道。
目前,卫星测试系统构成如图1所示,从图中可以看出,地测前端和测控前端可独立完成卫星指令发送和遥测接收工作,具备指令生成、遥测解析和数据存储及查询能力,但不同卫星测试前端一般不能兼容,除个别卫星测试数据会统一存储于同一数据库外,两者之间数据无直接交互。
卫星测试流程如图2所示,除序号④由卫星接收指令并执行外,剩余流程均为人为操作,尤其对于重复性(如环境试验过程中状态检查)、多指令测试(如指令遍历)、长时间测试(如蓄电池充放电)等测试项目,测试效率低。
图2 卫星测试流程
综合以上分析,目前卫星测试终端具备指令生成、数据收发、数据处理和存储能力,但测试自动化程度低,一般为单星测试,影响测试效率和测试可靠性。为改善测试自动化程度,提高测试效率和可靠度,最有效、快速、低成本的方法应为在现有测控前端、地测前端的基础上,设计一个多星并行测试软件,实现自动化测试。
2 软件系统设计
2.1 软件系统构成
基于字典查询的卫星并行自动化测试软件是建立遥控执行监测字典和遥测处理字典,读取自动化测试并发送指令,查询监测字典中指令检测内容,缓存检测量,匹配遥测处理字典处理方法,进行执行情况判定,最终生成测试结果。自动化测试软件构成如图3所示。
图3 自动化测试软件组成框图
自动化测试软件包括外部接口(遥控、遥测、配置文件、测试细则等)、指令发送模块、执行判定模块和自动化测试管理模块。
外部接口实现外部数据整合,遥控、遥测接口负责与测控前端和地测前端收发数据,测试细则接口负责读取格式化测试细则,生成测试指令序列,配置文件接口读取遥控字典和遥测字典信息,生成待查字典,同时自动化测试管理模块内包括测试报告接口生成测试报告以及终端接口向显示器实时发送测试进展、测试状态、异常现象等信息。
指令发送模块根据自动化测试指令序列,接收自动化管理模块调度,发送指令前在遥控字典内查询指令配置信息,若有配置信息则直接发送,若无则报告自动化测试管理模块,确认是否发送,若发送配置监测遥测包。
执行判读模块根据指令发送情况,缓存遥测包内遥测量信息,查询遥控字典内指令判定准则和遥测字典内处理方法,生成判读结果。对于未配置指令,给出配置遥测包的遥测量对比。
自动化测试管理模块完成软件配置、测试进度管理、字典配置、报告生成、测试状态终端显示等功能,其中测试进度管理根据判读结果控制是否测试及下一条指令发送时间,字典配置主要实现未配置指令的遥控字典配置。
2.2 工作原理与流程
卫星并行自动化测试软件其特色包括以下三方面:
1)基于字典查询,配置方便,节省资源。开始测试后建立卫星自动化测试线程,缓存卫星所有遥测包最新状态信息并实时更新缓存,作为指令发送前的初始判据值。指令发送后,根据遥控字典配置信息,只进行部分遥测包缓存,不进行数据存储管理。根据卫星设计情况,所有遥测包大小约2~5 KB,每条指令影响的遥测包约2~4包,每次缓存不大于2 KB,这种设计可以与数据库查询相比,配置简单,便于移植,节省资源,加快处理速度,便于多星并行测试。
图5 单星自动化测试软件工作流程
2)数据接口规范化,实现多星并行测试。在遥控字典、遥测字典、测试细则及与测控/地测前端通信数据格式中均留有卫星标识字段,以测试线程为划分,根据卫星测试细则,实现多星多进程并行测试。
3)自定义判定方法,对于未配置指令,软件具备字典更新功能。卫星指令执行结果判定方法一般可分为等于某值、大于某值、小于某值、初始值增加某值、初始值减少某值5种,其他还有符合某种函数、变化关系以及多个遥测量联合判定等判定方法。对于简单的判定方法可实时判定;对于复杂判定方法可配置判定程序段,生成单独配置文件以备调用;对于未配置指令,设定监测时间和遥测包,时间结束后比对遥测数据,自动生成判定方法,待测试人员确认后更新写入遥控配置文件并更新遥控字典。
卫星并行自动化测试软件利用约定好的外部接口,基于字典查询实现卫星指令测试进度管理和测试结果判定,其主要测试流程图4所示,不同卫星测试通过不同线程区分对于一颗卫星的自动化测试流程重点功能工作流程如图5所示。
图4 自动化测试测试工作流程
2.3 数据结构设计
基于字典查询的卫星并行自动化测试软件涉及多种数据结构和外部接口,包括遥控字典结构、遥测字典结构、测试细则结构、字典配置文件结构以及字典配置文件接口、测试细则接口和与测控/地测前端软件接口,本文设计软件涉及文件类型均为csv类型,与txt相比便于编辑,与excel相比便于读写。
测试细则数据结构如表2所示,指令处理方式可包括加密、编码等,执行异常包括中断测试、不同级别警报等,指令判定时间单位为秒。
遥控字典配置文件数据结构如表3所示,指令ID、遥测包ID、遥测量ID唯一,判定方法中等于某值、大于某值、小于某值、初始值增加某值、初始值减少某值通过标识区分,其他判定方法匹配对应处理程序段文件。遥控字典在软件内缓存数据结构如表4所示,指令ID为字典查询关键字,判定列表包含判定方法。遥测字典配置文件数据结构如表5所示,其中包内位置以bit为单位,处理方法匹配处理程序段文件。遥测字典在软件内缓存数据结构如表6所示,指令ID为字典查询关键字,判定列表包含判定方法。与测控/地测前端遥控数据通信采用TCP/IP协议,数据结构如表7、表8所示,其中参数长度为500 Bytes,对于大于500 Bytes的指令参数采取多帧按序号发送。与测控/地测前端遥测数据通信采用UDP广播通信,数据结构如表9所示,其中参数长度为500 Bytes,对于大于500 Bytes的指令参数采取多帧按序号发送。
表2 测试细则数据结构说明
表3 遥控字典配置文件数据结构
表4 软件内遥控字典缓存数据结构
表5 遥测字典配置文件数据结构
表6 软件内遥测字典缓存数据结构
表7 发送至测控/地测遥控接口数据结构
表8 接收测控/地测遥控接口数据结构
表9 发送至测控/地测遥控接口数据结构
3 软件实现及测试
根据本软件设计方法,软件开发人员利用Python语言在一周内即完成了程序Demo开发,软件测试效果如下图所示。目前,本软件已应用于两个型号桌面联试、对接演练、外场试验和环模试验自检等各阶段测试,对提高卫星测试效率、精简测试队伍、减少误操作等方面起到了良好作用。同时基于csv格式的细则和字典配置文件十分灵活,便于编制、修改、核对,大大提高了效率。自动化测试软件工程实时性强、操作方便,测试结论准确完整。
图6 自动化测试软件测试截图
4 总结
本文针对卫星研制过程中测试周期长、任务重、自动化程度低的缺点和研制进度加快、多星并行测试的发展趋势,提出了基于字典查询的卫星自动化测试软件设计方法,详细介绍了软件的系统构成、工作原理和流程以及数据结构。通过对遥测判读方法分类和字典查询方法,重点解决了不同卫星不同指令执行情况判读问题,支持多星并行测试和其它型号卫星快速移植,兼容现有地测软件、测控前端转发数据。最后利用Python实现了软件的基本功能,实际应用表明,软件可提高卫星测试效率和可靠性,具有较强的工程实用性。
参考文献:
[1] 赵瑞峰. 卫星通用自动化测试系统体系结构研究[J]. 信息技术, 2011,35(4):65-68,72.
[2] 李文霁. 卫星并行测试中测控前端通用化设计[J]. 航天器工程,2015,24(6):129-133.
[3] 戴涧峰. 基于工作流的小卫星自动化测试系统设计方法研究[J]. 计算机测量与控制,2011,19(12):2912-2915.
[4] 基于有向图建模的航天器自动化测试研究与实现[J]. 计算机工程与设计,2010,31(8):1702-1705.