NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

如何使用shared variable在兩台電腦之間傳值?

已解決!
前往解決方案

請問各位高手:

 

小弟寫了一個小專案,測試shared variable是否能透過區域網路,在兩台電腦之間傳遞數據。

SV_PROJ.JPG

 

 

SV我已經設為network-published

SV.jpg 

 

還寫了write.vi和read.vi兩個VI。

 

write.vi是在迴圈中製造模擬數值資料。

write.png

 

 

read.vi則是不斷的用迴圈讀取資料。

 

read.png

 

當我在同一台A電腦執行這兩個VI時,可以正常運作,

 

但是若將read.vi複製到另一台B電腦執行時,卻讀不到shared variable,且出現下面的錯誤訊息!

 

ERROR.JPG

 

請問我要怎麼修改程式,讓read這個VI在B電腦執行時,可以讀到在A電腦執行的write.vi所送出的值呢?

 

 

我已經看過底下兩個網頁了, 

http://zone.ni.com/reference/en-XX/help/371361D-01/lvconcepts/ni_psp/

http://zone.ni.com/devzone/cda/tut/p/id/4679

 

我知道SVE會用到NI-PSP,它已經把TCP的架構寫在裡面了,所以可以讓shared variable的使用很簡便。

 

只是我還是不太確定,實際上運用時的步驟是如何?

 

我也參考過LabVIEW內建的shared variable Client-Server範例了,

 

但我把client的vi 複製到B電腦執行時,也是找不到A電腦發布的shared variable。

 

 

我也嘗試過在B電腦重新寫一個VI,然後在indicator上按右鍵->Properties->Data Binding,但還是找不到別台電腦的SV。

 

data bind.JPG

 

請問到底是哪邊有問題呢?

 

 

謝謝!

 

 

0 積分
1 條訊息(共 6 條)
8,938 檢視
0 積分
2 條訊息(共 6 條)
8,922 檢視

Charles0820您好:

 

我已經試過這個knowledge base的方法,

 

奇怪的是,當A電腦發布shared variable之後,在B電腦上用Browse,仍舊找不到A電腦的IP或名稱。

 

我開始懷疑是XP防火牆造成的...

 

(因為我雖然可以在A電腦透過"遠端桌面"去操控B電腦,但卻無法ping到B電腦的IP)

 

 

請問您有遇過這樣的狀況嗎? 要如何調整Xp的防火牆? 使其能接受某特定IP的資訊?

 

 

 

0 積分
3 條訊息(共 6 條)
8,913 檢視

剛剛我把兩台電腦的XP防火牆關閉,就抓到了!

 

 

沒想到shared variable engine無法穿透XP防火牆阿...

 

 

請問有人知道他所使用的port是哪一個嗎?

 

 

我想,設定防火牆的"例外清單"應該還是比較正統的作法吧?

0 積分
4 條訊息(共 6 條)
8,911 檢視

謝謝您!

 

我延伸查詢找到這個網頁, 

 

http://digital.ni.com/public.nsf/websearch/0D7B86F4B4D19A5E86256F9A006EECB1?OpenDocument

 

 

經過我嘗試後,在LabVIEW2009和winXP的環境下,只要將以下三個執行檔加入例外清單,

 

即使防火牆開著,也可以抓到shared variable了!

 

  • C:\Windows\system32\lkads.exe
  • C:\Windows\system32\lktsrv.exe
  • C:\Program Files\National Instruments\Shared\Tagger\tagsrv.exe
  •  

    目前的問題算是解決囉! 再次感謝!

    0 積分
    6 條訊息(共 6 條)
    8,895 檢視