微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于LabWindows/CVI的通信电源系统自动化测试的实现

基于LabWindows/CVI的通信电源系统自动化测试的实现

时间:01-23 来源:C114 点击:

温度直流和交流电压,标准GPIB 和RS232 接口。在该测试系统中,它主要用来控制继电器,通道切换和量测电压。

直流电源Agilent 3645A,主要用来模拟蓄电池的功能,实现电池的过压、欠压和低压断电。

测试治具内部由继电器组,告警指示灯和气动装置组成。气动装置用于自动连接测试端点。继电器组主要用于切换不同的测试设备和开关。告警指示灯共有4 组红绿灯,用于查看不同的系统告警,如断路告警、熔丝告警、温度告警等。

待测电源系统由两个模块,一个控制器和一个直流配电架组成。模块用于整流,将220 V交流变为54 V直流。控制器用于设定系统的电压,监控系统的状态。直流配电架用于放置模块和控制器,它装有自动空气断路器、接触器、熔断器等部件,为不同容量的负载分配电能,当直流供电异常时,产生告警起到保护作用。

交流电220 VAC 用于模块的输入供电。

负载用于模拟通信设备,用来提供AC 供电和电池供电时系统的负载。该系统测试时负载设定为20 A。

3 系统的软件开发

系统软件以Labwindows 8 。5 为编程语言,可运行在Windows XP,Vista 和Windows7 之上。

3 .1 测试流程

根据测试要求,首先制定一个合理的测试流程,如图3 所示,可分为三大部分,第一部分为自检,第二部分为AC 交流部分,第三部分为DC 直流部分(即电池部分)。

(1)自检。操作人员将待测电源系统放置在治具上后,先进行自检,对系统中所有设备进行复位并初始化,检测系统供电的状态是否正常。

(2 )AC 部分。自检通过后, 先输入交流电220 VAC,在这一部分,先量测空载时系统输出电压、电流、系统状态,加载后量测系统电压及电流,并检测模块是否均流,接着将负载切换到电池端,量测电池电压及电流,然后执行一些告警测试,包括直流过压、欠压、熔丝告警、断路器告警、温度告警等。

(3)DC 部分。检测电池供电后系统的输出电压、电流、检测AC 告警、电池过压告警、欠压告警,实现低压关机功能。

3 .2 核心代码解析

下面列出几个关键的测试代码。

(1)GPIB 通信代码

GPIB/GPIB-488 .2 函数库一共包括10 个子类,分别为Open/Close 子类,Configuration 子类,I/O子类,Device Control 子类,Bus Control 子类,BoardControl 子类,Callbacks 子类,Locking 子类,Thread-Specific Status 子类,GPIB-488 .2 子类,该测试方法中主要应用GPIB-488 .2 子类中的函数实现GPIB 通信。

图3 测试流程图

SendIFC (0);//对所有GPIB 设备初始化。

Send (Board _Index,address ,buffer ,Byte _Count ,EOT_Mode );//发送地址和写数据。Board_Index 表示GPIB 名称,address 表示仪器地址,buffer表示要发送的信息,Byte _Count 表示发送信息的字节长度,EOT_Mode 表示发送模式。

Receive (Board _Index,address ,buffer ,Byte _Count ,Termination);//接收地址,从GPIB 设备中读取数据。Termination 表示数据传输终止符。

(2)TCP/IP 通信代码

该电源系统可通过网络端口进行网络通信,以读取系统内部信息。

由于要读取系统信息属于客户向服务器发出连接,因此先确定该通信属于客户程序。与TCP 服务器连接时,我们必须获得服务器的名称或IP 地址和服务器的端口号。

ConnectToTCPServer (&serverHandle ,server-PortNumber ,serverName ,ClientCallback,callback-Data ,timeout );//注册TCP 服务器,参数serverHandle 表示得到的连接句柄。参数serverPortNumber 和server-Name 表示服务器的端口号和名称,ClientCallback 和callbackData 表示TCP 回调函数名和回调数据。参数timeout 表示超时限制。

ClientTCPWrite (portHandle ,writeData ,data-Size ,timeout );//向服务器发送数据,参数writeData表示发送到服务器的数据,dataSize 表示数据块的大小。

ClientTCPRead (portHandle ,buffer ,dataSize ,timeout );//从服务器读取数据。参数buffer 表示存放从服务器读来的数据块的缓冲区。

DisconnectFromTCPServer (serverRouteHandle);//注销TCP 服务器。

(3)HP34970 控制代码

由于HP34970 提供了程序的功能面板大大方便了编程,我们只需要调用其中的库函数指令,即可实现测试中所需要的通道切换和量值。

hp34970_relay_Operate (1 ,6 ,ON);//控制继电器6 闭合。

hp34970 _relay_Operate (1 ,6 ,OFF);//控制继电器6 打开。

meter _Measure (METER1);//读取表1 的电压值。

switch_lfmux_DMM (101);//切换测试通道至MUX101 。

4 总 结

在软件调试过程中也曾出现了一些问题,经过分析,都得到了解决:

(1)将大量数值变量放置在C 文件中,导

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top