基于LabVIEW的數控機床網絡測控系統--網絡通信關鍵技術研究 (一)
4.2.2 DataSocket技術
本文引用地址:http://www.j9360.com/article/270596.htm在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讀取的數據可以做進一步的處理,并存儲起來以供調用。
tcp/ip相關文章:tcp/ip是什么
數字通信相關文章:數字通信原理
通信相關文章:通信原理
評論