实时数据采集系统的设计
发布时间:2006-10-14 8:03:58   收集提供:gaoqian
李廷军1,张朝英2,邱丽波2,陈怡焕1

(1.海军航空工程学院 山东烟台 264001;2.烟台市技术学院 山东烟台 264000)


  摘 要:介绍了一种高速、实时的数据采集系统,重点介绍了该数据采集系统的软件设计。

  关键词:高速;实时;数据采集;VISA

  本文介绍了一种数据采集系统,他主要完成对某设备上交流电源、直流电源、模拟电压、开关信号、脉冲信号等各种信号的采集工作。完成对上述信号的如下特征进行纪录:

  (1)交流电源的电压、频率及相序,交流电源的供电时序;

  (2)直流电源的电压及供电时序;

  (3)模拟信号的幅值及反映其变化规律的波形;

  (4)开关信号的电平幅值及信号时序;

  (5)脉冲信号的幅值、脉宽和周期、时序。

  该数据采集系统总体上由硬件和软件2部分组成,硬件是该系统的基础,他完成各种数据的采集;软件是该系统的核心,他主要完成对各个硬件模块的控制和调度,实现对数据的存储,并提供人机操作界面。

1 系统软件结构

  在该数据采集系统的开发过程中,软件扮演着极其重要的角色。从功能上讲,他的涵盖面很广,从硬件设备的驱动程序到开发整套系统所需的各个开发环节在内,他们的层次性很清晰。具体结构如图1所示。

  (1)VISA管理程序及接口软件

  VISA(Virtual Instrument Software Architecture)是一个独立于硬件设备、接口、操作系统、编程语言的I/O控制库,处理测控计算机与仪器间物理连接的通讯信息。通过VISA,由不同硬件接口(如:GPIB,VXI或RS232等)连接的仪器设备可以集成到一个系统中,由一个软件、一套命令函数完成所有仪器设备的控制。



  (2)测试资源层

  测试资源层主要由测试仪器驱动软件组成,系统所选用的货架成品测试仪器无论是VXI总线还是GPIB总线仪器,每台仪器均对应一个测试驱动软件,该软件应按VISA要求编写,软件功能函数则完成对仪器测试功能的控制和测试数据的读写。   该部分包含有VXI-MXI-II驱动程序,HPE1413驱动程序和HP E1459驱动程序。各个驱动程序负责完成对相应模块的初始化和各种配置,并实现对各种数据的读写。该驱动程序一般不单独执行,他是由执行程序来调用。

  (3)应用开发层

  用户开发层是一个软件开发平台,为了充分利用CVI和仪器之间的方便通讯和VC的强大功能及友好的人机界面。该软件将利用CVI和VC共同开发,他首先用CVI编制和仪器通讯的动态链接库,在用VC编写控制函数,并调用CVI编制的动态链接库里的函数来从仪器上读取数据。

  (4)用户应用层

  用户应用层是软件系统的顶层,他实际上就是一个执行程序,实现对各种仪器模块的调度,包括初始化及各个模块子系统的配置,最后实现对导弹上各种数据的同时读取,并以波形的形式显示出来,用来观察各个信号的幅度大小、频率大小、相位关系及各种时序关系。并把数据存储在硬盘中,好在以后进行数据回放。

2 采集软件的设计

  该程序设计最主要的部分就是数据采集软件模块的设计,他的主要任务就是完成对数据的采集、波形的显示、数据的存储和数据的回放。由于要采集的数据量很大,有一百多路信号,包括数字信号和模拟信号。而且采样间隔也很短,为1 ms。当采用单线程来完成所有的工作时,难以满足要求。所以该程序将采用多线程来编程。另外,为了便于更好地管理采集回来的数据,该程序将数据存储在数据库里。

  (1)数据的采集

  首先把对仪器进行配置和数据读取的函数做成动态链接库,其动态链接库里的函数主要有3个:初始化函数、读取数据的函数和关闭仪器的函数。然后在主程序中调用动态链接库里的函数,首先要加载动态链接库,然后获取其函数的指针,利用其指针来调用函数,来实现对仪器的操作。

  (2)波形的显示

  数据的显示有2种情况,一种是从HPE1459来的开关信号,还有一种是从HPE1413来的模拟信号,通过选择,可以显示他们一部分通道的波形,通过翻页,可以选择其他的通道进行显示。

  (3)数据的存储

  数据的存储就是把读入内存的数据通过ODBC存入数据库,由于该数据的结构非常简单,只需建立一个表格就可以把他们之间的关系描述清楚。所以在进行数据存盘之前用SQL先建立一个表格,然后在数据存盘时和这个表格建立连接,然后把读取的数据存入该表格。

  (4)数据的回放

  他主要是把存放在数据库里的数据以波形的形式显示出来。本程序采用多文档形式,当回放时,可以通过按下面板上的按钮来显示不同通道的波形。显示的波形还可以进行放大和缩小变换。

  其中软件工作的程序流程如图2所示。



3 关键技术

  为了满足采集系统的试验要求,本软件在开发过程中采用了3项关键技术。

  (1)动态链接库(DLL)技术。

  动态链接库是运行时模块,他是把程序编译成二进制文件,在运行程序时才加进来,这使得他与编程语言没有关系。所以可以利用动态链接库把几种编程语言结合起来编程,充分利用各种编程语言的优点。该软件就是通过动态链接库,充分利用CVI容易和仪器进行通讯的优点和VC的友好界面及灵活的显示功能。

  (2)多媒体定时器(Multimedia Timer)。

  为了提高Windows操作系统的定时精度以满足对通道的读取精度要求,提高实时显示的刷新速度和软件存储的效率,采用Windows下提供的多媒体定时器,其定时分辨率(Resolution)最高为1 ms,远远高于Windows提供的默认Timer的性能(55 ms)。

  (3)多线程技术。

  Win32是一种抢占式多任务操作系统,他为每一个线程轮流分配时间段,让线程在分配的时间段里运行。每个进程除了系统自动生成的主线程外,还可以创建多个线程来协同完成指定的操作。利用多线程可以大大提高CPU的利用率。对于该应用程序,由于要处理的数据量非常大,只有利用多线程才能满足要求,才能保证数据不丢失。

  (4)ODBC(开放数据库互连)技术。

  通过ODBC技术实现与数据库的连接,也即采用SQL数据库查询语言,可以保证软件的通用性,避免应用程序随着数据库的改变而改变。另外,利用数据库技术,可以更方便地对数据进行显示,可以很方便地定位到某一段数据的显示,也可以选择任意的通道波形进行显示。

4 结 语

  使用该数据采集系统,可以快速地记录和存储大量的实时数据,这对分析某设备的性能参数和工作状态具有非常重要的作用。

参考文献

[1] 陈光禹.VXI总线测试平台技术[M].成都:电子科技大学出版社,1996.

[2] Agilent E1313A and Agilent E1413CHigh Speed Scanning A/DConverter,2000.

[3] Agilent E1459A/Z2404B64-ChannelIsolatedInput Interrupt Module User′s and SCPI Programming Manual,2000.


摘自 现代电子技术
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50