新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于DataSocket技術(shù)的LabVIEW遠(yuǎn)程測(cè)控

基于DataSocket技術(shù)的LabVIEW遠(yuǎn)程測(cè)控

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò) 收藏
DataSocket技術(shù)基于TCP/IP協(xié)議并對(duì)其進(jìn)行高度封裝,能在測(cè)試測(cè)量過(guò)程中實(shí)現(xiàn)服務(wù)器與多用戶的實(shí)時(shí)數(shù)據(jù)交換與共享,而用戶不必關(guān)心程序底層的細(xì)節(jié)。本文分析DataSocket的內(nèi)部組成及利用URL進(jìn)行資源定位的方式,詳細(xì)討論基于DataSocket的LabVIEW遠(yuǎn)程測(cè)控方法。通過(guò)局域網(wǎng)開(kāi)發(fā)的典型應(yīng)用實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)控?cái)?shù)據(jù)的實(shí)時(shí)發(fā)布與讀取。隨著測(cè)控系統(tǒng)的網(wǎng)絡(luò)化,其應(yīng)用前景將越來(lái)越廣闊。


1、LabVIEW及其網(wǎng)絡(luò)通信

LabVIEW是NI(National Instruments)公司具有革命性的圖形化虛擬儀器開(kāi)發(fā)環(huán)境,它內(nèi)置信號(hào)采集、測(cè)量分析與數(shù)據(jù)顯示功能,集開(kāi)發(fā)、調(diào)試、運(yùn)行于一體,目前版本為L(zhǎng)abVIEW 7.1。LabVIEW 51及以后的版本充分考慮測(cè)控系統(tǒng)的網(wǎng)絡(luò)化要求,集成各種通信協(xié)議,提供豐富的網(wǎng)絡(luò)化組件。

使用LabVIEW實(shí)現(xiàn)網(wǎng)絡(luò)通信有4種方法:①無(wú)須具體協(xié)議的遠(yuǎn)程桌面連接;②使用DataSocket技術(shù)進(jìn)行網(wǎng)絡(luò)通信;③現(xiàn)成實(shí)時(shí)發(fā)布測(cè)控程序的網(wǎng)頁(yè),異地使用瀏覽器(如Internet Explorer,Netscape Communicator等)進(jìn)行監(jiān)控;④使用TCP、DDP等傳輸控制協(xié)議編程進(jìn)行網(wǎng)絡(luò)通信。

測(cè)試數(shù)據(jù)在網(wǎng)上的發(fā)布和共享是遠(yuǎn)程測(cè)控系統(tǒng)工程應(yīng)用的關(guān)鍵技術(shù)之一。雖然現(xiàn)存的TCP/IP和DDE(動(dòng)態(tài)數(shù)據(jù)交換)等多種技術(shù)可以實(shí)現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享,但大多數(shù)使用起來(lái)并不方便,開(kāi)發(fā)效率不高,甚至不能滿足數(shù)據(jù)實(shí)時(shí)傳輸?shù)男枨?,日益廣泛和復(fù)雜的網(wǎng)絡(luò)應(yīng)用勢(shì)必需要大量的編程工作。DataSocket專為測(cè)量數(shù)據(jù)的實(shí)時(shí)傳送而涉及,是虛擬儀器涉及過(guò)程中面向網(wǎng)絡(luò)測(cè)控的技術(shù)擴(kuò)展,能簡(jiǎn)化系統(tǒng)開(kāi)發(fā)過(guò)程,滿足正確傳輸,實(shí)時(shí)通信和網(wǎng)絡(luò)安全的涉及要求,特別適合于遠(yuǎn)程數(shù)據(jù)采集、監(jiān)控和數(shù)據(jù)共享等應(yīng)用程序的開(kāi)發(fā)。

2、DataSocket技術(shù)

DataSocket機(jī)遇Microsoft的COM和ActiveX技術(shù),源于TCP/IP協(xié)議并對(duì)其進(jìn)行高度封裝,面向測(cè)量和自動(dòng)化應(yīng)用,用于共享和發(fā)布實(shí)時(shí)數(shù)據(jù),是一種易用的高性能數(shù)據(jù)交換編程接口。它能有效地支持本地計(jì)算機(jī)上不同應(yīng)用程序?qū)μ囟〝?shù)據(jù)地同時(shí)應(yīng)用,以及網(wǎng)絡(luò)上不同計(jì)算機(jī)地多個(gè)應(yīng)用程序之間的數(shù)據(jù)交互,實(shí)現(xiàn)跨及其、跨語(yǔ)言、跨進(jìn)程的實(shí)時(shí)數(shù)據(jù)共享。用戶只需要知道數(shù)據(jù)源和數(shù)據(jù)宿及需要交換的數(shù)據(jù)就可以直接進(jìn)行高層應(yīng)用程序的開(kāi)發(fā),實(shí)現(xiàn)高速數(shù)據(jù)傳輸,而不必關(guān)心底層的實(shí)現(xiàn)細(xì)節(jié),從而簡(jiǎn)化通信程序的編寫(xiě)過(guò)程,提高編程效率。

2.1 DataSocket邏輯構(gòu)成

本文引用地址:http://butianyuan.cn/article/201701/337108.htm

DataSocket包括DataSocket Server Manager(以下簡(jiǎn)稱Manager),DataSocket Server和DataSocket API一部分。

Manager是一個(gè)獨(dú)立運(yùn)行的程序,主要功能有:設(shè)置DataSocket Server連接的客戶端程序的最大數(shù)目和創(chuàng)建數(shù)據(jù)項(xiàng)的最大數(shù)目:創(chuàng)建用戶組和用戶;設(shè)置用戶創(chuàng)建和讀寫(xiě)數(shù)據(jù)項(xiàng)的權(quán)限;限制身份不明的客戶對(duì)服務(wù)器進(jìn)行訪問(wèn)和攻擊。例如,將Manager中的Default Reader設(shè)置為everyhost,則網(wǎng)中的每臺(tái)客戶計(jì)算機(jī)都可以讀取服務(wù)器上的數(shù)據(jù)。Manager對(duì)DataSocket Server 的配置必須在本地計(jì)算機(jī)上進(jìn)行,而不能遠(yuǎn)程配置或通過(guò)運(yùn)行程序來(lái)配置。

DataSocket Server 是一個(gè)必須運(yùn)行在服務(wù)器端的程序,負(fù)責(zé)監(jiān)管Manager中所設(shè)定的具有各種權(quán)限的用戶組和客戶端程序之間的數(shù)據(jù)交換。DataSocket Server通過(guò)內(nèi)部數(shù)據(jù)自描述格式對(duì)TCP/IP進(jìn)行優(yōu)化和管理,簡(jiǎn)化Internet通信方式,提供自由的數(shù)據(jù)傳輸,可以直接傳送虛擬儀器程序所采集到的布爾型、數(shù)字型、字符串型、數(shù)組型和波形等常用類型的數(shù)據(jù)。它可以和測(cè)控應(yīng)用程序安裝在同一臺(tái)計(jì)算機(jī)上,也可以分裝在不同的計(jì)算機(jī)上,以便用防火墻進(jìn)行隔離來(lái)增加整個(gè)系統(tǒng)的安全性。DataSocket Server不會(huì)占用測(cè)控計(jì)算機(jī)CPU的工作時(shí)間,測(cè)控應(yīng)用程序可以運(yùn)行得更快。使用DataSocket技術(shù)進(jìn)行通信時(shí)服務(wù)器和客戶端得計(jì)算機(jī)上筆形都進(jìn)行DataSocket Server。

DataSocket API提供獨(dú)立的接口,用于不同的語(yǔ)言平臺(tái)內(nèi)部多種數(shù)據(jù)類型的通讀。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument),用戶可以方便地使用。一般由服務(wù)器進(jìn)行數(shù)據(jù)采集,根據(jù)需要將測(cè)量地?cái)?shù)據(jù)寫(xiě)入DataSocket 數(shù)據(jù)公共區(qū),然后客戶端通過(guò)網(wǎng)絡(luò)充數(shù)據(jù)公共區(qū)讀取所需地測(cè)量數(shù)據(jù)。

2.2 DataSocket 資源定位

DataSocket 對(duì)外提升資源定位接口和功能調(diào)用接口,通過(guò)同意資源定位符(URL)對(duì)數(shù)據(jù)的傳輸目的地進(jìn)行定位,讀數(shù)據(jù)時(shí)為源地址,寫(xiě)數(shù)據(jù)時(shí)為宿地址。在資源定位符中標(biāo)明數(shù)據(jù)的傳輸協(xié)議、網(wǎng)絡(luò)計(jì)算機(jī)標(biāo)志和數(shù)據(jù)緩沖區(qū)變量。DataSocket支持多種數(shù)據(jù)傳送協(xié)議,不同的URL前綴表示不同的協(xié)議或數(shù)據(jù)類型。主要包括:(1)dstp(DataSocket Transfer Protocol):DataSocket 的專門(mén)通信協(xié)議,可以傳輸各種類型的數(shù)據(jù),當(dāng)使用這個(gè)協(xié)議時(shí),VI與DataSocket Server連接,用戶必須為數(shù)據(jù)提供一個(gè)附加到URL的標(biāo)識(shí)Tag,DataSocket連接利用Tag在DataSocket Server上為一個(gè)特殊的數(shù)據(jù)項(xiàng)目指定地址,目前應(yīng)用虛擬儀器技術(shù)組建的測(cè)量網(wǎng)絡(luò)大多采用該協(xié)議;(2)http(Hyper Text Transfer Protocol,超文本傳輸協(xié)議);(3)ftp(File Transfer Protocol,文件傳輸協(xié)議);(4)opc (OLE for Process Control,操作計(jì)劃和控制);特別為實(shí)時(shí)產(chǎn)生的數(shù)據(jù)而涉及,例如工業(yè)自動(dòng)化操作而產(chǎn)生的數(shù)據(jù)。要使用該協(xié)議,必須首先運(yùn)行一個(gè)OPC Server;(5)fieldpoint,logos,lookout:分別為NI FieldPoint 模塊,LabVIEW數(shù)據(jù)記錄與監(jiān)控(DSC)模塊及NI Lookout模塊的通信協(xié)議;(6)file(local file servers,本地文件服務(wù)器);可提供一個(gè)到包含數(shù)據(jù)的本地文件或網(wǎng)絡(luò)文件的連接。

3、DataSocket網(wǎng)絡(luò)通信實(shí)現(xiàn)途徑

在LabVIEW中運(yùn)用DataSocket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)通信有兩種途徑:前面板控件屬性直接連接和利用DataSocket VI編程。

3.1 前面板控件直接連接

LabVIEW為每一前面板控件都設(shè)定一個(gè)DataSocket Connection屬性,利用它可以實(shí)現(xiàn)不同計(jì)算機(jī)上相對(duì)應(yīng)得兩個(gè)甚至多個(gè)同類型控件之間的DataSocket通信。通過(guò)規(guī)定URL和控件連接方式就可以在本地和遠(yuǎn)程進(jìn)行實(shí)時(shí)無(wú)誤差的數(shù)據(jù)發(fā)布(Publish)和讀?。⊿ubscribe)。

連接方式中的Publish和Subscribe方式為雙向傳輸提供方便,兩臺(tái)計(jì)算機(jī)中的任何一臺(tái)都可以控制另外一臺(tái)計(jì)算機(jī)的控件數(shù)值。例如,要將本地波形顯示器(Waveform Graph)的數(shù)據(jù)與網(wǎng)絡(luò)中的其他計(jì)算機(jī)共享,可在本地波形顯示器的DataSocket Connection屬性對(duì)話框中指定URL,并選擇Publish連接方式,異地波形顯示器的DataSocket Connection對(duì)話框中URL應(yīng)符合以下格式:dstp://servernamecom/waveformdata,其中servername com是本地計(jì)算機(jī)的網(wǎng)址,它可以是計(jì)算機(jī)名、IP地址或計(jì)算機(jī)域名:waveformdata是數(shù)據(jù)的名稱標(biāo)識(shí)(tag),用以區(qū)別不同的DataSocket連接。這樣兩異地控件就建立連接。運(yùn)行兩程序,當(dāng)控件右上角的方框?qū)泳G色時(shí),標(biāo)明數(shù)據(jù)發(fā)送或接收得到正確連接,本地控件的數(shù)據(jù)就可實(shí)時(shí)地傳動(dòng)到異地控件中;當(dāng)方框呈紅色時(shí),表明數(shù)據(jù)與DataSocket Server連接失敗。

3.2 DataSocket功能函數(shù)

利用控件屬性直接連接實(shí)現(xiàn)汪凌數(shù)據(jù)傳輸居庸無(wú)需編程、簡(jiǎn)單易用地特點(diǎn),但缺點(diǎn)時(shí)數(shù)據(jù)不透明,在客戶端處理服務(wù)器傳入的數(shù)據(jù),就必須利用DataSocket函數(shù)庫(kù)提供的VI。DataSocket函數(shù)庫(kù)包含有ReadHE Write等功能節(jié)點(diǎn)。Read節(jié)點(diǎn)用于充服務(wù)器的數(shù)據(jù)公共區(qū)下載數(shù)據(jù);Write節(jié)點(diǎn)用于把數(shù)據(jù)寫(xiě)入服務(wù)器的數(shù)據(jù)公共區(qū)。DataSocket在讀數(shù)據(jù)文件時(shí),支持text,txt,wave和dsd等格式;在寫(xiě)數(shù)據(jù)文件時(shí),支持text和dsd等格式。

要寫(xiě)入數(shù)據(jù)公共區(qū)的數(shù)據(jù)類型必須與數(shù)據(jù)公共區(qū)設(shè)定的數(shù)據(jù)類型一致。當(dāng)有多個(gè)不同類型數(shù)據(jù)需要寫(xiě)入時(shí),可以多次發(fā)送和讀取或開(kāi)辟多個(gè)相應(yīng)類型的數(shù)據(jù)公共區(qū),也可以利用功能函數(shù)Variant把多個(gè)不同類型數(shù)據(jù)轉(zhuǎn)換變?yōu)閂ariant類型而寫(xiě)入一個(gè)數(shù)據(jù)公共區(qū)。當(dāng)有多個(gè)相同類型的數(shù)據(jù)先后寫(xiě)入數(shù)據(jù)公共區(qū)時(shí),后寫(xiě)入的數(shù)據(jù)會(huì)覆蓋前一個(gè)寫(xiě)入的數(shù)據(jù)。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專區(qū)

關(guān)閉