Zapis do pliku przez określony czas podczas działającej pętl

Tematy związane z LabVIEW pracującym w czasie rzeczywistym.
lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 18:37

Witam,
Jestem dopiero raczkującym w labview i to jest mój pierwszy post natym forum, dlatego prosze o wyrozumiałość :) . Co chce zrobić: chce zapisywać dane do pliku przez określony czas np 60s w dowolnym momęcie działania programu. Zapis do tablicy mam zrobiony tylko nie moge sobie poradzić z tym zeby zapisywało dane w dowolnym momęcie programu przez określony czas. Wykorzystuje bloczek Tick Count i to mi działa tylko że czas leci od początku działania pętli a nie od momętu kiedy ja chce. Co poradzicie ?

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: aaddaas » 16 gru 2014 19:44

Hej!
Przydałby się wgląd do Twojego VI, by móc się dokładnie wypowiedzieć. Ja bym zrobił to wykorzystując bloczek elapsed time. Od momentu, gdy chcesz wysyłać pomiary resetujesz licznik (wysyłając jednorazowo true na Reset), a następnie przesyłam pomiary aż Elapsed Time będzie True.
Więcej będę mógł pomóc, gdy zobaczę porogram;)
Pozdrawiam!
Obrazek

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Re: Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 20:01

Dodaje screen programu
Screen prgramu.jpg

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 20:03

Dodam,że narazie testuje na wartościach idących z pętli while, a nie na danych z portu szeregowego

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 20:23

A właśnie jest jakiś bloczek co daje automatycznie pojedynczy impuls(stan wysoki), nie mówie to o nacisnięciu boolen ?

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Re: Zapis do pliku przez określony czas podczas działającej pętl

Post autor: aaddaas » 16 gru 2014 20:35

Hej!
Po pierwsze usuń zewnętrzną case strukture sterowaną "włącz cały program" ponieważ jeśli w momencie przyciśnięcia przycisku run, przycisk "włącz cały program" będzie na False, to program się nie odpali i nie zmieni nic przełączanie tego przycisku.

Odnosząc się do Twojego problemu:
Wstaw case strukture sterowaną przyciskiem "zapis do pliku", a wewnątrz na wartości true wstaw bloczek elapsed time. Wprowadzasz w "target time" ile sekund ma lecieć, a wyprowadzasz elapsed time. Tak jak w załączniku. Zapis do pliku wyrzuć poza pętlę.

// To co załączam to tzw Snipped. Jest to taki sprytny sposób, że wystarczy, że przeciągniesz obrazek na block diagram, a on Ci się załączy
Załączniki
timing.png
timing.png (46.61 KiB) Przejrzano 3896 razy
Obrazek

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Re: Zapis do pliku przez określony czas podczas działającej pętl

Post autor: aaddaas » 16 gru 2014 20:40

lucasenior pisze:A właśnie jest jakiś bloczek co daje automatycznie pojedynczy impuls(stan wysoki), nie mówie to o nacisnięciu boolen ?
a na co Ci pojedynczy impuls? True constant nie wystarczy?
Obrazek

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 21:05

O kurcze dzięki wielkie ! Wszystko pięknie działa tak jak chciałem :)

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 16 gru 2014 21:13

Na początku chciałem wykorzystać coś takiego w programie, a teraz to jestem po prostu ciekaw czy istnieje coś takiego w labview jak automatyczne chwilowe włączenie stanu wysokiego(nie boolean) :) A dokładnie to chodzi mi o takie coś : włączam boolean w stan wysoki i ten stan wysoki powoduje chwilowe załączenie stanu wysokiego na innym bloczku i ustawia się na znów na zero

Awatar użytkownika
semper fidelis
Posty: 73
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: semper fidelis » 16 gru 2014 21:45

Wystarczy ze dodasz sobie zmienna localna ktora bedzie kontrolowala Twoja strukture Case. Stan tej zmiennej mozesz zmienic na False w srodku struktury, wtedy do momentu kolejnego wywolania czyli pojawienia sie True bedzie posiadac ta wartosc.

Choc blok Elapsed time chyba wykonuje wszystko co chciales.
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...

lucasenior
Posty: 8
Rejestracja: 31 maja 2014 18:10
Wersja środowiska: LabVIEW 2010

Zapis do pliku przez określony czas podczas działającej pętl

Post autor: lucasenior » 17 gru 2014 10:27

Ok wiem o co chodzi :) Dzięki wszystkim za pomoc, temat uważam za zamknięty.

ODPOWIEDZ