subvi dzialajacy w petli, jak nim sterowac?
subvi dzialajacy w petli, jak nim sterowac?
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
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?
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.
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?
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
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?
Nasuwa mi sie LVglobal, powinno pracować w 5.1. Przyklad jest taki
diagram:
panel jest oczywiście przykładowy:
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.
w jednym przypadku wprowadzasz dane (Akcja Get), w drugim odczytujesz (Akcja Set)
Takie Wireless-LabVIEW
:lol:
diagram:
panel jest oczywiście przykładowy:
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.
w jednym przypadku wprowadzasz dane (Akcja Get), w drugim odczytujesz (Akcja Set)
Takie Wireless-LabVIEW
:lol:
Re: subvi dzialajacy w petli, jak nim sterowac?
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
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?
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
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?
LVglobal to metoda wypracowana na podstawie sposobu pracy pętli WHILE,ocp_pl pisze: @Mikrobi
Chyba jednak LV5.1 nie ma LVglobal, nie znalazlem nic w helpie.
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.
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?
OK dzieki za wyjasnienie.
Poradzilem sobie sposobem podanym przez Rumcajsa.
Szybko i bezbolesnie
Ale Towj sposob tez przetestuje. Milego dnia!
pozdrawiam serdecznie
Michal
Poradzilem sobie sposobem podanym przez Rumcajsa.
Szybko i bezbolesnie
Ale Towj sposob tez przetestuje. Milego dnia!
pozdrawiam serdecznie
Michal
Re: subvi dzialajacy w petli, jak nim sterowac?
Fakt, sposób bardzo dobry i w dodatku "natywny" czyli prosto z konwencji LabVIEW.ocp_pl pisze:OK dzieki za wyjasnienie. Poradzilem sobie sposobem podanym przez Rumcajsa. Szybko i bezbolesnie
...to biorę urlop, co ty na to Rumcajs...? ;)
Re: subvi dzialajacy w petli, jak nim sterowac?
Ja bym poczekał na lepszą pogodę bo ostatnio to trochę zimno...
Chyba, że na Karaiby.
Rumcajs.
Chyba, że na Karaiby.
Rumcajs.