基于LabWindows/CVI的通信电源系统自动化测试的实现
温度直流和交流电压,标准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 文件中,导
LabWindows CVI 通信电源 自动化测试 相关文章:
- LabWindows/CVI的便携式电源控制器测试系统设计(03-04)
- 基于LabWindows CVI的扭矩扳手数据处理系统的设计与实现(10-16)
- 基于LabWindows/CVI虚拟仪器编程语言的飞行模拟器(08-12)
- Labwindows/CVI+Matlab建立高频衰减模型(02-27)
- 基于Labwindows/CVI和Matlab高频衰减模型建立与应(11-22)
- LabWindows/CVI虚拟仪器编程语言的飞行模拟器(08-09)