Strona 1 z 1

subvi dzialajacy w petli, jak nim sterowac?

: 06 cze 2005 11:10
autor: ocp_pl
Na poczatek chcialbym sie przywitac z forumowymi wyjadaczami.
Mam na imie Michal, w LabView pracuje juz od dluzszego czasu. Przez dwa lata programowalem, teraz od dwoch lat pracuje przy gotowym, bardzo kompleksowym programie do ktorego od czasu do czasu nalezy wprowadzic zmiany.

Wlasnie stanalem przed malym problemem.
Musze napisac bardzo prosty vi, ktore bedziy sterowal innym vi.

Wyglada to tak, ze sa dwa vi, jeden "sterowany" ma pobrac dane od "sterujacego", wygenerowac wynik i wyslac go rowniez do sterujacego.

Wszystko byloby ok, gdyby nie to ze sterowany vi pracuje w petli i odswieza wyniki na biezaco, co powinno byc oczywiscie widoczne na panelu "sterujacego".

I tutaj zaczyna sie moj klopot. Poniewaz dane ze sterujacego zostaja pobrane, przeslane do sterowanego. Jednak sterowany zaczyna pracowac w swojej petli i nie chce oddawac danych do sterujacego.

Bardzo prosto wyjasnia przyklad z zalacznikow.

Macie moze pomysl jak wybrnac z tej sytuacji? Niestety sterowany vi musi pracowac bez przerwy.
LabView 5.1

Z gory dziekuje za wszelkie sugestie

EDIT:
Niestety petli nie da sie usunac. Chodzi tez o to zeby jak najmniej grzebac w sterowanym programie.
Problem nie jest tak trywialny jak w ponizszym przykladzie :(

pozdrawiam
Michal

Re: subvi dzialajacy w petli, jak nim sterowac?

: 06 cze 2005 13:19
autor: rumcajs
Do tego celu nie nadaje się zwykłe wywołanie sub'vi.
Aby móc odpalać "sterowanego" za pomocą "sterującego" i później podglądać czy modyfikować jakieś dane on-line należy użyć technologii nazwanej Server VI lub ActiveX Server.
Polecam lekturę Helpa i Examples w Labview o tematyce Servera VI.
Jak wrócę do domciu do podeślę jakiś przykładzik.
Gdzieś na forum widziałem posty na temat uruchamiania vi z innego vi.
Ważne jest też czy obie aplikacje (serwer i klient) pracują na tym samym PC czy też w sieci i czy w środowisku Developerskim czy też jako .exe pod Runtimem.
Rumcajs.

Re: subvi dzialajacy w petli, jak nim sterowac?

: 06 cze 2005 13:31
autor: ocp_pl
Dziala to wszystko na jednym kompie.

Steruje "mala szafa" przez GPIB. Ale to akurat nie ma znaczenia...

Chodzi mi o to ze jest duza aplikacja, ktora dziala, w ktorej nie moge grzebac, poniewaz wykorzystywana jest przez innych uzytkownikow.
Jednak musze wykonac na "sterowanej" pewna sekwencje...

pozdrawiam
Michal

Re: subvi dzialajacy w petli, jak nim sterowac?

: 06 cze 2005 14:13
autor: Mikrobi
Nasuwa mi sie LVglobal, powinno pracować w 5.1. Przyklad jest taki
diagram:
Obrazek


Obrazek
panel jest oczywiście przykładowy:
Obrazek
Kilka uwag: petla w LVglobal.vi wykonuje się tylko raz, w zalezności od opcji Action
(a są dwie: Set i Get)albo odczytuje albo zapisuje do elementu Shift Register.
Zatem w jednym VI'ju możesz wpisywać dane a w drugim odczytywać, w stawiając w obu miejscach tego samego VI'ja.
Obrazek
w jednym przypadku wprowadzasz dane (Akcja Get), w drugim odczytujesz (Akcja Set)
Takie Wireless-LabVIEW
:lol:

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 06:11
autor: rumcajs
Jest prosty przykładzik.
Wpisz w pole Path aktualną scieżkę do "sterowanego" wg. wzorca.
Uruchom "sterowanego" a następnie "sterujacego" i enjoy playing.
W ten sposób nie ingerujesz w żaden sposób w istniejącą już aplikację.
Jeżeli masz zamiar zmieniać wartości kontrolek w istniejącej już aplikacji wymagane jest aby na początku w "sterującym" odczytać ich aktualny stan, tak aby nie zakłócić jej przebiegu.
Rumcajs

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 06:46
autor: ocp_pl
Wielkie dzieki!
Wyglada na to ze o cos takiego mi chodzilo!

@Mikrobi
Chyba jednak LV5.1 nie ma LVglobal, nie znalazlem nic w helpie.

Dzieki raz jeszcze
Michal

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 08:58
autor: Mikrobi
ocp_pl pisze: @Mikrobi
Chyba jednak LV5.1 nie ma LVglobal, nie znalazlem nic w helpie.
LVglobal to metoda wypracowana na podstawie sposobu pracy pętli WHILE,
bardziej trik niż konkretna struktura programowa, ale powinno to pracować w LV5.1

...jak się uprę to zainstaluję znowu i 5.1 żeby sprawdzić, mam komputer z 6i, 6.1, 7.0, 7.1 do testów. :D

Co do samej struktury LVglobal:
Pozwala na przenoszenie danych między subVIjami w obrębie nadrzędnej aplikacji. Korzysta z podstawowej własności pętli WHILE:
- nie inicjalizowany Shift Register w subVI'ju LVglobal pamięta poprzednie wywołanie VI'a jeśli tylko nadal jest w pamięci operacyjnej (nie musi byc aktualnie uruchmiony),
- zatem jeśli w subVI'ju_1 do Shift Registera LVglobal wewnątrz pętli WHILE jest coś wpisane (akcja Set)
- a nastepnie w subVI'ju_2 następuje odczytanie SR z LVglobal - to odczytana dana ma wartość jaka została wpisana do LVglobal w subVI'ju_1

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 09:10
autor: ocp_pl
OK dzieki za wyjasnienie.
Poradzilem sobie sposobem podanym przez Rumcajsa.
Szybko i bezbolesnie :D
Ale Towj sposob tez przetestuje. Milego dnia!

pozdrawiam serdecznie
Michal

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 12:07
autor: Mikrobi
ocp_pl pisze:OK dzieki za wyjasnienie. Poradzilem sobie sposobem podanym przez Rumcajsa. Szybko i bezbolesnie :D
Fakt, sposób bardzo dobry i w dodatku "natywny" czyli prosto z konwencji LabVIEW.
...to biorę urlop, co ty na to Rumcajs...? ;)

Re: subvi dzialajacy w petli, jak nim sterowac?

: 07 cze 2005 19:57
autor: rumcajs
Ja bym poczekał na lepszą pogodę bo ostatnio to trochę zimno...
Chyba, że na Karaiby. :)
Rumcajs.