zabawa z pętlami ...
zabawa z pętlami ...
Witam
Mam pytanie odnośnie pętli for wykorzystywanej w LabView. Mianowicie mam główny program wykonywany w pętli FOR, który po naciśnięciu przycisku STOP wyłącza się. Tu nie ma żadnej filozofi. Jednakże moim zadaniem jest wykonanie takiego mechanizmu, aby po wciśnięciu przycisku STOP tenże program zatrzymywał się a po wciśnięciu kolejnego przycisku WZNÓW - zaczął działać.
Innymi słowy musze zatrzymywać i uruchamiać program bez wykorzystywania standardowych przycisków RUN i ARORT EXECUTION znajdujących się na górze okienka.
Na chwilę obecną uważam że powinno to wyglądać tak :
Mam główną pętlę FOR. W niej znajduje się druga pętla FOR , w której wykonywany jest mój program.Moim zadaniem jest zatrzymywanie i ponowne uruchamianie właśnie tej wewnętrznej pętli FOR.Zewnętrzna pętla ma cały czas być aktywna.
Jak to zrobić :?: Możliwe że jest to naprawdę banalne ale ja jakoś nie mogę na to wpaść ... Będę wdzięczny za każdą radę .....
Pozdrawiam
Mam pytanie odnośnie pętli for wykorzystywanej w LabView. Mianowicie mam główny program wykonywany w pętli FOR, który po naciśnięciu przycisku STOP wyłącza się. Tu nie ma żadnej filozofi. Jednakże moim zadaniem jest wykonanie takiego mechanizmu, aby po wciśnięciu przycisku STOP tenże program zatrzymywał się a po wciśnięciu kolejnego przycisku WZNÓW - zaczął działać.
Innymi słowy musze zatrzymywać i uruchamiać program bez wykorzystywania standardowych przycisków RUN i ARORT EXECUTION znajdujących się na górze okienka.
Na chwilę obecną uważam że powinno to wyglądać tak :
Mam główną pętlę FOR. W niej znajduje się druga pętla FOR , w której wykonywany jest mój program.Moim zadaniem jest zatrzymywanie i ponowne uruchamianie właśnie tej wewnętrznej pętli FOR.Zewnętrzna pętla ma cały czas być aktywna.
Jak to zrobić :?: Możliwe że jest to naprawdę banalne ale ja jakoś nie mogę na to wpaść ... Będę wdzięczny za każdą radę .....
Pozdrawiam
Witam
...jako że przyjmujesz każdą radę
Po Pierwsze: pętlą zewnętrzną i wewnętrzną byłaby tutaj pętla while, która: pętla zewnętrzna stopowana mogłaby być dowolnym przyciskiem, np. EXIT, natomiast wewnętrzna przyciskiem STOP. Do tego Pętla Wewnętrzna powinna być wewnątrz pęli Case, do selektora której podpinasz przycisk START - to a'propos Twojego pomysłu.
Po Drugie: Mówiąc wprost taki sposób tworzenia programu jest zły. Jeżeli stosujesz LabVIEW w wersji 7.xx to polecam poszperać na temat EVENT'ów - gdyż powinno się wykorzystywać zdarzenia w programie. Mógłbyś się wówczas ograniczyć do jednej pętli - właśnie EVENT.
...jako że przyjmujesz każdą radę
Po Pierwsze: pętlą zewnętrzną i wewnętrzną byłaby tutaj pętla while, która: pętla zewnętrzna stopowana mogłaby być dowolnym przyciskiem, np. EXIT, natomiast wewnętrzna przyciskiem STOP. Do tego Pętla Wewnętrzna powinna być wewnątrz pęli Case, do selektora której podpinasz przycisk START - to a'propos Twojego pomysłu.
Po Drugie: Mówiąc wprost taki sposób tworzenia programu jest zły. Jeżeli stosujesz LabVIEW w wersji 7.xx to polecam poszperać na temat EVENT'ów - gdyż powinno się wykorzystywać zdarzenia w programie. Mógłbyś się wówczas ograniczyć do jednej pętli - właśnie EVENT.
PMaj dzięki za radę ... Faktycznie pętle while działają ... Jest jednak jeden problem...W momencie gdy zatrzymam tą pętle wewnętrzną przyciskiem STOP to nie jestem w stanie jej potem ponownie uruchomić. A właśnie to jest mi najbardziej potrzebne...
W ramach wyjaśnienia : Wwiem że nie jest to najlepszy sposób torzenia programu ..Jednak mój program to pewnego typu symulator...Po włączeniu programu na przykład w pierwszym kroku wyświetlam małe okienko gdzie wpisuję pewne parametry dla symulowanego procesu.Następnym krokiem powinno być uruchomienie pętli w której odbywa sie symulacja...Problem polega na tym że muszę uruchomić pętlę symulacji w dowolnym momencie....
Tak więc wracając do tematu potrzebuję zrobić taki mechanizm , aby za pomoca przycisku Start włączać pętle symulacji , następnie ją wyłączyć Stopem i mieć możliwość włączyć ją ponownie...cały czas pozostając we włączonej pętli zewnętrznej
W ramach wyjaśnienia : Wwiem że nie jest to najlepszy sposób torzenia programu ..Jednak mój program to pewnego typu symulator...Po włączeniu programu na przykład w pierwszym kroku wyświetlam małe okienko gdzie wpisuję pewne parametry dla symulowanego procesu.Następnym krokiem powinno być uruchomienie pętli w której odbywa sie symulacja...Problem polega na tym że muszę uruchomić pętlę symulacji w dowolnym momencie....
Tak więc wracając do tematu potrzebuję zrobić taki mechanizm , aby za pomoca przycisku Start włączać pętle symulacji , następnie ją wyłączyć Stopem i mieć możliwość włączyć ją ponownie...cały czas pozostając we włączonej pętli zewnętrznej
Czyli masz tutaj pętlę while w środku event obsługujący przyciski "wprowadz dane", "uruchom symulację" "zakoncz program". Wewnątrz eventu "uruchom symulację" jest pętla while pracująca do naciśnięcia przycisku "zakończ symulację". Upieranie sie przy pętli FOR to nie jest dobry pomysł.IRON pisze:PMaj dzięki za radę ... Faktycznie pętle while działają ... Jest jednak jeden problem...W momencie gdy zatrzymam tą pętle wewnętrzną przyciskiem STOP to nie jestem w stanie jej potem ponownie uruchomić. A właśnie to jest mi najbardziej potrzebne...
W ramach wyjaśnienia : Wwiem że nie jest to najlepszy sposób torzenia programu ..Jednak mój program to pewnego typu symulator...Po włączeniu programu na przykład w pierwszym kroku wyświetlam małe okienko gdzie wpisuję pewne parametry dla symulowanego procesu.Następnym krokiem powinno być uruchomienie pętli w której odbywa sie symulacja...Problem polega na tym że muszę uruchomić pętlę symulacji w dowolnym momencie....
Tak więc wracając do tematu potrzebuję zrobić taki mechanizm , aby za pomoca przycisku Start włączać pętle symulacji , następnie ją wyłączyć Stopem i mieć możliwość włączyć ją ponownie...cały czas pozostając we włączonej pętli zewnętrznej
Przykład zewnętrznej i wewnętrznej pętli zamieściłem na stronie http://www.republika.pl/labview - plik pwhile.zip - może o to ci chodzi Iron.
Odradzam, ale cóż... co do pracy struktury event to polecam odpowiedź na temat GPSa: http://www.labview.pl/viewtopic.php?t=146#606 Twój VI będzie podobny zakładając że wykonasz go w ten sposób. Jaka zaleta? Aplikacja wykonuje pętlę tylko wtedy kiedy zajdzie konkretne zdarzenie w przeciwieństwie do zagnieżdżania w sobie While ze strukturą CASE.IRON pisze:Mikrobi co do pętli to już
stanowczo pozostaję przy While ... Jednakże czy mógłbyś mnie wspomóc jakimś przykładowym plikiem , ukazującym Twoja wersję opartą na Event struktures ? NIe bardzo rozumiem ideę tego komponentu ...
Co do event structures to właśnie się zagłębiam w ten temat...troszkę z innej beczki teraz Mikrobi - jedno krótkie pytanie - jeżeli mam dowolny program, w którym są wykonywane jakieś obliczenia, to aby go uruchomic używam polecenia RUN a żeby wyłączyć ABORT EXECUTION. A czy jest możliwe włączenie go pierwszym razem poleceniem RUN a następnie wyłączenie ( zatrzymanie lub przerwanie) oraz ponowne włączenie wykorzystując jakiś dowolny przycisk programie ??? (czyli teoretycznie4 główny program cały czas jest uruchomiony , je4dynie obliczenia są zatrzymywane a następnie ponawiane naciśnięciem pewnego przycisku )
...wiem , zakręciłem.... 8O
...wiem , zakręciłem.... 8O
Niezbyt Trzeba będzie zrobić ten program obliczeniowy (nazwijmy go tutaj PO) wewnatrz struktury event. Po kolei (PKM - menu wywoływane przez Prawy Klawisz Myszy) 1. Na panelu trzy przyciskiIRON pisze:Co do event structures to właśnie się zagłębiam w ten temat...troszkę z innej beczki teraz Mikrobi - jedno krótkie pytanie -
jeżeli mam dowolny program, w którym są wykonywane jakieś obliczenia, to aby go uruchomic używam polecenia RUN a żeby wyłączyć ABORT EXECUTION. A czy jest możliwe włączenie go pierwszym razem poleceniem RUN a następnie wyłączenie ( zatrzymanie lub przerwanie) oraz ponowne włączenie wykorzystując jakiś dowolny przycisk programie ??? (czyli teoretycznie4 główny program cały czas jest uruchomiony , je4dynie obliczenia są zatrzymywane a następnie ponawiane naciśnięciem pewnego przycisku )
...wiem , zakręciłem....
8O
runPO - uruchomienie programu (pierwsze lub ponowne) POstop - zatrzymanie programu END - zakończenie programu
2. petla while wewnatrz struktura event
3. UWAGA wewnetrzna pętla należy juz do programu PO. Dalej: dodajesz zdarzenie (PKM i 'Add Event Case...') generowane przez "runPO" (drzewo po lewej stronie edytora zdarzeń) akcja 'Value Change' (to na liście po prawej stronie) 4.Odznaczasz pole na dole edytora "Lock front panel..." to pozwoli na reakcję struktury event na naciśnięcie przycisku "stopPO" zatrzymującego wewnętrzną pętlę.
5. definiujesz ZAKOĹ