TDMS do TXT za pomoca TDMS-monitora

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.
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

TDMS do TXT za pomoca TDMS-monitora

Post autor: Harnas »

Dzien dobry:)

Zapisuje pomiary w formacie TDMS. Przegladam sobie potem te pliki za pomoca TDMS-monitora. Wykres ktory tam jest powiekszam, zeby sobie ogladnac przebieg w danym okresie czasu a nie caly pomiar. Czy moglby mi ktos powiedziec w jaki sposob zapisac do pliku tekstowego tylko to co wlasnie znajduje sie na wykresie? Udaje mi sie zapisywac do pliku txt, ale zapisuje sie caly pomiar a wycinek wykresu, ktory sobie na powiekszylem.

Pozdrawiam i dziekuje za pomoc :)
Harnas
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

TDMS do TXT za pomoca TDMS-monitora

Post autor: Pitol »

Wydaje mi się, że jedyną możliwością jest skopiowanie sobie VI odpowiedzialnego za TDMS Monitor i zmodyfikowanie go tak, aby ściągał do pliku txt aktualnie zaznaczony obszar danych. VI ten jest otwarty do modyfikacji więc nie będzie problemem dodać tam jeden przycisk Save Selected Data to TXT albo coś podobnego. Samo wyciąganie zaznaczonych danych i zapis do pliku też nie stworzy większych przeszkód (jeśli nie wiesz jak to zrobić, polecam zacząć "ćwiczyć" na pojedynczym wykresie, a nie na TDMS Monitorze). Jeśli będziesz miał problemy - pisz, będziemy interweniować ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: TDMS do TXT za pomoca TDMS-monitora

Post autor: Harnas »

Dzieki za podpowiedz. Zajmowalem sie w miedzy czasie innym programem i nie zagladalem na forum.
Tez stwierdzilem, ze najlatwiej jest wykorzystac TDMS-Monitor. Doczepilem do niego pare bloczkow, jak na screenie. Efekt jest taki, ze do pliku tekstowego zapisuje to co jest pokazane na wykresie, czyli albo caly plik TDMS albo pomiary z wybranego kanalu.

Kombinowalem troche, ale nie udalo mi sie zapisac do pliku txt tylko recznie wybrany i powiekszony wycinek wykresu. Macie jakies wskazowki ?
Mam teraz mam znowu troche luzu w pisaniu pracy dyplomowej to moge bawic w ulepszanie programu :D
Załączniki
screen_konvertTOtxt.PNG
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

TDMS do TXT za pomoca TDMS-monitora

Post autor: Pitol »

Skorzystaj z własności Waveform Graph -> XScale -> Range. Zawiera ona wartości Min i Max skali X wykresu. Na podstawie tych danych obliczasz indeks początkowy i długość nowej tablicy. Na podstawie tego wycinasz z całego wykresu wybrany przez Ciebie zakres danych. Przy obliczeniach nie zapomnij wziąć pod uwagę dt[/t], bo rozumiem, że dane są w postaci Waveform.

W razie problemów daj znać, to zamieszczę przykład, ale liczę, że dasz radę ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: TDMS do TXT za pomoca TDMS-monitora

Post autor: Harnas »

Zrobilem to w najbardziej prymitywny sposob jaki sie dalo :D
Wskazowki sie przydaly, dzieki wielkie.

Jakby kogos to interesowalo, to na screenie pokazany jest wycinek kodu odpowiadajacego za zapis tego co pokazane jest na wykresie do pliku tekstowego. Dorzucilem bloczek sprawdzajacy czy "czas" dla kazdego Sampla jest w zakresie miedzy minimum a maximum na osi X wykresu. Jezeli jest to zapisujemy, jezeli nie to nie zapisujemy.
Załączniki
screen_konvertTOtxt.PNG
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: TDMS do TXT za pomoca TDMS-monitora

Post autor: Pitol »

Świetnie, że sobie poradziłeś, ale wydaje mi się, że trochę przesadziłeś. Jeśli mnie wzrok nie myli to masz pętlę FOR w pętli FOR. Obie pętle napędzane są ilością próbek. Oznacza to, że ilość iteracji będzie wynosić n^2. Przy 10k próbek to będzie... dużo. W ogóle to nie ma sensu. Chyba, że to sensownie wytłumaczysz.

Sprawdzanie czasu jest niepotrzebne, bo skoro bierzesz min i max, to na 100% jest ok. Nie trzeba zamieniać na czas i takie tam. Wystarczy zrobić tak jak w przykładzie poniżej.

Mój przykładzik:
Wykres.gif
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Garreth
Posty: 74
Rejestracja: 28 gru 2011 14:13
Wersja środowiska: LabVIEW 2011

TDMS do TXT za pomoca TDMS-monitora

Post autor: Garreth »

Hm.. a ja bym to zrobił ciut inaczej - na wykresach mamy dostęp do kursorów, dlaczego więc nie użyć ich do określenia pozycji początkowej i końcowej fragmentu wykresu do zapisu?
Fragment ze screenshota wykorzystałem w pracy inżynierskiej, aby użytkownik mógł ustawić sobie kursory na wykresie - wszystko w jednym z eventów obsługiwanych przez program. Oczywiście widoczne na nim wyliczenia nie są istotne z punktu widzenia tego tematu, ale może komuś się kiedyś przyda taki kod:)
Obrazek
ODPOWIEDZ