您当前的位置:五五电子网电子知识单元电路接口电路动态链接库技术在IEEE488接口编程中的应用 正文
动态链接库技术在IEEE488接口编程中的应用

动态链接库技术在IEEE488接口编程中的应用

点击数:7991 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.com   接口电路

摘要:为了提高现代测试效率和仪器的测试精度,实现硬件不具有的一些功能,可通过计算机对IEEE488接口仪器的操作和控制来实现。该方法采用Windows的DLL(动态链接库)技术,方便地把多台仪器组合起来,形成由计算机控制的自动测量系统。作者介绍了IEEE488接口的Windows程序设计的基本思想,并结合导弹热电池测控系统的设计,给出了用DLL技术实现对程控电子负载、程控电源和热电式阵列记录仪进行编程的方法。
关键词:IEEE488接口;DLL技术;程控仪器编程

1 前言
    目前,许多测试系统采用IEEE488接口实现仪器的互连和仪器与计算机相连,经过IEEE488接口实现计算机对仪器的测控,这样做不仅提高了测试系统的测试精度,而且可用软件取代硬件,实现硬件不具有的一些功能。
    利用IEEE488接口功能和与IEEE488接口相匹配的可编程仪器,用标准命令SCPI (Standard commands for programmable instruments),通过高级语言编程可实现自动测试。典型的自动测试系统由一台作为主控机的计算机和若干台程控测试仪器通过IEEE488接口及总线连接而成。主控机内安装了一块IEEE488标准接口卡,通过它系统可对各程控测试仪器进行远程遥控和自动(半自动)操作。


    在对导弹热电池测控系统的研发过程中,我们选择了Windows作为软件开发平台,以面向对象的Visual BasIC作为程序设计语言, 利用Windows的DLL(动态链接库)技术,通过不同的IEEE488接口功能调用,实现了对测控系统中程控电子负载、程控电源和WR1000热电式阵列记录仪的自动控制。

2  测控系统对IEEE488的编程要求
    导弹武器装备的能源主要由热电池等组成,热电池是一次性使用的固态电解质贮备电池,它无法像常规电池那样在生产结束后对所有电池进行电性能检测筛选,热电池的验收只能通过抽样检验的方法进行,因此加强热电池生产过程中的检测,是保障热电池产品质量,提高热电池产品性能的重要手段。根据导弹热电池的技术要求和性能特点,测控系统设计采用了模块化结构,以便通过不同的组合,测试各类热电池。
    按照测试要求,系统采用电子负载拉载,实现恒流或恒阻脉冲放电;使用WR1000 热敏阵列记录仪采集热电池电压和电流数据;通过PT100温度传感器经RS232采集热电池的表面温度数据。整个系统由计算机、电子负载、程控电源、WR1000 热敏阵列记录仪、通用测试接口装置、现场信号监测装置等组成,系统测试原理如图1所示。由图可见,电子负载、计算机、程控电源和WR1000 热敏阵列记录仪之间均采用标准IEEE488接口连接,通过计算机控制,可使整个测试过程实现电控、激活、放电、采样、处理、显示、打印、储存自动化。
    测试时,通过计算机控制程控电源点火,激活被测对象,热电池的电压和电流信号直接由WR1000数据记录仪采入,热电池表面的温度信号则经PT1000温度传感器通过计算机RS232口采入并实时显示,与此同时计算机通过IEEE488控制电子负载拉载电流。试验结束,计算机会将WR1000数据记录仪中数据传输到计算机内存中加以存盘保存。根据需要,试验数据可随时通过屏幕或打印机输出。
    测试过程中,系统采用程控电子负载拉载,实现恒流或恒阻脉冲放电。图2为热电池的一个拉载波形实例。

 
 

3  IEEE488命令的实现方法
    在导弹热电池测控系统中,我们通过IEEE488 总线将计算机、程控电源、电子负载和WR1000 热敏阵列记录仪相连,编写了相应的DLL动态链接库,由计算机对程控电源、程控电子负载和WR1000 热敏阵列记录仪进行控制,从而实现了热电池点火激活、电子负载拉载和WR1000 热敏阵列记录仪数据传输的自动化。
    为了实现对IEEE488接口的测控,我们采用VB6.0编写了如图3所示的测控程序。
    作为面向对象的可视化编程语言, VB的功能非常强大,但也有自身的不足。在工业控制中对计算机的底层硬件进行访问以及利用各种控制接口板进行数据采集和控制时,仅靠VB是无法解决的。为此我们使用Windows的DLL动态链接库技术,采用标准的 IEEE488工业指令,利用Visual C++编写DLL来实现热电池点火激活、电子负载拉载和WR1000 热敏阵列记录仪数据传输等各项功能。
 

    下面以实例说明IEEE488命令的实现方法。用VB 编写的部分测控程序段如下:
Public Declare Sub CURRENT_LOAD_INIT Lib “Apiguide.dll” ()
Public Declare Sub CURRENT_LOAD Lib “Apiguide.dll” (ByVal v20 As String,   ByVal v5 As String)                          
Public Declare Sub IEEE488_POWER_ON Lib “Apiguide.dll” (ByVal vol_curr As String)
Public Declare Sub IEEE488_POWER_OFF Lib “Apiguide.dll” ()
……
CURRENT_LOAD_INIT                  ‘程控电子负载初始化
IEEE488_POWER_ON “APPL P25V,24.0,1.0”   
                   ‘程控电源24V 启动电机
LIGHT_ELEC_SAMPLING                ‘采光电信号
IEEE488_POWER_OFF                  ‘关闭电机
CURRENT_LOAD “curr:stat:l1 3.0”, “curr:stat:l1 1.0”
             ‘程控电子负载加载
TEST_SAMPLING                      ‘采样
……
    以程控电子负载加载为例,用VC++ 编写DLL的具体步骤如下:
    (1) 新建工程名为Apiguide的动态链接库DLL
    (2) 打开Apiguide.h文件,在#include后添加说明:
extern "C" void PASCAL EXPORT CURRENT_LOAD(char current_value_20[],char current_value_5[]);
    (3)打开Apiguide.cpp文件,
    在文件开头加入:
#include “ieee.h”
    在文件最后加入:
extern "C" void PASCAL EXPORT CURRENT_LOAD(char current_value_20[],char current_value_5[])
{
int status;
send(9,"chan 1",&status);
send(9,current_value_20,&status);
send(9,"chan 2",&status);
send(9,current_value_20,&status);
send(9,"chan 3",&status);
send(9,current_value_5,&status);
send(9,"run",&status);
}
(4) 打开Apiguide.def 文件,在文件最后写入:
CURRENT_LOAD
    通过上述实例说明,不难看出,动态链接库DLL的建立和调用非常方便。

4   结语
    基于IEEE488接口的仪器可用计算机来实现对其的操作和控制,从而替代传统的人工操作方式。IEEE488测量系统的结构和命令比较简单。结合Windows的DLL动态链接库技术,我们可以很方便地把多台仪器组合起来,形成Windows图形界面的计算机自动测量系统。这样做不仅提高了测试精度,也符合测试技术与计算机技术的同步协调向前发展的趋势。





本文关键字:技术  动态  接口  接口电路单元电路 - 接口电路

《动态链接库技术在IEEE488接口编程中的应用》相关文章>>>