代 成,葉 焱,劉太君,鄭靜靜
(寧波大學信息工程學院,浙江寧波315211)
電子技術的快速發展,推動了相關測量技術的發展,現代儀器逐步走向智能化。程控儀器的逐步普及給實驗室研究工作方便,推動了科學技術的發展。在通信領域的發展過程中,為了適應通信發展的要求,對通信信號測量要求越來越高,測量的對象以及測量的要求也越來越復雜,精度要求也越來越高。因此單個實驗儀器的測量已經不能滿足通信發展的需要,實驗系統也逐步從單個的測試儀器逐步演變成為了由多臺實驗儀器聯合起來的綜合型的測試平臺。多個實驗儀器的聯合使得測試平臺在網絡化控制中由于平臺操作復雜而引起諸多操作上的不便[1-3]。
目前對于實驗室儀器平臺的控制主要可以分為3種方式:①手動控制,常用于基礎實驗階段,目的是讓學生去實地體驗實驗室的儀器,了解基礎實驗室儀器的使用,常用于教學實驗平臺上;②遠程手動控制,遠程手動控制的專業的開發平臺是Lab-View,主要是實現高端儀器資源的網絡化共享上;③遠程網絡控制,遠程網絡控制平臺是在資源共享的基礎上實現簡單化操作[4,5]。
在實際的研究和工業應用過程中,由于系統平臺操作比較復雜,科研人員由于不熟悉而導致使用效率低下。為了更好地實現資源有效的共享,給出了一種網絡遠程自動測試的方案,簡化了實驗測試流程,提高了測試的效率。
數字預失真平臺是一個通信信號測試系統平臺,主要包含了矢量信號發生器、射頻功率放大器、定向耦合器、負載、可變衰減器和頻譜分析儀等組成的一系列的測試儀器。在儀器發展過程中,計算機技術的引進使得智能儀器擁有了更加先進的連通性,目前常見的儀器有2種外部接口:一種采用的是GPIB接口,另一種是LAN接口。GPIB接口的單一性不便于多人操作,同時LAN接口的組網成本比GPIB的組網成本要低,而無線網絡的普及和便利使采用LAN接口一樣方便。因此在開發采用LAN口進行通信[6]。數字預失真的基本結構圖如圖1所示。

圖1 數字預失真的基本結構圖
矢量信號發生器E4438C和頻譜分析儀E448A都是安捷倫公司開發的高精度的信號產生和測試儀器,具備SCPI指令編程控制功能,為遠程自動控制實驗儀器是奠定了基礎。
根據系統設置的需求,整個的遠程控制系統主要可以分為3個部分,分別是客戶端部分、數據處理部分和數據存儲部分。
①客戶端控制部分:是人機交換的界面,主要負責用戶信息的采集,實驗參數的設置操作,視頻信息設置操作以及數據信息的采集功能模塊;
②數據處理部分:數據處理部分是整個系統的信息的中心部分,數據處理部分將客戶端的參數經過處理之后轉換為底層可以識別的語言,通過接口程序傳遞到底層實驗儀器從而實現對底層硬件的控制,實現網絡和底層硬件之間的通信;
③數據存儲部分:在實驗室資源共享的條件下,實驗過程中大量實驗結果的處理并不能當場進行分析。通過私有云存儲平臺,可以通過網絡將數據信息和用戶信息都存儲到Mongodb構建的私有云庫下,等待下一步的數據分析,整個系統的架構如圖2所示。

圖2 遠程自動測試平臺的系統架構圖
VISA(Virtual Instrument Software Architecture)是由美國國家儀器公司開發的用來與各種儀器總線進行通信的高級編程接口。在實際的開發過程中VISA庫文件是鏈接儀器和控制端計算機的一個中間件,由于不受平臺、總線和環境的控制,編程人員可以很容易的實現跨平臺開發,而SCPI(Standard Commands for Programmable Instruments)指令是一套建立在IEEE基礎上,遵循多重標準的標準化儀器編程語言。因為SCPI指令只是定義了命令格式而沒有具體的通信方式,所以在實際的開發中支持PXI、RS232、USB、GPIB和TCP/IP等多重的底層通信協議,將VISA和SCPI結合起來進行開發可以大大節省開發者的時間和精力。
在開發中這里采用的是10.01版本,在實際的架構中依托Visual Studio 2008開發平臺開發的程序通過IOLibrary和儀器上的LAN口鏈接實現軟件和硬件實驗儀器之間的通信。IOLibrarySuite是一個集成的庫的套件,其中包含了4個IO庫文件,在整個的通信過程中起到一個連接作用,很容易將開發端的計算機和實驗儀器的通信鏈路連接起來。其中VISA和VISACOM的為后臺控制端的軟件的開發奠定了基礎[7-9]。
在后臺和硬件儀器組成的網絡架構上,采用的通過路由器組成一個簡單的局域網,通過簡單的幾根網線將矢量信號發生器和頻譜分析儀組成一個簡單的局域網,配置他們的IP分別為10.10.10.9和10.10.10.10。后臺的控制計算機通過安裝IOLibrarySuite可以實現和底層儀器之間的通信。后臺控制端的網絡架構如圖3所示。
在底層通信程序的開發過程中VISA庫函數主要用到的就是以下的幾個庫函數,實際的儀器程控開發過程主要結構可以分為3個步驟來實現:
viOpenDefaultRM(sesn);

圖3 后臺儀器儀表控制結構圖
viOpen(sesn,rsrcName,accessMode,timeout,vi);
第一步,用上述的函數來初始化資源管理器并且打開實驗儀器建立通信;
第二步,通過函數viPrinf(ViSession vi。ViString writeFmt,)調用SCPI指令來有效的控制硬件儀器的操作;
第三步,當相應的操作完成以后,就通過vi-Close(ViObject)函數關閉通信,同時關閉濟源管理器。
為了實現不同底層語言和服務器端的通信,采用了JNA技術實現底層C++語言和后臺的JAVA語言的通信。
在Vistudio2008開發平臺進行開發的時候,首先將底層的C++函數進行封裝成為功能函數生成DLL(Dynamic-Link Library),根據控制模塊的需要設置相應的參數,將每個模塊所需的功能函數做成一個DLL文件。其次,為了能讓后臺的JAVA程序能夠訪問DLL里的功能函數,需要在功能函數前面加上標示符_declspec(dllexport),在開發工程的頭文件添加標示符和函數頭,編譯之后產生后綴名的.dll的編譯文件。
系統的服務器端是整個遠程控制系統的核心部分,是連接客戶端和底層硬件的一個中心橋梁。整個的后臺服務器的架構可以描述為應用服務器、流媒體服務器、數據庫服務器以及WEB服務器。整個的系統架構如圖4所示。

圖4 服務器端架構圖
①應用服務器模塊采用JAVA語言開發的功能測試函數,每個模塊對應著底層的C++編寫的控制儀器的DLL,一方面實現了底層的通信,另一方面也是數據處理的中心,將實驗得出的數據結果通過API接口存儲到數據庫中,采用了JNA技術有助于實現網絡化控制底層的硬件平臺,同時提升了編譯效率;
②流媒體服務器模塊將實時記載著本地實驗的情景,并將攝像頭拍攝的文件流化進行發布,保證了實驗觀看的實時性,同時流媒體服務器的文件將錄取的視頻文件存儲到數據庫中。便于后期處理實驗結果的時候進行復查;
③WEB應用服務器中的客戶端是人機交互的一個接口,遠程實驗者進行訪問的時候,功能界面就可以直觀地展現在用戶面前,用戶可以在不了解使用原理的情況下,只需要在按照要求設置相應的參數就可以進行實驗,采用flex開發平臺能夠將效果更真實的展示;
④數據庫服務器是數據存儲中心,在實驗過程中,由于出現多種不同的類型的數據包括視頻文件,文檔文件等不規則的文件,與此同時為了便于用戶的管理,采用NoSQL數據庫MongoDB構建了私有云存儲架構[10,11],如圖5所示。

圖5 MongoDB的Replica Sets+Sharding架構
用戶在進行訪問的過程中,首先會將注冊信息存儲在私有云庫的用戶管理數據庫中,并為用戶自動創建一個私有的數據庫供用戶使用,MongoDB私有庫將非結構化的數據很方便地存儲在數據中心,并隨時隨地進行訪問。
遠程自動控制系統采用了基于WEB的應用開發,在實際的工程中,通信過程主要分為3步進行:
①用戶在進入實驗界面之前,用戶都必須先進行注冊,注冊之后,后臺會直接在云存儲平臺上給用戶創建一個私有庫,用來存儲信息;
②用戶在人機交互界面上設置相對應的參數,并TXT信號文件通過網絡上傳到底層的實驗儀器,并通過按鈕進行相應的操作;
③可以通過視頻模塊,實時了解視頻信息。了解信號的特點并進行調整,并通過按鈕實時采集相應的信息和截圖保存在后臺的私有庫中;
④采集的信息存儲之后,能在專門的信息欄,用戶可以隨時登陸網站,通過在自己的私有庫中進行數據信息的調取。
通過上述的操作,用戶可以結合開發的人家交互界面,非常清楚的獲取資料信息,主要開發了數據采集模塊,視頻模塊,人機交互模塊,數據下載模塊,每個人進入自己的賬號之后,都能下載自己數據庫的信息。
基于WEB的數字預失真測試平臺遠程自動測試系統的研究及實現,能夠實現聯合測試系統遠程操作的簡單化,在現實應用中具有重要的意義。本文針對遠程自動測試技術提出了一種新的方案,同時對于數據部分我們結合著最新的云存儲技術,對每個用戶都能建立一個自己的私有庫進行處理,能夠很好的將數據進行管理。本文采取的設計模式大大簡化了后期的學習時間,同時增強了數據的處理能力。
[1]HURLEY W G,LEE C K.Development,Implementation,and Assessment of a Web-Based Power Electronics Laboratory[J].IEEE Transactions on Education,2005,48(4):567-573.
[2]RESTIVO M T,MENDES J.A Remote Laboratory in Engineering Measurement[J].IEEE Transactions on Industrial and Electronics,2009,56(12):4836-4843.
[3]田雪詠,常天慶,史少華.基于多Agent的自動測試系統測試儀器模型設計[J].自動化與儀表,2011(4):14-16.
[4]陳小紅.虛擬實驗室的研究現狀及其發展趨勢[J].中國現代教育裝備,2010(17):107-109.
[5]CHANDRA J A P,VENUGOPAL C R.Novel Design Solutions for Remote Access,Acquire and Control of Laboratory Experiments on DC Machines[J].IEEE Transactions on Instrumentation and measurement,2012,61(2):349-357.
[6]HE Zhi-yong,GE Jian-hua,GENG Shu-jian,WANG Gang.An Improved Look-Up Table Predistortion Technique for HPA With Memory Effects in OFDM Systems[J].IEEE Transactions on Broadcasting 2005:1-5.
[7]田耕,阮林波,渠紅光.基于VISA技術的自動測試軟件研制[J].核電子學與探測技術,2009,29(6):1397-1400.
[8]HUANG Jing,QIAO Lei-ling,ZHANG Han-bo.Research of Automatic Digital Multimeter Interface Technology based on UART[C]// 2012 Third International Conference on Networking and Distributed Computing,ZheJiang,2012:108-110.
[9]LI Jian-min,ZHENG Bin,WEN Hou.Design of Supervision Software for Programmable Power Supply Based on Virtual Instrument Development Environment[C]//2009 World Congress on Computer Science and Information Engineering USA,2009:301-305.
[10]GU Gen-qiang,LI Qing-chun,WEN Xiao-long.An Overview of Newly Open-Source Cloud Storage Platforms[C]//2012 IEEE International Conference on Granular Computing,ZheJiang,2012:142-147.
[11]LIU Yi-meng,WANG Yi-zhi,JIN Yi.Research on the Improvement of MongoDB Auto-Sharding in cloud environment[C]//2012 7th International Conference on Computer Science and Education,Australia,2012:851-854.