曹 敏 ,毕志周,李 波,李 毅 王 昕,石少岩,梁钻仁,刘 畅
(1.云南电力试验研究院(集团)有限公司电力研究院南方电网电能计量重点实验室,昆明650217;2.昆明科瑞迪电网开发有限公司,昆明650217)
对于数据源的长时间采集和监测,使用人工操作并记录数据的方式,往往导致操作繁琐、效率低下,并且很难保证数据的完整性和及时性,并且在事后不能及时地对数据进行处理,势必影响后续的工作开展。随着先进测试仪器仪表及周边产品的问世,大量的设备仪器可以直接与计算机配合完成上述工作,极大的提高了生产效率。基于3458A 及160B 扫描开关的数据采集统计系统完成了对多通道流程的控制以及对多通道数据的采集。并通过该系统进行详尽的数据分析统计,大大提高了操作使用人员的工作效率,统计结果直观易懂,使用人员可以获取更为具体详尽的数据信息。
系统的设计目的在于:系统可以在长时间无人操控的情况下,对多台信号源进行电压采集,并记录所采集到的电压数据,最终对数据进行统计分析,以监测各信号源的稳定性。稳定的信号源数据为一套交流系统溯源时提供依据。所以需要长期监测信号源的稳定性。而这样的长期监测由人工操作很难实现,所以开发该系统替代人工操作并更好的完成对信号源的稳定性监测。同时,整套采集系统在实际测量标定流程中,以国家计量院标定的已标定信号源为标准标定被标定信号源时误差不超过2×10-6。
Data Proof 160B 低热电势电子扫描开关是理想的自动化高精度测量设备。这种多功能扫描开关有两对输出线,使它的应用范围更为广泛。它可用于比较电压参考标准及电阻的四端测量功能。设备背面,设有GPIB 通信口,可以通过USB/GPIB 总线与计算机相连。
Agilent3458A 多用表突破了生产测试线、研发和校准实验室中速度和精度的性能壁垒[1],是一款快速、灵活并且精确的多用八位半数字万用表,它具备7 种测量功能,提供100,000 读数/s 得到最大的测试吞吐率或以8.5 bit 的测量分辨率和0.1×10-6传递精度得到最高精度级别[2]。在该设备背面,设有GPIB 通信口,可以通过USB/GPIB 总线与计算机相连。通过Agilent 配套的驱动程序,可以使用VISA32 接口程序完成对数表的控制。
为了完成对多信号源同时接入的数据采集要求,使用GPIB 级联线将电子扫描开关的GPIB 端口与3458A 的GPIB 端口进行连接[2];使用USB/GPIB总线将3458A GPIB 级联端与计算机相连;使用信号线将扫描开关的各通道分别与多信号源逐一相连,使得整体呈现互相连接的状态,如图1 所示。
图1 硬件构成设计图
该设计的最大特点在于只需要通过控制电子扫描开关,就可以完成多信号源与3458A 的连接,避免了对设备多次接线引起的低热电势误差带来的负面效果,同时由于3458A 的8.5 bit 高分辨率和0.1×10-6的高精度级别使得整套采集系统的精确性达到一个新的高度。另外对通道的快速切换也可以实现在高速下对多个信号源的数据采集。这里应当注意,在扫描开关切换通道后,应该暂停数据采集1 min 以上,以保证通道切换后的热电势影响回归到最低的状态,从而保证采集数据的最高精确性。
整个软件使用Visual studio 2005 平台开发,使用语言为C#,并使用. NET FrameWork3.0 为基础。C#是一种全新的语言,它可以利用. Net FrameWork及其开发环境中的所有新特性,. Net FrameWork 和C#一开始就完全是基于面向对象的[3]。
为了保证两台设备高效、准确的进行数据读取,于是将本软件系统所设计的流程分为以下3 个部分:准备采集、数据采集流程和数据展示,如图2所示。
图2 软件构成设计图
发送命令前需要为计算机安装Aglient34410A数字电压表USB 驱动程序安装,将随机光盘放入光驱运行Agilent IO Libraries Suite 14.2 进行安装[4],HP3458A 设备的控制命令完全符合SCPI 可程控仪器标准命令集[5]的要求规范,命令简单易操作。
(1)3458A 地址初始化工作
通过Agilent 驱动软件Agilent IO control,可以对3458A 进行地址初始化设置工作[6]。
(2)3458A 连接验证
在应用程序中,通过集成VISA32 接口,向3458A 发送端口打开命令viOpen(),传入3458A 的地址(格式为GPIB0::XX::INSTR,XX 为3458A 的预设地址),然后发送GPIB 指令“ID?”,若返回“HP3458A”,说明计算机与3458A 已经连上,可以进行后续的参数设置工作。
(3)3458A 参数配置[7]
首先发送命令”PRESET”将3458A 预设为NORM、FAST 或者DIG 三种状态之一。NORM 状态是将3458A 作为类似复位的操作;FAST 状态是将设备调整到最快的存贮、读取状态;DIG 状态是将设备调整到直流电压数字化状态;
图3 设备配置流程图
如果要打开设备的屏幕显示,可以发送”DISP”命令,该命令有OFF 和ON 两个状态,分别对应屏幕的关闭和开启;
发送“MFORAT”命令,对3458A 中的数据读取内存进行的清除,并且对新的数据存储格式进行格式化,该命令有5 个参数:ASC Ⅱ、SINT、DINT、SREAL、DREAL,分别对应ASC Ⅱ、Singel Integer,Double Integer,Single Real,Double Real;发 送“OFORMAT”命令,对3458A 进行GPIB 输出数据的格式化设置,该命令有5 个参数:ASC Ⅱ、SINT、DINT、SREAL、DREAL,分别对应ASCⅡ、Singel Integer,Double Integer,Single Real,Double Real;
发送“MEM”命令,设置3458A 启用或者禁用读取内存,并指定存储模式。该命令有4 个参数:OFF、LIFO、FIFO、CONT,分别对应关闭、后进先出、先进先出、使用前一个模式。
发送“DCV”命令调整3458A 的直流电压测量档位;
发送“NDIG”设置了3458A 要显示的位数;
发送“NPLC”设置3458A 在电力周期中,AD 转换的时间;
发送“TRIG”命令设置3458A 的触发事件;
发送“AZERO”命令设置3458A 的自动零位功能;
发送“NRDGS”命令设置3458A 每次返回数据的个数;
发送“END”命令设置3458A 启用或禁用GPIB的EOI 功能;
发送“TARM”命令设置3458A 的触发事件机制。
(4)电子扫描开关地址初始化
通过Agilent 配套的驱动软件,可以对3458A 进行地址初始化设置工作。
(5)电子扫描开关连接验证
由于扫描开关的连接命令没有返回值,只能通过发送命令来判断其是否与计算机连接正常。在应用程序中,通过集成VISA32 接口,向3458A 发送端口打开命令viOpen(),传入160B 的地址(格式为GPIB0::XX::INSTR,XX 为160B 的预设地址),然后发送指令“A00”和“B00”,关闭扫描开关所有端口,根据设备上的显示提示完成连接验证。
数据读取流程设计需要使用异步多线程技术[8],主线程负责维持程序界面的正常运行,另一条一条线程负责读取数据,通过委托产生与主线程的通信用于显示和记录所测量的数据。
如图4 所示,数据读取流程开始后,首先要将3458A 预热,该过程可以保证3458A 在数据采集过程中不会因为设备启动后的温度变化产生热电势影响数据准确性。
图4 数据采集流程图
接下来进入3458A 的参数配置过程,如§3.1中所述,配置好3458A 和160B 才能正确的按照流程进行数据采集。为了保证3458A 的读取精度,可以对3458A 进行自校准操作。
然后开始进入设备控制及数据采集流程:首先控制扫描开关打开待测信号源的通道,3458A 自动与该信号源进行连接,计算机通过VISA32 接口程序对3458A 返回的数据进行采集。当读数个数满足后,结束本次读取操作。然后打开下一个待测信号源通道,通过3458A 完成对下一个信号源的数据读取,直至所有信号源读取完成。
判断读数个数满足条件时,程序中引入了异常值剔除规则,排除可能因为外在条件(电波,电磁,温湿度等影响)导致突发性读数异常的情况,这类数值会对后续的数据分析造成一定的影响。为了使数据分析更为准确,程序中引入了3 种异常值剔除规则[9]:拉依达法则,格拉布斯准则,狄克逊准则。3 种规则适用条件不同,针对不同的数据读取次数,拉依达法则适用于读取次数50 次以上的情况。格拉布斯准则适用于20 次~50 次的情况。狄克逊准则适用于20 次以下的情况。
下面4 组图形是通过本采集系统分别对2 个不同信号源进行数据采集的结果展示。采集时间是在半年时间中进行的245 次完整测试数据,所有数据都是在无人监控和操作的情况下由软件程序自行采集得到的。由图中我们可以看出,数据的变化量基本稳定在2×10-6之内,所以根据图中的数据显示,我们可以认定该系统已经达到了预想的采集精度及稳定度。其中的每一个数据点都是由设备对设备进行20 次读数后的进行平均值运算产生的。在实际的运用中,平均值计算只是其中最简单的运用之一。
图5 直流电压主基准1#
图6 直流电压主基准2#
在长期大量的测试中发现VISA32 接口协议在3458A 及电子扫描开关间进行端口快速切换时,会出现通信端口无法关闭,致使后续操作无法继续进行的问题。由于该问题一旦出现,就基本失去了对于设备的控制,很难在出现问题之后使用其他方法来解决设备的锁死现象。
经过长时间的多种方法的测试,最终形成了一个完全可以处理该问题的解决方法:在打开端口之前,首先关闭之前使用的端口,如图7 中虚线部分所示。具体的操作方法是在数据采集流程中,每次转换设备前都对之前的设备端口进行关闭,然后使程序等待一段时间,再进入设备操作类中检测设备端口关闭情况,如果端口未关闭,则进行再次关闭的操作。
图7 设备端口控制流程图
数据统计分析功能主要针对数据采集流程中所采集的数据进行统计分析计算,并将结果显示,并生成数据变化曲线图,以便使用者更加直观高效的研究数据变化趋势及可能出现的问题等。数据统计分析运行流程如图8 所示。
图8 数据统计流程图
数据采集流程中,将一次完整的数据采集作为一个批次。在查询条件设置中就是根据条件查询符合条件的批次。查询条件的多种类灵活设置为使用者可以有针对性的对部分数据进行统计分析提供了更大的便利,既大幅提高了使用者快速统计分析所需数据的效率,也提高了使用者的用户体验。
查询结果将列出所有符合查询条件的批次数据项,而使用者仍然可以进一步从这些批次数据项中选择所需要的批次数据项进行统计,也可以全部选择统计。该次选择也是进一步为使用者的统计分析提供更为精确的待选项。
统计结果及曲线图显示功能是整个软件非常重要的功能之一。统计结果和曲线图显示是相互关联的2 部分,首先,统计结果中会根据用户所选择的所有批次数据项中包含的数据分别生成对应的数据报告,报告中列出了该批次测试数据中各设备的统计分析数据项,包括:平均值,极大值,极小值,实验标准差,相对实验标准差,极差值,相对极差值,标定值等。
平均值:单台设备该批次测量数据的平均值。
极大值:单台设备该批次测量数据的最大值。
极小值:单台设备该批次测量数据的最小值。
实验标准差:根据贝塞尔公式[10]
计算得到(其中Xi是一次设备测量值,¯X 为该设备在该批次测量中的平均值。n 为该设备在该批次测量中的数据读取次数。)
相对实验标准差:根据贝塞尔公式
计算所得(公式中参数与实验标准差中相同)
极差值:极差值=极大值-极小值。
相对极差值:极差值/¯X。
标定值:(1)用3458A 测量已标定信号源电压值,以已标定信号源上级检定值作为标准值,其误差公式如下:
式中:Δ1为电压测量引入的误差,包括以下误差项:Δ11(3458A 测量稳定性误差)、Δ12(3458A 分辨率引起的误差)、Δ13(测量回路热电势引起的误差)。
X1为已标定信号源的测量值(平均值);N1为已标定信号源的上级检定值。
(2)用3458A 测量被标定信号源电压值,其误差公式如下:
式中:Δ2为电压测量引入的误差,包括以下误差项:Δ21(3458A 测量稳定性误差)、Δ22(3458A 分辨率引起的误差)、Δ23(测量回路热电势引起的误差)。
X2为被标定信号源的测量值;N2为被标定信号源的标定值。
(3)用式(1)减去式(2)并整理得:
代入Δ1和Δ2的各分量有:
上式中各项的灵敏度系数的绝对值均为1。
表1
(以上不确定度分量均来源于设备说明书及国家计量院检定数据)
曲线图的生成,是通过获取统计中所有批次的设备特定值如标定值,平均值等或经过特定计算后的数值以时间为基础计算统计生成。曲线图的生成大大的提高了数据的可读性,简化了数据分析的工作。
统计工作完成后生成的多种统计结果及曲线图是具有深层的研究意义的,所以软件更人性化的设计了将统计结果及曲线图通过简单的操作导出为Word 及Excel 报表[11],使用人员可以分析文档中的数据即可。除了导出统计结果及曲线图,软件还设计了导出原始测试数据、针对多台数据源中任意几台的统计数据或原始数据的导出功能,这也是为了使用人员更具针对性的对设备状态进行监控。
经过长期大量的试验验证,该系统完全可以对多个信号源进行自动化的数据采集,数据具有准确度高、持续性好的特点。该系统具有方便的接口,可以嵌入到其他的数据采集模块中,成为比较理想的自动数据采集系统。而软件的统计分析功能更简化了数据分析过程,使设备状况更为直观的展示在使用者面前,并为使用者做出了一定的基础性分析。大大提高了使用者的工作效率,是非常具有针对性的专业性软件。
[1] Agilent 3458A 数字多用表技术资料[S].2005 年1 月,Agilent Technologies,Inc.2005,出版号:5965-4971CHCN,4-5.
[2] 胡永健.基于ATmega8515 的低热电势程控扫描开关[J].微型机与应用,2011(7):16-19.
[3] Christian Nagel,Bill Evjen,Jay Glynn.C# 2005 &.NET3.0 高级编程[M].北京:清华大学出版社,2007:7-8.
[4] 刘伟杰,赵质良.利用VISA 通过USB 接口控制Agilent34410A[J].仪表与计量技术,2008(2):37-39.
[5] SCPI Consortium.Standard Commands for Programmable Instruments Manual Version 1990[S].1990.
[6] 王俊璞,金志华.HP3458A 数字万用表的计算机控制[J].计量技术,2008(12):24-26.
[7] 3458A Multimeter User’s Guide[S].Edition 4.Agilent Technologies.2000:149-258.
[8] 周存杰.Visual C#.NET 网络核心编程[M].北京:清华大学出版社,2002:53-59.
[9] 中国计量测试协会. 一级注册计量师基础知识及专业实务[M]北京:中国计量出版社,2009:212.
[10] 中国计量测试协会. 一级注册计量师基础知识及专业实务[M]北京:中国计量出版社,2009:205-206.
[11] 王小科,王军.C#开发实战1200 例[M]. 北京:清华大学出版社,2011:591-650.