Wykonywanie programu dokładnie co 5 sek.
Wykonywanie programu dokładnie co 5 sek.
Witam.
Mam taką rzecz do opanowania.
Co 5 sekund pojawia mi się napięcie i utrzymuje się przez te 5 sekund (napięcie to jest podawane na przekaźnik, który załącza diodę) . natomiast potem przez 5 sekund nie ma napięcia.Czyli można to mniej więcej zobrazować tak:
0-5sek jest napięcie
5-10sek Nie ma napięcia
10-15 sek jest napięcie
15-20sek Nie ma napięcia
No i napisałem sobie program, (trochę źle go napisałem) który co (teoretycznie) 5 sekund robi pomiar napięcia (na diodzie)
Teraz jestem poza pracą więc nie bardzo pokażę mój schemat ale jest on troszkę błędny.
Mianowicie mam tam pętlę a w środku pętli opóźnienie wynoszące 5sekund oraz program, który mierzy napięcie i zapisuje je do tabicy.
W czym tkwi problem?
Ano w tym, że po kilku tysiącach pomiarach program cały czas pokazuje brak napięcia (dlatego, że tak jakby trochę się przesuwa i zamiast mierzyć w momentach,gdy załączona jest dioda on wykonuje pomiar, gdy dioda jest wyłączona).
No bo spójrzmy. Wszystko byłoby idealnie, gdyby mój program wykonywał się dokładnie co 5sekund a tak nie jest bo:
-Czas wykonywania się programu to : a)Opóźnienie delay wynoszące 5sekund + Faktyczny czas (Który jest bardzo krótki, ale jest) wykonania pomiaru).
I czas wykonania się całego programu to nie 5000ms a np. 5000.0001
Mam nadzieję że w miarę prosto opisałem w czym tkwi mój problem ;)
Czy da się coś na to zaradzić??
Mam taką rzecz do opanowania.
Co 5 sekund pojawia mi się napięcie i utrzymuje się przez te 5 sekund (napięcie to jest podawane na przekaźnik, który załącza diodę) . natomiast potem przez 5 sekund nie ma napięcia.Czyli można to mniej więcej zobrazować tak:
0-5sek jest napięcie
5-10sek Nie ma napięcia
10-15 sek jest napięcie
15-20sek Nie ma napięcia
No i napisałem sobie program, (trochę źle go napisałem) który co (teoretycznie) 5 sekund robi pomiar napięcia (na diodzie)
Teraz jestem poza pracą więc nie bardzo pokażę mój schemat ale jest on troszkę błędny.
Mianowicie mam tam pętlę a w środku pętli opóźnienie wynoszące 5sekund oraz program, który mierzy napięcie i zapisuje je do tabicy.
W czym tkwi problem?
Ano w tym, że po kilku tysiącach pomiarach program cały czas pokazuje brak napięcia (dlatego, że tak jakby trochę się przesuwa i zamiast mierzyć w momentach,gdy załączona jest dioda on wykonuje pomiar, gdy dioda jest wyłączona).
No bo spójrzmy. Wszystko byłoby idealnie, gdyby mój program wykonywał się dokładnie co 5sekund a tak nie jest bo:
-Czas wykonywania się programu to : a)Opóźnienie delay wynoszące 5sekund + Faktyczny czas (Który jest bardzo krótki, ale jest) wykonania pomiaru).
I czas wykonania się całego programu to nie 5000ms a np. 5000.0001
Mam nadzieję że w miarę prosto opisałem w czym tkwi mój problem ;)
Czy da się coś na to zaradzić??
Re: Wykonywanie programu dokładnie co 5 sek.
Witam,
odnośnie dokładnego wykonywania się programu to na PC będzie bradzo trudno... Jaki jest cel działania programu co 5 sek? może problem da się rozwiązać w inny sposób? Pomiar nie może być wyzwalany zboczem narastającym na wejściu pomiarowym?
Pozdrawiam
B.
odnośnie dokładnego wykonywania się programu to na PC będzie bradzo trudno... Jaki jest cel działania programu co 5 sek? może problem da się rozwiązać w inny sposób? Pomiar nie może być wyzwalany zboczem narastającym na wejściu pomiarowym?
Pozdrawiam
B.

Re: Wykonywanie programu dokładnie co 5 sek.
Nie bardzo.de80 pisze:Pomiar nie może być wyzwalany zboczem narastającym na wejściu pomiarowym?
Może spróbuję jeszcze dokładniej opisać..
Mam testować przekaźniki.
Generalnie wygląda to tak. Mam dwa VI(jeden do generowania sygnału prostokątnego -czyli właśnie nim co 5 sekund na 5 sekund podaję napięcie na przekaźnik;; oraz drugi do mierzenia napięcia na układzie wykonawczym - diodzie)
Czyli teraz miałem to ustawione tak, że najpierw odpalam jedno VI i ustalam w nim częstotliwość przebiegu tak, żeby co 5 sekund się zmieniało napięcie.
Następnie uruchamiam drugi VI(do mierzenia napięcia) w tym momencie, gdy świeci mi się dioda...
No i teraz ten pierwszy program co generuje ten sygnał prostokątny dobrze utrzymuje te 5sekund.
Natomiast ten 2gi program, w którym mam delaya 5000ms to tak naprawdę wykonuje się ciut dłużej i po którymś tam tysięcznym pomiarze to mi się rozjeżdża i zamiast mierzyć mi w momencie gdy dioda jest załączona mierzy mi w momencie gdy dioda jest wyłączona.
Musiałbym w jakiś sposób pożenić te 2 programy tyko nie mam pojęcia jak

Dam może jutro schemat jak to wygląda, to może uda wam się coś mi pomóc

Wykonywanie programu dokładnie co 5 sek.
przydałby się kod z jakim masz problem, chyba powoli rozumiem o co chodzi;) a nie możesz tego w jednej aplikacji zrobić?:) sterować przekaźnikiem i mierzyć na nim napięcie? są różnego typu techniki synchronizacji działania aplikacji, możesz poczytać: http://www.viewpointusa.com/newsletter/ ... pring1.php
Pozdrawiam
Pozdrawiam

Wykonywanie programu dokładnie co 5 sek.
Jako, że działasz na Windowsie, to możesz możesz sprawdzać czas najczęściej co 1 ms. W twoim przypadku czas wykonania jednej iteracji pętli masz 5000 ms + czas na pomiary, obliczenia i zapis danych. Aby dokonywać jak najmniej modyfikacji zmień delay na 1 ms i w każdej iteracji sprawdzaj, czy upłyneło już to 5 sekund. Jeżeli upłyneło, to wykonujesz pomiar itd.
Nie będzie to na pewno dokładnie co 5 sekund, bo Windows Ci na to nie pozwala.
Jeżeli to by było możliwe, to lepszym wyjściem było by rozpoczynanie serii pomiarów na przykład w 4750 ms i kończenie go w 5250 ms. Będziesz miał całą końcówkę i na tej podstawie wybierzesz odpowiedni pomiar i dodatrkowo będziesz mógł się synchronizować do następnego pomiaru.
Nie będzie to na pewno dokładnie co 5 sekund, bo Windows Ci na to nie pozwala.
Jeżeli to by było możliwe, to lepszym wyjściem było by rozpoczynanie serii pomiarów na przykład w 4750 ms i kończenie go w 5250 ms. Będziesz miał całą końcówkę i na tej podstawie wybierzesz odpowiedni pomiar i dodatrkowo będziesz mógł się synchronizować do następnego pomiaru.

-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Wykonywanie programu dokładnie co 5 sek.
Napisz jakiego sprzetu uzywasz i jak jest mozliwosc dolacz VI'aje. Jest kilka mozliwosci na rozwiazanie twojego problemu.
Re: Wykonywanie programu dokładnie co 5 sek.
Nie wchodząc w szczegóły twojego problemu, przypomnę tzw. pętlę time'owaną (Timed Loop). Jest to wersja rozbudowana pętli While, która pozwala na m.in. dokładną kontrolę kolejnych wywołań w czasie (za pomocą Left Data Node).
Re: Wykonywanie programu dokładnie co 5 sek.
Ok.
Tak więc mam 2 VI
-Jeden generuje tylko przebieg prostokątny, który zmienia się co 5 sek(Artur)
-Drugi wykonuje pomiary co 10 sekund (Untitled) [Zapomniałem dodać jest wykonywanych 8 pomiarów napięcia metodą różnicową)
Tak więc mam 2 VI
-Jeden generuje tylko przebieg prostokątny, który zmienia się co 5 sek(Artur)
-Drugi wykonuje pomiary co 10 sekund (Untitled) [Zapomniałem dodać jest wykonywanych 8 pomiarów napięcia metodą różnicową)
- Załączniki
-
- Untitled_1.vi
- (864.32 KiB) Pobrany 475 razy
-
- artur.vi
- (118.24 KiB) Pobrany 445 razy