综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章通信网络正文
 
基于GPIB对热敏记录仪的控制及数据传输
发布日期:2008-08-08 作者:鲍俊 刘唯 来源:微计算机信息

摘要:在导弹热电池测试系统中,利用VC编写动态链接库函数,通过GPIB接口实现了计算机对WR1000热敏阵列记录仪的控制。介绍了WR1000热敏阵列记录仪常见命令的使用和内存数据输出格式,并具体说明了计算机如何获取采样数据的实现方法,该方法实用性强,对自动测控系统设计人员具有借鉴作用。
关键词: GPIB;控制;数据传输;热敏阵列记录仪

0 引言

       日图公司生产的WR1000热敏阵列记录仪是一种高性能的多通道高速数据记录仪,该仪器具有采样速度快、测量范围大、可采集电压信号和电流信号、工作稳定、抗干扰性好、可靠性高等特点,适合在汽车、电力、铁路和医学研究等领域的使用,也常作为军工产品测试的专用记录仪。鉴于仪器有较强的功能,在使用时首先必须通过面板对仪器就采样频率、通道数等一系列参数进行必要的设置,在采样过程中其采样数据可以直接记录在记录纸上并同时存储在存储器中,等采样结束后通过记录纸或回放数据来分析和判断试验结果。

尽管通过对该仪器的手动设置可以满足所需要求,但在测试过程及数据分析自动化要求的情况下,原来通常通过人工设置和分析数据的方法显然不能符合要求,作为一个计算机综合测控系统中的一个关键设备,为达到测试过程的自动化及同步性,必须由计算机实现对其控制,通过计算机使仪器的参数设置更直观和方便,同时当采样结束后能及时将数据传输给计算机进行处理和显示,由此完成整个测试过程及数据分析的自动化。在导弹热电池参数测控系统中,通过GPIB接口并采用Windows的动态链接库技术实现了上述要求。

1计算机对热敏阵列记录仪的控制

1.1 热敏阵列记录仪的准备

计算机可以通过GPIB接口或RS232口与WR1000热敏阵列记录仪通讯,由于RS232口通讯速度较慢,当需要大量数据传输时由GPIB接口实现是合适的选择,因此在计算机与热敏阵列记录仪进行通讯之前,必须对WR1000进行设置。设置可以通过仪器面板上的按钮进入菜单完成。由SYSTEM键打开系统菜单,具体的菜单路径为SYSTEM SETTING→OPTION SETTING→REMOTE I/F→GPIB SETTINGS,在此菜单下有Address,Terminator和Timeout,可以定义GPIB的地址、数据传输时的区分符及超时时间,由此即完成了WR1000与计算机通讯的准备工作。

1.2 常用命令与使用方法

根据不同的功能,WR1000可以接受的命令分为13个命令组,但对于主要目的是与采样相关的命令只需用到其中的少部分即可。下面就通常需要设置的命令作简单介绍。

(1)仪器初始化命令

在WR1000使用时通常需对仪器进行初始化,其目的之一为清除某些已存储于仪器中的信息,其次检查仪器是否可以正常使用,最常用的命令是“*CLS”和“*IDN?”。“*CLS”的功能为清除标准事件寄存器、外部事件寄存器和出错队列中的内容,“*IDN?”为查询记录仪的ID型号,如果相应命令的返回值有疑问,说明该仪器不能正常使用,因此在正常发送指令前必须进行初始化。

(2)AMP参数设置命令

WR1000的AMP参数设置的功能主要用来对输入信号进行某种处理。首先对通道设置输入连接状态,该参数可以有直流、交流、接地、无连接等多种选择,如“AMP:CH1:INPUT DC”命令表示通道1为直流信号输入;其次需设置的是测量输入信号的最大范围,如“:AMP:CH1:RANG 10V”命令表示通道1最大量程为10V;最后则为信号滤波处理,如“:AMP:CH1:FILT 50Hz”命令表示通道1选择50Hz滤波。通过上述参数的设置即完成了输入信号放大处理的功能。

(3)采样和内存块设置

WR1000提供了非常强大的数据采集能力,最小的采样间隔可以达到1μs,如采样间隔为1ms可以发送命令“:MEM:SAMPL 1E-03s”。WR1000通常将采集的数据存储在内存中,8通道仪器标准配置的容量为每通道512k字节(仪器可以另外配置磁盘来扩充其数据存储能力),因此其总容量为8 x 512k=4096k字节,为保证在不同数量采样通道采样时能充分利用内存,必须对内存重新分配。WR1000内存可以被划分为数块等容量的区域以便存储不同的数据,可划分的块数有1~128块,为2的幂次方数。当要跨通道存储数据时,需设置扩充系数,如发送 “:MEM:EXPA 2”等命令将内存划分为各2048k的两个区域,当只有两个通道采集数据时,采用这种方法可以将所有内存均用来存储采样数据,达到采样时间长或采样密集度高的目的。

(4)启动与停止采样命令

所有参数设置完后,即可以启动WR1000采集数据,采集结束则停止采样,其相应的命令分别为“:MEAS:START”和“MEAS:STOP”。

1.2 WR1000控制举例

在利用VC编写的动态链接库函数中,只需调用标准的send( )函数,即可实现对WR1000的控制。下面就如何控制WR1000的过程,以一个简化的动态链接库函数来具体说明,在该动态链接库中只是列出了控制WR1000所使用的命令,同时所有的检查仪器是否有错等返回信息的处理均忽略,其中变量WR_addr为仪器的GPIB地址号参数变量。在该例子中,采用两个通道采集电压值,采样间隔为100ms,采集的数据存储在内存里,内存区域划分为两个区域,全部用来存放采样数据,具体如下:

extern "C" int PASCAL EXPORT Test_WR(int WR_addr)

{

send(WR_addr,"*CLS",&status);                                 //仪器初始化

send(WR_addr,"*IND?",&status);

send(WR_addr,"AMP:CH1:INPUT DC;RANG 10V;FILT 50Hz",&status); //AMP参数设置

send(WR_addr," :AMP: CH2: INPUT DC;RANG 5V; FILT OFF",&status);

send(WR_addr," ":MEM:CAPT MEM,1",&status);      //采样数据存储内存

send(WR_addr," :MEM:SAMPL 1E-01s ",&status);     //采样间隔100ms

send(WR_addr," ":MEM: BLKS 1;EXPA 2",&status);      //内存区域划分及设置

send(WR_addr," ":MEM: CHAI EMPTY;ASAV OFF ",&status);

send(WR_addr,":MEAS:MODE REC",&status);            //记录仪测量模式

send(WR_addr,":MEAS:START",&status);            //测量开始

……

       send(WR_addr,":MEAS:STOP",&status);                     //测量结束

}

以上编写的DLL动态链接库函数,可以由VB编写的可视化主菜单程序调用,即可完成对WR1000的控制。

1.3 同时控制多台仪器的注意事项

在导弹热电池动态参数测控系统中,计算机通过GPIB接口除了对WR1000进行控制外,还需控制多台电子负载以及程控电源。在实际使用中,如果计算机通过GPIB接口控制一台设备,由于只有一个GPIB地址,所以命令的发送可以正常进行,但是当有多台仪器都由一台计算机控制,且同时对不同的仪器发送指令时,有时会发生计算机发送的部分指令没有被仪器执行的情况。解决方法是在一个命令发送后延时一段时间再发送下一个命令,就可以避免产生上述现象,从而使整个控制系统得到稳定的运行。

2 内存数据自动传输的实现

WR1000数据的记录有多种方法,一种方法是将WR1000设置为边采集边将数据直接打印在记录纸上,第二种方法是将数据保存在仪器内存中,等测试结束后通过特定的软件读取磁盘上的数据,并将其保存到计算机存储设备中,上述两种方法都不能满足自动化的要求,为实现整个测试过程的自动化,必须由计算机在采样结束后能迅速将数据传回进行及时的处理及显示。下面介绍如何通过GPIB接口将WR1000内存中的数据直接传回计算机。

2.1 输出数据格式

       WR1000内存数据输出类型有三种,分别为Binary、Text和CSV,下面以Text类型为例说明数据输出格式。

WR1000中Text类型数据块输出总体格式为

Block data header

1st data point

2nd data point

~

nth data point

它由Block data header数据块头和data point数据组组成,其中数据块头Block data header占据8个字符,第一个字符为数据块输出标志“#”,第二个字符为“6”,指出从第3~8位六个数字符为描述输出数据总长度的字符,第3~8个字符为以ASCII码表示的数字符,如

#

6

1

2

0

0

0

0

1st data

2nd data

~

nth data

说明数据输出的总长度为120000个数据(每通道);而每个data point的数据格式为

Data of CH1     (1通道数据)

Data of CH2     (2通道数据)

~

Data of CHxx    (xx通道数据)

每个通道数据之间用“,”分隔,数据是以指数形式输出的,共占据10个字节(如5.1234E+00),由于只有6位数的数据可以使用一次命令取出,当输出数据量较大时(数据量总数≥1000000),则需分批输出。在用VC编写动态链接库函数时可以用函数enter( )读出一组数据,每次可以读出一个data point,然后将每个通道的数据根据“,”加以分割即可得到所需的数值,但须注意,第一次读取的字符串中包括Block data header的8个字符。

2.2 数据传输过程

       在读取WR1000内存数据之前,需要执行相关命令,其步骤为:

(1)说明输出数据的通道,如“:REPL:CH ALL”表示所有采样通道数据都要输出;

(2)说明输出数据的来源,即数据来自哪个数据块,如“:REPL:SOUR MEM,1”;

(3)说明数据输出格式,如“:REPL:OUTP:TYP TEXT”表示以字符型格式输出数据;

(4)说明输出数据的的起始点和终止点,如“:REPL:OUTP:DATA 1,1000”;

(5)执行数据输出,其命令为“:REPL:OUTP:DATA?”。

2.3 数据传输的实现

       具体实现的过程可以下面VC编写的例子加以说明。

extern "C" int PASCAL EXPORT GET_Data(int WR_addr,long Data_long,int ch_num)  // Data_long为采样点数,ch_num为通道数

{

       send(WR_addr,":REPL:CH ALL;SOUR MEM,1",&status);        //设置通道及内存

       send(WR_addr,":REPL:OUTP:TYP TEXT",&status);              //设置数据输出类型

       sprintf(buff,":REPL:OUTP:DATA 0,%ld",Data_long);    //设置需读取数据的起点和终点

       send(WR_addr,buff,&status);

       send(WR_addr,":REPL:OUTP:DATA?",&status);    //执行数据输出

       for(i=0;i<Data_long;i++)

              {

              enter(buf,100,&len,WR_addr,&status);      //读取数据

……

}

}

在上面的例子中假设数据可以一次输出完成,同时也略去了程序运行中的具体细节,但已经能够说明所需的必要和关键步骤。在由VB编写的测控系统中调用动态链接库GET_Data( )函数即可实现将WR1000内存中的采样数据传输至计算机内存的目标,为计算机进一步进行数据处理奠定基础。

3 结语

通过GPIB接口技术,在导弹热电池动态测试系统中实现了计算机与WR1000通讯。由计算机对WR1000的控制,WR1000的初始化、信号放大、采样频率、内存模块等一系列参数设置具有直观、简单、中文化的特点,而采样的开始和结束的时间节点更精确,与其他仪器设备之间的时间一致性也得到有效保证,采样结束后及时将数据传回计算机进行处理及显示,由此完成整个测试过程及数据分析的自动化。软件编程采用VC编写动态链接库,由VB编写的测控系统主程序调用,方便地实现计算机对WR1000热敏阵列记录仪等仪器的控制和数据传输,提高了软件开发的可靠性、可维护性,使该系统实现了电控、激活、放电、拉载、采样、处理、显示、打印、储存自动化。

参考文献

[1]  刘正国,刘唯,等.导弹地面能源测试系统[J].计算机工程,2003,29(17):170-171.

[2]  刘唯,鲍俊,等.动态链接库技术在IEEE488接口编程中的应用[J].微计算机信息,2005,21(09S),151-152.

[3]  张毅刚,彭喜元,等.计算机自动测试[M].哈尔滨:哈尔滨工业大学出版社,2006.


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
谢谢,现在还没有相关信息...
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号