简介:关于对不知道怎么写测试产品论文范文课题研究的大学硕士、相关本科毕业论文测试产品论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
符冰
(中国空空导弹研究院河南洛阳471009)
【摘 要】飞行控制组件是某型号产品的控制核心,其检测的通用性、可靠性在产品研制过程中有着重要的作用.介绍了基于面向对象方法的某型号飞控组件测试软件的开发思想、测试算法和具体实现.此软件可按照特定算法控制硬件自动对飞控组件的各内外接口进行测试,具有友好的界面、良好的可维护性、可扩展性,目前已成功应用于某型号飞控组件的测试中.
【关键词】飞控组件;测试软件;多线程
0引言
某型号飞行控制组件是整个导弹系统的控制核心,在导弹的稳定控制、航迹规划等方面起着重要的作用,同时它也是各种信号的交联中心,对其可靠性、稳定性要求极高,因此如何对飞控组件进行全面充分的测试就显得比较重要.而整个完善的测试系统离不开测试软件的配合,本文介绍了基于VC++6.0开发的某型飞控组件自动化测试软件的组成、测试算法、关键技术及具体实现.
测试产品 英文:[woocommerce教程]4.导入测试产品数据
1.测试原理
由于飞控组件功能复杂,对外接口形式众多,因此对其测试时所需的硬件模块也较多,主要包括1553B通讯模块、429通讯模块、422通讯模块、AD/DA采集模块、高速并行数据接收通道、电源控制模块等,这些硬件模块放在一个PXI的工控机箱中,配合特定的软件来完成对飞控组件的测试,如图l所示.产品的测试就是通过测试软件对这些硬件板卡的操作来模拟载机、CPS、舵机等外部环境,并按照特定的测试算法,自动完成对飞控组件各功能的测试.整个测试流程由综合测试软件控制,驱动软件是硬件和测试软件之间的桥梁.
2.软件总体设计
某型号飞控组件测试软件是一个自动化的测试软件,根据测试的需求,结合飞控产品的工作特点,按照模块化的思想设计软件的各测试模块.软件在功能上应能满足:a)合理控制试验流程;b)能记录并保存试验过程中的各种数据;c)能对数据进行分析处理:d)对一些关键的变量能在屏幕上显示并给出评估结果;e)对产品的测试应全面、可靠,降低虚警率;f)具有友好的操作界面、人机接口.
利用C++语言面向对象的技术进行系统开发,对数据结构的定义、模块的划分、接口的定义均体现在类及其层次关系内,这样可以提高软件设计的安全性、可靠性和可维护性.
根据模块化的设计思想,软件主要可分为以下模块:对外接口模块、数据采集处理模块、测试数据显示模块、测试流程控制模块,硬件驱动模块,如图2所示.测试流程控制模块控制测试整个流程,包括对产品上电,发送、接收数据,对数据的处理和流程控制等:数据显示模块用于对采集到的数据进行显示、管理并按照预先设定的规则进行正确性校验:数据采集处理模块是将测试过程中的数据以特定的格式存储起来以供事后分析:接口模块用于将底层的函数进行打包、处理供上层函数调用:驱动模块在底层工作,用于和硬件打交道,进行数据读写.
3.测试算法
某型飞控组件的测试主要分为三个测试项目,分别为内外接口测试、传感器精度测试、导航精度测试,这些测试项目从不同的侧重点对产品的各部分功能进行检测.
3.1 内外接口检测算法
内外接口测试主要对飞控组件的各种对内对外接口进行测试,在飞控软件专用测试模块的配合下完成对各接口通道进行测试.主要流程如图3所示.
a)设备初始化,各种初始参数赋值;
b)为产品上电,检测产品电压和电流是否正常;
c)设备向产品发送飞机描述,并接收产品返回的悬挂物描述,若正确,表明握成手功:
d)检测1553B通道和相应的存储器:测试设备向飞控组件发送任务加载数据块和传递对准参数块,工作程序将这些数据块分别转发到任务数据查询块和悬挂物监视数据块,通过比对若都正确则认为飞控组件与设备的1553B通道通讯正确,同时也完成了对存放这些数据块的缓冲区的检测:
e)检测429发送和接收通道以及遥测通道:设备通过429总线分别发送测试数据,工作程序接收到这些数据后,同时通过429发送通道和遥测通道将这些数据转发出来,然后测试设备接收这些数据并判断与发送的是否一致,若有错误,则错误则计数加l,并将最终结果显示在屏幕上:
f)检测10指令通道:通过10卡顺次将需要检测的一次性输入指令置位,然后通过遥测接收一次性指令的状态,如果二者一致,则认为一次性指令输入通道正确,通过飞行任务把一次性指令输出通道的相应位置l发给产品,然后接收一次性指令,判断接收的一次性指令与飞行任务书中是否一致,每次判断不仅要判断为l的指令,也要判断为0的指令,这样可以检测产品发送一次性指令和取消一次性指令的功能.有一个出错就把错误计数器加一;
g)通过高速并行接受通道读取产品特定参数,判断产品的特定数值是否符合要求:
h)检测422通讯通道:422通道的检测方法同429通道的检测方法:
i)测试结束,为产品断电.
3.2传感器精度检测算法
传感器精度检测主要检测飞控组件中惯性测量组合的精度,观察惯性元件工作是否正常.流程图见图4.
a)设备初始化,各种初始参数打包;
b)为产品上电,检测计算机是否正常;
c)设备与产品进行首次通讯:
d)设备向产品通过1553B总线发送自检指令:
e)初始化遥测通道,接收遥测信息,从中解码出需要的数值:
f)检测飞控组件自检是否完成:
g)通过高速并行通道接收产品在lOs内累加的速度增量值(svx、svy、svz)和角度增量(sbx、sby、sbz)值,并通过公式l和2计算重力加速度和地球自转角速度的值,看其是否在允许的范围之内,从而判断敏感元件的精度:
h)给产品断电,进入休息状态.
3.3导航精度检测算法
导航精度检测主要包括飞控组件调度时序的检测、初始对准的结果检测以及发射后产品的姿态精度和位置精度检测.流程图见图5.
a)设备初始化,各种参数初始化;
b)为产品上电:
c)检测计算机是否正常:
d)设备与产品进行首次通讯:
e)握手成功后,发送自检指令;
f)产品自检完成后,发送对准指令和传递对准参数块和任务加载数据块:
g)检测挂飞段遥测通道是否正常,依次接收各遥测字,有一个接收不到则错误数加1:
h)延时一段时间,等待产品对准,接收悬挂物监视,判断产品对准状态,如果产品对准好则发送激活电池指令,产品接收到激活电池指令后发出一次性指令激活电池:
i)电池电压正常后设备发送投放指令:
j)产品收到投放指令后则进入自主飞状态;
k)接收进入自主飞后的遥测数据,从中分离出导弹四元数、速度和位置,并计算出导弹的姿态角并显示到屏幕上,此数据是经对准修正之后的信息:
1)检测计算机运行信号的周期和占空比;通过定时器设置和读取一次性指令和检测工作周期信号的周期和占空比是否在允许的范围之内:
m)进行产品的导航计算通过遥测接收产品的导航结果,包括位置和姿态误差,并实时显示:
n)为产品断电进入休息状态.
4.软件设计实现与关键技术
整个测试系统需要实时通讯,而且各测试模块的功能相对独立,同时需要与用户进行较多的信息交互.因此本软件是在Windows2000系统,采用VC++6.0语言,基于“文档/视图”程序结构开发出来的一个应用软件.VC++6.0是功能强大的面向对象程序设计语言,适合底层开发,开发灵活,使用vc实现上述各功能模块和构建系统使开发过程变得简洁、清晰、自然.用vc类机制可以方便地建立各功能模块相应的类.
4.1多线程技术的实现
对于同一个程序,它可以分为若干个独立的执行流,称之为线程:线程提供了多任务处理的能力,可以访问程序的资源,共享程序的虚拟地址空间,线程间处于并行执行状态.本程序需要与硬件长时间打交道,因此可以建立工作线程完成后台操作,如利用多线程实现了设备定时发送飞行任务的功能.
4.2视图分割技术
由于在显示窗口数据时需要将窗口拆分,可以通过树型控件显示数据.调用CListPane类对象进行窗口列表拆分,在左窗口中显示树型控件,在右窗口中管理需要显示的多数据类.通过响应树型控件被选择的消息,调用C MainFrame类中的SwitchToView函数来显示不同的窗口内容.
4.3 定时器的应用
为了更直观的看到产品的通电时间等信息,在窗口下面添加一个状态条实时显示时间信息,此时就需用到Windows的定时器,在Visual C++中采用SetTimer()函数创建定时器,向调用SetTimer f)的窗口发送WM_TIMER消息,同时利用Windows的消息处理机制来处理该消息.Window的定时器用在不太精确的场合还可以,但在产品的测试过程中常常需要通过时间对程序的流程进行控制,时间要求也比较精确(ms级别),此时Windows本身的定时器就显得有些无能为力,因此我们在硬件上设计了另一个定时器,在需要更高精度的地方就需用到此定时器,此定时器的分辨率为lOus,可以满足我们的需求.调用IO_Start Timer(time)函数来设置定时时间,单位为lOus.同时可以通过IO_Read_Time-()函数来获取定时器运行的时间值,从而来控制程序的运行.
4.4程序实现
软件中各种框架、数据的整理、显示主要通过设计各种类来实现.在软件的具体编制中基于vc++设计了多个类函数,具体如下所示.
4.4.1 应用程序类CHXP2_App
应用程序类CHXP2_App是基于CWinApp的一个类,代表一个独立的应用,通过调用全程对象App起作用,CHXP2_App定义了类的全部行为.
主要在里面定义了每一个测试项的文档模板、总的测试结果对应的文档模板、视图显示模板等,并设置了一些测试控制标志.
CMultiDocTemplate
*pC KTemplate,*pBKTemplate,*pPKTemplate,
CMultiDocTemplate *pDocTreeTemplate,
CMultiDocTemplate *pDisplayTemplate,
4.4.2应用程序框架类CMainFrame
应用程序框架类C MainFrame是由多文档框架窗口类CMDIFrameWnd派生而来.工具条、状态条等所有与主框架窗口有关的操作都在这里定义.作为菜单响应函数的产品三项测试也在这里启动.另外还对应用程序运行时的窗口状态进行了保存和恢复.
在OnC-eate函数一开始调用LoadWindowPlacement来装入上一次退出时的窗口状态,它是在OnClose函数中调用S论文范文eWindowPlacement中保存到注册表的.
还有一个成员函数比较重要,就是SwitchToView,它的功能是生成一个以ChildFrame为基础的、与规定的文档模板相联系的新窗口,并作为当前窗口.这样在每一个测试项菜单响应函数中就只需一条语句SwitchToView (theApp.pAPTemplate)就可以了.
4.4.3测试子窗口框架类CChildFrame
子窗口框架类C ChildFrame是由多文档子框架窗口类CMDIChildWnd派生而来.有关子窗口的操作都在这里进行.有子窗口的标题形成.子窗口的初始大小、以及Start按钮的显示和状态等等.具体如下:
在重写的PreC-eateWindow中用cs结构定义了子窗口的初始大小.在OnC-eate中以DialogBar的形式创建一个工具条,并显示一个按钮Start,用来启动每一次测试.通过重写OnUpdateFrameTitle在子窗口标题栏上显示“文档名:测试项”形式的标题.通过响应UI命令使Start按纽允许和禁止.
4.4.4 文档类CHXP2Doc
文档类CPkpa702Doc是由MFC类库的文档类CDocu-ment派生而来,它主要完成文档的建立、打开和保存.定义了ResultArray、ResultAnayCK等七个二维数组用来保存各项测试结果的.作为实验必须记录的产品号、设备号、参加人、日期、时间等等信息也在这里用菜单响应函数On-TestDevice()和OnTestTime()来完成.
4.4.5 文档显示子窗口框架类CTreeListFrm
文档显示子窗口框架类CTreeListFrm是由多文档子框架窗口类CMDIChildWnd派生而来.它定义了一个带有分格器的子窗口.
通过重写OnC-eateClient.用分割器窗口变量m_wnd-Splitter来创建一个一行两列的分格器窗口,两个区域分别与TreePane和ListPane建立联系.在PreC-eateWindow通过修改结构cs对子窗口的大小进行了定义.
4.4.6结果显示列表视类CListPane
列表视类CListPane是由MFC类库的CListView派生而来,它以ListView(列表)的形式对测试结果进行显示.每一项测试有多个参数,每个参数有名称、代号、允许上限、允许下限、实测值等多个字段,用ListView的方式可以把结果直观地显示出来.另外文档的打印和打印预览、打印所需的准备工作都在这里进行.测试完成后的休息定时器设置和显示也在这里进行.4.4.7试验条件对话框类CDevice
CDevice对话框类由MFC的CDialog派生而来,它是以对话框的形式,由操作人员输入试验条件.在对话框构造函数中,用论文范文串行化的方式从一个固定的文件取上次试验时的参数,这样可以避免重复输入,节省时间.在对话框的OK响应函数中,再把本次试验的新数据输入到文件.
5.结论
本测试软件各模块相互独立,可扩展性强,具有友好的界面,良好的可维护性,方便用户操作,另外对产品的软硬件测试相结合,检测程度深,虚警率低:目前已成功应用于某型号飞控组件产品的测试和各种试验中,为产品的研制节省了大量时间.
总结:本论文可用于测试产品论文范文参考下载,测试产品相关论文写作参考研究。
测试产品 英文引用文献:
[1] 经典测试计量技术及仪器论文题目 测试计量技术及仪器专业论文题目如何拟
[2] 比较好写的测试论文选题 测试毕业论文题目如何定
[3] 产品开发设计专业论文题目 产品开发设计论文标题怎么定