Zmienna lokalna do zatrzymywania kilku pętli
Zmienna lokalna do zatrzymywania kilku pętli
Witam,
Chciałem zrobić program z dwiema (docelowo trzema) pętlami while. Ale chcę aby program był zatrzymywany z jednego przycisku "Stop", wszystko po to by nie mieć na front panelu kilku przycisków stop. Chciałem w tym celu wykorzystać zmienną lokalną ale mi nie wychodzi. Zamieszczam prosty kod obrazujący mój błąd który się wyświetla.
Pozdr
1125
Chciałem zrobić program z dwiema (docelowo trzema) pętlami while. Ale chcę aby program był zatrzymywany z jednego przycisku "Stop", wszystko po to by nie mieć na front panelu kilku przycisków stop. Chciałem w tym celu wykorzystać zmienną lokalną ale mi nie wychodzi. Zamieszczam prosty kod obrazujący mój błąd który się wyświetla.
Pozdr
1125
- Załączniki
-
- zmienna lokalna.vi
- (5.82 KiB) Pobrany 281 razy
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Zmienna lokalna
Najprosciej to tak...
Wiekszosc sie za glowy zlapie
Wiekszosc sie za glowy zlapie
Re: Zmienna lokalna
Jak klikniesz start to wyświetli Ci się error list, którym masz napisane co jest grane i jest wyjaśnione dlaczego tak się dzieje. W skrócie domyślne "Mechanical Action" dla przycisku Stop to Latch, którego zmienna lokalna nie obsługuje. Tylko przy zmianie akcji na jakąś ze switch program ją zapamięta przy następnym uruchomieniu i program od razu się zatrzyma, by tego uniknąć trzeba by wstawić poza pętlami while element zmieniający wartość przycisku Stop na False.
Jak przycisk będzie poza pętlami while to się nie wykona, jego wartość zostanie raz pobrana do pętli przy starce programu, a przycisk ten będzie już nie użyteczny.Jamal79 pisze:Najprosciej to tak...
Wiekszosc sie za glowy zlapie
Ostatnio zmieniony 13 sie 2012 10:25 przez TuChoLa, łącznie zmieniany 1 raz.
Zmienna lokalna
No tak ładnie i prosto wygląda ale sprawdziłeś czy to zadziała? Po uruchomieniu pętli nie ma możliwości jej zatrzymania ponieważ zatrzymanie musi być wywołane wewnątrz pętli. Efekt tego co posłałeś jest taki że pętle się uruchomią a klikając "stop" nie ma reakcji.
W takim razie czy jest możliwość zatrzymania dwóch pętli z jednego przycisku? Myślałem że za pomocą zmiennej lokalnej to zrobię bo widziałem w przykładach że niektórzy obsługują zmienne boolowskie poprzez zmienne lokalne.
W takim razie czy jest możliwość zatrzymania dwóch pętli z jednego przycisku? Myślałem że za pomocą zmiennej lokalnej to zrobię bo widziałem w przykładach że niektórzy obsługują zmienne boolowskie poprzez zmienne lokalne.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Zmienna lokalna
wrrr, tak to jest jak czlowiek sie spieszy.
W tym musisz zmienic wlasnosci fizyczne "buttona" celowo wybralem diode bo zwyczajny/standartowy stop nie dziala. Ma inna funkcje jak zwykle przyciski...
W tym musisz zmienic wlasnosci fizyczne "buttona" celowo wybralem diode bo zwyczajny/standartowy stop nie dziala. Ma inna funkcje jak zwykle przyciski...
Re: Zmienna lokalna
Wydaje mi się, że takie rozwiązanie będzie łatwiejsze i szybsze. Dla stopa jest ustwione "Switch when pressed". Program jest zrobiony na podstawie opisu, który wykonałem wcześniej. Mechanical Action można zmieniać tylko na front panel po kliknięciu prawym przyciskiem myszy na przycisk stop.
- Załączniki
-
- Clipboard02.png (8.96 KiB) Przejrzano 9946 razy
Ostatnio zmieniony 13 sie 2012 10:43 przez TuChoLa, łącznie zmieniany 1 raz.
Zmienna lokalna
Dziękuję wam za szybkie odpowiedzi, mój program który posłałem jako pierwszy zadziałał po zmianie na "Switch when pressed" trzeba przytrzymać stop tak długo jak długo trwa pętla i wszystko się zatrzymuje. Nie jest potrzebna struktura sekwencji.
Pozdrawiam
1125
Pozdrawiam
1125
Re: Zmienna lokalna
Akurat strukturę sekwencji w takich przypadkach stosuję dosyć często, ponieważ nadaje to dodatkowy ład w kodzie (według mnie) oraz w niczym nie przeszkadza. Warto wstawić w program to co wstawiłem w pierwszej sekwencji, ponieważ dzięki temu nie trzeba pamiętać, by cofnąć przycisk Stop.
Zmienna lokalna
Można też użyć opcji "switch when released" i wszystko się wyłączy bez potrzeby cofania stop-u.
Jeszcze raz dzięki za pomoc. Temat został wyczerpany.
pozdro
Jeszcze raz dzięki za pomoc. Temat został wyczerpany.
pozdro