LabVIEWCompactRIO 開發(fā)指南13 網(wǎng)絡(luò)發(fā)布的共享變量
LabVIEWCompactRIO?開發(fā)指南13
網(wǎng)絡(luò)發(fā)布的共享變量
跨網(wǎng)絡(luò)共享標(biāo)簽的一種方法是網(wǎng)絡(luò)共享變量。術(shù)語網(wǎng)絡(luò)變量是指網(wǎng)絡(luò)上可以在程序、應(yīng)用程序、遠程計算機和硬件之間進行通信的軟件項。網(wǎng)絡(luò)共享變量非常適合1:N或N:1設(shè)置,因為它們有一個內(nèi)置的連接管理器來管理傳入的客戶機。對于其他機制,如CCC、STM和Network?Streams,必須創(chuàng)建自己的連接管理器。同時,需要了解性能和易用性之間的權(quán)衡。雖然網(wǎng)絡(luò)共享變量具有很高的易用性因素,但在吞吐量和延遲方面,它們的性能不如其他機制。

圖4.3?網(wǎng)絡(luò)共享變量是1:N或N:1配置下標(biāo)簽通信的理想選擇
三個重要的部分使網(wǎng)絡(luò)變量在LabVIEW中工作:網(wǎng)絡(luò)變量節(jié)點、共享變量引擎和NI發(fā)布-訂閱協(xié)議。
網(wǎng)絡(luò)可變節(jié)點
可以使用可變節(jié)點在框圖上執(zhí)行可變的讀寫操作。每個變量節(jié)點都被認為是對由共享變量引擎托管的網(wǎng)絡(luò)上的一個軟件項(實際的網(wǎng)絡(luò)變量)的引用。圖4.4顯示了一個給定的網(wǎng)絡(luò)變量,它的網(wǎng)絡(luò)路徑,以及它在項目樹中各自的項。

圖4.4?網(wǎng)絡(luò)可變節(jié)點及其工程項目
共享變量引擎
共享變量引擎是一個承載通過以太網(wǎng)發(fā)布的數(shù)據(jù)的軟件組件。該引擎可以在實時目標(biāo)或Windows?PC上運行。在Windows上,共享變量引擎是在系統(tǒng)啟動時啟動的服務(wù)。在實時目標(biāo)上,它是一個可安裝的啟動組件,在系統(tǒng)啟動時加載。
要使用網(wǎng)絡(luò)變量,共享變量引擎必須至少在網(wǎng)絡(luò)上的一個系統(tǒng)上運行。網(wǎng)絡(luò)上的任何LabVIEW設(shè)備都可以讀寫共享變量引擎發(fā)布的網(wǎng)絡(luò)變量。圖4.5顯示了一個分布式系統(tǒng)的示例,其中共享變量引擎在桌面機器上運行,多個實時控制器通過網(wǎng)絡(luò)變量交換數(shù)據(jù)。

圖4.5?使用網(wǎng)絡(luò)發(fā)布共享變量進行通信的分布式系統(tǒng)
發(fā)布-訂閱協(xié)議(PSP)
共享變量引擎使用NI發(fā)布-訂閱協(xié)議(NI-?PSP)進行數(shù)據(jù)通信。NI-PSP是一種使用TCP構(gòu)建的網(wǎng)絡(luò)協(xié)議,該協(xié)議針對以太網(wǎng)絡(luò)中許多數(shù)據(jù)元素的可靠通信進行了優(yōu)化。為了最大限度地減少以太網(wǎng)帶寬的使用,每個客戶機訂閱單獨的數(shù)據(jù)元素。然后,該協(xié)議實現(xiàn)事件驅(qū)動的通信機制,僅在數(shù)據(jù)更改時將數(shù)據(jù)傳輸?shù)接嗛喌目蛻舳?。該協(xié)議還將多個消息合并到一個數(shù)據(jù)包中,以最小化以太網(wǎng)開銷。此外,它還提供心跳來檢測丟失的連接,并在設(shè)備添加到網(wǎng)絡(luò)中時自動重新連接。NI-PSP組網(wǎng)協(xié)議使用PSP?URLs在網(wǎng)絡(luò)中傳輸數(shù)據(jù)。
?