Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

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.
Cerberus
Posty: 3
Rejestracja: 23 sty 2013 23:32
Wersja środowiska: LabVIEW 2012

Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: Cerberus »

Witam serdecznie,

pewnie macie powyżej uszu tematów zakładanych przez ludzi, którzy o LabView nie mają pojęcia, a muszą zrealizować jakieś zadanie jednorazowo na uczelnie, czy coś w ten deseń... niestety znalazłem się w podobnej sytuacji :( Nie chce poświęcać godzin przeglądając tutoriale i dokumentacje, bo to prawdopodobnie moje jedyne spotkanie z LabView w życiu, a muszę zrealizować dość proste zadanie.

Konkretniej, mam stworzyć program, który niczym nie będzie się różnił w działaniu od tego z załącznika o nazwie stoper.

Załączam też to, co samemu udało mi się wyprodukować metodą prób i błędów oraz "na chłopski rozum" - generalnie jest wyświetlacz z dwoma wskazówkami, odliczanie czasu działa, reset działa, kończenie działa, zostało mi pauzowanie/wznawianie. Brakuje mi już pomysłu jak to ugryźć. Zapewne albo istnieje jakiś bloczek czy opcja pauzy, którego nie udało mi się znaleźć, albo zabieram się do problemu od kompletnie złej strony :)

Dość podstawowym problemem, który mi przeszkadza przy realizacji jest fakt, że w pętli while nie działają mi poprawnie przyciski bistabilne. W razie gdyby to był jakiś problem nie do obejścia (w co zresztą wątpię) mogę użyć jakiś toggle switchy, które działały dobrze, może prowadzący nie będzie aż tak dociekliwy.

Generalnie najbardziej brakuje mi czegoś takiego, jak po prostu zmienna, gdzie bym sobie mógł prosto wrzucić czas naciśnięcia pauzy, a potem go odczytać i użyć przy wznowieniu...

Prosiłbym o jakieś wskazówki, za pomocą jakich elementów czy w jaki sposób mogę zrealizować taką funkcjonalność. Będę naprawdę wdzięczny i obiecuję w ramach rekompensaty, że jeżeli na którymś z for o bliższej mi tematyce gdzie się udzielam ktoś zada równie podstawowe pytanie, poświęcić trochę czasu i podzielić się wiedzą ;)

Z góry dziękuję i przepraszam, jeżeli pytam w złym dziale czy coś podobnego (w regulaminie forum przejrzałem tylko punkty tyczące się zadawania pytań, całość wygląda nieco zaporowo ;) )
Załączniki
Untitled 1.vi
Moje "wypociny"
(25.09 KiB) Pobrany 397 razy
stoper.rar
Program wzorcowy
(126.71 KiB) Pobrany 359 razy
Ostatnio zmieniony 24 sty 2013 00:00 przez Cerberus, łącznie zmieniany 1 raz.
dzojstik22
Posty: 103
Rejestracja: 17 gru 2011 21:33
Wersja środowiska: LabVIEW 2011

Re: Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: dzojstik22 »

Jak możesz to zapisz to we wcześniejszej wersji.
Awatar użytkownika
skrzatswat
Posty: 21
Rejestracja: 13 lut 2012 16:26
Wersja środowiska: LabVIEW 2011

Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: skrzatswat »

Troszkę poprawiłem ;]
Untitled 1.vi
(15.74 KiB) Pobrany 460 razy
Obrazek
Cerberus
Posty: 3
Rejestracja: 23 sty 2013 23:32
Wersja środowiska: LabVIEW 2012

Re: Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: Cerberus »

@dzojstik22 - Wrzucam w załączniku.

@skrzatswat - Dzięki za zainteresowanie tematem :) Niestety Twój program nie przybliża mnie za bardzo do rozwiązania problemu, bo nie potrafię zrozumieć w jaki sposób jest tam zrobiony ten mechanizm pauzy/wznowienia, dlaczego to działa... :/

Generalnie to brakuje mi po prostu wrzucenia sobie czasu zatrzymania do zmiennej i potem korzystania z niego, mając to już bym sobie myślę poradził. Nie wiem, czy da się to jakoś prosto uzyskać...?
Załączniki
Untitled 1.vi
Zapisane w zgodności ze starszymi wersjami (10.0)
(23.03 KiB) Pobrany 335 razy
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Re: Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: Góras »

Czas zatrzymania krąży w rejestrze przesuwnym (tym pomarańczowym :) ) - dodałam Ci jeszcze czas wznowienia - może się przydać.

Generalnie program zwiększył się o dwie struktury Case - stan True zewnętrznej jest związany ze zmianą stanu przycisku (z True na False lub z False na True) - porównywanie z wartością poprzednią (Feedback Node). Wewnętrzny Case zależy od stanu przycisku - w True do rejestru przesuwnego wpisywany jest czas wciśnięcia przycisku Pauza, w stanie False do rejestru wpisywana jest poprzednia wartość z rejestru, czyli wcześniej zapamiętany czas wciśnięcia Pauzy.
Załączniki
Untitled 1.vi
(27.54 KiB) Pobrany 387 razy
Cerberus
Posty: 3
Rejestracja: 23 sty 2013 23:32
Wersja środowiska: LabVIEW 2012

Re: Problem przy tworzeniu stopera z opcją pauzy/kontynuacji

Post autor: Cerberus »

Dzięki Góras, jak sobie przeanalizowałem Twój układ i to co napisałeś, to byłem w stanie sobie sam zrobić to jak chciałem :)

Moja koncepcja jest taka, że w dwóch rejestrach przesuwnych krąży sumaryczny czas spędzony na pauzie i czas spędzony na liczeniu. Czas spędzony na pauzie wyliczam zawsze jako całościowy czas od rozpoczęcia programu odjąć czas liczenia. Czas liczenia, jeżeli timer jest zastopowany, przepisuję bez zmian, a jeżeli nie jest zastopowany, to wyliczam tak: aktualny czas liczenia = delta czasu dodać aktualny czas liczenia i od tego odjąć czas pauzy.

Jeszcze raz dzięki za pomoc!
Załączniki
Untitled 1.vi
(41.7 KiB) Pobrany 400 razy
ODPOWIEDZ