Strona 1 z 1

Tcp Ip Data Socket Serwer Klient

: 12 paź 2004 13:14
autor: labview
W jaki sposób można sterować parametrami generatora (Basic function generator) za pomocą klienta uruchomionego na innym komputerze. Interesowałaby mnie zmiana takich parametrów jak częstotliwość, napięcie, offset. Zbudowałem przykładowy serwer i klient oparty na budowie data socket read i write. Korzystając z klienta próbowałem sterować typem generowanego sygnału, częstotliwością sygnału i napięciem (offsetu narazie nie ustawiłem). Jednak mój vi za bardzo nie działa tak jak trzeba. Po wyborze "Sinus" w Choose the type of Wave zawsze generowany jest kwadrat. Czasami generowany jest sinus ale o wiele więcej razy generowany jest kwadrat i występuje "mruganie" wykresu. Dodatkowo program zachowuje się tak jakby wczytywał ostatnio wprowadzoną wartość z klienta (DataSocket02.jpg-złe dane są wprowadzane do generatora powinno być 2 na częstotliwość i 3 na napięcie) i podaje tą wartość zarówno na częstotliwość i napięcie. Dlaczego serwer nie rozpoznaje gdzie ma wprowadzać dane z klienta? Na grafice DataSocket01.jpg widać że program serwera wczytał dane tak jak powinien (widać jakie wartości zostały wprowadzone na częstotliwość i napięcie generatora) - jednak w kolejnych interakcjach program się pogubił. Czy zna ktoś sposób rozwiązania tego problemu ? Przykład tego vi-a zamieściłem na stronie http://republika.pl/labview/18.htm wraz z fotkami tego przykładu.

http://republika.pl/labview/18.htm

: 12 paź 2004 15:49
autor: Mikrobi
Po pierwsze mozna nieco uprościć generowanie sygnału do diagramu o nastepującej postaci [img]http://layer.uci.agh.edu.pl/~mikrobi/la ... riterd.png[/img]
Element Current VI's Path przyda się do pobrania dokładnej lokalizacji VI'a.
Odczyt z wykorzystaniem VIServera będzie wygladał nastepująco: [img]http://layer.uci.agh.edu.pl/~mikrobi/la ... eaderd.png[/img]
Jak widać jest to o wiele prostsze niż korzystanie z DataSocket. Istotna jest znajomość nazwy kontrolki której wartośc chcemy odczytać i format jej danych. W zasadzie analogicznie postepuje się z wpisywaniem wartości jednak wtedy korzysta się z węzła właściwości (Property Node): Value lub Value(Signaling).

: 12 paź 2004 19:07
autor: labview
Dzięki Mikrobi za dobre rady. Zbudowałem ten vi tak jak przedstawiłeś na rysunkach i uruchomiłem na początku serwer a potem klienta - testowałem obydwa vi na tym samym komputerze jednak klient na wykresie nic nie generował tylko wyświetla mi się błąd w okienku error out Open Application Reference in serv_b_klient01.vi code 63 (w vi klienta Open VI Reference zamieściłem ścieżkę do pliku vi serwera u mnie była to ścieżka C:przykladyserv_a.vi).

Mikrobi jeżeli możesz to podeślij mi twoje vi z serwerem i klientem na moją pocztę labview@op.pl, może ja źle skonfigurowałem okienko Invoke Node chociaż wszystkie połączenia są takie jak na twoim przykładzie.

: 12 paź 2004 19:21
autor: Mikrobi
[quote="labview"]Dzięki Mikrobi za dobre rady. Zbudowałem ten vi tak jak przedstawiłeś na rysunkach i uruchomiłem na początku serwer a potem klienta - testowałem obydwa vi na tym samym komputerze jednak klient na wykresie nic nie generował tylko wyświetla mi się błąd w okienku error out Open Application Reference in serv_b_klient01.vi code 63 (w vi klienta Open VI Reference zamieściłem ścieżkę do pliku vi serwera u mnie była to ścieżka C:przykladyserv_a.vi). [/quote]
Bład 63 pojawia sie jeśli nie jest uruchomiony (ew. skonfigurowany) VIServer.
:arrow:
1. Tools>>Options>>VIServer:Configurations zaznaczyć checkbox TCP/IP 2. Tools>>Options>>VIServer:TCP/IP Access trzeba wpisać localhost lub 127.0.0.1 (co na jedno wychodzi) i zaznaczyć "Allow Access" - pojawi się na liście "TCP/IP Access list" z zielonym znacznikiem 3. Tools>>Options>>VIServer:Exported VIs sprawdzić czy jest gwiazdka i zaznaczone pole "Allow Access" Lub wpisać nazwę VIa do którego ma być zapewniony dostęp przez VIServer
W przypadku pracy zdalnej na liście VIServer:TCP/IP Access trzeba wpisać IP komputera współpracującego i upewnić się że właczony jest tryb dozwolonych połączeń "Allow Access" a nie "Deny Access".

: 12 paź 2004 22:45
autor: labview
Dzięki Mikrobi - rzeczywiście wszystko działa idealnie tak jak sobie tego życzyłem, jeszcze raz dzięki za pomoc. Miałbym jeszcze jedno pytanie - zbudowałem te przykłady na LabView 7 jednak w wersji 6i napotkałem problem z Invoke Node - nie mogłem w tej formule wybrać Get Control Value [Variant] jeżeli Mikrobi znasz na to sposób to napisz. Dla zainteresowanych tym tematem miałbym na uwadze aby nie zapomnieli zmienić nazwy "Waveform Graph na wykresie serwera na Graph". Dla zainteresowanych zamieściłem przykład serwera i klienta w wersji LV7 na stronie http://republika.pl/labview/18.htm program umożliwia zmianę parametrów generowanego sygnału (częstotliwości i amplitudy) z poziomu klienta. Jeszcze raz wielkie dzięki Mikrobi.

: 13 paź 2004 09:42
autor: Mikrobi
[quote="labview"]zbudowałem te przykłady na LabView 7 jednak w wersji 6i napotkałem problem z Invoke Node - nie mogłem w tej formule wybrać Get Control Value [Variant] .[/quote]
To dlatego, że warianty weszły OIDP w LV7. Wcześniej trzeba było operować na Flatten i Unflatten String, przyklad jest poniżej:
[img]http://layer.uci.agh.edu.pl/~mikrobi/la ... DER_6i.png[/img]

Tcp Ip Data Socket Serwer Klient

: 24 sty 2011 15:24
autor: Riccio86
Witam Panów!

Jestem tu nowy i potrzebuję trochę pomocy, a widze ze Panowie są doświadczeni.

Chciałbym stworzyć .vi, na którego panelu czołowym znajdzie się przycisk "uruchom Serwer" . Po jego kliknięciu uruchomi się data socket serwer i nawiązane zostanie połączenie typu write. o ile umiem oddzielnie włączyć (ręcznie ) data socket serwer i z oddzielnych .vi'ó sie połączyć, o tyle bardzo proszę o pomoc w wykonaniu takiego programu, który po kliknięciu jednym przyciskiem włączy serwer.(on jest w oddzielnym pliku .exe)
Macie moze jakieś pomysły jak to wykonać?