請問各位高手:
小弟寫了一個小專案,測試shared variable是否能透過區域網路,在兩台電腦之間傳遞數據。
SV我已經設為network-published
還寫了write.vi和read.vi兩個VI。
write.vi是在迴圈中製造模擬數值資料。
read.vi則是不斷的用迴圈讀取資料。
當我在同一台A電腦執行這兩個VI時,可以正常運作,
但是若將read.vi複製到另一台B電腦執行時,卻讀不到shared variable,且出現下面的錯誤訊息!
請問我要怎麼修改程式,讓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。
請問到底是哪邊有問題呢?
謝謝!
已解決! 轉到解決方案。
在 12-09-2009 09:02 PM
Charles0820您好:
我已經試過這個knowledge base的方法,
奇怪的是,當A電腦發布shared variable之後,在B電腦上用Browse,仍舊找不到A電腦的IP或名稱。
我開始懷疑是XP防火牆造成的...
(因為我雖然可以在A電腦透過"遠端桌面"去操控B電腦,但卻無法ping到B電腦的IP)
請問您有遇過這樣的狀況嗎? 要如何調整Xp的防火牆? 使其能接受某特定IP的資訊?
剛剛我把兩台電腦的XP防火牆關閉,就抓到了!
沒想到shared variable engine無法穿透XP防火牆阿...
請問有人知道他所使用的port是哪一個嗎?
我想,設定防火牆的"例外清單"應該還是比較正統的作法吧?
在 12-10-2009 03:42 AM
謝謝您!
我延伸查詢找到這個網頁,
http://digital.ni.com/public.nsf/websearch/0D7B86F4B4D19A5E86256F9A006EECB1?OpenDocument
經過我嘗試後,在LabVIEW2009和winXP的環境下,只要將以下三個執行檔加入例外清單,
即使防火牆開著,也可以抓到shared variable了!
目前的問題算是解決囉! 再次感謝!