基于Visual Studio和SQL Server的自动化计量测试平台的开发
2017-12-02苏州市计量测试研究所孙睿阳
苏州市计量测试研究所 孙睿阳
基于Visual Studio和SQL Server的自动化计量测试平台的开发
苏州市计量测试研究所 孙睿阳
本文介绍了基于Visual Studio软件和SQL Server数据库管理系统,采用功能模块化的思想,设计并实现了对可编程计量仪器进行自动化测试的系统平台。与传统的人工计量过程相比,自动化计量测试平台有测量快速、计算准确、无人工引入误差等优点,适用于重复、复杂并采用可编程接口设备的计量流程,具有较强的实用性和推广性。
自动化;计量;测试;平台;Visual Studio
引言
目前的计量测试工作主要是由人工来操作仪器,一些计量工作流程重复繁杂,再加上操作人员的水平不同,人工操作很容易出错。随着计算机和互联网技术的进步,最近十几年来,仪器设备之间的通讯控制方式有了很大的提升。
在计量领域中,很多被检设备和计量标准器都有可编程的通讯接口,仪器之间通过通讯接口发送指令,几乎可以完成所有的计量测试工作。因此,我们开发了自动化计量测试平台,在测试平台上,可以为不同种类、不同型号的仪器开发各自独立的自动化测试程序。经过一段时间的研发,自动化计量平台的基本功能已经实现,在此基础上,我们完成了数字多用表、信号发生器、网络分析仪等设备常见型号仪器的自动化计量程序的开发工作,这同时也证明了平台的稳定性和实用性。
1.系统功能和组成
本自动化测试平台主要有两个方面的功能:
1.1 在本平台搭建的架构上,对可编程仪器进行自动化计量测试程序的开发;
1.2 执行已经编写好的、存储在数据库中的仪器自动化计量流程,并且生成测试报告。
如图1,本平台主要有5个功能模块组成:设备管理模块、流程设置模块、用户界面模块、数据管理模块、对外接口模块。
这5个模块互相独立又相辅相成,共同实现了仪器设备、驱动的管理,计量流程的编写和执行,仪器计量信息和测量点的添加,不确定度的计算和数据修约,证书报告的生成和数据保存以及与外界程序如OA系统的对接等功能。
下面对这5个主要模块的功能进行逐一介绍。
图1 系统组成图
2.设备管理模块
2.1 硬件设备和线缆
根据可编程仪器自身不同的通讯接口,自动化测试平台选用不同的通讯线缆,主要包括GPIB,串口,以太网,USB等类型的总线。这些线缆用来连接被检仪器、计量标准器和安装有自动计量程序的计算机等设备。
2.2 设备驱动程序
在总线的基础上,是测量和控制服务层。测量和控制服务层包含灵活的设备底层命令,用于硬件设备和软件之间连接,VISA(Virtual Instrumentation Software Architecture)标准就实现了这样的功能,负责硬件和软件之间的通讯。VISA标准独立于所使用的仪器总线,所以,无论是使用GPIB,串口,以太网还是USB等总线,VISA都提供了标准的函数库和仪器进行通讯,从而保证了总线之间的互换性。
SCPI(Standard Commands for Programmable Instruments)标准是一套用于控制可编程测量仪器的标准语法和命令,可用于GPIB,串口,以太网,USB等类型总线。目前,大部分可编程仪器的指令都符合SCPI标准[1]。
在自动计量测试平台中,按照仪器的类别、型号,分别给被检仪器和计量标准器建立仪器驱动库。根据可编程仪器的说明手册,查找各编程指令(如SCPI指令),编写各自的驱动程序,实现仪器的各种功能,如复位,设置参数,输出电压,取出读数等。
例如,在多功能校准源校准数字多用表的计量程序中,分别给多功能校准源和数字多用表编写了功能驱动程序。多功能校准源的驱动程序中包括如下功能函数:初始化、复位、测量功能选择和设置、输出打开、输出关闭等;数字多用表的驱动程序中包括如下功能函数:初始化、自检、清零、复位、测量功能选择和设置、读取数据、计算最大允许误差等。因为数字多用表型号众多,不同厂家、不同型号多用表的准确度、分辨力、仪器指令等有所不同,所以,不同型号多用表的驱动程序可能不一样,需要单独编写。
这里使用的编程环境是Visual Studio 2013,编程语言是C#[2],在仪器驱动程序文件中引用了KEYSIGHT公司IO 程序库套件中的Ivi.Visa.Interop.dll文件,用来和硬件设备进行通讯。
此外,各个仪器的驱动程序中,还可以记录该仪器其他一些必要的信息。如在5700A多功能校准源校准34401A数字多用表的程序中,5700A和34401A各个测量点的量程、最大允许误差或不确定度等指标信息,均以DataTable的数据形式记录在各自的驱动程序中,在计量过程中这些信息可以被用来进行不确定度计算、符合性判定等功能。
2.3 公共程序
除了各个设备所属的驱动程序以外,计量平台中还有一些公共的数据处理程序。如不确定度计算程序、不确定度结果的修约程序、计量单位转换程序等。这些公共程序适用于所有计量校准过程。
3.流程设置模块
流程设置模块的作用是为了方便直观地设计、表示真实的计量测试流程。这里,我们采用了图形化(树状图)的表示形式。
流程图中,每一个方形框图表示仪器驱动中的一个特定功能,程序执行到某个方形框图时,即执行相应仪器驱动中的功能驱动代码。另外,如需编辑某个方形框图对应的功能驱动,在方形框图中可以直接跳转到驱动代码的编辑界面进行代码的查看和修改,非常实用和方便。
流程图的执行规则采用从上到下、从左到右的执行顺序。执行流程时,执行过的方形框图会变颜色来提示执行进度。
程序开发者可以按照一定的规则,设计和配置出符合要求的流程图。图2是用多功能校准源计量数字多用表流程图中的一部分。
除了表示仪器的相关功能之外,方形框图还有控制流程执行顺序等系统功能。如图2中的流程图中,有实现流程循环、条件判断、弹出对话框等功能的框图。和设备的驱动函数一样,每个方形框图可以配置输入参数和返回参数。
树状流程图类似于LabVIEW软件的图形化设计界面,而方形框图类似于LabVIEW中的子VI。这样,计量流程用树状流程图表示,清晰明了,每个方形框图内的仪器功能用C#代码实现,功能强大且灵活,从而把图形化和文本化这两种编程方式的优点结合到了一起,大大增强了自动校准平台的易用性。
图2 校准数字多用表的计量流程截图(部分)
4.用户界面模块
自动化计量测试平台的用户分为2类:普通用户和开发用户,以平台的登录账号来区分,普通用户和开发用户的使用权限不同。
普通用户可以使用“登录”,“产品计量”,“产品报告”等用户界面。
在“产品计量”界面中,用户可以完成被检仪器的全部计量流程。首先,用户选择或填写被检仪器、用于计量的标准器、计量方案等信息,信息填写完整后开始执行计量流程。程序执行中,每一个测量项目的测得值、最大允许误差、计算出的测量不确定度、判定结果都会以表格形式即时地显示在软件界面上。如果遇到测量值超差或者其他异常情况,程序会跳出对话框提示用户重新测试或终止程序等操作;测试中如需要更换仪器之间的接线方式,程序也会跳出对话框提示用户。程序执行完成后,生成计量报告。在“产品报告”界面中,用户可以看到已计量设备的证书信息。
开发用户除了普通用户可以使用的界面外,还有“设备管理”,“计量设计”等程序开发、维护界面。
“设备管理”界面中,开发用户可以添加仪器类别、仪器型号、编辑仪器各个功能的驱动。
“计量设计”界面中,开发用户可以按照计量规程或规范的要求,把被检仪器和标准器的各个功能驱动进行整合,配合一定的流程控件,设计出各种计量测试流程,再把计量流程和被检仪器进行绑定。此外,开发用户还可以给每个被检仪器写入常用的计量测试点。
以上用户界面的功能以菜单栏和任务标签页面的形式来表示,用Visual Studio开发环境结合DevExpress控件的方式来实现。图3为软件中用户界面的菜单栏和部分功能标签。
图3 用户界面中的菜单栏和部分功能标签
5.数据管理模块
数据管理模块采用了SQL Server数据库,该模块是其余模块运行的数据传输基础。
设备管理模块中的设备驱动,流程设置模块中的计量流程、测量点,用户界面模块中计量信息、计量报告,都是在数据管理模块中进行存储和读取的。
6.对外接口模块
本单位目前已有一套计量OA系统软件[3],在该OA系统中可以实现原始记录的录入、检定/校准证书的生成、打印证书等功能。为了充分利用已有OA系统的功能,也为了实现本单位原始记录和证书格式的统一,自动化计量测试平台需要和OA系统中的相关功能进行对接。对外接口模块就实现了这样的功能。
自动化计量测试平台把采集或计算出测量结果、测量点的上下限、测量不确定度、订单的客户信息等数据,传输到OA系统相应的程序接口,在OA系统中生成仪器的原始记录和计量证书;同样,计量平台也可以从OA系统中读取、检索原始记录模板、计量报告等信息。
对外接口模块,采用了Web Service技术,该技术可以在软件之间传输或接收数据信息,实现了软件之间的功能对接。
7.结束语
以上介绍的自动化计量测试平台的五个模块,组成了可编程仪器完整的开发、检定/校准功能。用此计量平台对数字多用表、网络分析仪、信号发生器的多个常见型号仪器进行多次校准,所得测量值、测量不确定度等数据与本所人工校准所得数据进行比对,结果符合预期要求。与传统的人工计量过程相比,本自动化计量测试平台有测量快速、计算准确、无人工引入误差等优点,适用于重复、复杂并采用可编程接口设备的计量流程,具有较强的实用性和推广性。
[1]秦凡,韦高.基于VISA库及SCPI命令的仪器程控测量[J].陕西:现代电子技术,2011 (11):118-120.
[2]Karli Watson.C#入门经典(第六版)[M].北京:清华大学出版社,2014.
[3]张俊峰,宫宁生.计量检测原始记录电子化系统设计与实现[J].北京:中国计量,2013(3):101-103.
孙睿阳(1984-),男,工程师,主要研究方向:时间频率、无线通信、自动校准软件的开发等,主要从事电磁学及无线电计量工作。