Odliczanie czasu

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.
Jjay
Posty: 3
Rejestracja: 16 kwie 2018 13:55
Wersja środowiska: LabVIEW 2017

Odliczanie czasu

Post autor: Jjay » 16 kwie 2018 15:38

Witam,
Jestem początkujący w LabView. Mój program opiera się na sterowaniu 0,1

Potrzebuje zrobić odliczanie czasu. Wygląda to tak że po podaniu sygnału A=1 Włącza się wentylator, który ma pracować przez 2 minuty i się wyłączyć.
Zrobiłem coś takiego
kod.png
kod.png (26.34 KiB) Przejrzano 689 razy
Problem polega na tym, że mam pętle w petli. Duża zewnętrzna i ta mała w tym Case. Problem jest taki że jak się mała uruchomi(odliczanie) To ta duża czeka na jej wynik. Chciałbym żeby ta duża nie czekała aż 2 minuty na zmianę innych sygnałów.

Kombinowałem jeszcze z "Elapsed time" ale nie wyszło.

///EDIT pierwszy problem sam rozwiązałem wiec edytowałem treść

Awatar użytkownika
dajpanspokój
Posty: 144
Rejestracja: 05 lis 2015 08:15
Wersja środowiska: LabVIEW 2016
Has thanked: 4 times
Been thanked: 5 times

Re: Odliczanie czasu

Post autor: dajpanspokój » 16 kwie 2018 19:10

Hej

Odliczanie czasu w LabVIEW to jest podstawowy problem w CLD :)
Jest pare sposobow jak to zrobic, jeden z nich to event structure z timeoutem, ktory obsluguje wszystkie przyciski a w timeoucie wyswietla uplyw czasu.
2 shift registery, jeden do sprawdzenia czy wentylator dziala, a drugi do zapisania czasu w ktorym wystartowal.
Po nacisnieciu start zapisujesz czas startu do shift registera, a w timeoucie porownujesz terazniejszy czas z tym zapisanym. Jesli roznica tych czasow przekroczy iles tam, to wylaczamy wentylator.
wentylator.png
Dodatkowo, mozesz dolozyc kolejny shift register ktory bedzie przechowywal Timeout. Inicjalizujesz jako -1. Po nacisnieciu start, ustawiasz timeout na 100, po nacisnieciu stop, albo uplywie okreslonego czasu, ustawiasz Timeout = -1. W ten sposób jesli wentylator nie dziala, to petla czeka na event a nie kreci sie w kolko...
Obrazek

Jjay
Posty: 3
Rejestracja: 16 kwie 2018 13:55
Wersja środowiska: LabVIEW 2017

Re: Odliczanie czasu

Post autor: Jjay » 17 kwie 2018 12:14

Stworzyłem na podstawie twojego tylko nie działa :D
kod2.png
Tak patrząc na czas, to chyba coś nie tak zrobiłem. Chyba nie bardzo rozumiem co miało być w linii czas startu. Bo bez wejściowego "constant czy control" cała linia w tym shift register zakreśla się na czarno.

Z góry dzięki za pomoc :)
Wrzucam .Vi
Załączniki
Timer.vi
(12.94 KiB) Pobrany 25 razy

Jjay
Posty: 3
Rejestracja: 16 kwie 2018 13:55
Wersja środowiska: LabVIEW 2017

Re: Odliczanie czasu

Post autor: Jjay » 17 kwie 2018 12:50

OK zrobiłem, troche pomyslalem i jest.
kod23.png
Wersja poprawiona

Załączam start i wentylator załącza się na 10 sekund po czym sie wyłącza. Problem jest gdy chce powtórzyć cykl kolejne naciśniecie startu załacza znów liczenie ale czas jest odliczany tam gdzie skonczył czyli na tej 10 sekundzie. Możemy jakoś zresetować ten czas w case structure gdy jesteśmy na false?

Możemy go zatrzymać stopem po upływie 10 sekund ale wtedy stopujemy cały loop, a tego nie chce. Timer jest tylko częścią programu. Ten zewnętrzny tick count liczy czas od startu programu, a ja chciałbym żeby dopiero zaczął liczyć po naciśnięciu booleanu "start" (policzy te 10 sekund przez, które pracuje wentylator i się zresetuje i będzie czekał na kolejne wyzwolenie startem)


Jeżeli odpowiedz jest w tym to chyba nie rozumiem.
"Dodatkowo, mozesz dolozyc kolejny shift register ktory bedzie przechowywal Timeout. Inicjalizujesz jako -1. Po nacisnieciu start, ustawiasz timeout na 100, po nacisnieciu stop, albo uplywie okreslonego czasu, ustawiasz Timeout = -1. W ten sposób jesli wentylator nie dziala, to petla czeka na event a nie kreci sie w kolko..."
Załączniki
Timer.vi
(12.85 KiB) Pobrany 29 razy

Awatar użytkownika
dajpanspokój
Posty: 144
Rejestracja: 05 lis 2015 08:15
Wersja środowiska: LabVIEW 2016
Has thanked: 4 times
Been thanked: 5 times

Re: Odliczanie czasu

Post autor: dajpanspokój » 17 kwie 2018 14:13

Nacisniecie startu daj jako nowy event i wtedy na shift register ustawiaj tick count.
Tak w ogole to mozesz drag and dropnac ten obrazek ktory wrzucilem na swoj vi i on sie wklei jak bloczki labview.
Dlatego ma taki znaczek
Capture.PNG
Capture.PNG (3.86 KiB) Przejrzano 645 razy
Obrazek

ODPOWIEDZ