Strona 1 z 1

Kolejki

: 03 kwie 2008 12:35
autor: fenix
Witam!

Chce zrobić coś takiego przy użyciu kolejek:
1. Gdy wykona się pętla pierwsza w głownym programie to powinna wykonać się pętla druga która jest w subvi
2. Gdy wykona się pętla w subvi to po niej powinna wykonać się 1 raz pętla trzecia w programie.

I tu mam pytanie. Jak zrobić punkt 2 przy tym samym Queue. To znaczy zrobiłem tak że w subvi po wykonaniu pętli stworzyłem drugą kolejkę pod inna nazwą i do niej się odwołuję w programie głównym (Pętla 3b), ale jak można zrobić to samo bez tworzenia różnych nazw dla Obtain Queue (Tak żeby wykonała się tylko raz pętla 3a przy kolejce bez nazwy)? Bo tak jakbym miał analogicznie jeszcze 3 takie pętle to bym musiał tworzyć dodatkowo dwie różne kolejki pod innymi nazwami).
Mam nadzieję ze dobrze wytłumaczyłem o co mi chodzi...

Przykładowy programik w załączniku

Labview 8.2

Pozdrawiam

Kolejki

: 04 kwie 2008 06:01
autor: fenix
Spojrzy ktoś w diagram i mi podpowie jak w inny sposob niz ten moj mozna uruchomić ta 3 petle? :-)

Re: Kolejki

: 04 kwie 2008 12:19
autor: jogurt_owocowy
1. Gdy wykona się pętla pierwsza w głownym programie to powinna wykonać się pętla druga która jest w subvi
Gdy pętla się wykona wstaw do kolejki "pętla-sub". Subvi stoi przed pętlą na klocku np. Preview Queue Element czekając, aż w kolejce pojawi się "pętla-sub" jak tak to wyjmuje go z kolejki, wchodzi do pętli, jak nie - czeka dalej. Gdy pętla się zakończy wstawia do kolejki "petla2".
Analogicznie trzecia pętla w programie czeka, na pojawienie się w kolejce elementu "petla2" i powinno to to działać.
Pozdrawiam

Kolejki

: 05 kwie 2008 13:17
autor: fenix
A mógłbym prosić o mały przykład bo mi nie chce wyjść, chyba nie za bardzo rozumiem...

Re: Kolejki

: 06 kwie 2008 10:48
autor: jogurt_owocowy
Proszę przykład:

[img]http://labview.pl/uploads/veir/synchron ... 0subvi.gif[/img]

Gdy pętla nr 1 kończy się wykonywać wysyła za pośrednictwem kolejki string "loop in subvi-start" po czym przechodzi do stanu oczekiwania na string "loop2 in main-start" - pierwsza pętla w Sequence. Analogiczna pętla oczekuje w subviaju na pojawienie się elementu "loop in subvi-start". Kiedy o dostanie, pętla w subviaju startuje, a po swoim zakończeniu wysyła do kolejki "loop2 in main-start". Wtedy budzi się czekająca pętla w main i odpala w głównym programie pętlę nr 2.

Pozdrawiam

Kolejki

: 06 kwie 2008 12:25
autor: fenix
A mógłbym prosić ten przykład w labview 8.2?

Re: Kolejki

: 06 kwie 2008 14:19
autor: jogurt_owocowy
8.2

Kolejki

: 07 kwie 2008 18:40
autor: fenix
Dzieki! o takie cos mi chodzilo, teraz postaram sie cos takiego zrobic w moim projekcie :)