何 輝,樊小龍
(蘭州工業(yè)學(xué)院 信息中心,甘肅 蘭州 730050)
?
基于VISA的程控電源仿真測(cè)控系統(tǒng)設(shè)計(jì)
何輝,樊小龍
(蘭州工業(yè)學(xué)院 信息中心,甘肅 蘭州 730050)
摘要針對(duì)陰極試驗(yàn)系統(tǒng)中可靠性和壽命考核的需求,對(duì)程控電源進(jìn)行自動(dòng)控制,通過(guò)對(duì)各種測(cè)控方式進(jìn)行比較,基于虛擬儀器系統(tǒng)結(jié)構(gòu)體系(Virtual Instrument Software Architecture,VISA)庫(kù),利用程控儀器標(biāo)準(zhǔn)命令(Standard Commands for Programmable Instruments,SCPI)指令對(duì)可編程電源進(jìn)行仿真測(cè)控設(shè)計(jì)。實(shí)現(xiàn)對(duì)多工位程控電源的并行測(cè)控,給出了完整的設(shè)計(jì)方案和實(shí)現(xiàn)方法。試驗(yàn)結(jié)果表明,該系統(tǒng)順利完成了陰極篩選、數(shù)據(jù)采集和日志存儲(chǔ)等陰極試驗(yàn)考核工作,試驗(yàn)結(jié)果準(zhǔn)確可靠,改進(jìn)了手動(dòng)試驗(yàn)工作效率低、實(shí)驗(yàn)記錄不準(zhǔn)確的問(wèn)題。
關(guān)鍵詞陰極試驗(yàn);VISA;程控電源;并行測(cè)控;用戶控件
0引言
在電推進(jìn)設(shè)備的試驗(yàn)系統(tǒng)中,為了對(duì)陰極進(jìn)行長(zhǎng)時(shí)間的可靠性與壽命考核,需要選擇高可靠性和高穩(wěn)定性的加熱電源[1]進(jìn)行考核控制,為了解決傳統(tǒng)人工試驗(yàn)工作量大、試驗(yàn)記錄不準(zhǔn)確和試驗(yàn)靈活度低的問(wèn)題,根據(jù)試驗(yàn)需求,選擇TDK-Lambda品牌的GENSYS系列可編程電源作為加熱電源,并對(duì)該可編程電源進(jìn)行仿真測(cè)控設(shè)計(jì)?;赩ISA庫(kù),使用多線程與用戶控件機(jī)制,在微軟Visual Basic.NET 2010環(huán)境下開發(fā)程控電源測(cè)控系統(tǒng),利用仿真測(cè)控系統(tǒng)對(duì)程控電源的輸出狀態(tài)、過(guò)載狀態(tài)、電壓和電流等參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè),同時(shí)進(jìn)行相關(guān)的設(shè)置,并獲得程控電源的快速響應(yīng)。將該可編程電源作為陰極的加熱模塊嵌入到電推進(jìn)試驗(yàn)綜合測(cè)試系統(tǒng)中,在軟件系統(tǒng)的控制下完成對(duì)陰極的考核工作。
1程控電源及測(cè)控方式
GENSYS系列程控電源是日本TDK株式會(huì)社出品的高性能可編程電源,支持串行(RS-232/485)編程、模擬編程、TCP/IP網(wǎng)絡(luò)編程和本地控制。其中網(wǎng)絡(luò)編程可以使用Socket、VISA庫(kù)和IVI標(biāo)準(zhǔn)庫(kù)方式編程,支持TCP和UDP兩種協(xié)議,在Windows和Linux操作系統(tǒng)下都能進(jìn)行程序控制,根據(jù)陰極試驗(yàn)系統(tǒng)的要求,可以方便地對(duì)程控電源進(jìn)行計(jì)算機(jī)程序測(cè)控。
根據(jù)系統(tǒng)設(shè)計(jì)需求,選擇TCP/IP網(wǎng)絡(luò)編程方式實(shí)現(xiàn)程控電源的仿真測(cè)控,具體測(cè)控方法有以下3種:
① Socket方式。Socket方式無(wú)需第3方程序庫(kù)的支持,直接使用程序設(shè)計(jì)語(yǔ)言對(duì)電源進(jìn)行控制,可以使用TCP(端口號(hào):8003)和UDP(端口號(hào):8005)協(xié)議,能夠支持最多3個(gè)Client連接到程控電源,其優(yōu)點(diǎn)是可以避免使用第3方類庫(kù)的授權(quán),缺點(diǎn)是程序還要對(duì)Socket連接進(jìn)行控制,導(dǎo)致程序相對(duì)復(fù)雜[2]。
② VISA庫(kù)[3]。VISA是一套面向儀器的系統(tǒng)標(biāo)準(zhǔn)及其相關(guān)規(guī)范,用以實(shí)現(xiàn)對(duì)儀器的程控,具有和硬件接口與開發(fā)平臺(tái)無(wú)關(guān)的優(yōu)良特性。使用VISA控制程控儀器只要調(diào)用VISA 函數(shù)庫(kù)中I/O 函數(shù)即可,大大方便了對(duì)可編程儀器的測(cè)控,對(duì)于GENSYS系列程控電源而言,同一時(shí)刻只允許打開一個(gè)VISA連接端口。
③ 可互換性虛擬儀器(Interchangeable Virtual Instrument,IVI)標(biāo)準(zhǔn)庫(kù)[4]。IVI標(biāo)準(zhǔn)庫(kù)是建立在VISA基礎(chǔ)上的標(biāo)準(zhǔn)工業(yè)驅(qū)動(dòng)技術(shù)規(guī)范,致力于實(shí)現(xiàn)儀器驅(qū)動(dòng)器的可互換性、開發(fā)靈活性測(cè)試高效性以及保證測(cè)試品質(zhì)。IVI標(biāo)準(zhǔn)庫(kù)定義了專門的I/O指令,不使用SCPI指令。使用IVI庫(kù)還需要在VISA的基礎(chǔ)上安裝IVI驅(qū)動(dòng)。
根據(jù)上述3種網(wǎng)絡(luò)測(cè)控方法的優(yōu)缺點(diǎn)和陰極試驗(yàn)系統(tǒng)的設(shè)計(jì)需求,從程序設(shè)計(jì)的方便性和通用性上考慮,選擇VISA方式進(jìn)行電源的程序控制。
2VISA與SCPI
作為通用I/O標(biāo)準(zhǔn),VISA提供了統(tǒng)一的設(shè)備資源管理、操作和使用機(jī)制,它獨(dú)立于硬件設(shè)備、接口、操作系統(tǒng)和編程語(yǔ)言,具有與硬件結(jié)構(gòu)無(wú)關(guān)的特點(diǎn)。VISA適用于多種儀器接口,如GPIB、VXI、PXI和LXI等,使用相同的操作函數(shù),實(shí)現(xiàn)了控制上的統(tǒng)一。VISA基于自底向上的結(jié)構(gòu)模型,構(gòu)造了一個(gè)統(tǒng)一形式的I/O控制函數(shù)集。使用VISA前需要安裝VISA庫(kù),安裝Agilent的IO Libraries Suite或者NI的Measurement & Automation Explorer(MAX)設(shè)備管理系統(tǒng),即可使用VISA對(duì)儀器進(jìn)行管理。
SCPI是一種建立在IEEE488.1和IEEE 488.2標(biāo)準(zhǔn)的基礎(chǔ)上,并遵循了IEEE754 標(biāo)準(zhǔn)中浮點(diǎn)運(yùn)算規(guī)則、ISO646 信息交換7 位編碼符號(hào)(相當(dāng)于ASCll編程)等多種標(biāo)準(zhǔn)的儀器編程語(yǔ)言[5]。
SCPI采用樹狀分層結(jié)構(gòu)的命令集,提出了一個(gè)具有普遍性的通用儀器模型,定義了可用于儀器控制的語(yǔ)法,命令結(jié)構(gòu)以及數(shù)據(jù)格式,其目標(biāo)是縮短自動(dòng)測(cè)試設(shè)備程序開發(fā)時(shí)間,通過(guò)為儀器控制和數(shù)據(jù)使用提供廣泛兼容的編程環(huán)境來(lái)達(dá)成這一目標(biāo)。SCPI儀器都使用標(biāo)準(zhǔn)化的程控消息、儀器響應(yīng)和數(shù)據(jù)格式。針對(duì)GENSYS系列程控電源,主要使用的SCPI命令如下:
① 輸出設(shè)置命令,如設(shè)置電壓用“:VOLT”、設(shè)置電流用“:CURR”、設(shè)置電壓保護(hù)用“:VOLT:PROT:LEV”、開啟回流保護(hù)用“:CURR:PROT:STAT ON”、開電源輸出用“OUTP:STAT ON”等;
② 輸出測(cè)量命令,如測(cè)量輸出電壓用“"MEAS:VOLT?”、測(cè)量輸出電流用“MEAS:CURR?”等;
③ 狀態(tài)查詢命令,如用“STAT:QUES:COND?”查詢電源狀態(tài)寄存器、用“SOUR:MOD?”查詢輸出模式;
④ 電源操作命令,如用“*RST”進(jìn)行電源復(fù)位、“*SAV”保存狀態(tài)、“*TST”電源自檢、“*CLS”清空狀態(tài),等等。
3測(cè)控系統(tǒng)開發(fā)
基于微軟.NET框架設(shè)計(jì)程控電源的仿真測(cè)控系統(tǒng),用VISA標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)對(duì)電源I/O控制,后臺(tái)利用多線程時(shí)間段輪轉(zhuǎn)方式監(jiān)測(cè)電源數(shù)據(jù),VB.NET用戶控件機(jī)制設(shè)計(jì)用戶界面,對(duì)電源的各種參數(shù)狀態(tài)進(jìn)行實(shí)時(shí)測(cè)控。
3.1系統(tǒng)框架設(shè)計(jì)
系統(tǒng)框架如圖1所示,同時(shí)要對(duì)8臺(tái)程控電源進(jìn)行控制,每臺(tái)電源的測(cè)控線程在后臺(tái)利用VISA對(duì)電源進(jìn)行底層控制,具體的測(cè)控指令使用程控儀器標(biāo)準(zhǔn)命令SCPI;測(cè)控線程與用戶界面進(jìn)行交互,實(shí)時(shí)下發(fā)指令、返回?cái)?shù)據(jù)。
圖1 設(shè)計(jì)框架
3.2基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
根據(jù)試驗(yàn)系統(tǒng)的要求,有選擇的對(duì)程控電源的主要狀態(tài)和I/O值進(jìn)行測(cè)控,為電源參數(shù)定義數(shù)據(jù)結(jié)構(gòu)(即測(cè)控參數(shù),如表1所示)。作為程序的共享空間,系統(tǒng)不斷讀寫該數(shù)據(jù)結(jié)構(gòu),為測(cè)控線程與界面UI線程提供交互。表1中,dySet、dlSet、ovSet和ovRead為結(jié)構(gòu)體類型,其成員如表2所示。
表1 電源測(cè)控參數(shù)
表2 結(jié)構(gòu)體成員
3.3UI與用戶控件設(shè)計(jì)
從用戶友好性角度出發(fā)設(shè)計(jì)系統(tǒng)界面UI,與程控電源的實(shí)物在操作界面上保持一致,即做到界面仿真;另一方面,主要使用.NET平臺(tái)自帶的組件,避免使用第3方的工控組件,以免給系統(tǒng)帶來(lái)不穩(wěn)定性。
試驗(yàn)系統(tǒng)同時(shí)對(duì)8臺(tái)甚至更多臺(tái)程控電源進(jìn)行測(cè)控操作,而每臺(tái)電源的操作模式基本一致,因此,在設(shè)計(jì)時(shí)考慮系統(tǒng)的可重用性,將對(duì)電源操作的相關(guān)界面封裝為Windows窗體控件(即用戶控件)[6]。用戶控件包含多個(gè)已有的基礎(chǔ)控件,可以添加新的屬性、方法和事件,系統(tǒng)將對(duì)電源的各類操作(方法、事件)都定義在用戶控件中,為了區(qū)分不同的電源,為用戶控件定義Index屬性作為唯一標(biāo)識(shí),并在生成實(shí)例時(shí)初始化該屬性:
Private idx As Integer = 0
′Index屬性
Public Property Index()As String
Get
Return idx
End Get
Set(ByVal value As String)
idx = value
End Set
End Property
3.4多線程設(shè)計(jì)
根據(jù)程控電源的參數(shù)手冊(cè)及實(shí)際測(cè)試,調(diào)用VISA驅(qū)動(dòng)所需要的時(shí)間是10 ms,對(duì)電源進(jìn)行測(cè)控的SCPI指令耗時(shí)如表3所示[2],因此若采用傳統(tǒng)的單線程方式對(duì)電源進(jìn)行測(cè)控,執(zhí)行SCPI指令后程序就會(huì)暫停并等待的電源返回值,此時(shí)用戶操作界面就會(huì)停滯。系統(tǒng)使用多線程方式解決這種程序“假死”的現(xiàn)象,為每個(gè)電源建立獨(dú)立的測(cè)控線程,并與界面UI線程通過(guò)公共數(shù)據(jù)變量進(jìn)行交互。系統(tǒng)使用.NET平臺(tái)提供的BackgroundWorker對(duì)象實(shí)現(xiàn)多線程[7],該對(duì)象簡(jiǎn)化了多線程編程,在DoWork 事件中完成對(duì)電源的測(cè)控,通過(guò)ProgressChanged和RunWorkerCompleted 事件與UI界面進(jìn)行通信。在UI線程中啟動(dòng)定時(shí)器,定時(shí)判斷各BackgroundWorker對(duì)象的IsBusy屬性的狀態(tài)值,確保測(cè)控線程的執(zhí)行。
表3 SCPI指令耗時(shí)
由于GENSYS系列程控電源在同一時(shí)刻只能打開的一個(gè)VISA連接端口,這樣就不能在讀電源狀態(tài)的同時(shí)對(duì)電源進(jìn)行設(shè)置,所以系統(tǒng)采用一種基于標(biāo)志量的時(shí)間段輪轉(zhuǎn)方式在測(cè)控線程中對(duì)電源進(jìn)行分時(shí)讀寫操作,其執(zhí)行流程如圖2所示,線程在運(yùn)行時(shí),根據(jù)讀寫操作的標(biāo)志量確定是否執(zhí)行該操作,避免每次循環(huán)都對(duì)電源進(jìn)行所有讀寫操作,節(jié)省了對(duì)電源的程控時(shí)間,同時(shí)增加了系統(tǒng)的穩(wěn)定性[8]。
圖2 測(cè)控線程執(zhí)行流程
3.5實(shí)時(shí)曲線
為了便于觀測(cè)電源的輸出變化,采用經(jīng)典的Chart組件TeeChart for .NET實(shí)現(xiàn)電源電壓與電流曲線的顯示。由于要同時(shí)對(duì)多個(gè)電源進(jìn)行操作,因此系統(tǒng)將曲線界面設(shè)計(jì)在上文提到的用戶控件里,這樣就避免了多次設(shè)計(jì)曲線顯示界面[9]。
實(shí)時(shí)曲線的數(shù)據(jù)刷新流程如圖3所示。實(shí)際運(yùn)行界面如圖4所示,橫坐標(biāo)是時(shí)間,縱坐標(biāo)是電壓/電流的設(shè)計(jì)輸出值,顯示窗口的時(shí)間長(zhǎng)度是60 s,由刷新頻率為100 ms的定時(shí)器控制實(shí)時(shí)曲線橫坐標(biāo)的移動(dòng)。
圖3 實(shí)時(shí)曲線數(shù)據(jù)刷新流程
圖4 測(cè)控系統(tǒng)界面
3.6日志存儲(chǔ)與回放
系統(tǒng)使用文本文件形式存儲(chǔ)試驗(yàn)日志,要求存儲(chǔ)周期可自主設(shè)定[10]。根據(jù)試驗(yàn)需求,通常是1 s記錄一次電源輸出數(shù)據(jù),進(jìn)行長(zhǎng)時(shí)間試驗(yàn)時(shí)就會(huì)在硬盤上產(chǎn)生體積巨大的文件,因此,系統(tǒng)采用按天自動(dòng)生成試驗(yàn)數(shù)據(jù)的方法,每天生成一個(gè)試驗(yàn)平臺(tái)的日志文件。
較之于傳統(tǒng)的Win32編程,.NET平臺(tái)提供了簡(jiǎn)單、高效的文件處理類,利用StreamWriter類實(shí)現(xiàn)日志文件的存儲(chǔ),StreamReader類完成日志文件的回放讀取,具體實(shí)現(xiàn)方法這里不再贅述。
4應(yīng)用結(jié)果
系統(tǒng)部分界面如圖4所示,對(duì)GENSYS系列可編程電源實(shí)物進(jìn)行了仿真測(cè)控,經(jīng)實(shí)際測(cè)試,通過(guò)程序控制電源輸出,能夠?qū)?個(gè)工位進(jìn)行準(zhǔn)確控制,使用多線程時(shí)間段輪轉(zhuǎn)機(jī)制后,系統(tǒng)操控流暢。
目前,該程控電源仿真測(cè)控系統(tǒng)已經(jīng)應(yīng)用到在某型號(hào)陰極考核設(shè)備的試驗(yàn)系統(tǒng)中,對(duì)陰極進(jìn)行長(zhǎng)時(shí)間可靠性與壽命考核,系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)采集準(zhǔn)確,較之于傳統(tǒng)的手動(dòng)試驗(yàn),提高了工作效率和試驗(yàn)記錄的準(zhǔn)確度。
5結(jié)束語(yǔ)
根據(jù)陰極試驗(yàn)系統(tǒng)的需求,對(duì)可編程電源進(jìn)行仿真設(shè)計(jì),經(jīng)過(guò)對(duì)多種控制方式的研究與比較,最后選擇利用VISA完成對(duì)電源的底層操作,充分利用.NET平臺(tái)的優(yōu)勢(shì),用后臺(tái)任務(wù)對(duì)象實(shí)現(xiàn)對(duì)電源的并行測(cè)控,對(duì)電源實(shí)物界面進(jìn)行仿真模擬,實(shí)現(xiàn)了試驗(yàn)控制、實(shí)時(shí)曲線和日志存儲(chǔ)等功能,界面友好,體現(xiàn)了GENSYS系列電源本身可程控性及高穩(wěn)定性的特點(diǎn),系統(tǒng)順利完成了陰極試驗(yàn)考核電源的供給與測(cè)試任務(wù)。另外,文中所介紹的基于時(shí)間段輪轉(zhuǎn)的設(shè)計(jì)思路和基于用戶控件的系統(tǒng)重用思想,對(duì)相關(guān)測(cè)控系統(tǒng)的開發(fā)有一定的參考價(jià)值。
參考文獻(xiàn)
[1]于志強(qiáng),邵文生.電推進(jìn)技術(shù)和空心陰極組件/中和器的發(fā)展[J].真空電子技術(shù),2013(3):1-4,20.
[2]時(shí)慧晶.基于Modbus/Tcp的水下航行體通信軟件實(shí)現(xiàn)[J].微處理機(jī),2015(2):18-20.
[3]楊心宇,章國(guó)寶,柴繼濤,等.基于VISA 庫(kù)的電源測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2014,27(5):55-56.
[4]趙俊.通用測(cè)試儀器可互換引擎IVI-C的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[5]秦凡,韋高.基于VISA 庫(kù)及SCPI 命令的儀器程控測(cè)量[J].現(xiàn)代電子技術(shù),2011,34(11):118-120,123.
[6]Thearon Willis,Bryan Newsome.Visual Basic 2010入門經(jīng)典(第6版)[M].吳偉敏,李周芳,譯.北京:清華大學(xué)出版社,2011:379-389.
[7]鄭宇生.C#多線程編程技術(shù)在數(shù)控測(cè)井系統(tǒng)中的應(yīng)用[J].石油儀器,2012,26(4):79-81.
[8]陳懷民,王沖,吳成富,等.基于LabVIEW的SCPI命令可編程電源監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(16):107-110.
[9]李玥.TeeChart Pro在轉(zhuǎn)臺(tái)界面控制系統(tǒng)中的應(yīng)用[J].航空精密制造技術(shù),2013,49(1):57-59.
[10]李獻(xiàn)球.導(dǎo)航衛(wèi)星有效載荷在軌測(cè)試系統(tǒng)設(shè)計(jì)研究[J].無(wú)線電工程,2014,44(12):39-42.
何輝男,(1978—),碩士,副教授。主要研究方向:計(jì)算機(jī)測(cè)控。
樊小龍男,(1979—),碩士,講師。主要研究方向:計(jì)算機(jī)應(yīng)用。
引用格式:何輝,樊小龍.基于VISA的程控電源仿真測(cè)控系統(tǒng)設(shè)計(jì)[J].無(wú)線電工程,2016,46(1):72-75.
Design on Programmable Power Supply Simulation Measurement and
Control Software Based on VISA
HE Hui,FAN Xiao-long
(InformationCenter,LanzhouInstituteofTechnology,LanzhouGansu730050,China)
AbstractIn view of the requirement of reliability and life expectancy assessment in cathode test system,the programmable power supply are automatically controlled.By comparing various measurement and control methods,based on the VISA library,a system of programmable power supply simulation and control is designed using SCPI commands.The parallel measurement and control for the multi-station programmable power supply is implemented.The complete design scheme and realization method are given.The practical application shows that this system can successfully complete such cathode test tasks as cathode screening,data acquisition and logging storage.The test results are accurate and reliable.The system solves such problems as low work efficiency in manual testing and inaccuracy in test records.
Key wordscathode test;VISA;programmable power supply;parallel measurement and control;user control
作者簡(jiǎn)介
基金項(xiàng)目:甘肅省科技支撐計(jì)劃資助項(xiàng)目(1204GKCA043);甘肅省高等學(xué)??蒲匈Y助項(xiàng)目(2014A-124)。
收稿日期:2015-09-28
中圖分類號(hào)TP277
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1003-3106(2016)01-0072-04
doi:10.3969/j.issn.1003-3106.2016.01.18