基于LabVIEW的數控機床網(wǎng)絡(luò )測控系統--網(wǎng)絡(luò )通信關(guān)鍵技術(shù)研究 (一)
4.2.2 DataSocket技術(shù)
本文引用地址:http://dyxdggzs.com/article/270596.htm在LabVIEW中實(shí)現網(wǎng)絡(luò )通信的最簡(jiǎn)單方法就是DataSocket.由于DataSocket可以應用于任何編程環(huán)境,而且支持多種協(xié)議(PSP、DSTP、OPC、LOOKOUT、HTTP、FTP和文件訪(fǎng)問(wèn))。DataSocket是一種編程技術(shù),它簡(jiǎn)化了網(wǎng)絡(luò )計算機之間尤其是現場(chǎng)數據的交換。DataSocket技術(shù)是一種面向測控領(lǐng)域的網(wǎng)上實(shí)時(shí)數據交換編程技術(shù),DataSocket技術(shù)基于Microsoft的COM和ActiveX技術(shù),對TCP/IP協(xié)議進(jìn)行高度封裝,它包括了通用資源定位符URL (UNIform Resource Locator)和文件格式等技術(shù)規范。它能大大簡(jiǎn)化Internet網(wǎng)上計算機之間測控數據交換的編程工作。DataSocket也可用于一臺計算機內或局域網(wǎng)中多個(gè)應用程序之間的數據交換,DataSocket的體系結構如圖所示。

(1)DataSocket邏輯構成DataSocket包括DataSocket Server Manager(以下簡(jiǎn)Manager),DataSocket Server和DataSocket API一部分。
Manager是一個(gè)獨立運行的程序,主要功能有:設置DataSocket Server連接的客戶(hù)端程序的最大數目和創(chuàng )建數據項的最大數目:創(chuàng )建用戶(hù)組和用戶(hù);設置用戶(hù)創(chuàng )建和讀寫(xiě)數據項的權限;限制身份不明的客戶(hù)對服務(wù)器進(jìn)行訪(fǎng)問(wèn)和攻擊。例如,將Manager中的Default Reader設置為everyhost,則網(wǎng)中的每臺客戶(hù)計算機都可以讀取服務(wù)器上的數據。Manager對DataSocket Server的配置必須在本地計算機上進(jìn)行,而不能遠程配置或通過(guò)運行程序來(lái)配置。
DataSocket Server是一個(gè)必須運行在服務(wù)器端的程序,負責監管Manager中所設定的具有各種權限的用戶(hù)組和客戶(hù)端程序之間的數據交換。DataSocket Server通過(guò)內部數據自描述格式對TCP/IP進(jìn)行優(yōu)化和管理,簡(jiǎn)化Internet.通信方式,提供自由的數據傳輸,可以直接傳送虛擬儀器程序所采集到的布爾型、數字型、字符串型、數組型和波形等常用類(lèi)型的數據。它可以和測控應用程序安裝在同一臺計算機上,也可以分裝在不同的計算機上,以便用防火墻進(jìn)行隔離來(lái)增加整個(gè)系統的安全性。DataSocket Server不會(huì )占用測控計算機CPU的工作時(shí)間,測控應用程序可以運行得更快。
DataSocket API提供獨立的接口,用于不同的語(yǔ)言平臺內部多種數據類(lèi)型的通讀。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument),用戶(hù)可以方便地使用。一般由服務(wù)器進(jìn)行數據采集,根據需要將測量地數據寫(xiě)入DataSocket數據公共區,然后客戶(hù)端通過(guò)網(wǎng)絡(luò )充數據公共區讀取所需地測量數據。DataSocket API包含有Open、Read、Write和Close等函數,其中的Read和Write函數又分為單個(gè)或數組形式的字符串型、布爾型、數值型和波形等多種類(lèi)型。DataSocket技術(shù)可在C語(yǔ)言、VB和LabVIEW等多種開(kāi)發(fā)環(huán)境中應用。
(2)DataSocket資源定位
DataSocket對外提升資源定位接口和功能調用接口,通過(guò)同意資源定位符(URL)對數據的傳輸目的地進(jìn)行定位,讀數據時(shí)為源地址,寫(xiě)數據時(shí)為宿地址。在資源定位符中標明數據的傳輸協(xié)議、網(wǎng)絡(luò )計算機標志和數據緩沖區變量。DataSocket支持多種數據傳送協(xié)議,不同的URL前綴表示不同的協(xié)議或數據類(lèi)型。主要包括:
?、貲STP(DataSocket Transfer Protocol):DataSocket的專(zhuān)門(mén)通信協(xié)議,可以傳輸各種類(lèi)型的數據,當使用這個(gè)協(xié)議時(shí),VI與DataSocket Server連接,用戶(hù)必須為數據提供一個(gè)附加到URL的標識Tag,DataSocket連接利用Tag在DataSocket Server上為一個(gè)特殊的數據項目指定地址,目前應用虛擬儀器技術(shù)組建的測量網(wǎng)絡(luò )大多采用該協(xié)議;
?、贖TTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議);
?、跢TP(File Transfer Protocol,文件傳輸協(xié)議);
?、躉PC(OLE for Process Control,操作計劃和控制);特別為實(shí)時(shí)產(chǎn)生的數據而涉及,例如工業(yè)自動(dòng)化操作而產(chǎn)生的數據。要使用該協(xié)議,須首先運行OPC Server;
?、軫ieldpoint,Logos,Lookout:分別為NI FieldPoint模塊,LabVIEW數據記錄與監控(DSC)模塊及NI Lookout模塊的通信協(xié)議;
?、轋ile(local file servers,本地文件服務(wù)器);可提供一個(gè)到包含數據的本地文件或網(wǎng)絡(luò )文件的連接。
(3)DataSocket網(wǎng)絡(luò )通信實(shí)現途徑
在LabVIEW中運用DataSocket技術(shù)實(shí)現網(wǎng)絡(luò )通信有兩種途徑:前面板控件屬性直接連接和利用DataSocket VI編程。具體實(shí)現方式見(jiàn)下圖4.8所示:
用DataSocket在數據發(fā)送端首先形成具有一定規律的數據流,再用DataSocket控件的寫(xiě)操作把這些數據傳輸到DataSocket服務(wù)器,在各客戶(hù)端用讀操作從服務(wù)器獲取數據流,然后對數據流進(jìn)行解析并恢復為原始信息在客戶(hù)端形成的響應。這樣就實(shí)現協(xié)同工作的基本流程。整個(gè)應用分成“寫(xiě)”和“讀”兩個(gè)模塊。
寫(xiě)模塊的核心時(shí)DataSocket write vi.它在工作前需要用戶(hù)指定數據宿的URL地址。
VI每次從上一步程序接收數據后形成數據包并送到目標地址。在數據傳送過(guò)程中,寫(xiě)端計算機的DataSocket Server會(huì )實(shí)時(shí)監視網(wǎng)絡(luò )連接和數據傳送情況。“寫(xiě)”模塊選擇條件為“True”時(shí)的程序,詳見(jiàn)圖4.8.

讀模塊起核心作用的時(shí)DataSocket Read vi,其數據源的URL地址須與數據宿的URL地址相同,要注意接收的數據類(lèi)型與寫(xiě)端輸出的數據類(lèi)型一致。讀端計算機也會(huì )運行DataSocket Server來(lái)監視網(wǎng)絡(luò )接收和數據接收情況。“讀”模塊程序詳見(jiàn)圖4.9.

有時(shí)網(wǎng)絡(luò )擁塞會(huì )使數據傳送周期變長(cháng),可以在程序的循環(huán)中設置等待時(shí)間(ms),本應用寫(xiě)端和讀端分別設計為1000和100.在實(shí)際現場(chǎng)應用時(shí),應盡量有專(zhuān)用的傳送線(xiàn)路,一面網(wǎng)絡(luò )擁塞時(shí)發(fā)生數據丟失。DataSocket Server讀取的數據可以做進(jìn)一步的處理,并存儲起來(lái)以供調用。
tcp/ip相關(guān)文章:tcp/ip是什么
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論