刘 飞 汪 民 邬鹏程
(公安部第一研究所,北京 100048)
基于GPIB接口的数字多用表自动化校准系统设计
刘 飞 汪 民 邬鹏程
(公安部第一研究所,北京 100048)
GPIB接口是将可程控仪器互相连接组成自动化测试系统的主流控制技术,广泛应用于测试工作的各个领域。本文通过对数字多用表自动化校准系统的完整设计,介绍了基于GPIB接口总线的自动化校准系统的软硬件实现方法。文章重点阐述了如何利用SICL函数在VB6.0环境下,实现自动化测试系统的软件设计。最后,本文对系统的开发过程进行了总结,并对自动测试系统的发展趋势予以展望。
GPIB;数字多用表;自动化;校准系统
随着科学技术的发展,电子测量仪器在测试范围、测试速度、测试准确度和测试效率等方面都有了突飞猛进的发展,新的测试理论和测试方法不断出现,在许多方面已经突破了传统的测试手段。对于计量检定机构来说,由于仪器智能化程度不断提高及检测工作量的增加,需要使用自动化测试来快速、可靠、方便的开展测量仪器的计量检定工作。本文基于这种思想,提出了以数字多用表FLUKE45和多功能校准源FLUKE 5700A为例,开发出在VB6.0环境中用SICL对带有GPIB接口的数字多用表进行程控,从而实现数字多用表的自动化测试。
目前,大多数计量校准实验室对带有GPIB接口的数字多用表进行校准,一般都是手工操作。人工校准数字多用表时,必须手动调节被检表校准点所在量程和多功能校准源相应输出值,然后开始测试,等待数字多用表测量值稳定后,手动记录测量数据。当全部被检参数测试完成后,人工对测量数据输入计算机,并判断数据结论,最后打印校准报告,归档原始记录。在计量机构,每年都有大量的数字多用表要求按一定的检定周期送检,检定员必须手动重复同样的劳动,最后给出校准结果。以校准FLUKE45数字多用表为例,完成所有数据的校准以及原始数据的整理和报告的打印,大约需要1个工作日,这与当今智能化的科学仪器技术非常不协调。
现在的高级数字多用表不但智能化高、功能性强,而且大都带有GPIB接口,可采用自动化测试手段,充分发挥计算机自动控制、数据存贮和处理能力,使工作效率得到大大的提高。
2.1 GPIB总线结构
GPIB总线是一种可与可程控测量仪器相连接的标准并行接口总线系统,可把不同厂家生产的各种具备GPIB总线接口的可编程仪器与计算机紧密地结合起来,组建开放式自动测试系统。其主要的特点:
1)规定了仪器支持IEEE 488.2通信协议,定义了总线上消息传输的语法结构,包括出错处理在内的详细消息处理方法,确保了总线数据通信的可靠性;
2)定义了一些公用命令,包括操作命令和询问命令,用于执行仪器识别、自检、初始化和校准等功能;
3)便于将多台带有GPIB总线的仪器组合起来,形成较大的测试系统,高效灵活的完成各种不同的测试,而且组建和拆散灵活,使用方便;
4)GPIB接口编程方便简单,可使用高级编程语言进行程序设计,减轻了软件的设计负担。
2.2 系统的整体方案设计
本自动化校准系统的硬件部分由计算机、多功能标准源、数字多用表、GPIB接口卡和打印机等组成。多功能标准源(5700A)为标准输出源,为数字多用表提供标准的激励源;数字多用表(FLUKE 45)为被检仪器;计算机为本自动控制系统的控制中心;GPIB接口卡用来实现对多功能标准源、数字多用表的控制,并传输测量数据;打印机用来打印校准报告。
本系统中的计算机自动校准软件负责与测量仪器进行通信,根据既定的测量信息,对测量仪器进行相应的操作,再把操作结果或测量数据传输到计算机。自动校准程序提供用户操作界面,并完成测量数据的显示。本系统除了实现传统仪器常用的测量功能外,还增加了许多传统仪器无法实现的分析和处理数据能力,系统整体设计组成框图如图1所示。
图1 系统整体设计组成框图
2.3 系统连接方式
典型的GPIB接口系统一般由一台计算机、一块GPIB接口卡和若干台GPIB仪器通过GPIB电缆连接而成。系统采用的是Agilent公司的82357B USB/GPIB接口卡,通过USB与计算机进行通信,连接方式采用线型连接,这种方式组建和解散测试系统十分简单。
2.4 系统软件设计
系统的软件设计以初始设置模块、参数设置模块、数据测试模块和证书制作模块为核心,选用可视化的VB6.0通用编程工具开发测试软件,以简明、友好的用户操作界面为人机交互接口,非常方便用户进行数字多用表自动测试。系统通过82357B USB/GPIB接口卡以及USB/GPIB的硬件驱动程序控制计算机与仪器进行数据通信。82357B USB/GPIB接口提供了一套标准的SICL函数,用来控制仪器并传输和存储采集数据。
2.4.1 常用SICL函数说明
Function iopen(ByVal addr As String):初始化一个设备并创建一个与该设备相关的会话层,返回指向该会话层的一个指针,方便在程序中对该设备的控制。Addr参数是设备的GPIB地址,一般设备出厂时已经设定,或者用户可手动进行初始配置。
Function iwrite(ByVal id As Integer,ByVal buf As String,ByVal datalen As Long,ByVal endi As Integer,actual As Long):对设备写入操作命令。其中,id是指向该设备的一个指针描述;buf是写入该设备的数据;datalen是写入设备数据字节长度;endi是一个发送数据结束标志,非零表示发送了一个END标志,值为零则表示没有发送END标志,通常取值1;actual是实际写入设备的数据字节长度,通常取0&,意为忽略此参数。
Function iread(ByVal id As Integer,buf As String,ByVal bufsize As Long,reason As Integer,actual As Long):从设备读取数据。其中,id是指向该设备的一个指针描述;buf是指向存储数据块的一个指针;bufsize是数据字节长度;reason读取终止的原因分析,通常取0&,意为忽略此参数;actual是实际读取数据的字节长度。
2.4.2 初始设置模块
初始设置模块主要完成对可程控数字多用表和多功能校准源的GPIB地址设置,为自动测试做前提准备。首先,利用GPIB接口卡和GPIB连接线按线性连接方式,把数字多用表和校准源连接成起来,然后,在相应对话框后输入仪器GPIB地址,便可以进行连接测试。如果地址设置正确和连接方式无误,测试结果会显示校准源和数字多用表的厂商、型号、出厂编号等信息,否则会提示出现的错误,要求进行系统重新连接或是GPIB地址设置。
2.4.3 参数设置模块
参数设置模块主要完成数字多用表校准参数的输入,有五项参数测试功能,分别为:直流电压、交流电压、直流电流、交流电流和电阻。每个测量点要求输入量程、单位、频率和技术指标等参数,在所有参数输入后,可保存为模板。参数设置模块如图2所示。由于大部分数字多用表测量功能和测试项目相似,下次测量时,即可导入模板,为测量提供了方便快捷的途径。
图2 参数设置模块
以下是利用模板导入参数时部分源程序代码:
Dim arrStr0(),strtemp As String
CommonDialog1.Filter = "文档文件(*.lya)|*.lya"
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1
strtemp = StrConv(InputB&(LOF(1),#1),vbUnicode)
Close #1
arrStr0 = Split(CStr(arrStrda(0)),vbCrLf)
For i = 0 To UBound(arrStr0)
If arrStr0(i) = "" Then
Else
MSFlexGrid1.AddItem arrStr0(i)
End If
Next
2.4.4 数据测试模块
数据测试模块主要完成数字多用表校准参数的自动采集。本模块会自动根据参数设置模块设置的参数进行自动测量,并自动计算测量点的最大和最小允许误差,与所选定点的技术指标进行比较,分析是否符合技术指标要求,给出判定结果。在电压、电流、电阻功能测试转换时,会自动给出提示,要求检定员检测连线是否正确,防止连线错误烧毁仪器。数据测试模块如图3所示。
图3 数据测试模块
在本模块的设计中,最大允许误差和最小允许误差小数位的取位十分重要,取位太少会由于数据的舍取,在临界点引起误判,取位太多也会造成不必要的资源浪费。所以,在本模块中,设计了程序会自动根据测量值的位数多取一位,为结果的判定提供了方便。
以下是测量直流电压参数时部分源程序代码:
Dim dvm,S5700A,lens5700 As Integer
Dim S5700 As String
dvm = iopen("gpib0," & Text20.Text)
S5700A = iopen("gpib0," & Text19.Text)
Call iwrite(dvm,"*RST" + Chr&(10),5,1,0&)
Call iwrite(S5700A,"*RST" + Chr&(10),5,1,0&)
Call iwrite(dvm,"CONF:CURR:DC" + Chr&(10),13,1,0&)
s5700 = "OUT " & .TextMatrix(i,3) & unit1
lens5700 = Len(S5700)
Call iwrite(S5700A,S5700 + Chr&(10),lens5700 + 1,1,0&)
Call iwrite(S5700A,"OPER" + Chr&(10),5,1,0&)
Call iwrite(dvm,"MEAS:CURR:DC?" + Chr&(10),14,1,0&)
Call iread(dvm,strres,20,0&,actual)
Call iwrite(S5700A,"STBY" + Chr&(10),5,1,0&)
2.4.5 证书制作模块
证书制作模块会根据测量数据,自动生成校准证书,给检定员的工作带来极大的便利,而且消除了人为录入大量的测量数据时,由于粗心大意引入的差错,不仅解放了劳动力,还提高了数据的可靠性。当所有检测参数点完成测量后,检定员只需在证书制作模块的相应输入框输入被测仪器的相关信息和校准结果,点击生成校准证书按钮,校准程序即可自动生成相应的校准证书。此模块还会自动根据参数测量点的测量值和标准值计算测量误差,并输出到校准证书的相应栏目,小数位的取舍会自动根据测量点的技术指标进行多一位取舍,符合数据修约规则。
1)提高测试效率。将各被检参数制作成模板,在每次校准时,导入被检参数,正确连接测试连接线后,校准软件就会根据设定的被检参数和量程,自动采集测试数据,并自动对数据进行整理、统计、结论判定等复杂处理。以校准FLUKE45数字多用表为例,完成校准大约仅需要10min。校准过程的自动化使检定员从常规的烦琐的重复性劳动中解放出来,节约了时间,大大提高了工作效率。
2)提高测试准确度。人工校准数字多用表时,被检参数必须手动输入,并人工读取测量值,人工输入计算机进行误差计算。此过程要求检定员在校准多用表时,必须仔细认真,否则,稍有不慎就可能出现错误输入或是错误读数。本系统完全由计算机自动控制,自动存储测量数据,自动对测量数据进行误差计算,增加了测量准确度和可靠性。
本系统采用GPIB接口卡控制测量仪器,利用VB6.0编制自动测试软件,完全实现了仪器的自动控制,测量过程由自动控制程序自动完成,检定员只需简单连线,就可利用计算机实现数字多用表的数据测试、数据分析、证书制作等功能。不仅大大提高了仪器测量速度,节省工作时间,而且便于多次重复测量,并提高测量准确度。实践证明,组建这样一个自动校准系统是可行的。
数字多用表自动校准系统的研制,是将计量技术、计算机技术和通信技术有机地结合在一起的成果,本系统具有较高的起点和广阔的发展前景,对其它仪器的自动测试起到了推动作用,并打下了良好的技术基础。
[1] 魏亚利,刘红煜,等.实现DPO3000系列数字示波器自动校准系统.计量与测试技术,2008,35(12)
[2] 景军,李岩,郁黎.数字仪表自动校准中通信程序的编程方法.气象水文海洋仪器,2005(6)
[3] 孙阳,奚文骏.自动测试系统的自动化计量方法.船电技术,2012(3)
[4] 陆云松.虚拟仪器计量检定及展望.国外电子测量技术,2003(增刊)
[5] 李光明.VB6编程实例大制作.北京:冶金工业出版社,2001
10.3969/j.issn.1000-0771.2015.2.16