Zapis pomiarów do pliku
Zapis pomiarów do pliku
Witam. Jestem nowy w temacie labview także proszę o małe wsparcie.
W programie zdefiniowałem sobie równanie krzywej nagrzewania, będzie ono zastąpione podczas pomiarów, pomiarami z karty pomiarowej (daq)
chciałbym aby program zapisywał pomiary do pliku, ale przez pierwsze 30 min robił to co minute, natomiast po 30 minutach co 5 min jest możliwość wykonania takiego algorytmu ? Ponieważ za bardzo nie mogę wpaść na pomysł jak to zrobić.
Z góry dziękuje za pomoc !
W programie zdefiniowałem sobie równanie krzywej nagrzewania, będzie ono zastąpione podczas pomiarów, pomiarami z karty pomiarowej (daq)
chciałbym aby program zapisywał pomiary do pliku, ale przez pierwsze 30 min robił to co minute, natomiast po 30 minutach co 5 min jest możliwość wykonania takiego algorytmu ? Ponieważ za bardzo nie mogę wpaść na pomysł jak to zrobić.
Z góry dziękuje za pomoc !
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Zapis pomiarów do pliku
Witaj
Nie wiem jak wygląda Twój aktualny program, ale możesz np. wykorzystać funkcję Elapsed Time, do odliczania czasu (60 sekund potem 300 sekund) i nie blokujesz programu jak przy wykorzystaniu funkcji Wait.
Parametry do kolejnej iteracji pętli możesz przekazywać za pomocą rejestru przesuwnego (Shift Register).
bogdani
Nie wiem jak wygląda Twój aktualny program, ale możesz np. wykorzystać funkcję Elapsed Time, do odliczania czasu (60 sekund potem 300 sekund) i nie blokujesz programu jak przy wykorzystaniu funkcji Wait.
Parametry do kolejnej iteracji pętli możesz przekazywać za pomocą rejestru przesuwnego (Shift Register).
bogdani
Re: Zapis pomiarów do pliku
Nie bardzo zrozumiałem chyba, że to ja źle wytłumaczyłem.
Program który jest poniżej jest tylko programem testowym, aby zinterpretować nagrzewanie silnika. Zamiast równania będzie podany sygnał z karty pomiarowej.
Pomiar będzie trwać ok 3 godzin. Główną ideą programu jest aby :
1. Po załączeniu przez pierwsze 30 min robił pomiar co minutę, tzn mija minuta, robi pomiar zapisuje do pliku, po następnej minucie to samo
idea tego jest taka, że pomiar będzie wykonywany na starszym komputerze gdzie może być problem z pomieszczeniem danych z całego cyklu programu.
2. Po przeminięciu 30 min, przez resztę czasu program robi pomiar co 5 min tzn co 5 min będzie zapisywać plik z danej chwili.
3. po 3 godz program się wyłącza.
Jestem nowy w tym środowisku, dopiero się uczę trochę straciłem czasu na postawieniu LabView na Linuxie, ale udało się.
Program który jest poniżej jest tylko programem testowym, aby zinterpretować nagrzewanie silnika. Zamiast równania będzie podany sygnał z karty pomiarowej.
Pomiar będzie trwać ok 3 godzin. Główną ideą programu jest aby :
1. Po załączeniu przez pierwsze 30 min robił pomiar co minutę, tzn mija minuta, robi pomiar zapisuje do pliku, po następnej minucie to samo
idea tego jest taka, że pomiar będzie wykonywany na starszym komputerze gdzie może być problem z pomieszczeniem danych z całego cyklu programu.
2. Po przeminięciu 30 min, przez resztę czasu program robi pomiar co 5 min tzn co 5 min będzie zapisywać plik z danej chwili.
3. po 3 godz program się wyłącza.
Jestem nowy w tym środowisku, dopiero się uczę trochę straciłem czasu na postawieniu LabView na Linuxie, ale udało się.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Zapis pomiarów do pliku
Aby to osiagnac musisz przerobic swoj kod. Jakbys wykorzystal podobne rozwiazanie jak ci zaproponowalem w poprzednim poscie to by bylo latwiej.
Wlacz sobie "Zarowke" i uruchom program.
Zobaczysz wizualnie jak sie wykonuje twoj kod.
W twoim przypadku, najpierw wykonujesz wszystkie obliczenia w petni, dla calych 71 minut.
Potem przesylasz te wszytkie dane z petli na wykres i zapis do pliku. Z taka architektura mozesz sobie definiowac co chcesz ale i tak zapisze ci wszystkie dane w jednym "rzucie".
Najprosciej to ujmmujac:
Musisz miec np. 2 osobne petle. Pierwsza do odczytu danych z daxa i np do wizualizacji. Kolejna do zapisu a tam warunek czasowy, po przekroczeniu 30 min. zapis co 5 min. Bo rozumiem ze dalej chcesz wyswietlac dane live na wykresie??
Wlacz sobie "Zarowke" i uruchom program.
Zobaczysz wizualnie jak sie wykonuje twoj kod.
W twoim przypadku, najpierw wykonujesz wszystkie obliczenia w petni, dla calych 71 minut.
Potem przesylasz te wszytkie dane z petli na wykres i zapis do pliku. Z taka architektura mozesz sobie definiowac co chcesz ale i tak zapisze ci wszystkie dane w jednym "rzucie".
Najprosciej to ujmmujac:
Musisz miec np. 2 osobne petle. Pierwsza do odczytu danych z daxa i np do wizualizacji. Kolejna do zapisu a tam warunek czasowy, po przekroczeniu 30 min. zapis co 5 min. Bo rozumiem ze dalej chcesz wyswietlac dane live na wykresie??
Ostatnio zmieniony 20 paź 2014 09:04 przez Jamal79, łącznie zmieniany 1 raz.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Zapis pomiarów do pliku
POnizej maly przyklad.
Tak na szybko to niejestem pewien czy przesylanie danych pomiedzy petlami poprzez "lokal varibla" jest najlepszym rozwiazaniem, Najlepszy bylby chyba notifire.
Tak na szybko to niejestem pewien czy przesylanie danych pomiedzy petlami poprzez "lokal varibla" jest najlepszym rozwiazaniem, Najlepszy bylby chyba notifire.
- Załączniki
-
- silnik2.png (118.59 KiB) Przejrzano 14729 razy
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Zapis pomiarów do pliku
Ja mam troche inny pomysł ale podoby do poprzednika.
W Tablicy 2d masz w pierwszej kolumnie czas a w drugiej co ile ma byc wykonywany pomiar.
Uzupełniasz tablice jak bedziesz chciał i program bedzie wykonywa sekwencje.
Jesli zostanie wykryte zero to program pominie wykonywanie sekwencji a w tym przypadku jest to ostatni element wiec zakonczy działanie.
W Tablicy 2d masz w pierwszej kolumnie czas a w drugiej co ile ma byc wykonywany pomiar.
Uzupełniasz tablice jak bedziesz chciał i program bedzie wykonywa sekwencje.
Jesli zostanie wykryte zero to program pominie wykonywanie sekwencji a w tym przypadku jest to ostatni element wiec zakonczy działanie.
- Załączniki
-
- Pomiary.vi
- (27.08 KiB) Pobrany 373 razy
-
- Pomiary.jpg (65.68 KiB) Przejrzano 14721 razy
Zapis pomiarów do pliku
Bardzo dziękuję za pomoc, zaraz będę przebudowywać swój program. Bardzo dziękuję Jamal79 za słuszną uwagę. Jak już powiedziałem jestem nowym użytkownikiem nie wszystko jest jeszcze dla mnie jasne, ale widzę że pomoc na forum jest jak najwyższym poziomie !
Zapis pomiarów do pliku
Mam pytanie Jamal79, cóż to za komponent "data" aby przekazać dane do 2 pętli ?
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Zapis pomiarów do pliku
Hej,
Struktura Case sluzy do pominiecia fragemtu z odliczaniem czasu. Jesli jako przerwa pomiedzy pomiarami przyjdzie wartośc zero to wtedy niepotrzebnie zostanie wyzwolony pomiar.
Chodziło o to zeby pominąc to ustawienie gdy wystąpi zero.
Oczywiscie bedzie to działało tez bez case ale trzeba jakoś zabezpieczyc sie przed wykonaniem ostaniego pomiaru ( gdy program pobierze zero).
Mozna to tez zabezpieczyc dając np sprawdzenie dwóch warunków ( czy upłynał odpowiedni czas i czy wartośc tego czasu w ustawieniach nie jest wartością 0.
Co do wyzwalania to mozesz uzyc tutaj 2 rzeczy :
1. Dodatkowa petla gdzie program za pomoca notyfiera otrzymuje powiadomienie o wykonaniu pomiaru
2. Mniej elegancki gdzie bedzie dodatkowy case w petli głównej i gdy wystąpi true to wedzie w tego case i wykona pomiar, ale gdy pomiar bedzie trwał dłuzej to wtedy nie bedziesz miał mozliwosci zatrzymania programu.
Struktura Case sluzy do pominiecia fragemtu z odliczaniem czasu. Jesli jako przerwa pomiedzy pomiarami przyjdzie wartośc zero to wtedy niepotrzebnie zostanie wyzwolony pomiar.
Chodziło o to zeby pominąc to ustawienie gdy wystąpi zero.
Oczywiscie bedzie to działało tez bez case ale trzeba jakoś zabezpieczyc sie przed wykonaniem ostaniego pomiaru ( gdy program pobierze zero).
Mozna to tez zabezpieczyc dając np sprawdzenie dwóch warunków ( czy upłynał odpowiedni czas i czy wartośc tego czasu w ustawieniach nie jest wartością 0.
Co do wyzwalania to mozesz uzyc tutaj 2 rzeczy :
1. Dodatkowa petla gdzie program za pomoca notyfiera otrzymuje powiadomienie o wykonaniu pomiaru
2. Mniej elegancki gdzie bedzie dodatkowy case w petli głównej i gdy wystąpi true to wedzie w tego case i wykona pomiar, ale gdy pomiar bedzie trwał dłuzej to wtedy nie bedziesz miał mozliwosci zatrzymania programu.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Re: Zapis pomiarów do pliku
Jest kilka sposobow aby "przeniesc" dane pomiedzy loopami musisz sie posluzyc jednym z nich. Podejrzewam, ze tobie wystarczy ten najprostrzy, choc nie do konca najlepszy.matahari pisze:Mam pytanie Jamal79, cóż to za komponent "data" aby przekazać dane do 2 pętli ?
Ja uzylem zmiennej lokalnej, (Local Variable). Alle niestety snippet automatycznie zmienil to referencje.
1. Klikasz PPM na wyniku obliczen, na czymkolwiek zreszta. (U ciebie to wartosci ktore chcesz zapisac). Wybieracz create->localVariable
2. Wklejasz to do drugiej petli i podlaczasz pod inny terminal, itd
3. W zaleznosci od potrzeb mozesz zmienic go na read/write. Ty potrzebujesz read.
Re: Zapis pomiarów do pliku
w moim przypadku nie ma możliwości stworzenia local veriable.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Zapis pomiarów do pliku
Najpierw musisz zrobic indycator na lini po przemnozeniu x70. (numeric indicator). jak chesz dodac czas do zapisu to tez indycatora na czasie w gornej petli. Dopiero z niego mozesz zrobic zmienna lokalna...
W ponizszej petli oczywiscie w warunku powinny byc wartosci obrazujace minuty w ms.
W ponizszej petli oczywiscie w warunku powinny byc wartosci obrazujace minuty w ms.