使用HP VEE编制开关量采集和1553测试程序

   2024-02-18 互联网890
核心提示:〔摘要〕 本文结合我公司为航天卫星总体部开发开关量采集和1553测试程序经验,论述使用HP VEE编程中如何提高效率的方法及一些体

〔摘要〕 本文结合我公司为航天卫星总体部开发开关量采集和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路开关量信

15-1.gif (19036 bytes)

图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程序。

15-2.gif (11807 bytes)

图2 d函数处理过程

  4.1.1 BC程序完成如下功能:
  a.对BC状态的监视;
  b.编辑待发送的消息列表;
  c.编辑待发送的队列;
  d.发送消息;
  e.观察队列状态及队列结果。

16-1.gif (9309 bytes)

图3 开关量采集程序结构

16-2.gif (11440 bytes)

图4 1553测试程序结构

  4.1.2 RT程序完成如下功能:
  a.对RT状态的监视;
  b.编辑待发送的数据;
  c.观察接收到的数据和指令。
  4.1.3 MON程序完成如下功能
  a.监视总线上的数据数量;
  b.接收总线上的数据;
  c.对接收的数据进行解释;
  d.有选择地显示。
  4.2 软件的结构
  如图4所示。
  4.3 主要技术问题和解决方法
  由于数据在总线上串行传输,数据字、状态字和命令字都通过一根数据线串行传输,因此当MON接收到数据后,必须对数据进行解释。解释的作用就是逐字地判断它是数据字、状态字还是命令字,并且按照消息的格式将数据重新组合。由于数据量较大(最多有4096个字),判断时需嵌入较长的循环,用VEE进行编制的程序运行速度很慢。
  使用VEE无法达到速度的要求,因而对数据解释部分的程序改用C语言编写。首先由VEE完成数据的接收,将数据存入数据文件,然后由编译好的C语言程序对数据进行处理,处理结果存入数据文件,再由VEE读取显示,见图4。

5 使用VEE的一点体会
  VEE作为可视的工程环境非常易于掌握,用它可以很快的编制出一些测试程序,但它的缺点也很明显,解释执行使运行效率很低,特别是在开发大程序时,由于循环嵌套的积累,往往使运行速度很慢。在编制的过程中,我们体会到,当采用下列一些方法时,会使VEE程序的运行速度大大提高:
  a.尽可能使用数组进行数学运算;
  b.尽可能用较少的目标模块完成较多的功能;
  c.尽可能使目标模块图标化;
  d.数据处理尽可能使用其它语言编程,使VEE仅完成对仪器的操作和结果的显示;
  e.显示方式尽量简洁。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅