ERROR 2500 przy otwieraniu pliku *.tdms
ERROR 2500 przy otwieraniu pliku *.tdms
Witam,
Mam problem z czytaniem duzych plikow TDMS. Przy otwieraniu pliku powyzej 1GB pojawia sie blad 2500. Doczytalem sie gdzies na stronach NI, ze ma to zwiazek z duzym plikiem INDEX. Podobno juz przy zapisywaniu pliku w formacie TDMS powinienem byl ograniczyc wielkosc "buforu" czy cos w tym stylu.
Nie zmienia to faktu, ze te duze TDMSy musze przekonwerterowac to plikow TXT...a na razie nawet nie wiem je otworzyc bez generowania bledu.
Czy ktos moglby mnie wspomoc jakas rada, przykladowym VIem albo linkiem do pomocy?
Pozdrawiam
Harnas
Mam problem z czytaniem duzych plikow TDMS. Przy otwieraniu pliku powyzej 1GB pojawia sie blad 2500. Doczytalem sie gdzies na stronach NI, ze ma to zwiazek z duzym plikiem INDEX. Podobno juz przy zapisywaniu pliku w formacie TDMS powinienem byl ograniczyc wielkosc "buforu" czy cos w tym stylu.
Nie zmienia to faktu, ze te duze TDMSy musze przekonwerterowac to plikow TXT...a na razie nawet nie wiem je otworzyc bez generowania bledu.
Czy ktos moglby mnie wspomoc jakas rada, przykladowym VIem albo linkiem do pomocy?
Pozdrawiam
Harnas
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
ERROR 2500 przy otwieraniu pliku *.tdms
Jest plugin do Excela, który czyta pliki TDMS. Byćmoże będzie w stanie sobie z tym poradzić.
http://zone.ni.com/devzone/cda/epd/p/id/2944
http://zone.ni.com/devzone/cda/epd/p/id/2944
ERROR 2500 przy otwieraniu pliku *.tdms
Kiedys go instalowalem. Plugin przydatny przy mniejszych plikach. Problem w tym, ze Excel moze odtworzyc maksymalnie troche ponad 1 milion wierszy. Zapisujac z czestotliwoscia 5 kHz milion wierszy to ok 200sekund zapisu. 200 sekund to ponad 3 minuty. Moj plik TDMS zawiera kolo 10 minut
Znalazlem taki temat:
https://decibel.ni.com/content/docs/DOC-8985
Problem w tym, ze przy ladowaniu pliku TDMS o wielkosci 1,3 GB u mnie dalej pokazuje sie blad.
Znalazlem taki temat:
https://decibel.ni.com/content/docs/DOC-8985
Problem w tym, ze przy ladowaniu pliku TDMS o wielkosci 1,3 GB u mnie dalej pokazuje sie blad.
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
ERROR 2500 przy otwieraniu pliku *.tdms
A próbowałeś tego rozwiązania podanego w komentarzu?
https://decibel.ni.com/content/docs/DOC-20054
https://decibel.ni.com/content/docs/DOC-20054
ERROR 2500 przy otwieraniu pliku *.tdms
Czytalem co tam pisali.
Problemem jest samo otwarcie pliku TDMS o wielkosci 1,2GB. Zrobilem prosty VI - otwieranie TDMS -> zamykanie TDMS. Przy otwieraniu pakuje wszystko do RAMu...a jak juz wiecej zapakowac nie moze to albo wyskakuje blad 2500 - pamiec pelna, ew. LabVIEW sie wiesza.
Pracuje w VirtualBoxie z zainstalowanym Win XP i 4GB ramu.
Problemem jest samo otwarcie pliku TDMS o wielkosci 1,2GB. Zrobilem prosty VI - otwieranie TDMS -> zamykanie TDMS. Przy otwieraniu pakuje wszystko do RAMu...a jak juz wiecej zapakowac nie moze to albo wyskakuje blad 2500 - pamiec pelna, ew. LabVIEW sie wiesza.
Pracuje w VirtualBoxie z zainstalowanym Win XP i 4GB ramu.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: ERROR 2500 przy otwieraniu pliku *.tdms
W ramach luźnych pomysłów... Spróbuj użyć TDMS Defragment.
- bezimienny
- Posty: 10
- Rejestracja: 10 wrz 2013 21:31
- Wersja środowiska: LabVIEW 2012
ERROR 2500 przy otwieraniu pliku *.tdms
W ramach luźnych pomysłów... to może warto zmienić format zapisu danych!
Wiem że może to zabrzmiało banalnie ale aby podjęć decyzję trzeba wiedzieć czy opisane 1,3GB
to maksymalna wartość w projekcie?
Jeśli nie to może warto zastanowić się nad własną obsługą plików
Ja również miałem problemy z plikami wynikające z przydzielania pamięci w systemie systemu XP
Zgodnie z Helpem dopisałem do Boot.ini wartość "/3G i to pomogło doraźnie
Choć przy zapisie tak dużych plików to dostępne w LV tablice o maksymalnym rozmiarze I32
są w stanie zaadresować 2GB danych (1 Bajt na sampel).
Nie korzystam z plików TDMS choć wygodnych ale pamięciożernych.
Dla dużych plików np. rejestracji sygnału GPS stosuje się "dopisywanie danych do otwartego pliku"
A odczyt jedynie fragmentów (<1GB) z pliku np.:o rozmiarze 20 GB
Pozdrawiam
Wiem że może to zabrzmiało banalnie ale aby podjęć decyzję trzeba wiedzieć czy opisane 1,3GB
to maksymalna wartość w projekcie?
Jeśli nie to może warto zastanowić się nad własną obsługą plików
Ja również miałem problemy z plikami wynikające z przydzielania pamięci w systemie systemu XP
Zgodnie z Helpem dopisałem do Boot.ini wartość "/3G i to pomogło doraźnie
Choć przy zapisie tak dużych plików to dostępne w LV tablice o maksymalnym rozmiarze I32
są w stanie zaadresować 2GB danych (1 Bajt na sampel).
Nie korzystam z plików TDMS choć wygodnych ale pamięciożernych.
Dla dużych plików np. rejestracji sygnału GPS stosuje się "dopisywanie danych do otwartego pliku"
A odczyt jedynie fragmentów (<1GB) z pliku np.:o rozmiarze 20 GB
Pozdrawiam
-
- Posty: 96
- Rejestracja: 20 lut 2012 12:30
- Wersja środowiska: LabVIEW 2014
- Lokalizacja: Katowice / Ruda Śląska
Re: ERROR 2500 przy otwieraniu pliku *.tdms
Jestem przekonany, że coś robicie źle. Od pewnego czasu pracuję z plikiem TDMS mającym 4,67 GB. Na komputerze z 4GB pamięci RAM i 32 bitowym LabVIEW (czyli potrafi zaadresować 3,2 GB pamięci). Czyli w skrócie: nie ma fizycznej możliwości wczytania tego pliku w całości do pamięci. Mimo tego wszystko działa poprawnie. Otwarcie pliku TDMS (TDMS open) nie powoduje żadnego zauważalnego zwiększenia zużycia pamięci. Nawet otwarcie pliku TDMS File Viewerem nie robi niczego strasznego (ok. +10 MB zużycia). Plik posiada dane pogrupowane w kilka grup pomiarów zawierających po 4 kanały, każda grupa ok. 600 MB danych. Gdy przeglądając plik File Viewerem włączę opcję "Load All Values" i otworzę jedną z grup, to rzeczywiście LabVIEW zajmuje dodatkowe 600 MB pamieci. Polecenie wczytania wszystkich danych (czyli kliknięcie w korzeń drzewka struktury pliku TDMS) powoduje wyrzucenie okienka "Not enough memory to complete this operation" i wysypanie się File Viewera z błędem "Memory Full". Innymi operacjami które powodują takie zachowanie jest przykładowo odczytanie w pętli wszystkich kanałów za pomocą TDMS Read. Jednak jest to całkowicie zrozumiałe, bo świadomie każę upchnąć 4,7 GB danych w dostępne 3 GB pamieci. Natomiast jeżeli operuje sobie na jednej grupie danych na raz, wszystko działa poprawnie. Podejrzewam, że problemy mogą występować jeżeli plik TDMS ma jakiś patologicznie duży indeks (np. jeżeli był tworzony metodą Otwórz TDMS - dopisz jedną wartość - Zamknij TDMS), albo ma jakąś dziwną strukturę (jedna grupa pomiarowa? jeden ogromny kanał danych?). Jak będę miał chwilę czasu to może spróbuję zasymulować sobie jakieś takie patologiczne pliki.
Pisanie własnego systemu plików raczej odradzam - tam dopiero może być ciężko poprawnie alokować i zwalniać dane z pamięci.
Pisanie własnego systemu plików raczej odradzam - tam dopiero może być ciężko poprawnie alokować i zwalniać dane z pamięci.
- bezimienny
- Posty: 10
- Rejestracja: 10 wrz 2013 21:31
- Wersja środowiska: LabVIEW 2012
Re: ERROR 2500 przy otwieraniu pliku *.tdms
Mi się ten pomysł też nie podobał ale *tdms nie odsługuje danych typu "complex". Po za tym nie znalazłem gotowej metody przeglądania (w ruchomym oknie) 20 GB danych ciągłych danychPisanie własnego systemu plików raczej odradzam - tam dopiero może być ciężko poprawnie alokować i zwalniać dane z pamięci.
Oczywiście nie uważam, że pisanie własnej obsługi jest jedynym najlepszym rozwiązaniem - poprostu nie znalazłem gotowego ubrania więc szyję na miarę.
Co do głównego wątku to na co zwrócił uwagę użytkownik "may" może problem w tym że tak duże dane są w jedne grupie.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
ERROR 2500 przy otwieraniu pliku *.tdms
A probowales Skasowac indeksa i otworzyc plik??
Czasami pomaga, wszystkie dane sa zawarte w tdms. Index, zawiera indeksacje pomiarow, grup, jednostek i innych properytow. Po skasowaniu utworzy go na nowo, moze z lepszym skutkiem.
Czasami pomaga, wszystkie dane sa zawarte w tdms. Index, zawiera indeksacje pomiarow, grup, jednostek i innych properytow. Po skasowaniu utworzy go na nowo, moze z lepszym skutkiem.
-
- Posty: 96
- Rejestracja: 20 lut 2012 12:30
- Wersja środowiska: LabVIEW 2014
- Lokalizacja: Katowice / Ruda Śląska
ERROR 2500 przy otwieraniu pliku *.tdms
Jamal79, ten post to tak jakoś z okazji rocznicy tego wątku?
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
ERROR 2500 przy otwieraniu pliku *.tdms
hehehehe, nie musial byc jakis bot. Bo wyskoczylo mi jako nie przeczytane...
A tak przy okazji udalo sie??
A tak przy okazji udalo sie??
ERROR 2500 przy otwieraniu pliku *.tdms
ja też miałem ten temat jako nieprzeczytany... przed "wystąpnieniem" Jamal79...
no to jak jest z tymi plikami z TDMS można otworzyć/zapisć większy niż dostępna pamięć RAM? a może to kwestia pamięci podręcznej Windowsa?
no to jak jest z tymi plikami z TDMS można otworzyć/zapisć większy niż dostępna pamięć RAM? a może to kwestia pamięci podręcznej Windowsa?
Robię co lubię, lubię co robię: satysfakcja gwarantowana dla mnie i dla szefa...
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: ERROR 2500 przy otwieraniu pliku *.tdms
Jeśli pytasz o to, czy da się wczytać całość danych z 4GB pliku TDMS do 2GB pamięci, to odpowiedź brzmi: wlej 4 litry wody do 2-litrowego słoika. Pytanie podstawowe, jakie należy sobie zadać, to po co mi takie ilości danych naraz w programie? Jaką wartość niesie to, że wczytam kilkaset milionów punktów pomiarowych naraz? Zakładam przy tym, że nie pracujemy o CERN czy NASA ;)kicaj pisze: no to jak jest z tymi plikami z TDMS można otworzyć/zapisć większy niż dostępna pamięć RAM? a może to kwestia pamięci podręcznej Windowsa?
To, co się w związku z tym da zrobić, to wczytywać plik po kawałku. Da się prawdopodobnie napisać program nawet tak, żeby wczytywanie danych nie zajęło nigdy więcej niż dokładny rozmiar danych. Czyli - wczytuję 200 MB, zużycie pamięci skacze o dokładnie 200 MB. Wczytuję kolejne 200 MB, zużycie pamięci już nie skacze (bo wykorzystuję poprzednio stworzony bufor).
Re: ERROR 2500 przy otwieraniu pliku *.tdms
no chyba że masz jeszcze zapas w postaci wiaderka... czytaj pamięć wirtualna windowsa, która rozszerza pojemność RAMu...PiDi pisze: Jeśli pytasz o to, czy da się wczytać całość danych z 4GB pliku TDMS do 2GB pamięci, to odpowiedź brzmi: wlej 4 litry wody do 2-litrowego słoika.
nie wnikam w to - pytam teoretycznie. Praktycznie robie tak jak podano w przepisie wcześniej - tylko część danych, te które mnie interesują, są wczytywane. Reszta nie ruszana...PiDi pisze: Pytanie podstawowe, jakie należy sobie zadać, to po co mi takie ilości danych naraz w programie? Jaką wartość niesie to, że wczytam kilkaset milionów punktów pomiarowych naraz? Zakładam przy tym, że nie pracujemy o CERN czy NASA ;)
a propos CERN i NASA: oba to pikuś przy XFELu... ;)
pewnie się da tylko po co? zazwyczaj operuje się na stałych wielkościach, zazwyczaj osi X... czyli liczba punktów albo np. czasPiDi pisze:
To, co się w związku z tym da zrobić, to wczytywać plik po kawałku. Da się prawdopodobnie napisać program nawet tak, żeby wczytywanie danych nie zajęło nigdy więcej niż dokładny rozmiar danych. Czyli - wczytuję 200 MB, zużycie pamięci skacze o dokładnie 200 MB. Wczytuję kolejne 200 MB, zużycie pamięci już nie skacze (bo wykorzystuję poprzednio stworzony bufor).
ale to już temat na inny wątek ;)
Robię co lubię, lubię co robię: satysfakcja gwarantowana dla mnie i dla szefa...