Omijanie zapisu przy malych wahaniach wartosci
Omijanie zapisu przy malych wahaniach wartosci
Witam,
musze przygotowac VI ktory bedzie zapisywal dane do pliku tylko wtedy kiedy sie ona zeminiaja ale z pominieciem przypadkowych wahan w jakims tam zakresie. Zapisywanie do pliku tylko przy zmianie wartosci dziala juz od dawna. Teraz przygotowalem testowy VI ktory ma przy zapisie pomijac odchyly o +-0,9 od poprzedniej wartosci i tez dziala. Problem polega na tym, ze jezeli dana wartosc bedzie rosla niezmiennie od 0 do powiedzmy 20 i zmieniala sie przy tym o mniej niz 0,9 to w gruncie rzeczy nic nie jest zapisywane bo roznica z poprzednia wartoscia jest mniejsza niz wyzej wymienione 0,9.
Docelowo podczas pomiaru wartosc bedzie rosnac do jakiejs stalej granicy i przez dluzszy czas na tej granicy sie wahac (w tym momencie zapisywanie kazdego odchylu do 0,9 jest zbedne). VI ma pomijac zapisywanie gdy wartosc przez dluzszy czas sie zmienia tylko nieznacznie. W zalaczniku moj VI.
Pozdrawiam.
musze przygotowac VI ktory bedzie zapisywal dane do pliku tylko wtedy kiedy sie ona zeminiaja ale z pominieciem przypadkowych wahan w jakims tam zakresie. Zapisywanie do pliku tylko przy zmianie wartosci dziala juz od dawna. Teraz przygotowalem testowy VI ktory ma przy zapisie pomijac odchyly o +-0,9 od poprzedniej wartosci i tez dziala. Problem polega na tym, ze jezeli dana wartosc bedzie rosla niezmiennie od 0 do powiedzmy 20 i zmieniala sie przy tym o mniej niz 0,9 to w gruncie rzeczy nic nie jest zapisywane bo roznica z poprzednia wartoscia jest mniejsza niz wyzej wymienione 0,9.
Docelowo podczas pomiaru wartosc bedzie rosnac do jakiejs stalej granicy i przez dluzszy czas na tej granicy sie wahac (w tym momencie zapisywanie kazdego odchylu do 0,9 jest zbedne). VI ma pomijac zapisywanie gdy wartosc przez dluzszy czas sie zmienia tylko nieznacznie. W zalaczniku moj VI.
Pozdrawiam.
- Załączniki
-
- Unbenannt 1.vi
- (11.24 KiB) Pobrany 313 razy
-
- Posty: 15
- Rejestracja: 17 mar 2009 19:50
- Wersja środowiska: LabVIEW 2010
- Kontakt:
Re: Omijanie zapisu przy malych wahaniach wartosci
Co powiesz na podejście:
1. Zbieramy 1 próbkę i zapisujemy jako próbkę A.
2. Zbieramy 2. próbkę, zapisujemy jako próbkę B i porównujemy, czy różnica (B-A) jest większa od 0.9
3. Zbieramy 3. próbkę, zapisujemy jako próbkę C i porównujemy, czy różnica (C-A) jest większa od 0.9
Choć w zasadzie takie podejście ograniczy problem: jeśli zmiany będą stale wynosić 0.45, to jeszcze je złapie. Spróbuję wymyślić coś lepszego, ale to nie dzisiaj. Przynajmniej problem podbiję w górę, bo wyjątkowo uniwersalny.
1. Zbieramy 1 próbkę i zapisujemy jako próbkę A.
2. Zbieramy 2. próbkę, zapisujemy jako próbkę B i porównujemy, czy różnica (B-A) jest większa od 0.9
3. Zbieramy 3. próbkę, zapisujemy jako próbkę C i porównujemy, czy różnica (C-A) jest większa od 0.9
Choć w zasadzie takie podejście ograniczy problem: jeśli zmiany będą stale wynosić 0.45, to jeszcze je złapie. Spróbuję wymyślić coś lepszego, ale to nie dzisiaj. Przynajmniej problem podbiję w górę, bo wyjątkowo uniwersalny.
Ostatnio zmieniony 15 lip 2011 22:49 przez Hruodberaht, łącznie zmieniany 1 raz.
CLAD + fotonika (czujniki światłowodowe)
- smiga
- Administrator
- Posty: 817
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Omijanie zapisu przy malych wahaniach wartosci
Nie wiem czy dokładnie zrozumiałem o co Koledze biega, ale jeżeli chcesz złapać zmianę w jakimś trendzie nawet jeżeli każda pojedyncza zmiana jest poniżej 0,9 to pokombinuj z rejestrem przesuwnym i uśrednianiem wartości z tego rejestru - przykład w załączniku (reaguje już przy zmianach co 0,4 ... 0,5)
Więcej rejestrów to mniejsza zmiana wykryta.
Więcej rejestrów to mniejsza zmiana wykryta.
- Załączniki
-
- Unbenannt 1.vi
- v2009
- (9.14 KiB) Pobrany 342 razy
Omijanie zapisu przy malych wahaniach wartosci
Zajalem sie dokladniej podanym przez Ciebie przykladem i pojawil sie pewien problem, wole sie dopytac zanim zaczne ze soba laczyc bloczki. Chodzi o to, ze w programie bedzie jednoczesnie zapisywana duza ilosc pomiarow. Stosowanie dla kazdego rejestru przesownego w glownym programie sprawia, ze wszystko przestaje byc przejrzyste. Z drugiej strony tworze subVI z podanym wyzej przykladem tez jest bez sensu z powodu petli while. Jest jakies latwiejsze wyjscie, czy ominiecie rejestru przesuwnego w glownym programie jest nie mozliwe ?
- smiga
- Administrator
- Posty: 817
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Omijanie zapisu przy malych wahaniach wartosci
Skorzystaj z funkcji bundle i unbundle (bundle by name i unbundle by name) czyli zbierz dane w jeden klaster i klaster podepnij do rejestru.
Czyli przed wejściem na rejestr z prawej strony bundlujesz, a po rejestrze z lewej unbundlujesz.
Czyli przed wejściem na rejestr z prawej strony bundlujesz, a po rejestrze z lewej unbundlujesz.
Re: Omijanie zapisu przy malych wahaniach wartosci
Witam ponownie,
testowalem podany przez smiga VI i zauwazylem, ze gdy chce ominac wahania temperatury o 1 stopnie w gore badz w dol, a jednoczesnie zapisywac temperatury tylko wtedy kiedy sie one zmieniaja program nie dziala tak jak nalezy. Wartosci nie sa zapisywane jezeli wzrastaja przykladowo od 0 do 10 po 1. Tak samo w druga strone. Jakies propozycje ?
testowalem podany przez smiga VI i zauwazylem, ze gdy chce ominac wahania temperatury o 1 stopnie w gore badz w dol, a jednoczesnie zapisywac temperatury tylko wtedy kiedy sie one zmieniaja program nie dziala tak jak nalezy. Wartosci nie sa zapisywane jezeli wzrastaja przykladowo od 0 do 10 po 1. Tak samo w druga strone. Jakies propozycje ?
- Załączniki
-
- archiwizowanie temp.vi
- (18.14 KiB) Pobrany 328 razy
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Re: Omijanie zapisu przy malych wahaniach wartosci
Może takie rozwiązanie będzie satysfakcjonujące? Zamiast porównywać obecną wartość z poprzednimi próbkami, ich średnimi i czym tam jeszcze porównuję ją z wartością ostatnio zapisaną do pliku. Dodałbym jeszcze na wszelki wypadek zapis wartości co określony czas, bez względu na to czy była zmiana wartości czy nie - skoro wartość będzie stabilna, to może się zdarzyć że przez X godzin nie będziesz miał żadnych pomiarów, padnie zasilanie i będziesz się zastanawiał co się działo przez cały ten czas.
Wyrób też sobie nawyk nie korzystania z przycisku abort do zatrzymywania programu, nawet w najprostszych aplikacjach ;)
Wyrób też sobie nawyk nie korzystania z przycisku abort do zatrzymywania programu, nawet w najprostszych aplikacjach ;)
- Załączniki
-
- Zapis po zmianie1.vi
- (12.25 KiB) Pobrany 332 razy
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Omijanie zapisu przy malych wahaniach wartosci
Przewaznie mam buttona Stop, tutaj jakos wyjatkowo inaczej dalem bo docelowo to ma byc subVI. W podanym przez Ciebie programie przy ustawienu delty na 1 zapisywana przy ciaglym wzroscie temp o 1 co druga wartosc. Moze rzeczywiscie, porownywanie z ostatnimi zapisanymi do pliku wartosciami nie jest takim zlym pomyslem. Co do zapisywania co okreslony okres czasu, masz racje. To wazne i o tym zapomnialem.
smiga, nie wiem czy zauwazyles, ale podany przez Ciebie przyklad nie rejestruje zmian w ogole jezeli wartosc wzrasta caly czas o 0,1. Chcialem, zeby pomijal wahania do gory i w dol przykladowo o te 0,1 badz wiecej (zaleznie od tego co bedzie mierzone).
smiga, nie wiem czy zauwazyles, ale podany przez Ciebie przyklad nie rejestruje zmian w ogole jezeli wartosc wzrasta caly czas o 0,1. Chcialem, zeby pomijal wahania do gory i w dol przykladowo o te 0,1 badz wiecej (zaleznie od tego co bedzie mierzone).
Ostatnio zmieniony 12 sie 2011 11:54 przez Harnas, łącznie zmieniany 1 raz.
- smiga
- Administrator
- Posty: 817
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Omijanie zapisu przy malych wahaniach wartosci
Myślę że jest to kwestia doboru "szerokości zmian" czyli wartości stałych upper limit i lower limit w bloczkach In Range oraz doboru okienka czasowego (Wait), w którym zmiany są obserwowane.Harnas pisze:
testowalem podany przez smiga VI i zauwazylem, ze gdy chce ominac wahania temperatury o 1 stopnie w gore badz w dol, a jednoczesnie zapisywac temperatury tylko wtedy kiedy sie one zmieniaja program nie dziala tak jak nalezy. Wartosci nie sa zapisywane jezeli wzrastaja przykladowo od 0 do 10 po 1. Tak samo w druga strone. Jakies propozycje ?
Oczywiście pomysł Ender'a jest OK, a sugestia dotycząca zapisywania jak najbardziej do wdrożenia.