曹 敏 ,畢志周,李 波,李 毅 王 昕,石少巖,梁鉆仁,劉 暢
(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.