subvi dzialajacy w petli, jak nim sterowac?

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
ocp_pl
Posty: 9
Rejestracja: 06 cze 2005 00:00
Lokalizacja: Katowice

subvi dzialajacy w petli, jak nim sterowac?

Post 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
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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.
Awatar użytkownika
ocp_pl
Posty: 9
Rejestracja: 06 cze 2005 00:00
Lokalizacja: Katowice

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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:
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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
Awatar użytkownika
ocp_pl
Posty: 9
Rejestracja: 06 cze 2005 00:00
Lokalizacja: Katowice

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
ocp_pl
Posty: 9
Rejestracja: 06 cze 2005 00:00
Lokalizacja: Katowice

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: subvi dzialajacy w petli, jak nim sterowac?

Post 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...? ;)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: subvi dzialajacy w petli, jak nim sterowac?

Post autor: rumcajs »

Ja bym poczekał na lepszą pogodę bo ostatnio to trochę zimno...
Chyba, że na Karaiby. :)
Rumcajs.
ODPOWIEDZ