LabVIEWCompactRIO 開(kāi)發(fā)指南13 網(wǎng)絡(luò)發(fā)布的共享變量特性
LabVIEWCompactRIO?開(kāi)發(fā)指南13
網(wǎng)絡(luò)發(fā)布的共享變量特性
緩沖
啟用緩沖選項(xiàng)會(huì)使使用共享變量的編程變得更加復(fù)雜,因此在大多數(shù)應(yīng)用程序中禁用此選項(xiàng)。如果對(duì)啟用共享變量緩沖感興趣,請(qǐng)首先查看NI?Developer?Zone文檔Buffered?Network-Published?sharedVariables:?Components?and?Architecture??梢酝ㄟ^(guò)右鍵單擊共享變量節(jié)點(diǎn)并啟動(dòng)如圖4.6所示的共享變量屬性對(duì)話框來(lái)驗(yàn)證是否禁用了緩沖。默認(rèn)情況下,Use?Buffering是關(guān)閉的。

圖4.6?確保在使用共享變量進(jìn)行標(biāo)記通信時(shí)禁用緩沖
結(jié)論
網(wǎng)絡(luò)發(fā)布的共享變量非常靈活和可配置??梢詣?chuàng)建一個(gè)具有實(shí)時(shí)FIFO特征的變量,以在時(shí)間關(guān)鍵循環(huán)中包含網(wǎng)絡(luò)通信任務(wù)。當(dāng)這樣做時(shí),LabVIEW會(huì)自動(dòng)運(yùn)行一個(gè)后臺(tái)循環(huán),將網(wǎng)絡(luò)數(shù)據(jù)復(fù)制到實(shí)時(shí)FIFO中,如圖4.7所示。請(qǐng)記住,這可以防止在執(zhí)行網(wǎng)絡(luò)通信時(shí)在時(shí)間關(guān)鍵循環(huán)中出現(xiàn)抖動(dòng),但這并不意味著網(wǎng)絡(luò)通信本身是確定的。

圖4.7?共享變量啟用實(shí)時(shí)FIFO
當(dāng)您為網(wǎng)絡(luò)發(fā)布的共享變量啟用實(shí)時(shí)FIFO時(shí),將在實(shí)時(shí)目標(biāo)上運(yùn)行一個(gè)隱藏的后臺(tái)循環(huán),將網(wǎng)絡(luò)值復(fù)制到實(shí)時(shí)FIFO中。
這個(gè)功能可以簡(jiǎn)化程序,但它有一些限制:
■啟用實(shí)時(shí)FIFO時(shí),網(wǎng)絡(luò)發(fā)布的共享變量的某些功能不可用
■錯(cuò)誤管理更加困難,因?yàn)榫W(wǎng)絡(luò)錯(cuò)誤會(huì)傳播到各個(gè)節(jié)點(diǎn)
■將來(lái)修改程序以使用不同的網(wǎng)絡(luò)通信更加困難
對(duì)于既涉及網(wǎng)絡(luò)通信又涉及時(shí)間關(guān)鍵型循環(huán)的應(yīng)用程序,另一種選擇是使用網(wǎng)絡(luò)發(fā)布的常規(guī)共享變量進(jìn)行網(wǎng)絡(luò)通信,并為網(wǎng)絡(luò)通信任務(wù)維護(hù)單獨(dú)的循環(huán)??梢允褂玫?章:設(shè)計(jì)一個(gè)LabVIEW實(shí)時(shí)應(yīng)用中討論的進(jìn)程間通信機(jī)制在這兩個(gè)循環(huán)之間進(jìn)行通信。
生命周期
所有共享變量都是項(xiàng)目庫(kù)的一部分。默認(rèn)情況下,一旦運(yùn)行引用任何包含的變量的VI,共享變量引擎就會(huì)部署并發(fā)布整個(gè)共享變量庫(kù)。停止VI不會(huì)將該變量從網(wǎng)絡(luò)中移除。此外,如果重新啟動(dòng)承載共享變量的機(jī)器,那么一旦機(jī)器完成引導(dǎo),該變量就會(huì)再次在網(wǎng)絡(luò)上可用。如果需要從網(wǎng)絡(luò)中刪除共享變量,必須顯式地從Project?Explorer窗口或NI?Distributed?System?Manager中取消部署變量或庫(kù)。
SCADA功能
LabVIEW數(shù)據(jù)記錄和監(jiān)控(DSC)模塊在網(wǎng)絡(luò)發(fā)布的共享變量之上提供了一套額外的SCADA功能,包括以下內(nèi)容:
■歷史日志記錄到NI?Citadel數(shù)據(jù)庫(kù)
■報(bào)警和報(bào)警記錄
■擴(kuò)展
■基于用戶的安全
■創(chuàng)建自定義I/O服務(wù)器
網(wǎng)絡(luò)發(fā)布的掃描引擎I/O變量和別名
默認(rèn)情況下,I/O變量和I/O別名被發(fā)布到網(wǎng)絡(luò)上,以便使用NI-PSP協(xié)議進(jìn)行遠(yuǎn)程I/O監(jiān)控。它們由與掃描引擎關(guān)聯(lián)的正常優(yōu)先級(jí)線程以在控制器屬性下指定的速率發(fā)布??梢酝ㄟ^(guò)訪問(wèn)共享變量屬性對(duì)話框來(lái)配置I/O變量是否發(fā)布它們的狀態(tài)。

圖4.8?為I/O變量啟用網(wǎng)絡(luò)發(fā)布
發(fā)布的I/O變量針對(duì)I/O監(jiān)控進(jìn)行了優(yōu)化。它們并不適用于所有網(wǎng)絡(luò)發(fā)布的共享變量特性和所有LabVIEW設(shè)備。為了在LabVIEW應(yīng)用程序之間共享數(shù)據(jù)時(shí)獲得最大的靈活性,應(yīng)該使用網(wǎng)絡(luò)發(fā)布的共享變量。
?
需要說(shuō)明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開(kāi),其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問(wèn)題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開(kāi)發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無(wú)法上傳,可去公司網(wǎng)站搜索下載。