基于复杂参数的组态化显示监控系统
2019-05-08
(中国运载火箭技术研究院 研究发展中心,北京 100076)
0 引言
随着我国航天器频繁发射的常态化,以及各类科研空间探测器型号的不断增多,对测发控软件技术要求也不断提髙[1]。目前测发控软件的技术实现途径主要分为两类,传统代码实现和基于组态技术实现[2-4]。
传统测发控软件由于具体型号任务需求的差异,根据试验具体要求,功能都是通过代码定制开发实现的,一套软件通常只能针对一个型号和试验任务,任务需求和试验方案一旦变更,需要专门的开发人员根据需求进行重新开发,软件的测试维护都需要大量的人力物力支出,同时也对保障软件的可靠性带来难度[5-7]。
目前一些测发控软件结合组态技术,可以对软件部分功能以类似搭积木的简单方式完成,当试验任务需求发生更改时,无需进行大量底层源码级的开发,实现软件的灵活和可配置性,缩短软件开发周期[8-10]。如某靶场测控软件,由工程管理器、开发系统、运行系统、实时数据库和其它模块组成,根据导弹种类、试验目的和测控方案,快速建立不同的导弹测控工程[11]。现有的组态化测发控软件均根据所处理的数据工程实际和被测试对象特点,形成一套内部闭环的系统,靠事先固化好的程序实现固定类型数据的处理、编辑和显示,交互界面编辑、数据监控、数据处理、数据存储等各模块间耦合紧密。而航天飞行器涉及遥测参数复杂,不同类型飞行器和型号对参数的设计与处理均不同,数据处理端一旦发生变化,交互界面的编辑与监控均无法适用。且现有测发控软件的组态控件的设计仅限于特定工程类型,虽可以集成自定义控件,但对控件本身的设计缺少通用化接口,用户扩展控件功能、开发新控件需要编写大量代码,具有集成难度。
本文克服现有技术的不足,提出一种基于复杂参数组态化显控系统,对系统组成架构及各功能模块进行了实施方式的描述。
1 系统构成框架
一种基于复杂参数的组态化显示监控系统将测发控软件中显示监控和数据中心分开,实现对不同领域各种类型数据的处理以及显控界面的配置和终端灵活加载,系统构成如图1所示,该系统包括数据配置模块、控件设计模块、界面配置模块以及显示终端模块。
图1 系统构成
其中数据配置模块实现对测试覆盖参数、数据帧帧协议、参数处理公式以及用户登录权限的配置,生成以xml文件格式存储的数据配置文件,供界面配置模块和显示终端模块使用。
控件设计模块实现组态化控件设计,供界面配置模块和显示终端模块使用。该模块包括已定义好的一系列控件,包括文本、数字量、模拟量、状态灯、曲线、切换栏、星点图等,可供系统直接使用。同时具有通用持久化接口和标准化数据服务接口,支持用户自定义控件,实现自定义控件的灵活设计与快速定义,供系统直接使用,大幅降低开发成本。
界面配置模块用于快速配置满足测试任务的终端界面,配置完成后,界面配置信息以xml文件格式进行保存,供显示终端模块进行加载。针对具体测试任务,建立界面模板和配置界面,从控件库中以拖拽的方式选择相应控件对显示终端界面进行布局设计,并对控件进行属性设置和绑定测试参数,对复杂测试参数进行设定,测试参数来自数据配置模块生成的数据配置文件。
显示终端模块在用户登录系统时,根据数据配置模块配置的用户权限信息以及界面配置模块生成的xml界面配置信息加载当前用户可访问的测试任务终端界面。与数据中心进行连接,接收并解析数据中心发送的数据,将解析得到的数据发送给所有组态化控件,每个组态化控件从中提取绑定的测试参数对应的数据,将提取的数据和设置的属性发送给显示终端模块显示。
2 关键技术实现
2.1 组态控件通用接口设计
控件设计模块是该系统实现组态化设计的重要组成,该模块包括了基础核心模块、属性管理模块、持久化模块和数据服务模块,共同实现了组态化控件。其中基础核心模块为控件本身的属性面板设计定义了基础属性和编辑器类型,供用户在自定义控件开发过程中使用。基础属性包括属性面板的名称、描述、事件、聚焦、隐藏、优先编辑、表单类型过滤等属性。编辑器类型包括颜色、字体、下拉框、xml编辑器、多选框、字符型、整型、浮点型、时间、拖拽、组合类型等各类编辑器属性。
属性管理模块实现自定义控件属性的灵活定义。只需要通过对基础核心模块的基础属性和编辑器类型进行调用设置,便可实现自定义控件属性的定义。例如对某一新建自定义控件添加控件背景色的属性,只需定义一下属性面板名称为背景色,编辑器类型为颜色,生成的控件便可供界面配置模块使用,具有背景色编辑属性。
持久化模块定义并实现了控件的通用持久化接口,接口包括以下4个功能:设置唯一标识、反序列化、信息持久化和拷贝。设置唯一标识即为控件设置一个唯一的标识ID。反序列化用于从界面配置信息中获得控件定义的所有属性名称和属性值,并将属性值转换成相应数值类型。信息持久化将控件当前或修改后的属性名称和属性值写入界面配置信息。拷贝用于实现将当前控件的所有属性进行复制使用。
数据服务模块定义并实现了控件的标准化数据服务接口,这也是组态化控件设计的一项关键技术。该标准化数据服务接口具有以下5个功能:启动、暂停、停止、获取参数类型和获取绑定参数。启动服务用于订阅各类数据服务处理事件,包括实时数据接收事件、历史数据接收事件等。暂停服务用于暂停订阅数据服务处理事件。停止服务用于取消订阅数据服务处理事件。参数类型用于获取控件关联参数的类型,1代表模拟量、2代表状态量、3代表参数量、4代表故障诊断、5代表没有关联参数类型。绑定参数用于获取控件绑定的参数信息,参数信息以XElement类型存储,用于控件定位关联参数。
图2所示为组态控件通用接口设计与调用的示意图,界面配置模块与显示终端模块均基于组态控件。界面配置模块如果新建一个配置页面,在页面中添加一个新的控件,将触发控件设置控件唯一标识,并设置控件属性。如果不需要新建配置页面,则加载定义好的控件,通过调用反序列化功能,获取添加控件的所定义的属性信息,这些属性信息可供用户在页面中对控件进行设置,完成控件属性设置后,保存页面信息,将调用通用持久化接口,将页面中的控件相关配置信息写入xml配置文件,生成页面配置文件。显示终端模块在运行配置好的页面时,会加载控件,过程中进行数据订阅,调用标准化数据服务接口。通过启动功能订阅数据服务处理事件,通过获取参数类型功能获取控件关联的参数类型,通过获取绑定参数功能获取控件绑定的参数信息,终端控件完成数据加载后通过调用停止功能取消数据订阅事件。
图2 组态控件通用接口设计与调用示意图
2.2 显示终端模块界面加载与数据显示方法
该系统的另一个关键技术是显示终端模块界面加载与数据显示方法的实现,涉及到显示终端模块的设计。显示终端模块包括网络通信模块、用户权限验证模块、界面加载模块和数据处理模块。其中网络通信模块支持TCP和UDP两种通信协议,负责接收数据中心传递过来的数据帧,并向数据中心发送状态帧。实现显控终端模块与数据中心的数据联通。
用户权限验证模块用于在运行终端启动时验证用户名和密码,根据数据中心返回的用户访问权限,加载用户可访问的测试任务终端界面。用户权限信息在数据配置模块进行配置。例如为用户A配置了查看GNC系统终端界面的权限,用户A登录终端后,只能访问GNC系统界面,其它分系统界面不能访问。
界面加载模块实现界面配置模块中配置的测试任务终端界面在显示终端模块上的加载运行。该模块设计了统一的业务执行过程,便于软件和控件的灵活扩展与快速修改,实现每个自定义控件的加载和运行,并实现控件对数据的实时显示。
数据处理模块实现将控件从网络通信模块接收的数据进行处理,将数据按照控件配置的显示方式进行处理显示。显示方式包括按位显示、二进制、十进制、十六进制显示。根据控件配置进行数据处理与显示的方法为:首先将数字量参数值从数据帧中挑出来,转换成十进制,然后将十进制转换成二进制字符串,根据控件按位显示的配置起始位和终止位对二进制字符串进行截取,将截取后的二进制字符串转换成十进制,然后根据配置的显示方式,将处理后的数据转换成二进制、十六进制或者十进制进行刷新实时显示。例如将某个占一个字节值为230的参数,挑取0到3位以十六进制显示。将230转换成二进制11100110,截取0到3位后的二进制字符串为1110,将该二进制字符串转换成十进制14,再将14转换成十六进制E,控件最终会刷新数据显示E。
图3所示为显示终端模块界面加载与数据显示方法,首先通过网络通信模块使显示终端模块与数据中心建立通信,显示终端模块根据用户的登录信息,向数据中心发送登录验证帧信息,验证成功后,数据中心将返回登录验证帧信息,其中包括允许当前用户加载的测试任务终端界面。显示终端模块具备一个统一显示运行窗口“Shell”,在载入窗口过程中,对界面配置模块中生成的模板文件进行载入,模板文件包括用户定制的多个页面,每个页面为一个xml文件,所有的页面xml文件信息统一存储在globle.xml文件中。通过读取globle.xml文件,遍历模板中所有的页面xml文件来初始化页面布局和创建控件,每个页面的xml文件存储了配置页面布局中包含的所有控件及属性信息。程序在遍历页面布局中每个控件时,使当前控件订阅实时数据接收事件,并获取当前控件能处理的参数类型,然后根据不同的参数类型,判断当前控件是否已经绑定了需要处理的参数信息,如果控件不具有绑定参数信息,则通过调用GetXelementParam方法从界面配置信息(页面xml文件)中获得该控件所绑定的参数信息,完成页面布局中所有控件的遍历后,向数据中心发送相应的参数注册命令以便数据中心对注册的参数进行处理,最后向数据中心发送注册结束命令通知数据中心完成了参数注册。网络通信模块监听数据中心发送给显示终端模块的数据帧,完成数据帧接收后,对该数据帧的结构进行检查,并对帧类型进行判断。根据不同的数据帧类型,将数据帧发送给订阅了接收对应数据帧类型的控件,通知控件数据接收事件,对数据帧进行解析,获取数据帧中的参数个数与参数ID,遍历所有参数,若ID与控件绑定的参数ID相符,刷新控件的显示数据并根据设置的属性对数据进行显示。
图3 显示终端模块界面加载与数据显示方法示意图
3 实验结果与分析
该系统摆脱了一个工程从头到尾开发一套软件的模式,将显示监控和数据中心分开,实现对各种类型数据的处理,有效地解决软件“重用”问题。目前该基于复杂参数的组态化显示监控系统已经应用于多个工程项目的地面测试阶段,实现单机设备测试、系统级匹配测试、模飞测试等试验任务。其采用软件配置设计思想,将通信、数据处理、数据显
示等功能用通用化处理代码固化在程序里,将测试参数、通信协议、计算公式等作为配置参数项,采用配置工具进行配置录入,实现快速可配置设计。目前已经为近5000个复杂参数及十几个分系统的通信协议完成配置与运行。
该系统的控件设计模块通过标准化数据服务接口、通用持久化接口实现自定义控件设计的标准化与灵活扩展,实现交互界面配置自动生成,监控显示终端自动加载,能够在使用现有功能的基础上进行自定义功能的开发,在实际工程项目应用中,根据总体的特殊需求,利用标准服务接口,完成定制了多种显示状态灯、监控文本窗口、功能按钮等控件,不需作很多修改而方便地完成软件的更新和升级,达到了快速开发的良好效果。历经多个工程项目,该系统的设计方法和实现已得到了充分的验证。
4 结束语
基于复杂参数的组态化显示监控系统采用基于事件注册的复杂参数数据处理与显示方法,实现飞行器复杂参数测试数据的实时监控,提出标准化数据服务接口、通用持久化接口的组态化控件设计方法,进行自定义控件设计标准化与灵活扩展,实现交互界面配置自动生成、监控显示终端自动加载,达到一套软件应用于多个型号的通用化目标,实现飞行器复杂参数测试数据的实时监控,已经在工程中得到很好的应用,既节约人力物力,又降低成本,大大提高了开发效率,实现软件的复用。