Zapis diagramow do pliku

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Zapis diagramow do pliku

Post autor: Harnas »

Czesc,

mam problem, ktory wiem jak moglbym rozwiazac ale to rozwiazanie mi sie nie podoba :D
Raz dziennie pomiary (pare kanalow z czestotliwoscia 1Hz) z ostatniej doby musza byc zapisywane jako diagramy do pliku. Wiem, ze moge przez cala dobe rysowac diagram w LV a potem poprostu go eksportowac jako JPEG. Tylko, ze przez cala mase innych prozesow nie chce niepotrzebnie obciazac komputer a na te diagramy na FP same w sobie sa tez mi niepotrzebne. Szukalem jakiegos rozwiazania na necie, ale przewaznie odsylaja mnie wlasnie do eksportwania diagramu do pliku.
I tutaj moje pytanie:
czy znacie jakas sprytna metode jak to zrobic oszczedzajac zuzycie procesora i ramu ?
Myslalem, ze mozna to jakos zrobic w ramach SubVIa albo przez jakis zewnetrzny program sterowany z LV ale jak zaczne probowac to strace pare dni a niekoniecznie musi wyjsc.

Pozdrawiam wszystkich ;)
harnas

PS. Pomiary te sa tez caly czas zapisywane do pliku.
Ostatnio zmieniony 11 cze 2014 09:44 przez Harnas, łącznie zmieniany 1 raz.
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: Zapis diagramow do pliku

Post autor: TMa »

Skoro dane zapisywane są do pliku to w jakim celu na bieżąco trzymasz diagram w przetwarzaniu CPU? Może lepiej zrobić aplikację, która wyświetla na żądanie dane ze zdefiniowanego okresu czasu (w twoim przypadku domyślna wartością będzie ostatnie 24h) i na żądanie (lub automatem) zapisze w zdefiniowanej formie (format, pattern na nazwe pliku) w zdefinowane (ale konfigurowalne) miejsce :) coś w stylu TDMS Viewer.

PS. W wersji dla ambitnych można pomyśleć o rozwiązaniu sieciowym, np. https://plot.ly/
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Zapis diagramow do pliku

Post autor: Harnas »

Boje sie, ze jak mu na raz kaze wyswietlic ostatnie 24h to caly programm zwolni i sie przytnie zanim zaladuje dane. Cos w tym stylu mialem jak wlaczalem na diagramie dane z ostatnich paru sekund taktowane z czestotliwoscia ca. 15kHz.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Zapis diagramow do pliku

Post autor: Pitol »

Mam jedną propozycję, jednak zależy ona od rodzaju pomiarów, które robisz.
Jeżeli nie są to jakieś szybkozmienne przebiegi to możesz zrobić następującą rzecz:
1. Pomiary robisz tak jak robisz i zapisujesz je gdzieś (np. TDMS, czy coś)
2. W momencie, w którym chcesz wyświetlić/zapisać ten diagram ładujesz dane na wykres, ale... nie ładujesz wszystkich :)
Powiedzmy, że w ciągu dnia zbierze Ci się ~100k próbek. Wyświetlenie tego na wykresie to nieporozumienie.
Wystarczy, że zrobisz sobie funkcję, która będzie czytać np. co 100 próbek albo rzadziej i to wyświetlała na wykresie.

Robiłem kiedyś coś podobnego i działało dobrze.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis diagramow do pliku

Post autor: Jamal79 »

Mozesz otworzyc kopie tego pliku po sieci?? Nie obciazysz pomiarowego PCeta.

Uzywasz moze Diadema?? w LV masz opcje ekspotru do raportu Diademowskiego. (Niewiem ile "zrzera" to CPU i reszty.) A tam jest sporo opcji na export np do PDFu, itd...
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Zapis diagramow do pliku

Post autor: Pitol »

Problem nie leży w narzędziu, ale w liczbie danych, które mają być obrobione. Nie ma programu, który nie przytnie się przy próbie wrzucenia do pamięci 1M albo więcej próbek.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis diagramow do pliku

Post autor: Jamal79 »

Dokladnie, ale jak uzyjesz innej maszyny to niema wiekszego znaczenia czy sie przytnie czy nie...

A tak z drugiej strony to domyslam sie ze macie jakiegos rodzaju system monitorujacy prace maszyny lub maszyn. Zakladam rowniez, ze diagramy maja na celu dokumentacje tej pracy a dane sa zapisywane do analizy w razie wystapienia anomali. W takim razie chyba mozna wytuamaczyc brak kilku danych raz na dobe w ramach serwisu itd...

Wiem, ze najlepiej jakby sie udalo bez :)
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: Zapis diagramow do pliku

Post autor: TMa »

Polecam zapoznanie się z takimi zagadnieniami:
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Zapis diagramow do pliku

Post autor: Harnas »

Dzieki za pomoc! Wiedza i doswiadczenie bardziej doswiadczonych programistow jak zwykle nieoceniona!

Pitol, swietny pomysl :D Moglem sam na to wpasc :P Zaprogramuje i przetestuje.

Jamal79, nie mam w pracy Diadema i nie widac, zeby chcieli go dla mnie zamowic ;) Wiesz jak to jest. Projekt musi isc do przodu a programy zrobi sie przy okazji na koncu ;)
Twoje domysly sa jak najbardziej poprawne.
Przez cala dobe program zapisuje dane z czestotliwoscia 1Hz przy okazji obserwujac jak sie zmieniaja. W razie przekroczenia ustalonych wartosci lub naglych wachan uruchamia sie rownolegle zapisywanie wszystkich pobranych wartosci.
O polnocy program wysyla do nas maila z informacja co dzialo sie w ciagu ostatniej doby i paroma wykresami.

TMa, dzieki. Przeczytam ;)
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Zapis diagramow do pliku

Post autor: Harnas »

Takie szybkie pytanko:

Czy diagram koniecznie musi byc wyswietlany na ekranie, zeby dal sie zapisac do pliku ? Myslalem, ze jezeli go sobie w SubVIu narysuje i tam zapisze to pliku to sie uda a cos nie chodzi.
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Zapis diagramow do pliku

Post autor: Pitol »

Z tego co na szybko sprawdziłem, to faktycznie indykator musi być widoczny, żeby metoda GetImage albo ExportImage zadziałała.

Jeśli robisz to w subVI to rozwiązaniem "na szybko" będzie sprawienie, żeby się ten subVI pokazał na czas jego działania.
Prawym na subVI -> SubVI Node Setup -> i tutaj zaznaczasz "Show front panel when called" oraz "Close afterward if originally closed".

SubVI pojawi Ci się na czas działania, a jak skończy to się zamknie. Nie jest to rozwiązanie piękne, ale prawdopodobnie skuteczne ;)

Jeśli jednak Cię to nie zadowoli to będziemy szukać czegoś innego...
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: Zapis diagramow do pliku

Post autor: TMa »

Jeśli faktycznie konieczne jest otwarcie subVi to możesz użyć VI Servera
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: Zapis diagramow do pliku

Post autor: Harnas »

hej,

podlubalem sobie troche i cos tam mi na koncu wyszlo. Generalnie chcialem, zeby SubVIa mozna bylo w miare szybko i bezbolesnie zastosowac do tworzenia diagramow dla roznych danych pomiarowych. Tak jak pisaliscie docelowo bedzie sie on otwieral o polnocy, zapisywal diagram do pliku BMP i od razu zamykal. Wykorzystalem tez pomysl o zmniejszeniu ilosci punktow, ktore sie na diagramie wyswietlaja. Majac dane z ostatniej doby wystarczy jak sie co minute wyswietli pomiar na wykresie.

W moim rozwiazaniu mam 4 wykresy jeden pod drugim. Odpowiednio 2 wykresy "polozenie" i dwa "napiecia", ktore tym polozeniom odpowiadaja. Autoskalowanie czasem zyje swoim wlasnym zyciem i glupio wyglada jak na kazdym wykresie z polozenia jest inna skala. Dociagnalem pare drutow, tak ze skalowanie kazdych dwoch wykresow odpowiada max/min z danych tych dwoch sygnalow +0,5/-0,5.
Opis osi Y czytany jest z pliku pomiarowego. Nazwy w legendzie oczywiscie tez. Data w gornym prawym roku pochodzi od nazwy pliku, zmienila tylko swoj format.

Jakby kogos zainteresowal resultat to wrzucilem do zalacznika, razem z przykladowym plikiem z paru minut. W razie jakichs pomyslow, wskazowek lub krytki nie krepujcie sie.

Ps. Komentarze w programie sa po niemiecku. Mam nadzieje, ze nie odstraszy to zainteresowanych tematem.
Załączniki
Signalverlaufsdiagramm_5Plots.ctl
(15.47 KiB) Pobrany 530 razy
Signalverlaufe_4Plots.vi
(50.17 KiB) Pobrany 539 razy
20140616_145743.txt
Przykladowy plik
(83.89 KiB) Pobrany 552 razy
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

Zapis diagramow do pliku

Post autor: Jamal79 »

pewnie ze i jestesmy zainteresowani. Ale jakbys wrzucil jeszcze w starszej wersji bylo by fajnie :) LV 11(12)

PS. Sa znaczocze roznice w 13?? niewiem czy przeinstalowywac czy nie...
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: Zapis diagramow do pliku

Post autor: Harnas »

Ja sie przesiadlem w sumei niedawno z LV 2009 na 2013. Troche roznic jest, ale jakiejs kolosalnej zmiany nie odczulem.

Ten plik tekstowy w poprzednim poscie nie ma u mnie generalnie zadnego formatu, ale tutaj na forum musialem formatowanie dodac. W resultacie przy zapisywaniu do BMP wychodzi cos w stylu *.txt.bmp ;)

W zalaczniku Vi pod LV2011.

Pozdrawiam ;)
Załączniki
Signalverlaufe_4Plots_LV11.vi
(32.08 KiB) Pobrany 519 razy
ODPOWIEDZ