Strona 1 z 1

Wykonanie pętli While

: 28 kwie 2009 20:10
autor: Piotr83
Hej,

Napisalem taki prosty program (nie jestem pewny czy nie ma błędów), który ma zatrzymywać sie po wykonaniu dwóch wewnętrznych pętli While.
Np. regulator jest ustawiony na wartość =2, y=1, górna pętla sie zatrzymuje i potem nie ma reakcji na zmianę ustawień regulatora

Czy możecie podpowiedzieć gdzie jest błąd?

Pozdrawiam

Wykonanie pętli While

: 28 kwie 2009 20:38
autor: Nowszy
Jeszcze musiałbyś napisać, co się dzieje w Case'ach gdy jest False. Ale generalnie wygląda na to, że problem jest następujący:
- duża pętla kończy się w momencie, gdy zakończą się wewnętrzne pętle, czyli będzie miała tylko 1 iteracje, która będzie czekała na zakończenie wewnętrznych pętli (pętla while przekaże dane do tuneli wyjściowych dopiero po zakończeniu)
- wartość kontrolki 'regulator' zostanie więc odczytana tylko 1 raz przez każdą z małych pętli - przed pierwszą iteracją. Duża pętla będzie uruchomiona tylko raz, więc odczyta wartość regulatora tylko 1 raz.

Re: Wykonanie pętli While

: 29 kwie 2009 18:37
autor: Piotr83
Nowszy pisze:Jeszcze musiałbyś napisać, co się dzieje w Case'ach gdy jest False.
Casy są puste
Nowszy pisze: - duża pętla kończy się w momencie, gdy zakończą się wewnętrzne pętle, czyli będzie miała tylko 1 iteracje, która będzie czekała na zakończenie wewnętrznych pętli (pętla while przekaże dane do tuneli wyjściowych dopiero po zakończeniu)
o to mi własnie chodzilo zeby wykonała sie tylko raz
Nowszy pisze: - wartość kontrolki 'regulator' zostanie więc odczytana tylko 1 raz przez każdą z małych pętli - przed pierwszą iteracją. Duża pętla będzie uruchomiona tylko raz, więc odczyta wartość regulatora tylko 1 raz.
czy da się to zmienic zeby wartość regulatora nie była odczytywana tylko raz?

pozdrawiam

Re: Wykonanie pętli While

: 29 kwie 2009 19:45
autor: Nowszy
Wrzuć regulator do 1 pętli a do drugiej wrzuć zmienną lokalną powiązaną z tym regulatorem. Musisz tylko zadbać, żeby kontrolkę regulatora dobrze inicjować.

A tak swoją drogą, to po co chcesz zmieniać wartość regulatora skoro duża pętla działa tylko 1 raz? No i po co w ogóle jest ta duża pętla w takim razie?

Wykonanie pętli While

: 29 kwie 2009 20:30
autor: mariush
Podobnie jak wyżej, skoro pętla ma się wykonać raz, to po co w ogóle robić to w pętli? ;)
Jeżeli wartość wchodzi do tych małych pętli while, to nie można jej już zmienić, dopóki, pętle się nie zakończą. Chyba że kontrolka znajdzie się wewnątrz tych małych pętli, albo znajdzie się tam zmienna ją reprezentująca. Obrazek [Pal licho, że operacje są inne - idea ta sama :)]
Swoją drogą, po co ten Time Delay poza pętlą? 100% użycia procesora będzie tak czy siak, dopóki opóźnienia nie będzie w każdej z pętli.

Wykonanie pętli While

: 30 kwie 2009 17:56
autor: Piotr83
Ten vi zrobilem w domu i jest on "symulacją" (symulacją bo brak kart itp)tego co chce wykorzystać w pracy.
Spróbuje zmienić diagram zgodnie z waszymi wskazówkami albo w ogóle stworzyc wszystko od nowa.

Pozdrawiam i życzę miłego weekednu