Event po wywolaniu danego subVI'a

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
kupsztal
Posty: 23
Rejestracja: 07 gru 2005 00:00
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Cambridge, UK
Kontakt:

Event po wywolaniu danego subVI'a

Post autor: kupsztal »

Czy jest jakis sposob na uruchomienie powiedzmy event'a w przypadku gdy zostal uruchomiony/wywolany dany subVi ?

Lub czy jest jakikolwiek sposob na zasygnalizowanie ze dany subVI zostal uruchomiony/wywolany ? (najlepiej bez ciaglego monitorowania)
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: bogdani »

Witaj

Możesz spróbować po uruchomieniu VIja wygenerować zdarzenie generowane programowo przez użytkownika.

Krótki opis można znaleźć m.in. tutaj: Detekcja zdarzeń w LabVIEW oraz User Event.

bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
kupsztal
Posty: 23
Rejestracja: 07 gru 2005 00:00
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Cambridge, UK
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: kupsztal »

Dzieki za odpowiedz.

OK. A jak to zrobic bez modyfikowania subVI'a ?

Czy majac tylko referencje do niego jestem w stanie to zrobic ? Moglbym co prawda rozwiazac ten problem poprzez np.sprawdzanie w invoke node czy dany 'vi jest uruchomiony (o ile zawiera on taka informacje)
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: bogdani »

Jeśli z referencją danego VIja użyjesz Property Node i z właściwości wybierzesz Execution >> State w wyniku otrzymasz cztery dostępne stany danego VIja: Bad, Idle, Run top level, Running.
Myślę że to wystarczy do oceny, czy VI działa.
bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
kupsztal
Posty: 23
Rejestracja: 07 gru 2005 00:00
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Cambridge, UK
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: kupsztal »

A jednak wciaz to nie to. Po uruchomieniu programu, "VI Property Node >> Execution >> State" zwraca zawsze "Running", poniewaz subVI ktorego chce analizowac jest czescia programu ktory pracuje (running).
W efekcie w ten sposob nie mozna stwierdzic czy dany VI zostal wywolany. Hmm....
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Event po wywolaniu danego subVI'a

Post autor: Mikrobi »

Proponuję przynajmniej pokazanie diagramu.
Ewentualnie zamieszczenie kodu.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
kupsztal
Posty: 23
Rejestracja: 07 gru 2005 00:00
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Cambridge, UK
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: kupsztal »

Mikrobi pisze:Proponuję przynajmniej pokazanie diagramu.
Ewentualnie zamieszczenie kodu.
Zalaczam screenshot fragmentu programu ktory chce zeby byl odpowiedzialny za nie inwazyjna (bez modyfikacji subVi'a) metode odczytywania wartosci danej zmiennej. W tym przypadku ma to byc "tx frame (string)".
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Event po wywolaniu danego subVI'a

Post autor: Mikrobi »

Możesz jedynie czytać wartość konkretnej kontrolki na panelu subVIja.
Nie jest niestety możliwe z kolei zarejestrowanie zdarzenia (UserEvent) pochodzącego od panelu nie otwartego VIja.
Poniżej przykład jaki testowałem:
Obrazek
Może ktoś ma jakiś pomysł..?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
kupsztal
Posty: 23
Rejestracja: 07 gru 2005 00:00
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Cambridge, UK
Kontakt:

Re: Event po wywolaniu danego subVI'a

Post autor: kupsztal »

Dzieki za sugestie. Popraw mnie, jesli sie myle, ale w Twoim przykladzie sprawdzasz czy dana zmienna ulegla zmianie (value change), czy tak ?

W przypadku mojego problemu zmienna moze byc taka sama. Dlatego uznalem ze dobrym pomyslem byoby analizowanie czy dany VI zostal wywolany.

Na jakiej zasadzie dziala Profile VIs ( Menu Tools >> Advanced >> Profile VIs ). Znajduje sie tam kolumna #Runs. Przypuszczam, ze Profile VIs zostal napisany wlasnie w LabVIEW, wiec niewykluczone ze jest metoda sprawdzania ile razy zostal wywolany dany VI.


Mikrobi pisze:Możesz jedynie czytać wartość konkretnej kontrolki na panelu subVIja.
Nie jest niestety możliwe z kolei zarejestrowanie zdarzenia (UserEvent) pochodzącego od panelu nie otwartego VIja.

Poniżej przykład jaki testowałem:

Może ktoś ma jakiś pomysł..?
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Event po wywolaniu danego subVI'a

Post autor: wino »

co chcesz uzyskać dokładnie?
po co chcesz sprawdzać czy VI jest "uruchomiony"?
ODPOWIEDZ