Wymiana danych pomiędzy dwona PC.

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
krzysiek.vcda
Posty: 5
Rejestracja: 29 lis 2010 03:06
Wersja środowiska: LabVIEW 2010

Wymiana danych pomiędzy dwona PC.

Post autor: krzysiek.vcda »

Witam serdecznie,

od razu na wstępie chciałbym zaznaczyć, że jestem nowicjuszem jeżeli chodzi o LabVIEW jednakże szybko się uczę, więc proszę o wyrozumiałość w miarę możliwości. Do wykonania mam następujące zadanie, mamy dwa komputery jeden na hali, gdzie jest podpięty do urządzeń pomiarowych, a drugi PC stoi w "pokoju kontrolnym", wszystko spięte razem siecią LAN. Zadanie polega teraz na odczytaniu danych pomiarowych z urządzeń oraz poprzez sieć przesłanie ich do drugiego komputera, gdzie zostaną zwizualizowane na panelu sterowniczym. Teraz Panowie moja wielka do Was prośba jak ugryźć w/w temat? Tj. jakich komponentów szukać, gdzie szukać i jak podejść do sprawy? Będę wdzięczny za wszelkie sample/informacje/wskazówki itd.

Pozdrawiam serdecznie i z góry dziękuję za każdą wskazówkę,
Krzysiek
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Wymiana danych pomiędzy dwona PC.

Post autor: bogdani »

Jest kilka opcji. Jeśli chcesz mieć widok taki sam na komputerze pomiarowym to możesz użyć tools >> Web Publishing Tool, żeby zrobić zdalny panel dostępny przez www - kilka kliknięć kreatora i gotowe.

Druga opcja to w aplikacji pomiarowej zapisujesz pomiary do Shared Variable - Network Published, i wtedy możesz spokojnie odebrać je w innej aplikacji.
Korzystasz z tego jak ze zwykłej zmiennej. Czyli w drugiej aplikacji na drugim PC, po prostu odczytujesz te same zmienne (warstwa sieciowa ciebie nie interesuje - załatwia to środowisko).

Masz słowa kluczowe, bez problemu znajdziesz do tego przykłady i opisy na ni.com.

Możesz podać ile danych będziesz chciał przesłać i w jakim czasie - tak kontrolnie czy podane mechanizmy się do tego nadają.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
krzysiek.vcda
Posty: 5
Rejestracja: 29 lis 2010 03:06
Wersja środowiska: LabVIEW 2010

Re: Wymiana danych pomiędzy dwona PC.

Post autor: krzysiek.vcda »

@bogdani

Dziękuję bardzo za odpowiedź. Dane jakie będą wymieniane wymienię na poniższym schemacie.

Dane wysyłane z PC Kontrolującego do PC wykonującego pomiary:
1. Dane typu: wykonaj pomiar, ustaw przyrząd z innymi parametrami itd.

Dane wysyłane z PC wykonującego pomiary do PC Kontrolującego:
1. Odczytane dane z przyrządów pomiarowych, ewentualne błędy jeżeli wystąpiły problemy z wykonaniem pomiaru.

Pomiary będą wykonywane z okresem ok 3-4s jak wynika z moich dotychczasowych obliczeń. Dane, które będą wysyłane to: 10xpomiar temperatury, oraz ok 10xpomiar napięcia + 5xpomiar prądu + pomiar kanałów I/0.

Czy opcja ze zmiennymi sieciowymi tutaj się nada?

Pozdrawiam serdecznie i dziękuję za odpowiedzi,
Krzysiek
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Wymiana danych pomiędzy dwona PC.

Post autor: bogdani »

Oczywiście że się nada.
Zbuduj sobie cluster z typami danych które potrzebujesz, czyli:
1 tablica DBL temperatura
1 tablica DBL napiecie
1 tablica DBL prad
1 tablica Boolean kanały I/O

Ten klaster zapisz jako Type Def., następnie z niego utwórz zmienną sieciową i już możesz przesyłać dane miedzy aplikacjami.

Co do sterowania to utwórz sobie Type Def z kontrolką typu Enum, która zawierać będzie pozycje sterowania. Potem zrób z tego zmienną sieciową, tak jak poprzednio typu Shared Variable.

Specjalnie w niektórych miejscach użyłem oryginalnego słownictwa, abyś mógł sobie poszukać jak to zrobić lub znaleźć przykłady takich rozwiązań - nie może być za łatwo :-)
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
krzysiek.vcda
Posty: 5
Rejestracja: 29 lis 2010 03:06
Wersja środowiska: LabVIEW 2010

Wymiana danych pomiędzy dwona PC.

Post autor: krzysiek.vcda »

Mógłbym prosić o jakieś szczegóły dotyczące używania Shared Variables oraz Network Shared Variables? Zdołałem się dowiedzieć najpierw, że takie coś istnieje, jednak teraz mam problem ze znalezieniem przykładów :-/

Pozdrawiam Krzysiek
Awatar użytkownika
Labqu
Posty: 71
Rejestracja: 19 mar 2010 23:33
Wersja środowiska: LabVIEW 2010
Lokalizacja: Gliwice

Re: Wymiana danych pomiędzy dwona PC.

Post autor: Labqu »

You don't need a reason to help people.
krzysiek.vcda
Posty: 5
Rejestracja: 29 lis 2010 03:06
Wersja środowiska: LabVIEW 2010

Re: Wymiana danych pomiędzy dwona PC.

Post autor: krzysiek.vcda »

Witam,

udało mi się uruchomić network shared variable pomiędzy dwoma VI na jednym komputerze. Moje pytanie brzmi teraz czy jeżeli uruchomię te same dwa VI na różnych komputerach w sieci lokalnej to czy one dalej będą się ze sobą komunikowały?

Pozdrawiam,
Krzysiek
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Wymiana danych pomiędzy dwona PC.

Post autor: bogdani »

Jak uruchomisz te same VIje, to musisz pamiętać, że jak jeden nadaje, to drugi powinien to odebrać, bo inaczej to nie ma sensu.
Może pokaż co zrobiłeś.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
krzysiek.vcda
Posty: 5
Rejestracja: 29 lis 2010 03:06
Wersja środowiska: LabVIEW 2010

Re: Wymiana danych pomiędzy dwona PC.

Post autor: krzysiek.vcda »

@bogdani

W załączniku przesyłam projekt. Znajdują się z nim trzy shared network variable. Gdy uruchomię Klient.vi, oraz Serwer.vi na tym samym komputerze to oba VIje się komunikują. Jednak gdy jeden VI zostanie uruchomiony na jednym komputerze, a drugi VI na drugim komputerze to wtedy one się ze sobą już nie komunikują. W czym tkwi problem? Czy VIje się nie "widzą"?


Pozdrawiam,
Krzysiek
Załączniki
OSP_Projekt.rar
(15.26 KiB) Pobrany 290 razy
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Wymiana danych pomiędzy dwona PC.

Post autor: bogdani »

Już tłumaczę, problem tkwi, że w projekcie masz bibliotekę ze zmiennymi (z uruchomionym serwerem zmiennych) na komputerze lokalnym.
Jeśli obydwa VIje pracują na tym samym komputerze sprawa jest oczywista, każdy z nich komunikuje się z właściwym serwerem zmiennych.
Jeśli VI, który np. czyta jest na innym komputerze, to program musi się dowiedzieć gdzie są dane, czyli jak nazywa się zmienna i gdzie jest serwer z tą zmienna.

Najprościej ci to wytłumaczę podając linki do przykładu (liczyłem że sam znajdziesz):How to Use Shared Variables and DataSockets to Pass Data Between Two Networked PCs

Pomocne w zrozumieniu tematu i rozszerzeniu wiedzy będą również:
How Do I Read/Write to a Shared Variable with the DataSocket API?
Sharing Live Data Programmatically
Distributed Applications in LabVIEW
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
ODPOWIEDZ