Zapis pomiarów do pliku

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
matahari
Posty: 13
Rejestracja: 15 paź 2014 13:23
Wersja środowiska: LabVIEW 2014

Zapis pomiarów do pliku

Post autor: matahari » 19 paź 2014 12:51

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 !

Awatar użytkownika
bogdani
Administrator
Posty: 1311
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Has thanked: 4 times
Been thanked: 1 time
Kontakt:

Zapis pomiarów do pliku

Post autor: bogdani » 19 paź 2014 15:52

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
LabVIEW Champion, Certified LabVIEW Developer, Certified Professional Instructor
Tworzymy dedykowane rozwiązania do testów i pomiarów - www.veritech.pl

Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

matahari
Posty: 13
Rejestracja: 15 paź 2014 13:23
Wersja środowiska: LabVIEW 2014

Re: Zapis pomiarów do pliku

Post autor: matahari » 19 paź 2014 18:37

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ę.
Załączniki
labview.png

Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis pomiarów do pliku

Post autor: Jamal79 » 20 paź 2014 08:55

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??
Ostatnio zmieniony 20 paź 2014 09:04 przez Jamal79, łącznie zmieniany 1 raz.

Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis pomiarów do pliku

Post autor: Jamal79 » 20 paź 2014 09:24

POnizej maly przyklad.
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
silnik2.png (118.59 KiB) Przejrzano 6300 razy

Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Zapis pomiarów do pliku

Post autor: Grzesiek080 » 20 paź 2014 11:06

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.
Załączniki
Pomiary.vi
(27.08 KiB) Pobrany 100 razy
Pomiary.jpg
Pomiary.jpg (65.68 KiB) Przejrzano 6292 razy

matahari
Posty: 13
Rejestracja: 15 paź 2014 13:23
Wersja środowiska: LabVIEW 2014

Zapis pomiarów do pliku

Post autor: matahari » 20 paź 2014 12:23

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 !

matahari
Posty: 13
Rejestracja: 15 paź 2014 13:23
Wersja środowiska: LabVIEW 2014

Zapis pomiarów do pliku

Post autor: matahari » 20 paź 2014 13:30

Mam pytanie Jamal79, cóż to za komponent "data" aby przekazać dane do 2 pętli ?

Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Zapis pomiarów do pliku

Post autor: Grzesiek080 » 20 paź 2014 13:41

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.

Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Re: Zapis pomiarów do pliku

Post autor: Jamal79 » 20 paź 2014 14:21

matahari pisze:Mam pytanie Jamal79, cóż to za komponent "data" aby przekazać dane do 2 pętli ?
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.
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.

matahari
Posty: 13
Rejestracja: 15 paź 2014 13:23
Wersja środowiska: LabVIEW 2014

Re: Zapis pomiarów do pliku

Post autor: matahari » 20 paź 2014 14:40

w moim przypadku nie ma możliwości stworzenia local veriable.
Załączniki
123.png

Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis pomiarów do pliku

Post autor: Jamal79 » 20 paź 2014 15:04

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.

ODPOWIEDZ