汪衍輝
摘要:本文通過局域網和最后遠程虛擬實驗的網絡,控制虛擬實驗實現了基于虛擬實驗和LabWindows/CVI軟件平臺。介紹了基于LabWindows應用程序設計的虛擬實驗網絡結構、虛擬實驗網絡通信、客戶端/編程模式的服務器、遠程PC和服務器通信實現功率控制工作站傳輸和服務器程序等基本技術。
關鍵詞:虛擬實驗 虛擬實驗網絡 通信 遠程控制
1 介紹
互聯網技術和遠程虛擬實驗是基于虛擬實驗(VI)來設計的,該技術多年來被應用在許多領域。VI的遠程控制和遠程獲取、通過VI和交付量的測量信息也越來越重要。通過局域網設置了基于軟件平臺的LabWindows / CVI,具體的網絡通信部分,要使用VI實現網絡連接彼此內部局域網,利用服務器/客戶模式申請權力和控制,客戶程序可通過指令獲得遠程虛擬網絡實驗平臺的控制權。
虛擬實驗網絡(VIN)由一組硬件和系統(tǒng)構成。硬件包括計算機(可單機或局域網組成的服務器以及一些PC)。該軟件采用的編程環(huán)境是LabWindows / CVI和c++。LabWindows / CVI可以開發(fā)使用虛擬設備,實現VI的功能。可以使用綁定的硬件和軟件縮短開發(fā)周期和提高VI的可用性。
根據設計的原則,系統(tǒng)硬件配置,采用VXI總線實驗和GPIB實驗。選擇VXI主機控制器為主要系統(tǒng)硬件框架,里面放置0槽控制計算機作為系統(tǒng)控制器。
一般的標準接口是每個測試函數模塊之間的一座橋梁,他們一起構成了電路板的測試模塊。接口適配器完成標準接口與電路板連接機器測試。信號源采用電路板標準接口和相應適配器,這和響應信號需要測試給定的標準接口有關。
2 虛擬實驗網絡通信設計
VIN的溝通任務是:查詢服務器和數據庫(BD)的工作站的IP地址,然后得到對應的結果控制工作站;讓遠端電腦遠程控制GPIB實驗;遠端PC將命令發(fā)送到GPIB實驗;決定是否通過局域網,或者回送到獲取遠端實驗數據的電腦。
網絡規(guī)劃是由web服務器程序、客戶端程序和通用接口總線控制器組成。采用TCP / IP網絡協(xié)議,在面向連接的客戶端與web服務器必須得到一個鏈接之前,要先將數據包發(fā)送到網絡服務器。一旦運行客戶端程序,它發(fā)送一個連接請求到web服務器(假設web服務器已成功開啟了一個端口與客戶溝通),為了整個系統(tǒng)安全,web服務器需要驗證用戶的身份的有效性。實現成功的發(fā)送和接收的交流結束之前,必須遵守彼此傳輸格式。
網絡傳輸的數據包格式是:頭和內容的信息,由制表字符“\ r \ n”之間的信息頭和信息的內容組成。信息頭放在特殊容器中。具體的內容之間的信息和內容與內部信息也分開,依然用“\ r \ n”分隔。在轉移到網絡服務器時,服務器將通過查詢數據包驗證其身份。
頭的信息是:“[Log_Serv]”,項目內容結果是:“=”、“= ”型。如果登錄成功,整個信息內容是:“Log_Serv \ r \ nRESULT =OK\ r \ nTYPE = XS \ r \ n”;如果登錄失敗,整個信息內容是:“[Log_Serv]\ r \ n \ r \ nRESULT = NG”。這時,來自客戶機的通信網絡服務器已經基本完成。在收到確認信息的GPIB實驗控制器客戶端,將設置獨立的與GPIB實驗控制器相聯系的地址。
3 VI傳輸程序設計
先根據網絡傳輸的控制功能,提出TCP LabWindows / CVI所用函數庫,它是屬于Windows Socket和支持TCP服務的一個子集。與直接使用Windows Socket編程API函數相比,它更方便和容易使用。LabWindows / CVI TCP函數庫包含3個子類:服務器、客戶端、支持功能的函數。
第一個是通信控制功能子類的服務器端,包括4個組件:負責接口的注冊表、服務器和讀取/寫稿數據的端口。第二個是設置和通訊功能子類的客戶端,這樣的子類型包括客戶機通信控制功能。最后是其他功能子類:比如獲得當前主機的IP地址、主機名等。
首先,客戶端發(fā)送一個請求到Web服務器,請求GPIB實驗的地址,控制器是為了控制之間的數據交流。Web服務器發(fā)送的GPIB實驗地址,控制器后臺處理客戶端的請求。
4 PC和服務器之間的通信和控制程序設計
4.1 菜單程序回調函數
放在設置文件之前,系統(tǒng)自動代碼框架代碼的主程序和回調功能函數。
菜單回調函數的基本框架是:
void CVICALLBACK(int menuBar, int menuItem, void *callbackData, int panel){ }
相應代碼添加會根據具體功能菜單調用回調函數。在使用回調函數“Exit _All”(退出實驗臺)時,它只需要添加退出用戶接口(0)。
4.2 用戶遠程登陸模塊實現
如果在主函數設置下面的語句,程序將運行客戶端程序和控制面板。
if ((panelmenu = LoadPanel (0, "interface.uir", PANELMENU)) < 0) return -1;
DisplayPanel (panelmenu);
此外,需要執(zhí)行另一個重要的聲明,這是設置的鏈接服務器。服務器端口和機器名稱已在使用之前定義。
int iPortNum=1000;
char cIP_Address [10]="VLAB";
if (ConnectToTCPServer (&iG;_HCONVERSATION1, iPortNum, cIP_Address, ClientTCPCB, NULL, 5000) < 0)
MessagePopup ("TCP Client", "Connection to server failed!");
else RunUserInterface ( );
然后出現面板和與服務器連接,用戶可以單擊按鈕“用戶登陸”,輸入帳號和密碼,然后點擊按鈕“用戶登陸”事件將出現如下情況:
if ((panellog=LoadPanel (0,"interface.uir", PANELLOG))<0)
return -1;
InstallPopup (panellog);
寫數據到服務器端的程序:
if ( (ClientTCPWrite (iG_HCONVERSATION1, cSend, strlen (cSend) , 1000))<0)
285
{MessagePopup ("Attention", "cSend the Log Information Error");
QuitUserInterface (0);
}
else
{DiscardPanel (panellog);
SetCtrlAttribute (panelinfo, PANELINFO_QUEST_ONLINE, ATTR_DIMMED, 0);
SetCtrlAttribute (panelinfo, PANELINFO_QUERY_GS, ATTR_DIMMED, 0);
}
break;
}
return 0;}
使用clientTCPwrite通過網絡發(fā)送信息到服務器,服務器將數據進行比較,找到屬于自己的數據包的消息并進行消息接收和發(fā)送消息。
5 結論
利用基于電子測量在VIN中的應用,使VIN系統(tǒng)引入通信和遠程控制技術,廣泛的應用這些技術,可以體現出更為實際的價值。例如,多種先進VI實現的資源共享,電子測量VIN已經建成,系統(tǒng)的所有功能已生效。因此網絡的傳輸質量保證和良好的情況下,用戶可以遠程控制VI,在許多實踐VIN系統(tǒng)應用中收到良好的效果。
參考文獻:
[1]劉東.基于Packet Tracer和VMWare構建虛擬網絡實驗平臺[J].中小企業(yè)管理與科技(下旬刊),2010(10).
[2]魏曉輝,郭慶南等.支持虛擬機跨局域網在線遷移的混合式虛擬網絡原型[J].吉林大學學報(理學版),2011(2).
[3]張人清.虛擬網絡實驗室實現原理研究[D].湘潭大學,2001.
基金項目:
項目名稱:網絡虛擬實訓平臺的開發(fā)及在高職院校的聯合應用,項目編號:JG2012020803。