APP下载

基于图形化的装备测试程序开发方法研究

2018-06-14尹常艳段彦鹏

软件 2018年5期
关键词:测试程序配置文件流程

尹常艳,段彦鹏

(西安泛华科技开发有限公司,陕西 西安 710075)

0 引言

当前电子装备的功能日益强大,对其的维修保障提出了更高要求。装备维修保障时,测试设备利用测试程序,调用适配器、板卡等资源完成功能检测,从而得出测试结果。因而测试程序的开发成为了自动测试的核心工作,其重要程度日趋显著[1-2]。

现阶段电子装备进行维修保障需要通过专业的测控厂商,根据测试需求提供一套内置测试程序集测试系统。当测试程序需要维护升级时,也需借助技术人员实现。测试程序的开发,不但要求技术人员要全面了解测试设备、被测设备、接口等信息,还需要具有相关软件的开发能力,然后通过编程实现测试功能。

主流开发环境强大的软件功能、灵活的编程方式毋庸置疑,但也具有开发周期长、入门门槛较高的缺点。另外由于各开发环境所使用的语言、编程方式存在差异,进而导致各开发环境开发的测试程序之间的可互换性差。

由于上述各种因素,本文针对电子装备测试程序开发的需求,充分考虑了开发环境的易用性及测试程序的通用性,利用虚拟仪器技术,提出一种整合开发过程和资源,快速、便捷地根据测试需求开发测试程序,完成对被测装备的测试。

1 虚拟仪器技术

虚拟仪器技术是利用高性能的模块化硬件,结合灵活高效的软件完成各种测试、测量和自动化的应用。美国国家仪器公司开发LabVIEW图形开发工具,提供了强大的软件功能,缩短了产品投放市场时间、提高了产品开发和生成的效率[3]。LabVIEW中提供的VI脚本功能,可编程实现程序的创建、编辑和运行,减少VI的重复编辑。本文即利用VI脚本技术创建LabVIEW程序代码。

2 总体实现框架

测试程序的开发工具是编写,编译,调试测试程序的开发环境,也称为测试程序软件开发环境[4]。为减少软件开发过程对程序生成的影响,本开发方法设计一套图形化的开发方法,用户设计出整个测试过程,配置相应的属性等参数,通过调试后将测试流程自动转化为LabVIEW程序代码,实现程序的开发。文中介绍的开发工具主要由工具箱、流程图绘制、属性配置、变量管理、调试输出、流程保存,生成程序这几大功能块构成[5]。

工具箱提供测试流程中所需的功能模块。根据功能划分为固有模块和扩展模块。固有模块包含开发过程所必须的模块,如流程控制模块(While、Switch、Timer等)和基本运算模块(Add、Subt等);扩展模块是将第三方提供的用于测试程序流程开发的模块,如数据采集、信号分析等功能,通过工具将其封装为具有Plugin方式的DLL,再以Plugin方式加载至扩展模块中。

流程图绘制完成图形化测试流程的编辑。用户拖拽工具箱上的模块,将其放置在流程图绘制窗口,通过连线将各子模块按逻辑联系在一起,完成某些特定功能。

属性配置用于显示和编辑对象属性。属性分为基本属性和扩展属性。基本属性包括对象的基本信息,如名称、颜色等信息。扩展属性是对象特有属性,如针对采集功能,扩展属性包括采样率、采样间隔等信息[6]。

变量管理模块集中管理程序中所有变量。测试程序中连线只代表程序的执行流程,模块间的数据交互是依靠变量完成。模块的输入可以是一个变量值,也可是多个变量的数学、逻辑、基本函数运算,最终模块输入以表达式形式给出,该模块还会对用户组合的表达式进行逻辑分析,避免输入非法表达式。

调试输出用来动态调试用户开发的测试流程,降低测试程序自动生成过程中的出错概率。用户可针对流程图上的任一节点来设置断点、添加探针。在监测窗口可观察设置的各种变量的变化。调试可采用单步、跳出等方式,在流程图绘制窗口形象的展示[7]。

调试后无错误,将测试流程整体保存为流程配置文件。该文件采用 XML文件形式,文中节点出现的顺序即为执行顺序,节点的属性即为配置参数,节点的包含关系即为节点功能单元的嵌套关系。

最后利用VI脚本技术,按照程序中节点的配置参数和执行逻辑自动生成LabVIEW的程序代码。生成测试程序分为参数解析和程序生成两部分。参数解析模块对测试程序的流程文件进行解析,将流程配置信息组织成需要的接口参数。程序生成模块利用VI脚本技术,通过识别接口参数不同的对象,将其生成并放置在框图中,然后根据层级关系移动,最终进行连线,从而生成测试程序[82]。

3 开发方法执行流程

3.1 设计开发测试流程

根据测试需求设计测试流程。在工具箱上拖拽所需的功能块,按照测试逻辑连接各功能块,通过属性窗口中设置各功能块的参数、路径等信息。完成后通过设置断点、探针、变量等,在输出和变量窗口观察调试信息,对流程进行调试。

3.2 获得测试流程配置文件

开发工具将调试无误的测试流程信息整理保存,自动生成流程配置文件。该文件用于记录流程执行顺序。文件中节点出现的顺序即为执行顺序,节点的属性即为配置参数,节点的包含关系即为节点功能单元的嵌套关系。过程如下:测试流程顶层用节点Root表示测试流程开始,然后记录测试流程的第一层级的流程控制节点。流程控制节点(WhileLoop、IfStruct、Parallel等)在文件中用容器记录,每个控制节点分别在下层节点中详细记录各自特性信息。例如 WhileLoop,在下层节点中记录其节点编号、标题、及所在容器的编号。如果其下层还包含容器,则继续递归直至所有流程信息记录完毕。另外测试流程中还包括变量参数信息,在流程配置文件中用变量节点记录。变量节点中存储了程序中定义的所有变量信息,从中可以解析出变量名称、类型、维数等信息。

3.3 获取接口参数信息

解析并整理流程配置文件,将节点的相关配置信息组织成程序生成时所需要接口参数信息。

解析文件调用LabVIEW中的XML文件操作函数实现。从流程配置文件中解析得到的节点类型及相关的信息,例如节点类型为While循环,则从该节点获取容器号、容器名、循环条件等信息;若节点类型为 Active,则从中获取调用函数的名称或者是 Dll函数的路径、参数名、参数值等信息。若某节点的子节点类型仍是容器节点,则继续递归,直至获取该节点的所有信息;整个测试流程中所有节点信息会统一放置在接口参数信息中[9]。

3.4 生成测试程序

利用LabVIEW VI脚本技术,按照接口参数信息将测试流程中所有节点依次添加至 LabVIEW 程序框图上。例如:节点类型是While循环或者条件结构,则在程序框图设定位置自动放置While循环或者条件结构。函数节点是根据解析出的类型划分为内置函数、子函数和外部库节点。对于内置函数,开发工具根据函数名自动将该函数放置程序框图上;对于子函数,则从记录的路径中将该函数放置在程序框图上;对于外部库节点,则将调用库函数放置在程序框图上,然后按照 Dll路径,导出函数调用规范以及参数信息(参数名,参数数据方向,参数类型,参数值等)配置库节点。至此,测试流程中相关函数,变量、结构信息均以在程序框图上生成。

接着,遍历程序框图中的对象,根据接口函数信息记录的层级关系,将部分函数、变量等功能块分别移动到各自的容器中,然后获取所有需要连线对象,找到连线的源端子和目标端子将两者连接,实现数据的传递。

最后对程序框进行整理,保存在指定路径下。

至此,测试流程已经转化为了 LabVIEW 程序代码。

4 实验验证

为了验证该方法,编写一个模拟电压输出程序。生成的流程配置文件如图1所示。

图1 多通道模拟电压程序流程配置文件Fig.1 Multi-channel analog voltage program flow configuration file

图2 (左)生成节点 (右)节点移入容器Fig.2 (left) Generating node (right)node immigration container

图中括号1中Container表示容器,其中包含了While循环(C部分)和4个函数(A和B)。从1中可以看出A中两个函数在while之前,B中两个函数在while之后。While循环内部包含3个函数分别用Activity表示。结束条件是由Condition表示,是由while内一个函数的端子控制。括号2中Variable是函数中的变量信息。图 1(左)是根据流程配置文件生成控件、流程控制节点、函数等信息;图 2(右)是将相关信息放入流程控制节点;图3是将控件、函数等根据端子连线信息连接后,整理框图,保存程序运行。

根据实验验证,该方法生成的流程配置文件能够将测试流程结构描述清楚,根据其记录的信息,利用VI脚本技术可以正确生成VI程序。

图3 (左)连线后整理程序(右)运行程序Fig.3 (left) Collate program after connection (right) running program

5 结论展望

本文介绍的测试程序图形化开发方法,所有的功验证能块、流程控制结构等均以图形元素的形式展示,相比传统的文本编程方式,具有形象直观、编程门槛低,极大的降低了开发人员的学习成本[10]。同时,采用连线的方式控制节点的执行顺序,便于程序调试。

本文提出的测试程序开发方法提出来一种快速生成测试程序的思路。用户可以采用其它工具生成测试程序的流程配置文件,并通过熟悉的开发环境,编写脚本程序自动生成测试程序。

[1] 陈希祥, 邱静, 刘冠军. 装备系统测试性方案优化设计技术研究[J]. 中国机械工程, 2010, 21(2): 141-145.

[2] 王俊亚, 陈棣湘, 潘孟春. 基于模型的装备快速测试方法研究[J]. 计算机测量与控制, 2011, 19(10): 2347-2350.

[3] 林业翔. 基于labVIEW的自动测试系统的研究与实现[D].华南理工大学, 2016.

[4] 齐永龙, 宋斌, 刘道煦. 国外自动测试系统发展综述[J].国外电子测量技术, 2015, 34(12): 1-4+7.

[5] 梁磊, 刘士仪, 李明. 基于活动图的OWL-S过程模型的图形化建模及实现[J]. 软件, 2012, 33(4): 101-104.

[6] 艾华. 便携式多功能装备故障综合测试仪设计[J]. 中国新通信, 2017, 19(20): 148-149.

[7] 李向东, 高甲子. 舰船装备系统软件一体化测试技术与质量控制方法研究[J]. 船舶标准化与质量, 2017(5): 53-59.

[8] 纪亮. 国家物联网感知装备产业计量测试中心落户无锡[J].中国计量, 2017(9): 33.

[9] 李烁, 李明明. 中国医学装备协会医学装备计量测试专委会学术会议暨首届青年学组成立大会成功召开[J]. 中国医学装备, 2017, 14(8): 140.

[10] 卢超, 黄蔚, 胡国超. 基于图形数据结构的复杂对象建模设计[J]. 软件, 2015, 36(12): 220-223.

猜你喜欢

测试程序配置文件流程
吃水果有套“清洗流程”
忘记ESXi主机root密码怎么办
中心主导制订的《VHF/UHF频率范围内测向系统测向灵敏度的测试程序》等两项国际标准在ITU官网正式发布
本刊审稿流程
析OGSA-DAI工作流程
打印机设置