朱 熙,劉 波,吳東亮,安萬慶,王擎宇(北京衛(wèi)星環(huán)境工程研究所,北京 100094)
?
基于IVI驅(qū)動的真空熱試驗數(shù)據(jù)采集系統(tǒng)軟件開發(fā)
朱 熙,劉 波,吳東亮,安萬慶,王擎宇
(北京衛(wèi)星環(huán)境工程研究所,北京 100094)
摘要:目前國內(nèi)大型空間環(huán)境模擬器配備了多種型號的數(shù)據(jù)采集系統(tǒng),主要負(fù)責(zé)完成對多種數(shù)據(jù)信號的綜合測試。文章以Keithley 3706數(shù)據(jù)采集系統(tǒng)為設(shè)計對象,在VB6.0的開發(fā)環(huán)境中設(shè)計了基于IVI驅(qū)動的數(shù)據(jù)采集軟件,給出了IVI驅(qū)動的設(shè)計過程及軟件代碼。實踐表明,IVI驅(qū)動的引入提高了數(shù)據(jù)采集系統(tǒng)的開發(fā)效率,降低了研制成本,實現(xiàn)了數(shù)據(jù)采集系統(tǒng)的硬件無關(guān)性。
關(guān)鍵詞:真空熱試驗;數(shù)據(jù)采集系統(tǒng);軟件設(shè)計;IVI驅(qū)動
http://www.bisee.ac.cnE-mail: htqhjgc@126.comTel:(010)68116407, 68116408, 68116544
真空熱試驗數(shù)據(jù)采集系統(tǒng)是空間環(huán)境模擬器測控系統(tǒng)的重要分系統(tǒng),在航天器空間環(huán)境試驗過程中負(fù)責(zé)協(xié)助完成對多種數(shù)據(jù)信號的綜合測試,包括溫度、熱流、電壓、電流等[1],為溫度監(jiān)視及控制提供依據(jù)。因真空熱試驗具有長時間連續(xù)運行的特點,要求數(shù)據(jù)采集系統(tǒng)具有很高的可靠性和過程能力。
隨著空間環(huán)境模擬實驗對數(shù)據(jù)采集的要求越來越高,包括采集點數(shù)更多、速度更快、穩(wěn)定性更高等,目前國內(nèi)大型空間環(huán)境模擬器的數(shù)據(jù)采集系統(tǒng)配備了Agilent 4411、Keithley 2750、Keithley 3706等多種型號測量儀器。不同型號的測量儀器只能使用其專用的測試軟件,不具備測量儀器硬件的互換性和測試軟件的通用性。而對作為測試系統(tǒng)核心的測試軟件,真空熱試驗數(shù)據(jù)采集系統(tǒng)工程師們研究的重點主要是對現(xiàn)有的軟件進行改進,使得其在測量儀器更新?lián)Q代后可直接應(yīng)用于新的測試系統(tǒng),從而延長數(shù)據(jù)采集系統(tǒng)的壽命,降低測試軟件維護開發(fā)成本。我們將IVI(Interchangeable Virtual Instrument)技術(shù)應(yīng)用于該采集系統(tǒng),基本實現(xiàn)了其與測試儀器的硬件無關(guān)性。
本文以Keithley 3706數(shù)據(jù)采集儀器(以下簡稱3706數(shù)采儀器)為設(shè)計對象,提出了一種基于IVI驅(qū)動的數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計方法。
1.1總體架構(gòu)
由3706數(shù)采儀器構(gòu)成的數(shù)據(jù)采集系統(tǒng)如圖1所示,衛(wèi)星上熱電偶、熱流計等傳感器通過電纜匯集于容器內(nèi)接插件,通過穿墻插頭將信號引至容器外的數(shù)采儀器上[2];數(shù)采儀器配置在數(shù)據(jù)采集現(xiàn)場,服務(wù)器和客戶端計算機配置在集中控制室,它們之間以LAN接口通過交換機進行通信;數(shù)據(jù)采集計算機將測量數(shù)據(jù)保存在本地以及主服務(wù)器中,主服務(wù)器將測量數(shù)據(jù)發(fā)布到各監(jiān)視計算機上。每臺3706數(shù)采儀器具備獨立的IP地址,測試軟件通過發(fā)送指令控制數(shù)采儀器,可以并行采集。
圖1 數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)圖Fig. 1 Configuration diagram of the data acquisition system
1.23706數(shù)采儀器特點
3706數(shù)采儀器是首款達到LXI-B級標(biāo)準(zhǔn)的系統(tǒng)儀器,LXI是以太網(wǎng)技術(shù)在儀器領(lǐng)域的擴展,具有其他平臺不可超越的優(yōu)勢;可選配的高性能集成DMM能夠?qū)崿F(xiàn)快速、低噪聲測量,分辨率可達7位半,具有高穩(wěn)定性、高精度以及高靈敏度測試等優(yōu)點;支持13種內(nèi)置測量功能,包括直流/交流電壓、直流/交流電流、兩線電阻、四線電阻等[3]。通過安裝不同的多路轉(zhuǎn)換開關(guān)模塊,3706數(shù)采儀器可以組成不同測量能力的多路數(shù)據(jù)采集系統(tǒng)。根據(jù)航天器真空熱試驗的測量需求,選擇3721多路轉(zhuǎn)換開關(guān)模塊,每塊開關(guān)具有40路雙線制測量通道(或20路四線制測量通道)以及2路電流測量通道。本數(shù)據(jù)采集系統(tǒng)包含10臺3706數(shù)采儀器,每臺儀器安裝了5塊3721多路轉(zhuǎn)換開關(guān),可以進行1960路雙線制測量、20路四線制電阻測量以及20路電流測量的組態(tài)配置。
2.1IVI儀器驅(qū)動特點
隨著總線技術(shù)的發(fā)展,儀器驅(qū)動器已經(jīng)成為組建測試系統(tǒng)、設(shè)計測試軟件、完成儀器控制的一個重要工具。從目前儀器驅(qū)動器技術(shù)發(fā)展現(xiàn)狀來看,其設(shè)計格式、接口軟件等相關(guān)技術(shù)問題有了統(tǒng)一標(biāo)準(zhǔn),但更換不同型號的測量儀器時需要修改測試程序,以適應(yīng)新的儀器及儀器驅(qū)動器。為了提高儀器的互換性和程序開發(fā)效率,NI、Tektronix等公司成立了IVI基金會[4]。該基金會為儀器驅(qū)動程序制定了新的編程接口標(biāo)準(zhǔn),在符合該標(biāo)準(zhǔn)驅(qū)動的基礎(chǔ)上設(shè)計完成的測試軟件實現(xiàn)了與測試儀器的無關(guān)性。IVI儀器驅(qū)動器主要有以下優(yōu)點:
1)使測量儀器具備可互換性[5]。IVI儀器驅(qū)動器可被置于包含不同儀器的多種儀器系統(tǒng)中,當(dāng)采集系統(tǒng)更換不同類型的儀器時,在程序中只需更新該儀器的驅(qū)動,測試系統(tǒng)開發(fā)者在編寫軟件時可以做到最大程度地與硬件無關(guān)。
2)具備狀態(tài)緩存功能。IVI驅(qū)動器能夠自動對儀器當(dāng)前的狀態(tài)進行緩存,在下一周期測量時不需要重新設(shè)置儀器參數(shù)。每次測量時對儀器狀態(tài)進行檢查,只有當(dāng)參數(shù)設(shè)置改變時,才將設(shè)置參數(shù)發(fā)送給儀器。這樣可以避免不必要的參數(shù)重置,從而改善儀器測量性能。
3)具備仿真功能。該功能可以實現(xiàn)在不使用儀器時,在程序中調(diào)用儀器驅(qū)動器,為儀器開發(fā)應(yīng)用程序代碼,并檢查輸入?yún)?shù)以及產(chǎn)生仿真的輸出結(jié)果[6]。IVI驅(qū)動程序結(jié)構(gòu)如圖2所示。圖中,IVI儀器類驅(qū)動器是一組與儀器屬性無關(guān)的函數(shù),用于控制某一類型的儀器,提供儀器可互換的IVI驅(qū)動。IVI特定的儀器驅(qū)動器是包含了一組控制某一特定儀器信息的函數(shù),一般由儀器生產(chǎn)商提供該儀器的IVI特定驅(qū)動器。IVI引擎完成由儀器類驅(qū)動器到特定的儀器驅(qū)動器的映射功能。IVI配置文件中包含了儀器類驅(qū)動器以及特定的儀器驅(qū)動器的信息。IVI驅(qū)動程序流程如下:測試程序調(diào)用IVI儀器類驅(qū)動程序,IVI儀器類驅(qū)動程序調(diào)用IVI引擎或IVI特定的儀器驅(qū)動器通過VISA I/O來控制具體的儀器設(shè)備。在IVI驅(qū)動程序的工作機制中,當(dāng)采集系統(tǒng)更換不同類型的儀器時,只需安裝該儀器的IVI特定驅(qū)動器,修改相應(yīng)的IVI配置文件,而不用對測試程序進行任何改動即可測試,實現(xiàn)了測試硬件的互換性以及測試軟件的硬件無關(guān)性。屬性名稱都以Ke37XX為前綴開頭。
2)數(shù)采儀器初始化設(shè)置
儀器初始化設(shè)置主要功能是清空數(shù)采儀器的寄存器中的內(nèi)容,其代碼如下:
driver(DVM(1)).Initialize
TCPIP::169.254.50.1::INSTR, False, False
2.2IVI驅(qū)動程序設(shè)計
IVI基金會主要對數(shù)字多用表、示波器、任意波形發(fā)生器、開關(guān)、電源、功率計、射頻信號發(fā)生器以及頻譜分析儀這8類儀器制定了驅(qū)動程序[7]。IVI類驅(qū)動器為這8類儀器固有的函數(shù)和屬性,在測試軟件中可直接調(diào)用該類驅(qū)動器。IVI特定的儀器驅(qū)動器由該儀器生產(chǎn)商提供,在開發(fā)測試軟件前應(yīng)先安裝該儀器的特定驅(qū)動器然后進行調(diào)用。
目前,實現(xiàn)IVI驅(qū)動有2種方法,即IVI-C和IVI-COM[8]。IVI-C是基于VPP規(guī)范和標(biāo)準(zhǔn)的編程模型,只能通過LabWindows/CVI開發(fā)環(huán)境生成;IVI-COM是基于COM(component object model)組件對象模型,可以通過VB、VC++、LabView、Delphi、LabWindows/CVI等不同開發(fā)環(huán)境生成,其兼容性和可移植性較好[9]。本文采用VB6.0開發(fā)環(huán)境實現(xiàn)3706數(shù)采系統(tǒng)的IVI-COM驅(qū)動,具體步驟如下。
1)引入IVI驅(qū)動
為了在測試程序中使用IVI驅(qū)動,就必須先配置系統(tǒng)以使得IVI驅(qū)動可以與具體的儀器驅(qū)動相交互。首先安裝Keithley 3700系列的IVI驅(qū)動,即“Ke37XX.msi”;安裝完畢后,在計算機上生成數(shù)字多用表的IVI類驅(qū)動器以及3700系列的IVI特定儀器驅(qū)動器;在VB環(huán)境下添加IVI驅(qū)動庫,即“IVI ke37XX 2.1Type Library”,該驅(qū)動庫為IVI特定的儀器驅(qū)動器,其生成的所有驅(qū)動器函數(shù)以及
driver(DVM(1)).status.Clear
driver(DVM(1)).Channel.OpenAll
DVM(1)表示該數(shù)采儀器為第1臺儀器,代碼在這里表示對IP為169.254.50.1的數(shù)采儀器進行初始化設(shè)置,然后清空儀器狀態(tài)寄存器中的內(nèi)容,最后將所有通道置為開啟狀態(tài)。
3)儀器通道參數(shù)設(shè)置
通道參數(shù)包括測量信號類型以及測量量程。通道參數(shù)設(shè)置代碼如下:
driver(DVM(1)).Scan.CreateScanList 1001, dmm_dcvolts
driver(DVM(1)).Measurement.Range = 0.1
代碼在這里表示對第1臺數(shù)采儀器的1001通道進行設(shè)置,測量類型為直流電壓,測量最大值為0.1V。在設(shè)置通道參數(shù)時,可以同時對某臺儀器的多個通道進行參數(shù)設(shè)置,例如需要對1001至1040總共40個通道進行參數(shù)設(shè)置,在代碼中可以用字符串“1001:1040”傳遞給函數(shù)。
4)數(shù)采儀器參數(shù)設(shè)置
儀器參數(shù)包括AD轉(zhuǎn)換器積分時間和寄存器參數(shù)。AD轉(zhuǎn)換器積分時間的設(shè)置直接關(guān)系到數(shù)據(jù)采集的速度與精度:積分時間長則采集的精度較高,但采集速度將會下降;積分時間短則采集速度快,但噪聲將會增加,從而降低采集的精度。因此應(yīng)根據(jù)使用需求選用合理的積分時間,一般選用1~5 PLC。積分時間與噪聲關(guān)系如圖3所示。
圖2 IVI驅(qū)動程序結(jié)構(gòu)示意圖Fig. 2 Structure diagram of the IVI driver
積分時間設(shè)置代碼如下:
driver(DVM(1)).Measurement.Nplc = 3#
代碼在這里表示第1臺儀器的AD轉(zhuǎn)換積分周期為3 PLC(0.06s)。
寄存器參數(shù)主要是設(shè)置每次采集時寄存器可存放數(shù)據(jù)的字節(jié)數(shù),其設(shè)置代碼如下:
driver(DVM(1)).Measurement.Buffer.Create "mybuffer", 10000
代碼在這里表示第1臺儀器的寄存器可存儲10000個字節(jié)的字符數(shù)。
5)數(shù)據(jù)采集
當(dāng)進行多通道數(shù)據(jù)采集時,向儀器發(fā)送通道的測量類型指令,儀器判斷當(dāng)前設(shè)置與函數(shù)所要求的值是否一致,當(dāng)兩者一致時延用當(dāng)前設(shè)置,而不需要對所有參數(shù)進行重新配置,這樣相應(yīng)地減少了數(shù)采程序與數(shù)采儀器的通信操作次數(shù),同時實現(xiàn)了對數(shù)采程序控制方式的優(yōu)化。數(shù)據(jù)采集代碼如下:
driver(DVM(1)).Scan.CreateScanList 1001:1040, dmm_dcvolts
driver(DVM(1)).Scan.ExecuteBackground "mybuffer"
代碼在這里表示對第1臺儀器的1001至1040通道設(shè)置為測量直流電壓類型,然后對這些通道進行數(shù)據(jù)采集。
通過對IVI驅(qū)動程序的研究,采用VB6.0編寫3706數(shù)據(jù)采集系統(tǒng)的上位數(shù)采軟件(流程如圖4所示)。軟件的核心部分是利用IVI驅(qū)動完成對3706數(shù)采儀器和多路轉(zhuǎn)換開關(guān)的控制。軟件采用dmm.scan儀器測量模式進行數(shù)據(jù)采集,在程序中首先對所有的測量通道信息進行分析,然后根據(jù)不同的測量信息要求進行分組,在每個數(shù)據(jù)采集周期中以組為單位整體循環(huán)發(fā)送Scan指令,采集結(jié)束后將該測量分組的數(shù)據(jù)整體讀回,然后進行數(shù)據(jù)處理、保存。
本系統(tǒng)采用連續(xù)掃描的方式進行數(shù)據(jù)采集,以60 s為采樣周期采集全部溫度測點的電壓值(mV),按熱電偶的分度表轉(zhuǎn)換成相應(yīng)的溫度值,將測量數(shù)據(jù)保存到本機的硬盤上及服務(wù)器中,可供其他用戶調(diào)用,實現(xiàn)數(shù)據(jù)共享。終端界面顯示各測量點的原始測量值以及計算結(jié)果值,并可以切換不同數(shù)采儀器以及同一臺數(shù)采儀器不同板卡的顯示界面。當(dāng)測量結(jié)果值超出上下限時會顯示報警。
圖4 上位軟件流程Fig. 4 The flow chart of host computer program
本文基于IVI驅(qū)動,對3706數(shù)據(jù)采集系統(tǒng)進行了軟件設(shè)計。IVI驅(qū)動的引入大大提高了系統(tǒng)的開發(fā)效率、降低了研制成本。當(dāng)更換儀器類型時,只需安裝該儀器的IVI驅(qū)動即可使采集軟件正常運行,實現(xiàn)了采集系統(tǒng)與采集儀器硬件的無關(guān)性,為儀器互換提供了手段。該3706數(shù)據(jù)采集系統(tǒng)在開發(fā)完成后,進行了有載調(diào)試,系統(tǒng)運行穩(wěn)定可靠,測量數(shù)據(jù)準(zhǔn)確無誤,現(xiàn)已投入到航天器型號試驗中。
參考文獻(References)
[1] 吳大軍. 吉時利2750在真空熱試驗測量系統(tǒng)中的應(yīng)用[J].航天器環(huán)境工程, 2006, 23(2): 115-118 Wu Dajun. Application of Keithley2750 to the measurement system in vacuum thermal test[J]. Spacecraft Environment Engineering, 2006, 23(2): 115-118
[2] 孫興華, 蘇新明, 陶濤. 真空熱試驗熱電偶測溫參考點分析改進[J]. 航天器環(huán)境工程, 2012, 29(5): 522-526 Sun Xinghua, Su Xinming, Tao Tao. Analysis and improvement of temperature reference equipment forthermocouple in vacuum thermal tests[J]. Spacecraft Environment Engineering, 2012, 29(5): 522-526
[3] Keithley Insmunents, Inc. Series 3700 system switch/multimeter user’s manual[G]
[4] 秦紅磊, 路輝, 郎榮玲. 自動測試系統(tǒng)—硬件與軟件技術(shù)[M]. 北京: 高等教育出版社, 2011: 322-323
[5] 賈海明, 安幼林. 功能封裝的儀器驅(qū)動程序可互換性實現(xiàn)技術(shù)[J]. 兵工自動化, 2009, 28(11): 79-82 Jia Haiming, An Youlin. Function of instrument package driver technology interchangeability[J]. Ordnance Industry Automation, 2009, 28(11): 79-82
[6] 李木飛, 龔明. 基于IVI模型的通用虛擬儀器驅(qū)動程序的開發(fā)[J]. 制導(dǎo)與引信, 2009, 30(4): 33-37 Li Mufei, Gong Ming. Development of general virtual instrument driver programme based on IVI model[J]. Guidance & Fuze, 2009, 30(4): 33-37
[7] IVI Foundation. IVI-3.1: driver architecture specification[G], 2011
[8] 趙濤, 彭喜源, 石仁利. IVI-COM儀器驅(qū)動程序的研究及應(yīng)用[J]. 計算機測量與控制, 2008, 16(12): 1972-1974 Zhao Tao, Peng Xiyuan, Shi Renli. Research and application on IVI-COM instrument driver[J]. Computer Measurement & Control, 2008, 16(12): 1972-1974
[9] Mueller J. IVI 驅(qū)動程序標(biāo)準(zhǔn)[J]. 國外電子測量技術(shù), 2013, 32(6): 11-17 Mueller J. IVI driver standards[J]. Foreign Electronic Measurement Technology, 2013, 32(6): 11-17
(編輯:馮 妍)
Software development based on IVI driver for data acquisition system used in thermal vacuum test
Zhu Xi , Liu Bo, Wu Dongliang, An Wanqing, Wang Qingyu
(Beijing Institute of Spacecraft Environment Engineering, Beijing 100094, China)
Abstract:At present, a large space environment simulator is equipped with multiple models of data acquisition systems, responsible for a comprehensive test of a variety of data signals. With the Keithley3706 data acquisition system as the object, this paper discusses the principle and the composition of a data acquisition system. Based on the research of the IVI driver, an acquisition software is designed in the VB6.0 development environment. The design process of the IVI driver and the software code are presented. It is shown that the development efficiency is improved with the introduction of IVI driver, and the cost of research is notably reduced. The hardware independence of the data acquisition system is realized.
Key words:vacuum thermal test ; data acquisition system; software design; IVI driver
作者簡介:朱 熙(1985—),男,碩士學(xué)位,主要研究方向為航天器環(huán)境試驗測控技術(shù)。E-mail: zhuxi198533@126.com。
基金項目:北京衛(wèi)星環(huán)境工程研究所自主研發(fā)項目“真空熱試驗測控系統(tǒng)集中控制技術(shù)”
收稿日期:2015-05-11;修回日期:2016-03-30
DOI:10.3969/j.issn.1673-1379.2016.02.015
中圖分類號:TP216
文獻標(biāo)志碼:B
文章編號:1673-1379(2016)02-0194-05