wykonywanie operacji w ustalonych odstępach czasu

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
lotnik
Posty: 7
Rejestracja: 12 mar 2010 10:12
Wersja środowiska: LabVIEW 2009

wykonywanie operacji w ustalonych odstępach czasu

Post autor: lotnik »

Jak w temacie, jak zrobić by program rozpoczynał pomiar w odgórnie ustalonych odstępach czasu.
Np. co 0,5s ma zrobić pomiar czyli co 0,5s generowany jest sygnał na multimetr, odczytywana jest wartość i zapisywana jest do pliku (gwarantuje to że czas pomiędzy pomiarami jest mniej więcej identyczny)
Awatar użytkownika
__behemot_
Posty: 57
Rejestracja: 03 lip 2008 09:05
Wersja środowiska: LabVIEW 2009
Lokalizacja: Wrocław
Kontakt:

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: __behemot_ »

Stwórz dwa wątki, z czego jeden będzie robił akwizycję danych i przekazanie do kolejki, drugi odczytywanie danych z kolejki i przetwarzanie (tutaj zapis do pliku, najlepiej binarnego). Rozumie, że pomiar to skończona liczba próbek o znanej Tobie częstotliwości, zatem pomiar przykładowo co 0,5sec możesz wykonać załączając akwizycje co każde 0,5s wyznaczone z bloczku "Elapsed Time".
Prawdopodobnie dobrym rozwiązaniem byłaby również pętla "Timed Loop", a to musiałbyś sobie przetestować sam.
Pozdrawiam
"kobieta też człowiek, też może być"
lotnik
Posty: 7
Rejestracja: 12 mar 2010 10:12
Wersja środowiska: LabVIEW 2009

wykonywanie operacji w ustalonych odstępach czasu

Post autor: lotnik »

Wystarczy jeden wątek tu nie ma z tym problemu akurat, bardziej mnie martwi stworzenie czegoś w rodzaju wyzwalacza czasowego, działającego w odgórnie ustalonych odstępach czasu.
Awatar użytkownika
__behemot_
Posty: 57
Rejestracja: 03 lip 2008 09:05
Wersja środowiska: LabVIEW 2009
Lokalizacja: Wrocław
Kontakt:

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: __behemot_ »

Nie rozumie pytania, przecież napisałam co możesz zastosować: Elapsed Time, jak poniżej
Załączniki
data.JPG
"kobieta też człowiek, też może być"
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: jogurt_owocowy »

__behemot_ pisze:Nie rozumie pytania, przecież napisałam co możesz zastosować: Elapsed Time, jak poniżej
Łatwiej będzie użyć funkcji Wait Until Next ms Multiple...
co 0,5s generowany jest sygnał na multimetr, odczytywana jest wartość i zapisywana jest do pliku
... z wartością 500 podpiętą na wejście.
lotnik
Posty: 7
Rejestracja: 12 mar 2010 10:12
Wersja środowiska: LabVIEW 2009

wykonywanie operacji w ustalonych odstępach czasu

Post autor: lotnik »

Skłaniam się w stronę propozycji __behemot_ tylko że jak zrobić by pętla była odpalana co 0,5s wykonywała się i kończyła bądź też w przypadku kiedy się nie kończy to by była zerwana a operacja w pętli ponowiona od początku co 0,5s.
garymarlin
Posty: 7
Rejestracja: 18 lis 2009 20:05
Wersja środowiska: LabVIEW 8.0

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: garymarlin »

Ja stosuję pętlę Timed Loop, która ma wyjście Finished Late? Z moich obserwacji wynika, że ta pętla zapewnia precyzyjne sterowanie czasem wykonywania kolejnych iteracji.
lotnik
Posty: 7
Rejestracja: 12 mar 2010 10:12
Wersja środowiska: LabVIEW 2009

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: lotnik »

garymarlin: Bawię się już ładną chwilkę tą pętlą i nie chce mi za bardzo wyjść;/

Idea jest taka by ramka startowała co 0,5s nie zależnie od tego czy kończy wykonywać operacje czy też nie z Elapsed Time próbowałem ale pozwala kończyć ramce wszystko zamiast przerwać i rozpocząć od nowa wykonywanie operacji.
kapitan7
Posty: 114
Rejestracja: 31 paź 2005 00:00
Wersja środowiska: LabVIEW 8.2
Lokalizacja: Cz-wa / Wa-wa

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: kapitan7 »

Witam,

Nie za bardzo wiem jak zrozumieć problem.

Może pokaż diagram i co jest w ramce.

Czy chodzi Ci o przerwanie ramki czy pętli (tak nie za bardzo rozumiem co ma się zakończyć co 0,5s)?
Co się wykonuje podczas tych 0,5 s w ramce.

Na pierwszy rzut oka wydaje mi sie że pomysł Jogurta jest jak najbardziej ok ale nie za bardzo wiem o co chodzi z przerwaniem ramki...
kapitan7
Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

Re: wykonywanie operacji w ustalonych odstępach czasu

Post autor: coolfon »

lotnik pisze: jak zrobić by pętla była odpalana co 0,5s wykonywała się i kończyła bądź też w przypadku kiedy się nie kończy to by była zerwana a operacja w pętli ponowiona od początku co 0,5s.
Pętla może zakończyć swoje działanie jedynie w sytuacji gdy wykona się cała jej "zawartość" oraz gdy spełniony zostanie warunek zatrzymania pętli. Nie możesz zatrzymać pętli 'podczas' wykonywania jednej iteracji.
ODPOWIEDZ