Laboratorium wirtualne 2/Moduł 1 - ćwiczenie 1

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

wersja beta


LABORATORIUM WIRTUALNE 2

Ćwiczenie 1 - Zdalne pomiary temperatury

LW2 M1 Slajd01.png

LW2 M1 Slajd02.png Czujniki termorezystancyjne (termorezystory metalowe) są czujnikami pasywnymi. W czujnikach tych jest wykorzystywana zależność rezystywności metali od temperatury (rezystywność rośnie wraz ze wzrostem temperatury). Zatem parametrem wyjściowym tych czujników jest rezystancja. Konieczny jest zatem przetwornik pomiarowy zamieniający rezystancję na napięcie lub prąd, czyli na wielkość, którą da się zdyskretyzować.

Czujniki termistorowe (termorezystory przewodnikowe) są również czujnikami pasywnymi. Charakteryzują się one większą czułością niż termorezystorami metalowe.

Czujniki termoelektryczne (termoogniwa) należą do grupy czujników generacyjnych. W czujnikach tych jest wykorzystywane zjawisko powstawania siły termoelektrycznej o wartości zależnej od temperatury na styku dwóch różnych metali, jako wynik różnicy liczby swobodnych elektronów po obu stronach metali. Ponieważ wartość generowanej siły termoelektrycznej jest rzędu pojedynczych mV, zatem jest konieczne zastosowanie dedykowanego kondycjonera umożliwiającego wzmocnienie tego sygnału do poziomu akceptowanego przez wejścia analogowe karty pomiarowej.

W scalonych czujnikach temperatury jest wykorzystywana zależność napięcia baza-emiter tranzystora bipolarnego od temperatury (-2,1mV/°C). W strukturze tego czujnika znajdują się dwa tranzystory dobrane w parę będące właściwym czujnikiem oraz układ wzmacniający przetwarzający sygnał do wymaganej wartości napięcia wyjściowego.



LW2 M1 Slajd03.png Termorezystory metalowe są wytwarzane z czystych metali (platyna, nikiel, miedź). Platyna cechuje się małą aktywnością chemiczną, wysoką temperaturą topnienia i prawie liniową zależnością rezystancji od temperatury. Z tego powodu w precyzyjnych pomiarach temperatury znalazły zastosowanie termorezystory platynowe o oznaczeniach Pt100 i Pt1000. Występująca w oznaczeniu liczba oznacza wartość rezystancji w temperaturze 0°C. Typowym zakresem pracy termorezystorów platynowych jest temperatura –200°C ÷ +850°C. Termorezystory niklowe i miedziane mają wyższą wartość temperaturowego współczynnika rezystancji (układ pomiarowy będzie bardziej czuły), lecz charakteryzują się gorszą liniowością charakterystyki przetwarzania (R = f(T)).

LW2 M1 Slajd04.png Rezystancja termorezystora metalowego zmienia się w szerokim zakresie temperatur zgodnie z zależnością (1).

W przypadku termorezystora platynowego zależność rezystancji w funkcji temperatury z zakresie 0°C ÷ 600°C można przybliżyć wielomianem kwadratowym (2)

LW2 M1 Slajd05.png

LW2 M1 Slajd06.png Typowym układem pomiarowym dla termorezystorów metalowych jest niezrównoważony mostek Wheatstone’a. W jednej z jego gałęzi jest umieszczany czujnik. Mostek ten jest zasilony ze źródła napięcia stałego. Napięcie wyjściowe mostka jest funkcją temperatury i może ono zostać poddane przetwarzaniu analogowo-cyfrowemu. Aby dopasować parametry napięcia na wyjściu mostka do wymagań stawianych przez wejścia analogowe przetwornika analogowo-cyfrowego należy sygnał wyjściowy mostka podać na wejście różnicowego wzmacniacza pomiarowego. Bardzo istotna jest również wartość impedancji wejściowej wzmacniacza. Powinna być ona jak największa. Napięcie na wyjściu nieobciążonego mostka (przy zasilaniu dołączonym do pionowej przekątnej mostka) jest opisane zależnością (1)

LW2 M1 Slajd07.png Termistory to elementy półprzewodnikowe bezzłączowe charakteryzujące się dużymi zmianami rezystancji w funkcji temperatury. Należą do grupy czujników pasywnych. Przebieg temperaturowych zmian rezystancji jest podstawą ich podziału na termistory o dodatnim (PTC) i ujemnym (NTC) temperaturowym współczynniku rezystancji. Powszechne zastosowanie znalazły termistory typu NTC. Średnia wartość cieplnego współczynnika zmian rezystancji jest o rząd wielkości większa od wartości tego współczynnika dla termorezystorów metalowych. Charakterystyka przetwarzania termistorów NTC może być opisana następującą zależnością (1)

Typowy zakres temperatury pracy termistorów zawiera się w granicach –100°C ÷ +150°C. Wadą termistorów jest rozrzut wartości i oraz nieliniowość charakterystyki przetwarzania. Koniecznością staje się zatem jej linearyzacja. Układem pomiarowym dla termistorów może być układ niezrównoważonego mostka Wheatstone’a.

LW2 M1 Slajd08.png

LW2 M1 Slajd09.png Konieczność wykonywania pomiarów wielopunktowych i wieloparametrycznych spowodowała, iż firmy zaczęły produkować tzw. czujniki inteligentne. Czujnik inteligentny jest przetwornikiem wielkości mierzonej na cyfrowy sygnał wyjściowy. Zawiera on w swojej strukturze następujące bloki funkcjonalne:
  • Właściwy czujnik wielkości mierzonej – w przypadku pomiarów temperatury może to być para tranzystorów, w której jest wykorzystana zależność między napięciem baza-emiter (prądem kolektora), a wartością temperatury.
  • Układ pomiarowy - przetwarzający zmiany parametrów właściwego czujnika na napięcie.
  • Przetwornik analogowo-cyfrowy.
  • Pamięć RAM – służy do przechowywania: trybów i zakresów pomiarowych, wyników pomiarów, progów alarmowych.
  • Układ interfejsu szeregowego.
  • Układ sterowania.

Wśród czujników inteligentnych (oprócz czujników temperatury) znajdują się czujniki następujących wielkości: ciśnienia, naprężeń, składu chemicznego. Czujniki takie nie wymagają już zewnętrznego układu pomiarowego (kondycjonera), lecz dzięki wbudowanemu układowi interfejsu możliwe jest podłączenie ich (wielu) do komputera lub dedykowanego systemu mikroprocesorowego. Przykładowymi typami interfejsów stosowanych w czujnikach inteligentnych są: CAN, MicroLAN, RS-485. Przykładowo system interfejsu MicroLAN opracowany przez firmę Dallas Semiconductor umożliwia współpracę układu nadrzędnego (komputer PC lub mikrokontroler) aż z czujnikami wykorzystując jednoprzewodowa linię pomiarową.



LW2 M1 Slajd10.png Do realizacji tego systemu wykorzystano cyfrowe (inteligentne) czujniki temperatury o oznaczeniu DS18B20 firmy Dallas Semiconductor. Ich zakres pomiarowy wynosi –55°C ÷ +125°C. Błąd pomiaru wynosi ±0,5°C. Są one połączone z lokalnym dedykowanym systemem mikroprocesorowym za pośrednictwem interfejsu MicroLAN. System mikroprocesorowy jest wyposażony w interfejs RS-232C, przeznaczony do komunikacji z lokalnym serwerem. Opisany do tej pory system działa na zasadzie pytanie-odpowiedź. Użytkownik ustawia parametry pomiaru (numer czujnika/czujników, okres repetycji), a następnie uruchamia pomiar. Komputer (lokalny serwer) periodycznie wysyła do systemu mikroprocesorowego łańcuch znaków stanowiących polecenie pomiaru temperatury w wybranym punkcie. System mikroprocesorowy dokonuje interpretacji polecenia, wysyła do wybranego czujnika żądanie pomiaru temperatury, odczytuje i odpowiednio formatuje wynik pomiaru, a następnie wysyła go do lokalnego serwera. Lokalny serwer konwertuje dodatkowo otrzymane wyniki i zapisuje je w plikach dyskowych.

Zgromadzone dane pomiarowe są udostępniane w sieci LAN wykorzystując technologię DataSocket. W sieci LAN pracuje serwer danych, którego oprogramowanie umożliwia udostępnienie tych danych zdalnemu użytkownikowi. Alternatywnym do poprzedniego rozwiązaniem jest wyposażenie systemu mikroprocesorowego (współpracującego z czujnikami) w minimoduł ethernetowy z zaimplementowanym stosem TCP/IP oraz protokołami: HTTP, UDP, FTP. Takie rozwiązanie umożliwia udostępnianie danych pomiarowych zdalnemu użytkownikowi z pominięciem komputera PC.



LW2 M1 Slajd11.png Jedna z wersji systemu przeznaczonego do wielopunktowego pomiaru temperatury z wykorzystaniem opisanych czujników oraz komputera PC wymaga tylko zastosowania konwertera (konwertera interfejsów) RS-232C/1-Wire np. DS2480 firmy Dallas Semiconductors. Układ ten umożliwia podłączenie czujników (posiadających interfejs 1-Wire) do interfejsu RS-232C komputera PC.

W ćwiczeniu przyjęto inną wersję - do realizacji układu (systemu mikroprocesorowego) pośredniczącego pomiędzy cyfrowymi czujnikami temperatury, a komputerem PC wykorzystano 8-bitowy mikrokontroler ATmega16 firmy Atmel. Istotną cechą , która przemawiała za tym rozwiązaniem jest zdolność do pracy autonomicznej. Wybrane cechy zastosowanego mikrokontrolera:

  • Rdzeń o architekturze typu RISC.
  • Prędkość przetwarzania 16 MIPS.
  • Wbudowany sprzętowy układ mnożący.
  • Wewnętrzna pamięć programu typu flash o pojemności 16kB programowana w systemie (ISP – ang. In System Programming) za pośrednictwem szeregowego interfejsu SPI, uruchomieniowego interfejsu JTAG lub za pomocą wbudowanego programu zdalnego ładowania – boot loader.
  • Wbudowana pamięć EEPROM o pojemności 512B służąca np. do przechowywania nastaw przyrządu, stałych kalibracyjnych.
  • Wbudowana statyczna pamięć SRAM o pojemności 1kB.
  • Jeden 16 bitowy i dwa 8 bitowe układy czasowo-licznikowe.
  • Cztery kanały PWM.
  • Wbudowane następujące układy transmisji szeregowej: USART, TWI, SPI, JTAG (interfejs uruchomieniowy).
  • Zaimplementowany 8 wejściowy 10 bitowy przetwornik analogowo-cyfrowy.

Oprócz wymienionych cech należałoby wspomnieć rozbudowanych układach zerowania oraz o zaawansowanych trybach oszczędności energii. Podczas pracy autonomicznej nastawy systemu są dokonywane a pomocą mini klawiatury (pracującej w trybie przerwań), a wyniki oraz komunikaty są eksponowane na lokalnym wyświetlaczu. Natomiast podczas pracy pod kontrolą komputera PC mikrokontroler ignoruje polecenia wydawane za pomocą wspomnianej mini klawiatury. Do mikrokontrolera jest dołączony układ HIN232CP, którego zadaniem jest konwersja napięć ze standardu TTL/CMOS do standardu interfejsu RS-232C. Właściwa jednostka informacyjna jest formowana przez moduł USART zaimplementowany w strukturze mikrokontrolera. Czujniki temperatury zostały dołączone do linii PB0 mikrokontrolera. Elementarne funkcje interfejsowe (zerowanie interfejsu, zapis bajtu, odczyt bajtu) zostały zrealizowane w sposób programowy. Korzystają z nich funkcje wysokiego poziomu - funkcje komunikacyjne.



LW2 M1 Slajd12.png Przedstawiony na rysunku algorytm opisuje działanie systemu mikroprocesorowego pośredniczącego pomiędzy opisanymi wyżej cyfrowymi czujnikami temperatury, a komputerem PC (lokalnym serwerem). Po włączeniu zasilania (stan START) następuje inicjalizacja modułu transmisji szeregowej USART, inicjalizacja wyświetlacza, konfiguracja linii mikrokontrolera PB0 do której są dołączone czujniki temperatury. Następnie mikrokontroler przechodzi do programu głównego, którego działanie polega na cyklicznym odczytywaniu wartości temperatury zarejestrowanej przez kolejne czujniki oraz zapisywaniu wyników pomiarów w buforze. Po każdym odczycie n-tego czujnika, testując odpowiednie flagi jest sprawdzane, czy nadeszło pytanie/polecenie od komputera nadrzędnego (lokalnego serwera), które jest przechowywane w buforze komunikacyjnym. Jeżeli pytanie/polecenie nie nadeszło lub jest uaktywniona praca autonomiczna, mikrokontroler wysyła do kolejnego (n+1) czujnika odpowiednie komendy inicjalizuje pomiar, a następnie odczytuje wartość temperatury zarejestrowaną przez ten czujnik. W przypadki, gdy bufor komunikacyjny zawiera pytanie/polecenie, wówczas jest dokonywana jego interpretacja i podejmowana odpowiednia akcja, a następnie zostaje zainicjalizowany pomiar z następnego (n+1) czujnika. W przypadku tego systemu pytania dotyczą wartości temperatury zarejestrowanej przez k-ty czujnik. W odpowiedzi mikrokontroler dokonuje odczytu jej wartości zapisanej w buforze wyników oraz przesyła ją kanałem szeregowym do lokalnego serwera. W obu przypadkach po dojściu do ostatniego czujnika (n_max), kolejny pomiar jest wykonywany przez czujnik pierwszy.

LW2 M1 Slajd13.png Aplikacja rozpoczyna swoje działanie od skonfigurowania portu szeregowego, uruchomienia i otwarcia serwera DataSocket. Następnie użytkownik ustawia parametry pomiaru/pomiarów (numer czujnika, włączenie/wyłączenie archiwizacji wyników pomiarów, nazwa pliku wynikowego, pomiar jednokrotny/wielokrotny, okres powtarzania pomiarów). Domyślnie jest wybrany pomiar jednokrotny. W przypadku wyboru pomiaru wielokrotnego jest uruchamiany programowy generator zdarzeń – timer. Każde okresowo wygenerowane zdarzenie powoduje wywołanie funkcji odpowiedzialnej za zainicjalizowanie, i odebranie wyniku pojedynczego pomiaru. Kolejne wyniki są gromadzone w buforze wyników oraz mogą być archiwizowane w pliku dyskowym. Po zgromadzeniu zadanej ilości wyników bufor jest wysyłany do serwera DataSocket. W każdym momencie użytkownik może wyłączyć pomiar wielokrotny (zakończyć serię pomiarową) przechodząc automatycznie w tryb pomiaru jednokrotnego. W tym przypadku pomiar jest wyzwalany „manualnie”.

LW2 M1 Slajd14.png Do stworzenia oprogramowania lokalnego serwera wykorzystano środowiska LabWindows/CVI oraz LabVIEW 8. Oba te środowiska oferują narzędzia niezbędne do tworzenia rozproszonych systemów pomiarowych.

Do oprogramowania zewnętrznego systemu mikroprocesorowego wykorzystano zintegrowane środowisko (IDE – ang. Integrated Development Environment) AVR Studio 4.12 firmy Atmel. Środowisko to integruje następujące narzędzia: edytor, asembler, linker, konwerter, programowy symulator oraz moduły współpracujące z fizycznymi programatorami. Środowisko to może korzystać z zewnętrznego kompilatora języka C AVR-GCC dedykowanego dla mikrokontrolerów z rdzeniem AVR. Do fizycznego zaprogramowania wewnętrznej pamięci flash mikrokontrolera wykorzystano programator o nazwie AVRISP mkII firmy Atmel. Od strony komputera PC urządzenie to jest dołączone do interfejsu USB, a od strony programowanego mikrokontrolera do interfejsu SPI. Kolejne dwa slajdy pokazują: ogólny wygląd środowiska AVR Studio 4.12, oraz okno wyboru programatora przy pomocy którego zaprogramowano wewnętrzną pamięć flash mikrokontrolera.



LW2 M1 Slajd15.png Slajd pokazuje ogólny wygląd środowiska LabWindows/CVI, w którym stworzono oprogramowanie lokalnego serwera. Wykorzystano wbudowane funkcje obsługujące port szeregowy RS-232C oraz technologię transmisji danych w sieci lokalnej DataSocket. Technologia ta wykorzystuje protokół transmisyjny TCP.

LW2 M1 Slajd16.png Na slajdzie pokazano zasadę komunikacji między komputerem nadrzędnym (lokalnym serwerem), a systemem mikroprocesorowym współpracującym z czujnikami temperatury. Wynik pomiaru jest przesyłany do serwera w postaci znaków ASCII.
LW2 M1 Slajd17.png
LW2 M1 Slajd18.png

LW2 M1 Slajd19.png Na kolejnych dwóch slajdach pokazano: panel działającego przyrządu oraz postać pliku wynikowego. Poszczególne zarejestrowane wartości chwilowe temperatury są archiwizowane w pliku w postaci znaków ASCII.
LW2 M1 Slajd20.png