Categories Meble i elektronika

Interfejs zarządzania termometrami konwertera 1-wire na MODBUS

Po podłączeniu konwertera kabelkiem USB (A-B) Windows wykrywa nowe urządzenie – odpowiedni sterownik dostarczany jest przez Microchip skąd wykorzystałem biblioteki USB. Po zainstalowaniu sterownika pojawia się nowy port serial:

Założenia numeracji i identyfikacji termometrów DS18B20.

Każdy termometr DS18B20 posiada swój unikalny 64-bitowy kod za pomocą którego można go zidentyfikować. Jednak na potrzeby zarządzania domem potrzebne nam jest tylko oznaczenie termometrów od 1 do 16 (to maksymalna ilość termometrów możliwa do zaadresowania moim  urządzeniem – wynika z niewielkiej ilości pamięci RAM mikroprocesora PIC18F2550 – znaczna część zajęta przez bibliotekę USB).

Użyłem prostego pomysłu numeracyjnego – nie trzymam numerów seryjnych na mikrokontrolerze, ale numer porządkowy trzymany jest na termometrze ! Każdy termometr ma do dyspozycji 3 bajty pamięci które można zaprogramować, dwa bajty alarmu – podnosi flagę alarmu gdy temperatura zostanie osiągnięta oraz bajt konfiguracji – dokładność odczytu termperatury) Ponieważ nie korzystam z mechanizmów alarmowania dwa dostępne bajty zostają wykorzystane do przechowywania numeru.

Drugi bajt przechowuje identyfikator systemu = 0xFF. Jeśli nie jest on równy 0xFF to znaczy że to nowy termometr w mojej sieci i trzeba go zaadresować. W pierwszym bajcie przechowywany jest numer porządkowy.

Gdy konwerter zostanie zresetowany lub podłączony do sieci zasilającej – najpierw odczytuje z magistrali (specjalnym algorytmem) wszystkie urządzenia 1-wire, następnie odpytuje każdego z koleji o jego numer porządkowy. Numer ten odpowiada numerowi rejestru protokołu MODBUS.

Po co to wszystko ?

Po to, aby odpowiadając sterownikowi PLC dany termometr był zawsze w tym samym rejestrze.

Konfiguracja

Wracając do interfejsu USB – po otwarciu konsoli np. przez putty lub Hyperterminal mamy w menu do wyboru opcje:

Zobacz także:  Połączenie rekuperatora ze sterownikiem PLC - tak to się robi!

Przedstawiane temperatury są w liczbach rzeczywistych – aby otrzymać właściwą temperaturę trzeba ją w systemie prezentacji podzielić przez 10.

Kolejną opcją jest skanowanie magistrali – pomocne gdy dodano nowe urzadzenie.Jeśli znaleziono nowe urządzenie 1-wire to zostaje mu przypisany identyfikator i kolejny numer porządkowy.

Opcja numer TRZY – listuje wszystkie urządzenia i ich parametry. Kolejno kolumny przedstawiają:

  1. Numer porządowy – w jakim rejestrze MODBUS znajdziemy odczyt temperatury z tego termometru
  2. Ostatnie bajty numeru seryjnego – na wszelki wypadek warto zrobic screenshota gdyby się numeracja pochrzaniła 🙂
  3. Temperatura na każdym z elementów
  4. 3 bajty konfiguracyjne – dwa pierwsze to numery porzadkowe i jeden bajt konfiguracji

Kolejną opcją jest możliwość rnumeracji urządzenia 1-wire – czyli przepisanie go do innego rejestru:

Dane 1-wire w sterowniku PLC

Gdy już ponumerujemy termometry, można je odczytać ich temperatury po MODBUS do sterownika PLC:

Jestem pasjonatką pięknych i funkcjonalnych przestrzeni – zarówno tych domowych, jak i ogrodowych. Na blogu plc-home.pl dzielę się inspiracjami dotyczącymi aranżacji wnętrz, wystroju, nowoczesnych rozwiązań dla domu oraz odnawialnych źródeł energii.

Łączę praktyczne porady z estetyką – bo wierzę, że dom powinien być miejscem nie tylko przyjaznym i wygodnym, ale też ekologicznym i oszczędnym. Piszę o tym, jak urządzić wnętrza, jak pielęgnować ogród, a także jak wprowadzać do codzienności rozwiązania OZE, które dbają zarówno o nasz komfort, jak i o środowisko.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *