您当前的位置: 首页 > 美食

实时数据采集系统的设计

2019-02-27 23:32:13

实时数据采集系统的设计

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

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

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

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

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

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

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

1 系统软件结构

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

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

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

(2)测试资源层

测试资源层主要由测试仪器驱动软件组成,系统所选用的货架成品测试仪器无论是VXI总线还是GPIB总线仪器,每台仪器均对应一个测试驱动软件,该软件应按VISA要求编写,软件功能函数则完成对仪器测试功能的控制和测试数据的读写。

该部分包含有VXI—MXI—Ⅱ驱动程序,HPE1413驱动程序和HP El459驱动程序。各个驱动程序负责完成对相应模块的初始化和各种配置,并实现对各种数据的读写。该驱动程序一般不单独执行,他是由执行程序来调用。

(3)应用开发层

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

(4)用户应用层

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

2 采集软件的设计

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

(1)数据的采集

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

(2)波形的显示

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

(3)数据的存储

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

(4)数据的回放

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

3 关键技术

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

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

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

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

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

(3)多线程技术。

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

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

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

4 结 语

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

肌肉酸痛吃什么药
发热流鼻涕咳嗽怎么办啊
小儿便秘治疗
推荐阅读
图文聚焦