基于Internet組建數控機床網絡測控系統目前主要有兩種基本的模式:C/S和B/S模式。兩種通信模式各有自己的優缺點,本章將對兩種結構進行詳細的比較。同時在LabVIEW環境下實現網絡通信的也有多種方式,在本章中會做一一比較。數據的存儲與訪問也是實現遠程測控系統的關鍵,在本章最后會進行 Web數據庫的設計和LabVIEW平臺下實現遠程數據庫的訪問技術方面的分析與研究。
4.1 B/S結構與C/S結構的比較
本文提出的基于Internet組建網絡化測控系統目前主要有兩種基本的模式:C/S和B/S模式,性能和功能場合上各有自己的優缺點,現做如下分析對比。
(1)C/S模式:(客戶/服務器模式)
C/S模式模型是網絡通信中常用的一種模型,通常集散控制系統多采用這種結構,它一般有多個客戶端來采集數據,而且通常有一個服務器來充當數據庫的角色,客戶端通過通信協議把測試數據寫入遠程服務器數據庫。這種模型的設計包括兩個方面:客戶端采集程序和遠程發布的程序設計以及客戶端數據的接收程序的設計。在LabVIEW環境下,專門為測試數據的安全快速的傳輸設置了DSTP協議。
C/S模式的優點:
①由于客戶端實現與服務器的直接相連,沒有中間環節,因此響應速度快。
②操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性化要求。
③C/S結構的管理信息系統具有較強的事務處理能力,能實現復雜的業務流程。
C/S模式的缺點:
①需要專門的客戶端安裝程序,分布功能弱,針對點多面廣且不具備網絡條件的用戶群體,不能夠實現快速部署安裝和配置。
②兼容性差,對于不同的開發工具,具有較大的局限性。若采用不同工具,需要重新改寫程序。
③開發成本較高,需要具有一定專業水準的技術人員才能完成。
(2)B/S模式:(瀏覽器/服務器模式)
B/S模型是為了方便用戶在Web下發布數據。通常用戶端只需要安裝一個瀏覽器,直接訪問該測控網站的地址,就可以監視遠程測控點的數據變化情況。它的主要工作就是在服務器端程序的開發,不存在客戶端程序的開發和維護。在B/S模式下,一般采用HTTP協議。B/S組網模式的網絡化虛擬儀器如圖4.1所示。
B/S模式的優點:
①具有分布性特點,可以隨時隨地進行查詢、瀏覽等業務處理。
②業務擴展簡單方便,通過增加網頁即可增加服務器功能。
③維護簡單方便,只需要改變網頁,即可實現所有用戶的同步更新。
④開發簡單,共享性強。
B/S模式的缺點:
①個性化特點明顯降低,無法實現具有個性化的功能要求。
②操作是以鼠標為最基本的操作方式,無法滿足快速操作的要求。
③頁面動態刷新,響應速度明顯降低。
④無法實現分頁顯示,給數據庫訪問造成較大的壓力。
⑤功能弱化,難以實現傳統模式下的特殊功能要求。
綜上所述,B/S模式建立在廣域網上,面向不同的用戶群,分散地域,這是C/S模式無法作到的。與操作系統平臺關系最小。C/S模式多是建立的 Window平臺上,表現方法有限,對程序員普遍要求較高,B/S模式建立在瀏覽器上,有更加豐富和生動的表現方式與用戶交流。。并且大部分難度減低,降低開發成本。鑒于兩種結構模式優缺點性能的比較和筆者的論文實現難以上考慮,本文的遠程測控系統采用B/S模式。
4.2 LabVIEW實現網絡通信的方法研究
數控機床遠程測控系統有多種實現網絡通信的方法。
其中,基于虛擬儀器LabVIEW實現網絡通信有四大類方法:
(1)使用網絡通信協議編程實現網絡通信,可以使用的通信協議類型包括TCP/IP協議、UDP、串口通信協議、無線網絡協議、Socket等;
(2)使用基于TCP/IP的數據傳輸協議DSTP的DataSocket技術實現網絡通信;
(3)使用共享變量實現網絡通信;
(4)通過遠程訪問來實現網絡通信。
本節將簡單地分析了各種方法的優缺點及應用場合。
4.2.1 TCP與UDP通信技術
TCP與UDP,這些協議在絕大多數計算機上都有安裝,因此他們的使用更為普遍,但是正是由于這些協議更加基礎,因此針對它們的編程要更加復雜,用戶需要考慮如何建立連接、分配端口號、進行地址轉換等。LabVIEW為用戶提供了封裝好的VI函數,大大簡化了TCP與UDP編程。
網絡通信協議是網絡中傳遞、管理信息的一些規范,是計算機之間相互通信需要共同遵守的一些規則。網絡通信協議通常被分為多個層次,每一層完成一定的功能,通信在對應的層次之間進行。LabVIEW中支持的通信協議類型包括TCP/IP、UDP、串口通信協議、無線網絡協議和郵件傳輸協議。TCP/IP協議體系是目前最成功,使用最頻繁的Internet協議,有著良好的實用性和開放性。它定義了網絡層的網際互連協議IP,傳輸層的傳輸控制協議TCP、用戶數據協議UDP等。
選擇采用C/S模式網絡應用構架時,網絡通信利用Socket編程。Socket是TCP/IP協議傳輸所提供的接口,一般對于軟件開發主要使用兩種類型的套接字:
(1)流式套接字
流式套接字為應用程序提供可靠的通信連接和無邊界限制的雙向數據流,能夠提供有序、無重復的傳輸,適用于處理大量數據,并適用于要求得到響應的應用程序。流式套接字是基于直接連接的,建立在TCP基礎上。TCP三次握手——使用TCP協議的流程圖如圖4.2所示
(2)數據報套接字
支持雙向數據流動,但不能保證數據的順序和不重復性,同時也不十分可靠。數據報是無連接的,由UDP(用戶數據報協議)支持,幾乎是直接建立在IP層上,傳輸速度比較快。UDP即用戶數據報協議,它是一種無連接協議,因此不需要像TCP那樣通過三次握手來建立一個連接。同時,一個UDP應用可同時作為應用的客戶端或服務器端。由于UDP協議并不需要建立一個明確的連接,因此建立UDP應用要比建立TCP應用簡單得多。它比TCP協議更為高效,也能更好地解決實時性的問題。使用UDP協議的流程圖如圖4.3所示。
其中Socket信息數據結構程序如下:
struct sockaddr
{
unsigned short sa_family; /*地址族*/
char sa_data[14]; /*14字節的協議地址,包含該socket的IP地址和端口號。*/
};
struct sockaddr_in
{
short int sa_family; /*地址族*/
unsigned short int sin_port; /*端口號*/
struct in_addr sin_addr; /*IP地址*/
unsigned char sin_zero[8]; /*填充0以保持與struct sockaddr同樣大小*/
};
LabVIEW中為網絡通訊提供了基于TCP/UDP的通訊函數供用戶調用。這樣用戶可直接調用TCP模塊中已發布的TCP VI及相關的子VI來完成流程的編寫,而無需過多考慮網絡的底層實現。在設計上采用C/S(客戶端/服務器)通信模式,VI程序分為兩部分:處理主機工作在Server模式,完成數據接收,并提供數據的相關處理;數據點計算機工作于Client模式,實現數據傳送。TCP傳輸數據過程如下:首先由發送端發送連接請求,接收端偵聽到請求后回復并建立連接,然后開始傳輸,數據傳輸完成后關閉連接,傳輸過程結束。
(3)利用TCP協議通信實例
以下通過C/S(客戶端/服務器)通信模式實現的數據傳輸模式。
在服務器端,用“TCP Create Listener”節點創建偵聽,“TCP Wait on Listener”節點等待客戶機連接,通過循環產生100個正弦信號數據,用兩個“TCP Write”節點來發送數據,第一個節點用來發送波形數據的長度,第二個節點發送波形數據,最后,用“TCP Close Connection”節點結束連接。程序框圖如圖4.4所示:
在客戶端,用“TCP Open Connection”節點打開TCP連接,用兩個“TCP Read”節點讀取數據,第一個節點接收波形長度作為第二個節點的輸入,第二個節點接收波形數據,最后,用“TCP Close Connection”節點結束連接。程序框圖如圖4.5所示:
運行TCP客戶端程序,顯示結果如下圖4.6所示。
4.2.2 DataSocket技術
在LabVIEW中實現網絡通信的最簡單方法就是DataSocket.由于DataSocket可以應用于任何編程環境,而且支持多種協議(PSP、 DSTP、OPC、LOOKOUT、HTTP、FTP和文件訪問)。DataSocket是一種編程技術,它簡化了網絡計算機之間尤其是現場數據的交換。 DataSocket技術是一種面向測控領域的網上實時數據交換編程技術,DataSocket技術基于Microsoft的COM和ActiveX技術,對TCP/IP協議進行高度封裝,它包括了通用資源定位符URL (UNIform Resource Locator)和文件格式等技術規范。它能大大簡化Internet網上計算機之間測控數據交換的編程工作。DataSocket也可用于一臺計算機內或局域網中多個應用程序之間的數據交換,DataSocket的體系結構如圖所示。
(1)DataSocket邏輯構成DataSocket包括DataSocket Server Manager(以下簡Manager),DataSocket Server和DataSocket API一部分。
Manager是一個獨立運行的程序,主要功能有:設置DataSocket Server連接的客戶端程序的最大數目和創建數據項的最大數目:創建用戶組和用戶;設置用戶創建和讀寫數據項的權限;限制身份不明的客戶對服務器進行訪問和攻擊。例如,將Manager中的Default Reader設置為everyhost,則網中的每臺客戶計算機都可以讀取服務器上的數據。Manager對DataSocket Server的配置必須在本地計算機上進行,而不能遠程配置或通過運行程序來配置。
DataSocket Server是一個必須運行在服務器端的程序,負責監管Manager中所設定的具有各種權限的用戶組和客戶端程序之間的數據交換。DataSocket Server通過內部數據自描述格式對TCP/IP進行優化和管理,簡化Internet.通信方式,提供自由的數據傳輸,可以直接傳送虛擬儀器程序所采集到的布爾型、數字型、字符串型、數組型和波形等常用類型的數據。它可以和測控應用程序安裝在同一臺計算機上,也可以分裝在不同的計算機上,以便用防火墻進行隔離來增加整個系統的安全性。DataSocket Server不會占用測控計算機CPU的工作時間,測控應用程序可以運行得更快。
DataSocket API提供獨立的接口,用于不同的語言平臺內部多種數據類型的通讀。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument),用戶可以方便地使用。一般由服務器進行數據采集,根據需要將測量地數據寫入DataSocket數據公共區,然后客戶端通過網絡充數據公共區讀取所需地測量數據。DataSocket API包含有Open、Read、Write和Close等函數,其中的Read和Write函數又分為單個或數組形式的字符串型、布爾型、數值型和波形等多種類型。DataSocket技術可在C語言、VB和LabVIEW等多種開發環境中應用。
(2)DataSocket資源定位
DataSocket對外提升資源定位接口和功能調用接口,通過同意資源定位符(URL)對數據的傳輸目的地進行定位,讀數據時為源地址,寫數據時為宿地址。在資源定位符中標明數據的傳輸協議、網絡計算機標志和數據緩沖區變量。DataSocket支持多種數據傳送協議,不同的URL前綴表示不同的協議或數據類型。主要包括:
①DSTP(DataSocket Transfer Protocol):DataSocket的專門通信協議,可以傳輸各種類型的數據,當使用這個協議時,VI與DataSocket Server連接,用戶必須為數據提供一個附加到URL的標識Tag,DataSocket連接利用Tag在DataSocket Server上為一個特殊的數據項目指定地址,目前應用虛擬儀器技術組建的測量網絡大多采用該協議;
②HTTP(Hyper Text Transfer Protocol,超文本傳輸協議);
③FTP(File Transfer Protocol,文件傳輸協議);
④OPC(OLE for Process Control,操作計劃和控制);特別為實時產生的數據而涉及,例如工業自動化操作而產生的數據。要使用該協議,須首先運行OPC Server;
⑤Fieldpoint,Logos,Lookout:分別為NI FieldPoint模塊,LabVIEW數據記錄與監控(DSC)模塊及NI Lookout模塊的通信協議;
⑥File(local file servers,本地文件服務器);可提供一個到包含數據的本地文件或網絡文件的連接。
(3)DataSocket網絡通信實現途徑
在LabVIEW中運用DataSocket技術實現網絡通信有兩種途徑:前面板控件屬性直接連接和利用DataSocket VI編程。具體實現方式見下圖4.8所示:
用DataSocket在數據發送端首先形成具有一定規律的數據流,再用DataSocket控件的寫操作把這些數據傳輸到DataSocket服務器,在各客戶端用讀操作從服務器獲取數據流,然后對數據流進行解析并恢復為原始信息在客戶端形成的響應。這樣就實現協同工作的基本流程。整個應用分成“寫”和 “讀”兩個模塊。
寫模塊的核心時DataSocket write vi.它在工作前需要用戶指定數據宿的URL地址。
VI每次從上一步程序接收數據后形成數據包并送到目標地址。在數據傳送過程中,寫端計算機的DataSocket Server會實時監視網絡連接和數據傳送情況。“寫”模塊選擇條件為“True”時的程序,詳見圖4.8.
讀模塊起核心作用的時DataSocket Read vi,其數據源的URL地址須與數據宿的URL地址相同,要注意接收的數據類型與寫端輸出的數據類型一致。讀端計算機也會運行DataSocket Server來監視網絡接收和數據接收情況。“讀”模塊程序詳見圖4.9.
有時網絡擁塞會使數據傳送周期變長,可以在程序的循環中設置等待時間(ms),本應用寫端和讀端分別設計為1000和100.在實際現場應用時,應盡量有專用的傳送線路,一面網絡擁塞時發生數據丟失。DataSocket Server讀取的數據可以做進一步的處理,并存儲起來以供調用。
評論
查看更多