何 輝,樊小龍
(蘭州工業學院 信息中心,甘肅 蘭州 730050)
?
基于VISA的程控電源仿真測控系統設計
何輝,樊小龍
(蘭州工業學院 信息中心,甘肅 蘭州 730050)
摘要針對陰極試驗系統中可靠性和壽命考核的需求,對程控電源進行自動控制,通過對各種測控方式進行比較,基于虛擬儀器系統結構體系(Virtual Instrument Software Architecture,VISA)庫,利用程控儀器標準命令(Standard Commands for Programmable Instruments,SCPI)指令對可編程電源進行仿真測控設計。實現對多工位程控電源的并行測控,給出了完整的設計方案和實現方法。試驗結果表明,該系統順利完成了陰極篩選、數據采集和日志存儲等陰極試驗考核工作,試驗結果準確可靠,改進了手動試驗工作效率低、實驗記錄不準確的問題。
關鍵詞陰極試驗;VISA;程控電源;并行測控;用戶控件

0引言
在電推進設備的試驗系統中,為了對陰極進行長時間的可靠性與壽命考核,需要選擇高可靠性和高穩定性的加熱電源[1]進行考核控制,為了解決傳統人工試驗工作量大、試驗記錄不準確和試驗靈活度低的問題,根據試驗需求,選擇TDK-Lambda品牌的GENSYS系列可編程電源作為加熱電源,并對該可編程電源進行仿真測控設計。基于VISA庫,使用多線程與用戶控件機制,在微軟Visual Basic.NET 2010環境下開發程控電源測控系統,利用仿真測控系統對程控電源的輸出狀態、過載狀態、電壓和電流等參數進行實時監測,同時進行相關的設置,并獲得程控電源的快速響應。將該可編程電源作為陰極的加熱模塊嵌入到電推進試驗綜合測試系統中,在軟件系統的控制下完成對陰極的考核工作。
1程控電源及測控方式
GENSYS系列程控電源是日本TDK株式會社出品的高性能可編程電源,支持串行(RS-232/485)編程、模擬編程、TCP/IP網絡編程和本地控制。其中網絡編程可以使用Socket、VISA庫和IVI標準庫方式編程,支持TCP和UDP兩種協議,在Windows和Linux操作系統下都能進行程序控制,根據陰極試驗系統的要求,可以方便地對程控電源進行計算機程序測控。
根據系統設計需求,選擇TCP/IP網絡編程方式實現程控電源的仿真測控,具體測控方法有以下3種:
① Socket方式。Socket方式無需第3方程序庫的支持,直接使用程序設計語言對電源進行控制,可以使用TCP(端口號:8003)和UDP(端口號:8005)協議,能夠支持最多3個Client連接到程控電源,其優點是可以避免使用第3方類庫的授權,缺點是程序還要對Socket連接進行控制,導致程序相對復雜[2]。
② VISA庫[3]。VISA是一套面向儀器的系統標準及其相關規范,用以實現對儀器的程控,具有和硬件接口與開發平臺無關的優良特性。使用VISA控制程控儀器只要調用VISA 函數庫中I/O 函數即可,大大方便了對可編程儀器的測控,對于GENSYS系列程控電源而言,同一時刻只允許打開一個VISA連接端口。
③ 可互換性虛擬儀器(Interchangeable Virtual Instrument,IVI)標準庫[4]。IVI標準庫是建立在VISA基礎上的標準工業驅動技術規范,致力于實現儀器驅動器的可互換性、開發靈活性測試高效性以及保證測試品質。IVI標準庫定義了專門的I/O指令,不使用SCPI指令。使用IVI庫還需要在VISA的基礎上安裝IVI驅動。
根據上述3種網絡測控方法的優缺點和陰極試驗系統的設計需求,從程序設計的方便性和通用性上考慮,選擇VISA方式進行電源的程序控制。
2VISA與SCPI
作為通用I/O標準,VISA提供了統一的設備資源管理、操作和使用機制,它獨立于硬件設備、接口、操作系統和編程語言,具有與硬件結構無關的特點。VISA適用于多種儀器接口,如GPIB、VXI、PXI和LXI等,使用相同的操作函數,實現了控制上的統一。VISA基于自底向上的結構模型,構造了一個統一形式的I/O控制函數集。使用VISA前需要安裝VISA庫,安裝Agilent的IO Libraries Suite或者NI的Measurement & Automation Explorer(MAX)設備管理系統,即可使用VISA對儀器進行管理。
SCPI是一種建立在IEEE488.1和IEEE 488.2標準的基礎上,并遵循了IEEE754 標準中浮點運算規則、ISO646 信息交換7 位編碼符號(相當于ASCll編程)等多種標準的儀器編程語言[5]。
SCPI采用樹狀分層結構的命令集,提出了一個具有普遍性的通用儀器模型,定義了可用于儀器控制的語法,命令結構以及數據格式,其目標是縮短自動測試設備程序開發時間,通過為儀器控制和數據使用提供廣泛兼容的編程環境來達成這一目標。SCPI儀器都使用標準化的程控消息、儀器響應和數據格式。針對GENSYS系列程控電源,主要使用的SCPI命令如下:
① 輸出設置命令,如設置電壓用“:VOLT”、設置電流用“:CURR”、設置電壓保護用“:VOLT:PROT:LEV”、開啟回流保護用“:CURR:PROT:STAT ON”、開電源輸出用“OUTP:STAT ON”等;
② 輸出測量命令,如測量輸出電壓用“"MEAS:VOLT?”、測量輸出電流用“MEAS:CURR?”等;
③ 狀態查詢命令,如用“STAT:QUES:COND?”查詢電源狀態寄存器、用“SOUR:MOD?”查詢輸出模式;
④ 電源操作命令,如用“*RST”進行電源復位、“*SAV”保存狀態、“*TST”電源自檢、“*CLS”清空狀態,等等。
3測控系統開發
基于微軟.NET框架設計程控電源的仿真測控系統,用VISA標準庫實現對電源I/O控制,后臺利用多線程時間段輪轉方式監測電源數據,VB.NET用戶控件機制設計用戶界面,對電源的各種參數狀態進行實時測控。
3.1系統框架設計
系統框架如圖1所示,同時要對8臺程控電源進行控制,每臺電源的測控線程在后臺利用VISA對電源進行底層控制,具體的測控指令使用程控儀器標準命令SCPI;測控線程與用戶界面進行交互,實時下發指令、返回數據。

圖1 設計框架
3.2基礎數據結構
根據試驗系統的要求,有選擇的對程控電源的主要狀態和I/O值進行測控,為電源參數定義數據結構(即測控參數,如表1所示)。作為程序的共享空間,系統不斷讀寫該數據結構,為測控線程與界面UI線程提供交互。表1中,dySet、dlSet、ovSet和ovRead為結構體類型,其成員如表2所示。

表1 電源測控參數

表2 結構體成員
3.3UI與用戶控件設計
從用戶友好性角度出發設計系統界面UI,與程控電源的實物在操作界面上保持一致,即做到界面仿真;另一方面,主要使用.NET平臺自帶的組件,避免使用第3方的工控組件,以免給系統帶來不穩定性。
試驗系統同時對8臺甚至更多臺程控電源進行測控操作,而每臺電源的操作模式基本一致,因此,在設計時考慮系統的可重用性,將對電源操作的相關界面封裝為Windows窗體控件(即用戶控件)[6]。用戶控件包含多個已有的基礎控件,可以添加新的屬性、方法和事件,系統將對電源的各類操作(方法、事件)都定義在用戶控件中,為了區分不同的電源,為用戶控件定義Index屬性作為唯一標識,并在生成實例時初始化該屬性:
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多線程設計
根據程控電源的參數手冊及實際測試,調用VISA驅動所需要的時間是10 ms,對電源進行測控的SCPI指令耗時如表3所示[2],因此若采用傳統的單線程方式對電源進行測控,執行SCPI指令后程序就會暫停并等待的電源返回值,此時用戶操作界面就會停滯。系統使用多線程方式解決這種程序“假死”的現象,為每個電源建立獨立的測控線程,并與界面UI線程通過公共數據變量進行交互。系統使用.NET平臺提供的BackgroundWorker對象實現多線程[7],該對象簡化了多線程編程,在DoWork 事件中完成對電源的測控,通過ProgressChanged和RunWorkerCompleted 事件與UI界面進行通信。在UI線程中啟動定時器,定時判斷各BackgroundWorker對象的IsBusy屬性的狀態值,確保測控線程的執行。

表3 SCPI指令耗時
由于GENSYS系列程控電源在同一時刻只能打開的一個VISA連接端口,這樣就不能在讀電源狀態的同時對電源進行設置,所以系統采用一種基于標志量的時間段輪轉方式在測控線程中對電源進行分時讀寫操作,其執行流程如圖2所示,線程在運行時,根據讀寫操作的標志量確定是否執行該操作,避免每次循環都對電源進行所有讀寫操作,節省了對電源的程控時間,同時增加了系統的穩定性[8]。

圖2 測控線程執行流程
3.5實時曲線
為了便于觀測電源的輸出變化,采用經典的Chart組件TeeChart for .NET實現電源電壓與電流曲線的顯示。由于要同時對多個電源進行操作,因此系統將曲線界面設計在上文提到的用戶控件里,這樣就避免了多次設計曲線顯示界面[9]。
實時曲線的數據刷新流程如圖3所示。實際運行界面如圖4所示,橫坐標是時間,縱坐標是電壓/電流的設計輸出值,顯示窗口的時間長度是60 s,由刷新頻率為100 ms的定時器控制實時曲線橫坐標的移動。

圖3 實時曲線數據刷新流程

圖4 測控系統界面
3.6日志存儲與回放
系統使用文本文件形式存儲試驗日志,要求存儲周期可自主設定[10]。根據試驗需求,通常是1 s記錄一次電源輸出數據,進行長時間試驗時就會在硬盤上產生體積巨大的文件,因此,系統采用按天自動生成試驗數據的方法,每天生成一個試驗平臺的日志文件。
較之于傳統的Win32編程,.NET平臺提供了簡單、高效的文件處理類,利用StreamWriter類實現日志文件的存儲,StreamReader類完成日志文件的回放讀取,具體實現方法這里不再贅述。
4應用結果
系統部分界面如圖4所示,對GENSYS系列可編程電源實物進行了仿真測控,經實際測試,通過程序控制電源輸出,能夠對8個工位進行準確控制,使用多線程時間段輪轉機制后,系統操控流暢。
目前,該程控電源仿真測控系統已經應用到在某型號陰極考核設備的試驗系統中,對陰極進行長時間可靠性與壽命考核,系統運行穩定,數據采集準確,較之于傳統的手動試驗,提高了工作效率和試驗記錄的準確度。
5結束語
根據陰極試驗系統的需求,對可編程電源進行仿真設計,經過對多種控制方式的研究與比較,最后選擇利用VISA完成對電源的底層操作,充分利用.NET平臺的優勢,用后臺任務對象實現對電源的并行測控,對電源實物界面進行仿真模擬,實現了試驗控制、實時曲線和日志存儲等功能,界面友好,體現了GENSYS系列電源本身可程控性及高穩定性的特點,系統順利完成了陰極試驗考核電源的供給與測試任務。另外,文中所介紹的基于時間段輪轉的設計思路和基于用戶控件的系統重用思想,對相關測控系統的開發有一定的參考價值。
參考文獻
[1]于志強,邵文生.電推進技術和空心陰極組件/中和器的發展[J].真空電子技術,2013(3):1-4,20.
[2]時慧晶.基于Modbus/Tcp的水下航行體通信軟件實現[J].微處理機,2015(2):18-20.
[3]楊心宇,章國寶,柴繼濤,等.基于VISA 庫的電源測試系統的設計與實現[J].工業控制計算機,2014,27(5):55-56.
[4]趙俊.通用測試儀器可互換引擎IVI-C的研究與實現[D].成都:電子科技大學,2013.
[5]秦凡,韋高.基于VISA 庫及SCPI 命令的儀器程控測量[J].現代電子技術,2011,34(11):118-120,123.
[6]Thearon Willis,Bryan Newsome.Visual Basic 2010入門經典(第6版)[M].吳偉敏,李周芳,譯.北京:清華大學出版社,2011:379-389.
[7]鄭宇生.C#多線程編程技術在數控測井系統中的應用[J].石油儀器,2012,26(4):79-81.
[8]陳懷民,王沖,吳成富,等.基于LabVIEW的SCPI命令可編程電源監控系統設計[J].計算機工程與應用,2007,43(16):107-110.
[9]李玥.TeeChart Pro在轉臺界面控制系統中的應用[J].航空精密制造技術,2013,49(1):57-59.
[10]李獻球.導航衛星有效載荷在軌測試系統設計研究[J].無線電工程,2014,44(12):39-42.

何輝男,(1978—),碩士,副教授。主要研究方向:計算機測控。
樊小龍男,(1979—),碩士,講師。主要研究方向:計算機應用。
引用格式:何輝,樊小龍.基于VISA的程控電源仿真測控系統設計[J].無線電工程,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
作者簡介
基金項目:甘肅省科技支撐計劃資助項目(1204GKCA043);甘肅省高等學校科研資助項目(2014A-124)。
收稿日期:2015-09-28
中圖分類號TP277
文獻標識碼A
文章編號1003-3106(2016)01-0072-04
doi:10.3969/j.issn.1003-3106.2016.01.18