我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1248|回复: 0

实时数据采集系统的设计 - 工业/测控 - 电子工程师俱乐部

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 09:26:51 | 显示全部楼层 |阅读模式
本文介绍了一种数据采集系统,他主要完成对某 设备上交流电源、直流电源、模拟电压、开关信号、 脉冲信号等各种信号的采集工作。完成对上述信号的 如下特征进行纪录:

(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 结 语

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表