Gliwice, 10.06.2014
Laboratorium
Oprogramowanie Systemów Pomiarowych
Projekt: Pomiary temperatury przez sieć Ethernet z wykorzystaniem termoelementu
Skład sekcji:
1. Mateusz Mizia
2. Tomasz Pławecki
3. Paweł Wyrwas
AIR, GR TI-2
Sekcja 5
Celem projektu było stworzenie aplikacji służącej do pomiaru temperatury z wykorzystaniem termoelementu. Pomiary wykonywano poprzez sieć Ethernet.
Aplikacja została napisana w środowisko LabVIEW 2013. Do jej uruchomienia potrzebne jest LabVIEW 2013 Service Pack 1 – w wersji 13.0.1f2 (32-bit). Dodatkowo ze względu na połączenie się z bazą danych konieczne było doinstalowanie Database Connectivity Toolkit 2013.
W skład stanowiska pracy wchodzą następujące urządzenia:
Komputer PC
Konwerter RS-232 na Ethernet firmy ICP DAS, model I-7188E3D-232
Multimetr Keithley 2000
Panel zacisków wejściowych
Termoelementy
Rysunek Schemat stanowiska pomiarowego
Aplikacja służy do zdalnego pomiaru temperatury z wykorzystaniem termoelementu. Po połączeniu się z konwerterem RS-232 na Ethernet następuje pobranie wartości napięcia na podłączonym do multimetru czujniku. Pobraną wartość napięcia przelicza się na temperaturę.
Wszystkie dane procesowe są prezentowane na panelu czołowym. Dodatkowo na bieżąco wykreślany jest wykres aktualnej temperatury – obliczonej jako sumę temperatury odniesienia (otoczenia) i temperatury pochodzącej z czujnika. Opcjonalnie te dane można zapisać do bazy danych.
Rysunek Zrzut ekranu - panel czołowy
Na zaprojektowanym panelu czołowym można wyróżnić dwie sekcje: konfiguracyjną i prezentacji danych.
W sekcji konfiguracji znajdują się kontrolki przez które użytkownik wchodzi w interakcję z aplikacją:
String Control ‘IP konwertera’
Numeric Control ‘Port’
File Path Control ‘Wybór pliku .udl’
Combo Box ‘Wybór kanału’
Combo Box ‘Typu termoelementu’
Numeric Control ‘Temperatura otoczenia’
Knob ‘Częstość pomiaru’
Button ‘Pomiary’
Button ‘Zapis do bazy danych’
Button ‘Zakończ’
W sekcji prezentacji danych wyświetlane są informacje o procesie w formie
Waveform Chart ‘Wykres temperatury’
Cluster Indicator ‘Dane pomiarowe’
Etykiety widoczne przy każdej kontrolce jasno wskazują do czego dana kontrolka służy. Od strony stylu graficznego zawsze wybierano elementy z palety Silver. Cechują się gładkimi konturami i nadają aplikacji nowoczesny wygląd.
Zablokowano zmianę rozmiaru okna, wyłączono scrollbary i domyślną belkę narzędziową.
Dodano własne menu File (Exit) i Help (Show Context Help, About Us).
Wyłączono obsługę ‘X’ w prawym górnym rogu okna – zapobiega to przypadkowemu wyłączeniu się aplikacji. Aplikację można wyłączyć albo korzystając z przycisku zakończ na panelu czołowym albo z menu File > Exit.
Dla każdej kontrolki na panelu czołowym dodano pomoc podręczną – włączyć ją można wybierając z menu Help > Show Context Help.
Rysunek Schemat blokowy aplikacji
Postawione zadanie projektowe zrealizowano przy wykorzystaniu schematu programowania typu Producer-Consumer. W tym schemacie programowania zadaniem producenta jest wytworzenie produktu (danych), umieszczenie go w buforze i rozpoczęcie pracy od nowa. Konsument ma pobrać produkt z bufora i odpowiednio go przetworzyć.
Analizując schemat blokowy aplikacji można zauważyć, że składa się ona z kilku charakterystycznych części.
W części inicjalizującej zostaje nawiązane połączenie z urządzeniem pod wskazanym adresie IP na wybranych przez użytkownika porcie. Przesłane zostają komendy konfigurujące w języku SCPI – dotyczące wyboru badanego kanału i specyfiki pomiarów. Do części inicjalizującej należy również zaliczyć połączenie się z bazą danych na podstawie wskazanego przez użytkownika pliku udl.
W pętli producenta z wybraną przez użytkownika częstością zostaje wysyłane zapytanie o aktualną wartość napięcia. Uzyskana odpowiedź zostaje wysłana jako ciąg znaków w kolejce do pętli konsumenta.
Pętla konsumenta pobiera dane z bufora kolejki. Otrzymany ciąg znaków zostaje przetworzony na liczbę zmiennoprzecinkową – wartość napięcia. Znając typ podpiętego termoelementu z tego napięcia obliczana jest wartość temperatury z uwzględnieniem temperatury odniesienia (otoczenia). Ta wartość temperatury prezentowana jest na wykresie na panelu czołowym. Wszystkie dane pomiarowe zostają połączone w klaster. Opcjonalnie jeśli włączony jest zapis do bazy danych to klaster z danymi zostaje zapisany w wybranej przez użytkownika bazie.
W części finalizującej proces pomiarowy następuje zakończenie połączenia z urządzeniem pomiarowym i połączenia z bazą danych.
W projekcie wykorzystano SubVI w celu uproszczenia kodu programu:
Volt2Temp.vi - SubVI przeliczający wartość odczytanego napięcia na temperaturę w stopniach Celsjusza.
Nazwy.vi - SubVI zawierający cluster z nazwami dla danych pomiarowych. Wszystkie elementy są zerami (puste w przypadku stringów).
Korzystając z napisanego oprogramowania przeprowadzono pomiary temperatury.
Dane zapisane w bazie danych:
(od lewej: czas, pomiar napięcia, temperatura, temperatura wynikowa, temperatura odniesienia, typ termoelementu, kanał)
Uzyskany wykres: