Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW
1. Zapis i odczyt sygnałów pomiarowych Do zapisu sygnałów pomiarowych najlepiej użyć bloków obsługujących format stosowany jedynie w aplikacji LabView. Pozwalają one w prosty sposób zapisać i odczytać bardzo dużą liczbę danych. Przykładem zastosowania tego typu bloków jest program zapisujący sygnał z generatora (rys. 1). Model generatora można pobrać z poprzedniego ćwiczenia. Pierwszym etapem zapisu sygnału jest otwarcie nowego pliku. Do tego celu zostały wykorzystane dwa elementy: File Dialog (menu All Functions File I/O Advanced File Functions) oraz New File (menu All Functions File I/O Advanced File Functions). Pierwszy z nich otwiera okienko dialogowe, w którym można wybrać katalog oraz wpisać nazwę pliku bez rozszerzenia. Do wejść start path i default name bloku File Dialog można podać domyślną ścieżkę i nazwę pliku. Do wejścia select mode należy dołączyć stałą (najlepiej przez opcję Create Constant) wskazującą czy otwierany plik będzie nowy czy nastąpi ponowne otwarcie już istniejącego pliku i dodanie danych. W rozpatrywanym przykładzie stała ta powinna wskazywać na nowy plik new file. Przy ponownym uruchomieniu programu istniejący już plik zostanie skasowany i utworzony od początku. Drugim blok (New File) otwiera plik z parametrami podanymi w stałej dołączonej do wejścia deny mode. Należy wybrać opcję deny read/write, co informuje, że do pliku będzie można zapisywać i z niego odczytywać. Rys. 1. Schemat programu do zapisu sygnału do pliku. Dodatkowo aby zezwolić na skasowanie i ponowne utworzenie nowego pliku należy dołączyć do wejścia overwrite tego bloku stałą logiczną true. W pętli programu znajduje się blok zapisujący dane do pliku Write File (menu All Functions File I/O). Oprócz sygnału do pliku są zapisywane również: data (blok Get Date/Time 2
String z menu All Functions Time & Dialog) i nazwa sygnału Napięcie (stała String Constant w menu All Functions String). Wszystkie trzy rodzaje danych przed wprowadzeniem do bloku Write File są łączone w klaster za pomocą bloku Bundle (menu All Functions Cluster). Po wyjściu z pętli plik jest zamykany za pomocą bloku Close File (menu All Functions File I/O). Pętla wykonuje się pięć razy. W celu zaobserwowania różnic w sygnale jest on mnożony przez numer iteracji. Na rysunku 2 jest pokazany panel programu. Rys. 2. Panel programu do zapisu sygnału do pliku. Na rysunku 3 jest przedstawiony program do odczytu danych z pliku. Dane po odczytaniu są rozkładane na składowe: datę, nazwę i sygnał za pomocą bloku Unbundle (menu All Functions Cluster). Podobnie jak w poprzednim programie plik najpierw trzeba wybrać i otworzyć. Do tego zostały użyte bloki File Dialog (menu All Functions File I/O Advanced File Functions) oraz Open File (menu All Functions File I/O Advanced File Functions). Po zakończeniu pobierania danych plik jest zamykany za pomocą bloku Close File (menu All Functions File I/O). Na rysunku 4 jest przedstawiony panel programu. 3
Rys. 3. Schemat programu do odczytu sygnału z pliku. Rys. 4. Schemat programu do odczytu sygnału z pliku. 2. Zapis wyników do pliku testowego Jeżeli zapis dotyczy wyników pomiarów lub mało licznych danych, które chcemy otworzyć niezależnie od środowiska LabView to najlepszym sposobem zapisu jest wykorzystanie pliku tekstowego. Na rysunku 5 jest pokazany program, który zapisuje do pliku amplitudy i częstotliwości sygnału. Dane pomiarowe są poprzedzone zapisem daty i czasu pomiaru oraz nazw wielkości i ich jednostek. Wartości amplitud i częstotliwości przed zapisem są konwertowane na tekst. Obsługa plików tekstowych jest prostsza niż plików w standardzie LabView. Otwarcie, zapis i zamknięcie pliku jest realizowane jednym blokiem Write Characters To File (menu All Functions File I/O). 4
Rys. 5. Schemat programu do zapisu wyników do pliku Rys. 6. Panel programu do zapisu wyników do pliku Pierwszym etapem zapisu wyników jest zapis daty pomiaru, godziny oraz nazw wielkości i jednostek. Informacje te mają być zapisane jednokrotnie przy uruchomieniu programu, dlatego realizacja tego jest wykonywana poza pętlą while. Do wejścia character string bloku Write Characters To File należy podać ciąg znaków. W tym celu wszystkie dane składowe z bloku Get Date/Time String oraz zapisane w stałych tekstowych (String Constant) należy połącz razem za pomocą bloku Concatenste Strings (menu All Functions String). Między poszczególnymi danymi można zrobić odstęp. Do tego celu służy stała Tab Constant (menu 5
All Functions String) (strzałka w prawo). Jeżeli chcemy zakończyć wpisywanie danych w jednym wierszu i przejść do następnego to należy użyć stałej End of Line Constant (menu All Functions String) (strzałki w dół i w lewo). Do bloku Write Characters To File należy podać również ścieżkę do pliku, który chcemy utworzyć lub do którego mają zostać dopisane dane. W ścieżce plik wpisujemy z rozszerzeniem txt. Dodatkowo do wejścia append to file (new file) należy dołączyć stałą logiczną False Constant jeżeli chcemy utworzyć nowy plik lub True Constant jeżeli chcemy dopisać dane do już istniejącego. Najlepiej utworzyć stałą poprzez opcję Create Constant. Po zapisaniu danych informacyjnych w pętli while następuje zapis wyników skonwertowanych jako tekst. Przy każdej iteracji pętli blok Write Characters To File otwiera plik i dopisuje nowe dane w kolejnym wierszu. Wyniki liczbowe amplitudy i częstotliwości są konwertowane na tekst za pomocą bloku Number To Fractional String (menu All Functions String String/Number Conversion). Do wejść width i precision należy podać odpowiednio jaką liczbę znaków ma mieć liczba po konwersji włącznie z przecinkiem i ile cyfr ma być po przecinku. Rys. 7. Schemat programu do odczytu wyników z pliku Rys. 8. Panel programu do odczytu wyników z pliku 6
Rys. 9. Schemat programu do zapisu wyników do pliku Rys. 10. Panel programu do zapisu wyników do pliku 7
Rys. 11. Schemat programu do odczytu wyników z pliku Rys. 11. Panel programu do odczytu wyników z pliku 3. Literatura 1. Świsulski Dariusz, Komputerowa technika pomiarowa. Oprogramowanie wirtualnych przyrządów pomiarowych w LabView, Agenda Wydawnicza PAK-u, Warszawa 2005 2. Świsulski Dariusz, Komputerowa technika pomiarowa w przykładach.. Agenda Wydawnicza PAK-u, Warszawa 2002 3. Świsulski Dariusz, Laboratorium z systemów pomiarowych.. Wydawnictwa PG, Gdańsk 1998 4. LabView Measurement Manual, National Instruments 5. Graczyk A., Gołębiowski J., Prohuń T.: Laboratorium komputerowych systemów pomiarowych, Wydawnictwo Politechniki Łódzkiej, Łódź 2004. 8