APP下载

小卫星快速一体化测试软件的设计与实现

2021-07-05李利群庞建国孙海晶李飞晟朱红运

测控技术 2021年6期
关键词:测试软件插件型号

李利群, 庞建国, 孙海晶, 李飞晟, 朱红运

(1.太原卫星发射中心,山西 太原 030027; 2.北京东方计量测试研究所,北京 100086)

随着航天技术的不断发展与应用,现代小卫星技术已经渗透到各个领域,在对地观测、电子侦察、通信、空间攻防、空间目标监视、在轨服务、战术快响、空间科学探测、空间天气等领域的应用能力稳步提升,并且已经成为空间系统的重要组成部分[1]。与传统的大卫星相比,小卫星具有功能密度高、质量轻、研制成本低、有效载荷种类多、飞行任务灵活多样、性能指标千差万别的特点[2-3]。随着航天事业的快速发展,小卫星的研制周期不断缩短、数量不断增多,“一箭多星”的发射模式已成为常态[2-3]。为了统筹发射任务,小卫星在发射前通常需要进行长时间的贮存,在贮存期间要定时对小卫星进行健康检查,以确保小卫星随时具备发射状态,并将故障卫星信息反馈给生产厂家以便其及时对故障卫星进行维修。

传统的卫星测试软件是针对型号专用测试设备配套研制的,只为实现特定的测试功能,不具有通用性;对于测试过程中用到多种测试设备的情况,需要多个测试软件共同实现控制功能,通用性及可扩展性不强;每研制一类新的卫星几乎都要重新开发一套测试软件;且测试软件专业性强,普通人员难以掌握。由此导致在小卫星长贮期间进行测试时,存在测试设备多、占用空间大、测试人员需要掌握各种测试软件的使用等问题。为了解决以上问题,本文设计并开发了小卫星快速一体化测试软件,以插件形式对前端设备进行统一管控,测试设备增加时,只需要增加相应插件即可实现对测试设备的扩展;通过参数配置的方式满足不同型号小卫星测试参数各类需求。该测试软件具有通用性好、结构简单、上手速度快等特点,可涵盖不同型号小卫星的功能测试,测试者可通过该软件实现“一键式”测试,推广前景好,可为小卫星的电性能通用化测试系统设计提供参考。

1 构架设计

小卫星快速一体化测试软件的主要任务是实现小卫星的快速自动化测试,因此系统软件应该具备对各硬件模块的集中监控能力,提供测试数据服务,同时具有测试数据查询和测试流程自动执行等功能。用户在应用客户端的交互界面上实时监视各模块功能的当前数据,以曲线的方式显示数据趋势并保存到数据库。同时用户在界面上完成对综合测试系统硬件设备的控制以及各设备参数的设置。用户还可以查询已经保存到数据库中的历史数据,并以表格或曲线的方式呈现。软件设计构架如图1所示。

图1 系统设计架构框图

小卫星快速一体化测试软件包括前端设备管理、数据服务系统、应用客户端、分布式消息中间件和数据库[4-5]。

① 前端设备是面向被测小卫星的接口,它通过插件的方式管理各分系统前端设备,采集硬件设备数据,并对硬件设备进行监控,实现与分系统软件的数据和指令交互。

② 测试服务系统采用后台服务模式,实现测试数据处理、判读、存储、分系统设备控制、指令发送、测试序列和数据定义等基础信息管理的业务接口等功能。

③ 应用客户端为人机交互接口,实现卫星自动测试、实时数据显示、数据查询分析和基础信息管理等功能。

④ 分布式消息中间件实现测试数据缓存、数据订阅和发布、消息队列功能,作为数据服务系统与应用客户端、数据服务系统内部各功能模块之间数据与指令的交互接口。

⑤ 数据库用于存储卫星型号信息、测试设备参数、指令列表、指令判据、参数列表、参数判据、测试项和测试细则等,为自动测试提供基础信息;同时存储测试结果数据和过程数据,用于历史数据查询和分析。

2 模块设计

2.1 分布式消息中间件

Redis是一个功能强大、性能高效的开源数据结构服务器,可广泛应用于消息队列、数据堆栈和数据缓存等多种场合。利用Redis的订阅发布功能,能够建立分布式通信系统[6]。本文中消息中间件采用Redis作为各种数据、消息分发的消息中间件,通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程间的通信。消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统集成。Redis本身采用服务器/客户端的连接模式,一个Redis-server可以连接多个本机或者远程的客户端,保证了系统的可扩展性[7]。在本软件中,Redis主要实现以下功能。

① 遥测数据的缓存。用于在测试界面上查看实时遥测数据,Redis高速存取的特性可以很好地保证数据读取的实时性和读取效率。

② 各个设备回采数据的缓存。

③ 判读测试各参数最新工程值的状态缓存。用于在各执行单元判读时,快速读取到最新采集到的工程值或遥测参数。

④ 测试任务的状态缓存。通过Redis中间件的缓存,可以让前端Web程序和后端服务程序进行测试任务状态的沟通交互,从而实现从前端页面控制任务启动、暂停和中断。

⑤ 持久化存储信息存放在消息队列内,由持久化数据服务将队列中的数据按照左进右出的顺序将数据读出并持久化到关系型数据库中。

⑥ 登录凭据的存储。为了方便以后扩展多台服务器,使用Redis存储用户登录的Token信息,这样以后无论新增多少台测试服务器,用户登录信息都可以统一读取使用。

⑦ 常用数据的存储。系统中有一些常用且不常修改的参数配置,为了加快读取速度,将其缓存到Redis中。

⑧ 分布式双检锁。在缓存数据时,需要保证只有一个线程可以写入Redis,这时候为了保证以后程序的扩展性,利用Redis分布式特性,实现了分布式锁。将锁存放于Redis中,即使以后扩展设备和进程,各进程也可以正常获取锁信息,而不会重复向缓存中写入数据。

2.2 前端设备管理

各型号卫星都有一些特定的测试需求,故所用的专用测试分系统的测试设备也会不同,本文采用前端设备管理插件的形式,解决通用性问题。采用插件的优点为:① 各个插件可以并行开发,缩短了软件研发周期;② 插件的动态加载和卸载无须重新编译核心源代码,便于代码的调试和维护;③ 无须更改框架部分的代码就可以增加新功能,提高了软件的可拓展性[8]。

通用前端设备管理通过插件模块的方式集中管理各分系统前端设备集群,可以通过扩展插件的形式扩展分系统设备,无须修改系统其他部分功能[9]。系统主要包括两个功能:① 前端设备远程控制功能,能够接收消息中间件中的设置命令,对不同的前端设备进行远程命令设置,并获取设置结果;② 前端设备数据监视功能,能够实时接收不同的前端设备采集的数据,并对数据进行必要的正确性判断,将数据推送至消息中间件。

2.3 测试服务系统

测试服务系统是一体化测试系统的核心业务逻辑,采用后台服务的模式,实现测试序列下执行单元的执行、判读,并将测试的进度和结果及时通知前端用户接口(User Interface,UI)。测试服务流程图如图2所示。

图2 测试服务流程图

测试服务实时监听测试任务的消息队列,当应用客户端操作用户下达测试指令时,测试服务会从消息中间件中获取到测试任务。当测试服务系统收到测试指令时,会根据测试任务所测试的卫星型号将数据库中该型号卫星下的所有测试配置信息读取出来(序列、子序列、测试项、执行单元、发送参数、判据信息等),用于测试任务的执行。根据该次测试任务中所有执行单元的排序,依次执行执行单元指令。如果是遥控指令,则自动发送遥测数据到测控分系统前端插件;如果是人工指令,则会等待UI前端返回人工操作的结果信息;如果是仪器指令,则会自动选择所要操作的仪器,并发送配置好的参数数据。当发送遥控指令或仪器指令时,会根据执行单元判据对指定的一个或多个参数进行判读。执行单元执行完成后,会将该次执行记录写入数据库做持久化存储。

2.4 数据库

本软件选用SQL Server数据库,用于存储多颗卫星的测试基础信息和测试数据。其中,测试基础信息包括卫星参数信息、卫星遥测参数处理信息和遥控指令信息、测试序列等。卫星遥测参数解析信息包括包标识、参数字段位置、参数处理公式、参数含义等,卫星遥控指令信息包括指令代码、指令名称、指令类别、指令编号等[10];测试数据包括遥测原始帧、工程值、判读结果、状态和测量数据等[11]。数据库还支持测试状态和测试数据的事后按时间进行回放。

3 “一键式”测试设计

为了降低用户的专业化程度,本软件设计了“一键式”测试模式,即采用测试序列预加载技术,数据库中存储各个型号小卫星长贮阶段健康检查测试序列,用户只需要登录系统,选择被测卫星即可对其进行测试。

在系统登录时,将用户类型分为维护用户和测试用户,维护用户的权限可进行系统维护、测试序列编辑、测试项编辑、测试判读管理等测试内容的设计工作;测试用户的权限包括卫星型号选择、测试序列选择、测试序列执行、测试结果查询[10]。对于测试人员,不需要自主设计测试序列等具体内容,只需根据设计好的测试内容执行测试工作,系统自动根据卫星型号及测试序列执行后台操作,完成测试设备配置、测试参数配置等测试准备工作。该软件改变了以往测试软件专业化程度高、操作困难的问题。测试用户的操作流程如图3所示。

图3 测试用户操作流程

4 通用性设计

目前,影响不同型号卫星测试软件通用性的原因主要有以下3个方面[12]。

① 卫星数据格式的定义缺乏规范化。不同卫星型号之间,所定义的卫星数据格式大多是不同的,这使得难以使用统一的软件来对所有卫星数据进行解析和处理。

② 不同卫星项目应用数据的类型和结构各不相同。由于大多数卫星都为专用目的,其数据形式各不相同,这使得数据解析软件也基本为专用定制,难以通用。

③ 不同卫星数据的应用处理算法不同。不同应用卫星数据存在不同处理算法,即使使用相同的算法,算法的参数也可能各不相同,需要专门的解析代码来进行处理。

为保证系统能够满足各类小卫星设计的测试需求,需对一体化软件进行通用化设计,包括两种通用化设计方案。

① 数据库通用:各卫星厂家提供遥测解析方法、工程值转换方式、指令处理方式(同步字、方式字、校验等)等信息,将上述信息进行归纳总结,以相同格式存储到数据库中。其优点在于:利于知识积累,解析协议方式、指令处理发生变化时只需修改数据库即可,便于升级;缺点在于:工作量大、数据库设计要求高。

② 接口函数通用:各个卫星厂家提供接口库函数,实现遥测信息解析、遥控指令处理。其优点在于:工作量小、基础数据库设计相对容易,保护了各个卫星生产厂商的协议不被公开;缺点在于:不便于升级,需要升级时,卫星厂家需提供新的接口函数。

通过对比两套方案的优缺点和难易程度,根据目前卫星生产的现状,获得所有卫星生产厂家的通信协议有一定的难度,本文按照方案②进行设计。

当一个新型号卫星接入时,可以从系统中配置与其相关的卫星型号、卫星识别序号、遥测参数、测试序列、子序列、测试项、执行单元、仪器配置等数据。只需要卫星厂家提供接口函数进行遥测参数解析,即可快速完成一套可执行的测试逻辑[13]。

5 应用验证

为验证小卫星快速一体化测试软件的有效性,结合小卫星快速一体化测试硬件搭建测试系统,针对2型小卫星进行了测试,测试结果如表1所示。

表1 本软件应用于2型小卫星测试结果

测试结果表明,小卫星快速一体化测试软件能够实现不同型号的卫星测试,通用型好,人员投入少,耗时短,具有广阔的应用前景。

6 结束语

在充分研究不同型号小卫星长贮阶段测试需求的基础上,设计并实现了的小卫星快速一体化测试软件。重点介绍了软件的架构设计、模块设计、“一键式”测试设计和通用性设计,与以往的专用软件相比,通用化、集成化程度更高,所以满足小卫星当前型号多样、测试周期短、密度高、测试人员专业化程度低的需求。软件为不同用户设置了不同的使用权限,既适合专业卫星测试人员使用维护,又适合测试用户的日常训练,满足其测试需求,可大幅降低测试设备种类和数量,降低人力成本,为小卫星新型测试提供支撑。

猜你喜欢

测试软件插件型号
航天型号批生产管理模式的思考
型号产品配套管理模式探索与实践
网络自适应测试软件运行方法设计
航天型号全要素管理的初步实践
自编插件完善App Inventor与乐高机器人通信
插件技术在计算机软件技术中的运用
自动化检测EPU10A板卡系统设计与实现
基于jQUerY的自定义插件开发
不同型号CTC/TDCS设备的互联互通
基于Revit MEP的插件制作探讨