Strona 1 z 1
Event po wywolaniu danego subVI'a
: 04 kwie 2007 13:39
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)
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 14:49
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
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 14:57
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)
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 15:36
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
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 16:46
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....
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 16:59
autor: Mikrobi
Proponuję przynajmniej pokazanie diagramu.
Ewentualnie zamieszczenie kodu.
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 17:07
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)".
Re: Event po wywolaniu danego subVI'a
: 04 kwie 2007 17:27
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:
Może ktoś ma jakiś pomysł..?
Re: Event po wywolaniu danego subVI'a
: 05 kwie 2007 09:01
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ł..?
Re: Event po wywolaniu danego subVI'a
: 05 kwie 2007 09:45
autor: wino
co chcesz uzyskać dokładnie?
po co chcesz sprawdzać czy VI jest "uruchomiony"?