Zmienna lokalna do zatrzymywania kilku pętli

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
1125
Posty: 37
Rejestracja: 25 cze 2011 09:28
Wersja środowiska: LabVIEW 2011

Zmienna lokalna do zatrzymywania kilku pętli

Post autor: 1125 »

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
Załączniki
zmienna lokalna.vi
(5.82 KiB) Pobrany 281 razy
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zmienna lokalna

Post autor: Jamal79 »

Najprosciej to tak...
Wiekszosc sie za glowy zlapie :)
Załączniki
to jest snagit, zapisz i przeciagnij na blockdiagram
to jest snagit, zapisz i przeciagnij na blockdiagram
TuChoLa
Posty: 25
Rejestracja: 08 maja 2012 09:48
Wersja środowiska: LabVIEW 2013

Re: Zmienna lokalna

Post autor: TuChoLa »

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.

Jamal79 pisze:Najprosciej to tak...
Wiekszosc sie za glowy zlapie :)
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.
Ostatnio zmieniony 13 sie 2012 10:25 przez TuChoLa, łącznie zmieniany 1 raz.
1125
Posty: 37
Rejestracja: 25 cze 2011 09:28
Wersja środowiska: LabVIEW 2011

Zmienna lokalna

Post autor: 1125 »

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.
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zmienna lokalna

Post autor: Jamal79 »

sorry nie ten snagit wrzucilem....

przerobilem go na 4 loopy
Załączniki
1125.png
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zmienna lokalna

Post autor: Jamal79 »

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...
TuChoLa
Posty: 25
Rejestracja: 08 maja 2012 09:48
Wersja środowiska: LabVIEW 2013

Re: Zmienna lokalna

Post autor: TuChoLa »

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
Clipboard02.png (8.96 KiB) Przejrzano 9946 razy
Ostatnio zmieniony 13 sie 2012 10:43 przez TuChoLa, łącznie zmieniany 1 raz.
1125
Posty: 37
Rejestracja: 25 cze 2011 09:28
Wersja środowiska: LabVIEW 2011

Zmienna lokalna

Post autor: 1125 »

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
TuChoLa
Posty: 25
Rejestracja: 08 maja 2012 09:48
Wersja środowiska: LabVIEW 2013

Re: Zmienna lokalna

Post autor: TuChoLa »

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.
1125
Posty: 37
Rejestracja: 25 cze 2011 09:28
Wersja środowiska: LabVIEW 2011

Zmienna lokalna

Post autor: 1125 »

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
ODPOWIEDZ