Strona 1 z 1
Zapis pomiarów do pliku
: 19 paź 2014 12:51
autor: matahari
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 !
Zapis pomiarów do pliku
: 19 paź 2014 15:52
autor: bogdani
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
Re: Zapis pomiarów do pliku
: 19 paź 2014 18:37
autor: matahari
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ę.
Zapis pomiarów do pliku
: 20 paź 2014 08:55
autor: Jamal79
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??
Zapis pomiarów do pliku
: 20 paź 2014 09:24
autor: Jamal79
POnizej maly przyklad.
Tak na szybko to niejestem pewien czy przesylanie danych pomiedzy petlami poprzez "lokal varibla" jest najlepszym rozwiazaniem, Najlepszy bylby chyba notifire.
Re: Zapis pomiarów do pliku
: 20 paź 2014 11:06
autor: Grzesiek080
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.
Zapis pomiarów do pliku
: 20 paź 2014 12:23
autor: matahari
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
: 20 paź 2014 13:30
autor: matahari
Mam pytanie Jamal79, cóż to za komponent "data" aby przekazać dane do 2 pętli ?
Re: Zapis pomiarów do pliku
: 20 paź 2014 13:41
autor: Grzesiek080
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.
Re: Zapis pomiarów do pliku
: 20 paź 2014 14:21
autor: Jamal79
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.
Re: Zapis pomiarów do pliku
: 20 paź 2014 14:40
autor: matahari
w moim przypadku nie ma możliwości stworzenia local veriable.
Zapis pomiarów do pliku
: 20 paź 2014 15:04
autor: Jamal79
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.