iControl. System automatyki domowej. cz. 2

iControl. System automatyki domowej. cz. 2
Pobierz PDF Download icon
W swojej praktyce konstruktora-programisty kilkukrotnie podejmowałem wyzwanie skonstruowania prostego systemu sterowania i kontroli typu "inteligentny dom", wykorzystując w tym celu różne interfejsy w roli medium umożliwiającego współpracę specjalizowanych modułów. Jednym z przykładów takiego dość rozbudowanego i nowoczesnego projektu może być system intelli-Dom opublikowany na łamach Elektroniki Praktycznej 10...11/2011, który wykorzystywał specjalizowane i bardzo dobrze wyposażone moduły modemów ZigBee.

System ten, mimo nie dawał jednak pełnej elastyczności w zakresie konfigurowania sieci modułów wykonawczych, gdyż korzystał z predefiniowanej funkcjonalności tychże modułów nazywanych tam "modułami pokojowymi", a poza tym używał transmisji bezprzewodowej o ograniczonym zasięgu, realizowanej w paśmie 2,4 GHz, opartej na standardzie IEEE 802.15.4. Czas więc na projekt zaawansowany, w pełni konfigurowalny i pozbawiony poprzednich ograniczeń a dodatkowo wyposażony w ultranowoczesny interfejs użytkownika.

Rekomendacje: projekt przyda się jako baza dla rozbudowanego systemu zarządzania inteligentnym budynkiem.

Każdy, nowy, nieskonfigurowany jeszcze moduł wykonawczy co 4 sekundy wysyła pakiet danych rozgłaszając w sieci swój adres fizyczny (Slave Status = NODE_AVAILABLE). Jednocześnie sygnalizuje ten stan za pomocą dedykowanej diody LED (oznaczonej STATUS), która migocze za każdym razem, gdy przesyłany jest taki pakiet danych, czyli co około 4 sekundy.

Pakiet taki odbierany jest przez każdy moduł sterujący dołączony do sieci powodując dodanie nowego modułu wykonawczego do listy modułów przeznaczonych do skonfigurowania (moduł sterujący sprawdza za każdym razem, czy nie dodano już takiego adresu PA do listy) oraz odpowiednią sygnalizację w ramach interfejsu użytkownika GUI.

Taki moduł wykonawczy, może następnie zostać wybrany do konfiguracji (wyłącznie z poziomu jednego modułu sterującego), co skutkuje zmianą jego stanu (Slave Status = NODE_SELECTED), zaprzestaniem rozgłaszania adresu PA oraz odpowiednią sygnalizacją (dedykowana dioda LED na module wykonawczym zaczyna szybko migać). Aby go wybrać moduł sterujący wysyła następujący pakiet:


Jeśli użytkownik wybierze moduł wykonawczy z poziomu obsługiwanego modułu sterującego to sterownik ten wysyła do pozostałych modułów sterujących wiadomość by usunęły zapamiętany wcześniej moduł wykonawczy z listy swoich, jeszcze nieskonfigurowanych modułów, gdyż właśnie został on wybrany do konfiguracji. W tym celu sterownik ten przesyła następujący pakiet danych:


Po wyborze modułu wykonawczego, użytkownik może albo porzucić jego konfigurację i moduł ten znowu zacznie rozsyłać swój adres PA (i wróci do statusu Slave Status = NODE_AVAILABLE) lub też może powiązać moduł wykonawczy z modułem sterującym stając się jego "rodzicem". Aby porzucić wybór modułu wykonawczego moduł sterujący wysyła następujący pakiet:


Aby powiązać moduł wykonawczy ze sobą, moduł sterujący wysyła następujący pakiet danych, który de facto przypisuje mu unikalny adres logiczny korzystając z predefiniowanego rozkazu stosu komunikacyjnego (Slave Status = NODE_ACTIVE):


Jednocześnie bieżący moduł sterujący wysyła wiadomość do innych tego typu modułów by zapisały sobie ostatnio przydzielony adres logiczny (by nie mogły go użyć w procesie nadawania nowego LA):


Moduł sterujący może również w każdej chwili (przy użyciu interfejsu użytkownika GUI) porzucić powiązanie z modułem wykonawczym wysyłając następujący pakiet (moduł wykonawczy przejdzie wtedy do stanu Slave Status = NODE_AVAILABLE):


W takim przypadku, jeśli bieżący moduł sterujący udostępnił wcześniej swój moduł wykonawczy innym sterownikom to musi ich poinformować, że utracił z nim powiązanie (nie jest już jego "rodzicem") wysyłając następujący pakiet:


Moduł sterujący może również żądać od swojego modułu wykonawczego przesłania bieżącego statusu wysyłając do niego następujący pakiet danych:


Moduł sterujący może również, co oczywiste, zmieniać bieżący status modułu wykonawczego (sterować nim) przesyłając następujący pakiet danych:


Moduł wykonawczy wysyła swój status przesyłając następujący pakiet danych:


Taki pakiet danych odbierany jest przez moduł sterujący będący "rodzicem" modułu wykonawczego powodując odpowiednią zmianę stanu interfejsu użytkownika GUI. Gdy moduł sterujący współdzielił wcześniej ten moduł wykonawczy z innym modułem sterującym, to musi go także poinformować o zmianie stanu tego modułu (gdyż moduł wykonawczy poinformował tylko swojego "rodzica") wysyłając następujący pakiet danych (wysłaniu tego pakietu danych towarzyszy krótkie zaświecenie diody sygnalizacyjnej STATUS umieszczonej na płytce modułu wykonawczego):


Moduł sterujący, na żądanie użytkownika, może również, co napisano wcześniej, podzielić uprawnienia do sterowania powiązanym modułem wykonawczym wysyłając do innych modułów sterujących następujący pakiet danych:


Podobnie jak w przypadku rozkazu NEW_NODE pakiet taki odbierany jest przez każdy, podłączony do sieci, moduł sterujący powodując dodanie go do listy nowych modułów wykonawczych przeznaczonych do skonfigurowania (moduł sterujący sprawdza za każdym razem, czy nie dodano już takiego adresu LA do listy) oraz odpowiednią sygnalizację w ramach interfejsu użytkownika GUI.

Taki moduł wykonawczy, może następnie zostać wybrany do konfiguracji (wyłącznie z poziomu jednego modułu sterującego), lecz w odróżnieniu od scenariusza dla rozkazu NEW_NODE, do modułu tego nie są wysyłane już żadne, inne rozkazy zmieniającego jego stan, czy nadające mu nowy adres LA, bo przecież jest to już moduł skonfigurowany wcześniej przez inny sterownik.

W takim wypadku bieżący moduł sterujący przyporządkowuje wyłącznie tenże moduł wykonawczy do odpowiedniej grupy w ramach interfejsu użytkownika (do wybranego pokoju) i wysyła do innych modułów sterujących rozkaz, który nakazuje im usunąć wspomniany moduł wykonawczy z listy nowych modułów wykonawczych, gdyż właśnie został on skonfigurowany. W ramach tej czynności wysyłany jest następujący pakiet danych:


W systemie iControl skorzystaliśmy wyłącznie z jednego, predefiniowanego przez stos komunikacyjny rozkazu sterującego, przy pomocy którego możemy zdalnie nadać adres logiczny konfigurowanemu modułowi wykonawczemu (rozkaz SET_LOGICAL_ADDRESS, 0x04). Wszystkie, inne rozkazy sterujące należą do grupy rozkazów definiowanych dowolnie przez użytkownika i zostały zaimplementowane w celu zapewnienia logicznej konstrukcji całego systemu.

Co oczywiste, każdy moduł podłączony do tak skonstruowanej sieci, przed wysłaniem pakietu danych, sprawdza każdorazowo zajętość magistrali danych PLC (wykorzystując wbudowany detektor BIU), przez co wysłanie takiego pakietu danych może zająć dłuższą chwilę.

Aby wyeliminować potencjalne zjawisko zatrzymywania aplikacji modułu sterującego (w przypadku oczekiwania na rezultat transmisji) zwłaszcza, że korzysta on z graficznego interfejsu użytkownika, zastosowano odpowiednie mechanizmy wysyłania, synchronizacji i kontroli transmisji pakietów danych, o czym później.

Budowa urządzenia

Moduł wykonawczy (wyłącznik)

Rysunek 5. Schemat ideowy modułu wykonawczego systemu iControl typu wyłącznik 1-/2-biegunowy

W tym miejscu zakończę opis części poświęconej logicznej konstrukcji systemu iControl przechodząc w końcu do realizacji praktycznej. Zaczniemy od sterownika prostszego, którym jest moduł wykonawczy typu wyłącznik 1-/2-biegunowy (układ realizuje obie funkcjonalności) pokazany na rysunku 5.

To system mikroprocesorowy, którego "sercem" jest mikrokontroler ATmega8 odpowiedzialny za realizację całej, założonej funkcjonalności. Mikrokontroler ten, przy pomocy wbudowanego, sprzętowego interfejsu TWI (odpowiednik I²C) steruje pracą modemu CY8CPLC10 a dzięki wykorzystaniu przerwania zewnętrznego INT1, które to wyzwalane jest przez modem (jego wyprowadzenie HOST_INT), umożliwia odbiór i odpowiednią analizę wysyłanych pakietów danych.

ATmega8 odpowiedzialna jest również za obsługę lokalnego interfejsu wejściowego (zaciski SW1, SW2 i COM) to znaczy, obsługę dołączonego do modułu wykonawczego, typowego wyłącznika 1- lub 2-biegunowego. Jest to niezbędne, gdyż moduł wykonawczy zaprojektowano w taki sposób, aby oprócz sterowania zdalnego za pomocą magistrali PLC i modułu sterującego, zapewnić możliwość sterowania lokalnego zwykłym wyłącznikiem naściennym.

Aby zrealizować tę funkcjonalność zaprzęgnięto do pracy wbudowany w mikrokontroler Timer0, którego przerwanie od przepełnienia, generowane co 32 ms, sprawdza czy nie zmieniło się położenie lokalnego wyłącznika i w wypadku detekcji takiej zmiany inicjuje przesłanie odpowiedniego rozkazu sterującego (SEND_NODE_STATUS) do modułu sterującego, by bieżący stan pracy pokazany przy udziale jego interfejsu użytkownika tegoż modułu zgadzał się ze stanem faktycznym.

Oprócz tego, mikrokontroler steruje pracą diody LED oznaczonej STATUS, która to sygnalizuje bieżący stan pracy modułu wykonawczego, pracą dwóch stopni tranzystorowych sterujących wyjściowymi przekaźnikami dużej mocy będącymi wyjściowym interfejsem wyłącznika 1-/2-biegunowego oraz obsługuje dwie zworki oznaczone TYPE i UNBIND.

Pierwsza z nich (TYPE) decyduje o typie modułu wykonawczego, co determinuje sposób jego sterowania przez moduł sterujący oraz sposób prezentacji w ramach graficznego interfejsu użytkownika. Pozostawienie tej zworki rozwartej powoduje wybór trybu pracy w roli wyłącznika 2-biegunowego, a wtedy każdy z przekaźników wyjściowych jest sterowany niezależnie. Zwarcie zworki powoduje ustawienie trybu wyłącznik 1-biegunowego i jednoczesne sterowanie przekaźnikami mocy.

Co oczywiste, raz skonfigurowany i zalogowany do sieci moduł wykonawczy nie powinien być rekonfigurowany w ramach tego ustawienia, gdyż spowoduje to jego błędne działanie oraz nieodpowiednią reprezentację w ramach graficznego interfejsu użytkownika. Ustawienie to może być zmienione dopiero po wylogowaniu modułu z sieci a następnie wyłączeniu i ponownym jego włączeniu.

Druga ze zworek, oznaczona jako UNBIND służy do "awaryjnego", lokalnego zresetowania stanu modułu wykonawczego do stanu wyjściowego (moduł nieskonfigurowany), przy czym jej stan jest sprawdzany wyłącznie podczas włączania urządzenia, zaś potwierdzeniem zadziałania tego mechanizmu jest zaświecenie się diody STATUS na czas 0,5 sekundy. Funkcji tej można użyć na przykład w przypadku, gdybyśmy odłączyli zalogowany wcześniej i skonfigurowany moduł wykonawczy od sieci (z nadanym adresem LA) i chcieli go użyć w innej sieci.

Wtedy, ponieważ ten moduł miałby już nadany adres LA, nie zgłosiłby się automatycznie w nowej sieci i jedynym sposobem "zmuszenia" go do tej czynności byłoby sprzętowe, lokalne zresetowanie jego stanu. Niemniej jednak, nie polecam tego scenariusza postępowania, gdyż konfiguracja czy rekonfiguracja sieci powinna być procesem przemyślanym i wykonywanym z poziomu modułów sterujących.

Dla porządku, należy dodać, iż moduł wykonawczy obsługuje następujące rozkazy sterujące: SELECT_NODE, UNSELECT_NODE, SET_LOGICAL_ADDR, UNBIND_NODE, GET_NODE_STATUS i SET_NODE_STATUS. Przejdźmy, zatem do części analogowej naszego modułu wykonawczego, w konstrukcji której posłużono się schematem aplikacyjnym firmy Cypress (nota CY3274), dzięki czemu całe urządzenie spełnia wymagania norm CENELEC EN50065-1:2001 i FCC part 15.

Rysunek 6. Charakterystyka przenoszenia filtra wyjściowego sygnału FSK układu CY8CPLC10

Jak widać, zmodulowany sygnał wyjściowy układu CY8CPLC10 dostępny na wyprowadzeniu FSK_OUT wchodzi na aktywny filtr pasmowo-przepustowy 4-rzędu typu Czebyszewa, zbudowany przy użyciu wysokiej klasy, szerokopasmowych wzmacniaczy operacyjnych U3 i U4 typu LMH6639MF, by następnie trafić na wejście wzmacniacza mocy zbudowanego przy użyciu wzmacniacza operacyjnego U5 i pary komplementarnych tranzystorów mocy T2/T3. Charakterystykę przenoszenia filtra wyjściowego pokazano na rysunku 6.

Wspomniany wcześniej wzmacniacz mocy zapewnia dodatkowe wzmocnienie sygnału wyjściowego na poziomie 12 dB i, co ważne, jest zdolny do wysterowania obciążenia o niskiej impedancji, jakie to stanowi sieć zasilająca. Wyjście ze wzmacniacza mocy, poprzez kondensator C23, separujący składową stałą, wchodzi na transformator separujący wysokiej częstotliwości TR1 by następnie trafić do sieci zasilającej.

Dodatkowo, w budowie obwodu wyjściowego wykorzystano możliwość dezaktywacji końcówki mocy (w momencie, gdy układ CY8CPLC10 nie transmituje danych), a wszystko dzięki wykorzystaniu wyprowadzenia TX_DISABLE modemu. Funkcja ta ma dwojakie znaczenie: po pierwsze zmniejsza pobór mocy przez modem ze źródła zasilania, gdy modem nie transmituje żadnych danych, a pod drugie, powoduje, iż układ wyjściowy (w czasie, gdy jest nieaktywny) przechodzi w stan wysokiej impedancji nie wprowadzając tym samym dodatkowego tłumienia do użytecznego sygnału wejściowego (nie obciąża sygnału wejściowego).

Warto w tym miejscu podkreślić, iż jeśli nasz projekt nie musi spełniać wymagań wspomnianych wyżej norm, całą wyjściową część analogową można zwyczajnie pominąć. Jeśli zaś chodzi o układ wejściowy, którego zadaniem jest kondycjonowanie wejściowego sygnału sieciowego, mamy do czynienia ze znacznie prostszą aplikacją.

Wejściowy sygnał sieciowy, przez ten sam transformator separujący TR1 wprowadzany jest, poprzez rezystor R22 zapewniający odpowiednią impedancję wejściową, na filtr separujący częstotliwości niepożądane (np. częstotliwości AM) zbudowany z kondensatora C24, cewki L1 i rezystora R22, aby następnie trafić na tłumik amplitudy w postaci diody Schottky D2 (BAT54S).

Rysunek 7. Charakterystyka przenoszenia filtra wejściowego sygnału FSK układu CY8CPLC10

Dalej, za pomocą rezystorów R23 i R24, sygnał jest polaryzowany połową napięcia zasilającego (+5 V) by trafić na wejście sygnału FSK modemu CY8CPLC10 oznaczone jako FSK_IN. Charakterystykę przenoszenia wspomnianego filtra wejściowego pokazano na rysunku 7.

Dodatkowo, urządzeniu wykorzystano wyprowadzenie układu CY8CPLC10 oznaczone BIU_LED, do którego dołączono czerwoną diodę LED. Jej zadaniem jest sygnalizowanie zajętości medium transmisyjnego, czyli faktu zajęcia sieci zasilającej przez transmisję danych dokonywaną przez inny modem PLC. Kilka słów uwagi należy się również aplikacji zapewniającej zasilanie modułu wykonawczego.

Podstawowym wymaganiem odnośnie do zasilacza modułu wykonawczego była konieczność zaprojektowania najprostszego, niezawodnego i charakteryzującego się najmniejszymi wymiarami zewnętrznymi źródła napięcia zasilania, ponieważ moduł wykonawczy jest przeznaczony do zamontowania w typowej puszce podtynkowej o średnicy 60 mm (najlepiej o zwiększonej głębokości).

Muszę przyznać, iż nie było to zadanie łatwe, gdyż zastosowanie standardowego transformatora SMD, nawet miniaturowego, powodowało zwiększenie wymiarów obwodu drukowanego, co praktycznie uniemożliwiało zamontowanie płytki w puszcze. Szybko okazało się, iż jedynym sensownym rozwiązaniem jest zastosowanie specjalizowanej przetwornicy napięcia.

Ostatecznie zastosowałem specjalizowany układ scalony nieizolowanej (beztransformatorowej) przetwornicy impulsowej typu LNK305 z rodziny LinkSwitch-TN firmy Power Integrations. w jego typowej aplikacji dostarczającej napięcia zasilania 12V przy maksymalnym prądzie obciążenia 225 mA, co zapewniało spory zapas mocy. Niestety, szybko okazało się, że rozwiązanie takie przysparza wielu kłopotów.

Po pierwsze, częstotliwość pracy tej przetwornicy równa podwójnej wartości częstotliwości rezonatora kwarcowego modemu PLC (32768 Hz) wpływała na stabilność pracy oscylatora PLL zintegrowanego w układzie CY8CPLC10 powodując problemy z jego uruchomieniem i pracą interfejsu I²C. Po drugie, fakt braku izolacji galwanicznej wymuszał stosowanie zewnętrznego źródła zasilania podczas programowania mikrokontrolera w trakcie uruchamiania i testowania modułu.

Niestety, mimo wielu zalet takiego rozwiązania zmuszony byłem porzucić pierwotne rozwiązanie i poszukiwać alternatywy. W tym czasie natknąłem się na gotowe rozwiązanie firmy Myrra pod postacią izolowanej, kompletnej przetwornicy napięcia zabudowanej w typowej, niewielkiej obudowie charakterystycznej dla małych transformatorków przeznaczonych do montażu na płytkach drukowanych. Mowa o przetwornicy M47114 z szerokiej palety produktów tej firmy (serii M47000), która ma następujące parametry:

  • Napięcie wejściowe 85...265 VAC.
  • Częstotliwość napięcia wejściowego 47...440 Hz.
  • Napięcie wyjściowe 12 VDC.
  • Maksymalny prąd wyjściowy 200 mA.
  • Moc 2,4 W.
  • Sprawność 74%,.
  • Wymiary zewnętrzne takie, jakie ma najmniejszy transformator do druku - 31 mm 7 mm×26,7 mm.

Rozwiązanie to, mimo że droższe, idealnie nadaje się do wykorzystania w tej aplikacji i dlatego zostało wybrane jako alternatywa dla pierwszej koncepcji. Jako element zapewniający zasilanie układu CY8CPLC10 (+5 V) zastosowano zwykły stabilizator liniowy 78M05, gdyż pobór mocy przez modem PLC jest niewielki i straty mocy na stabilizatorze liniowym są akceptowalne i nie powodują dodatkowego nagrzewania się elementów. Tak oto powstał niewielki zasilacz, który z powodzeniem może być wykorzystywany w tego rodzaju aplikacjach.

Moduł sterujący

Rysunek 8. Schemat ideowy modułu sterującego systemu iControl

Schemat ideowy modułu sterującego pokazano na rysunku 8. Jego sercem jest zaawansowany mikrokontroler ATmega644A taktowany zewnętrznym rezonatorem kwarcowym o częstotliwości 11,0592 MHz. Mikrokontroler za pomocą wbudowanego, sprzętowego interfejsu TWI (odpowiednik I²C) steruje pracą modemu CY8CPLC10, a dzięki wykorzystaniu przerwania zewnętrznego INT0, które jest wyzwalane przez modem PLC (wyprowadzenie HOST_INT), umożliwia odbiór i odpowiednią analizę wysyłanych pakietów danych. ATmega644A jest również odpowiedzialna za obsługę graficznego interfejsu użytkownika GUI z wyświetlaczem TFT firmy Winstar typu WF35QTIBCDBC0# (sterowanego za pomocą 16-bitowej magistrali danych) ze zintegrowanym kontrolerem pojemnościowego panelu dotykowego CTP.

Dodatkowo, za pomocą przerwania zewnętrznego INT1 i interfejsu TWI mikrokontroler komunikuje się z wbudowanym w wyświetlacz TFT kontrolerem panelu dotykowego. Dzięki dużej częstotliwości taktowania mikrokontrolera oraz 16-bitowej magistrali danych wyświetlacza TFT, szybkość wczytywania z pamięci Flash mikrokontrolera obrazków stanowiących elementy graficznego interfejsu użytkownika (zajmują one większą część pamięci programu aplikacji) jest na tyle duża, iż zapewnia płynne i zgodne z założeniami działania wspomnianej platformy współpracy urządzenia z użytkownikiem.

Jakby tego było mało, i co pewnie zaskoczy wielu Czytelników, mimo niewielkiej, zdawałoby się, mocy obliczeniowej mikrokontrolerów AVR, w implementacji interfejsu użytkownika udało się nawet zaimplementować mechanizmy zapewniające uzyskanie przeźroczystości obiektów (dokładnie okna opcji modułu wykonawczego), co czyni sam interfejs jeszcze bardziej atrakcyjnym i nowoczesnym.

Mikrokontroler jest zasilany napięciem +3,3 V (z uwagi na napięcie zasilania panelu TFT), zaś układ CY8CPLC10, napięciem +5 V, niezbędnym stał się odpowiedni, dwukierunkowy translator poziomu napięcia zbudowany przy użyciu tranzystorów T1 i T2. Ponadto, mikrokontroler steruje pracą buzzera piezoelektrycznego, który sygnalizuje fakt naciśnięcia panelu dotykowego.

Jako opcję alternatywną, można zastosować silniczek elektryczny o specjalnej konstrukcji (tzw. vibra znana z telefonów komórkowych) i dołączyć go do złącza VIBRA, dający wrażenie wciskania rzeczywistego przycisku mechanicznego dzięki generowaniu wibracji.

Tor analogowej transmisji FSK nie różni się on od tego, który zastosowano w module wykonawczym i dlatego nie będę powtarzał przytoczonych wcześniej założeń dotyczących jego budowy. Zupełnie inaczej mają się sprawy, jeśli chodzi o aplikację zasilacza modułu sterującego, ponieważ ten moduł wymaga kilku napięć zasilających:

  • +3,3 V do zasilania mikrokontrolera i panelu TFT.
  • +5 V do zasilania modemu CY8CPLC10.
  • +12 V do zasilania aplikacji kondycjonującej sygnał wejściowy/wyjściowy modemu PLC.

Ponieważ moje doświadczenie w zakresie projektowania zaawansowanych, impulsowych przetwornic w układach zasilania jest - mówiąc oględnie - niewystarczające, zdałem się na aplikację firmy Feryster (w zakresie napięć 5 i 12 V), która udostępnia projekty skomplikowanych układów zasilania o dowolnej konfiguracji. W ten sposób powstał projekt zasilacza pokazany na rysunku 8.

Zasilacz ten wykorzystuje specjalizowany układ scalony przeznaczony do budowy wysokosprawnych przetwornic impulsowych typu TNY274PN z rodziny TinySwitch-III firmy Power Integrations. Tym razem do czynienia mamy ze znacznie bardziej skomplikowaną aplikacją, tak naprawdę wygenerowaną przy udziale doskonałego narzędzia PI Expert Design Software.

Zastosowano rozwiązanie z separacją galwaniczną przy udziale specjalnej konstrukcji transformatora impulsowego wysokiej częstotliwości TR1 (firmy Feryster) i transoptora OK1. Wspomniany zasilacz dostarcza napięć +12 V i +7 V. Napięcie +5V uzyskujemy poprzez zastosowanie typowej aplikacji, liniowego stabilizatora 78M05, zaś napięcie +3,3 V uzyskujemy z +12 V przy użyciu przetwornicy impulsowej zbudowanej na podstawie standardowej aplikacji układu APE1723Y5-HF-3TR firmy Advanced Power Electronics Corp.

Dzięki temu uzyskano wysoką sprawność układu i małe straty mocy przy zachowaniu wymagań dotyczących prądu obciążenia. Dzięki takiej konstrukcji bloku zasilania, zasilacz zajął niewielką część obwodu drukowanego modułu sterującego, mieszcząc się częściowo pod modułem wyświetlacza TFT. Ma przy tym bardzo wysoką sprawność (elementy nie wydzielają w ogóle niekorzystnego ciepła) i niski koszt budowy.

Oprogramowanie modułu sterującego

Rysunek 9. Przykładowy ekran główny systemu iControl

Moduł sterujący może obsługiwać do 64 modułów wykonawczych nadając im unikalne adresy logiczne w procesie konfiguracji sieci. Moduły te, mogą z kolei zostać podzielone na maksymalnie 8 grup reprezentujących pomieszczenia, w jakich zostały one zamontowane. Wszystkie informacje dotyczące zarówno samych modułów wykonawczych jak i utworzonych grup przechowywane są w nieulotnej pamięci mikrokontrolera typu EEPROM w postaci struktur danych, które pokazano na listingu 10.

Informacje te wczytywane są do pamięci RAM przez program obsługi aplikacji na samym początku programu obsługi (i według potrzeby aktualizowane później) i wykorzystywane następnie przez funkcje zapewniające obsługę graficznego interfejsu użytkownika GUI. Ponadto, przewidziano dodatkową strukturę danych (listing 11), której zadaniem jest przechowywanie parametrów nowych, jeszcze nieskonfigurowanych modułów wykonawczych, które zgłosiły fakt podłączenia do sieci poprzez cykliczne rozgłaszanie swojego adresu PA.

Zarejestrowanie przynajmniej jednego, nowego i jeszcze nieskonfigurowanego modułu wykonawczego powoduje pojawienie się na ekranie graficznego interfejsu użytkownika ikonki  i daje możliwość jego późniejszej konfiguracji tj. nadania mu unikalnej nazwy i przyporządkowania do jednej z utworzonych wcześniej grup modułów (pokojów).

Co ważne, program obsługi aplikacji na samym początku sprawdza stan konfiguracji grup modułów wykonawczych i w przypadku, gdy nie została jeszcze zdefiniowana żadna grupa (nie uczyniono jej aktywną i nie nadano nazwy) nie pozwala na przejście do ekranu głównego aplikacji. Aby przybliżyć nieco ideę funkcjonowania graficznego interfejsu użytkownika systemu iControl nie sposób nie opisać kluczowych elementów i ekranów tego interfejsu. Na rysunku 9 przedstawiono przykładowy ekran główny systemu iControl z wyświetlonymi wszystkimi elementami sterującymi.

Zaprojektowano estetyczny, przejrzysty, graficzny interfejs użytkownika, który na ekranie głównym pokazuje wszystkie, przyporządkowane do danej (wyświetlanej) grupy moduły wykonawcze (z ich nazwami własnymi), nazwę grupy (w prawym, dolnym rogu ekranu), liczbę zdefiniowanych grup i znacznik położenia aktualnie wyświetlanej grupy (w lewym, dolnym rogu ekranu).

Dwie ikonki  (w lewym, górnym rogu ekranu), która pojawia się w wypadku wystąpienia błędów transmisji daje dostęp do konsoli błędów systemu iControl.

Co oczywiste, graficzna reprezentacja każdego z modułów wykonawczych, jak i możliwości w zakresie jego sterowania, zależą od typu modułu wykonawczego (w tej chwili aplikacja umożliwia obsługę 3 typów modułów wykonawczych: wyłącznik 1- i 2-biegunowy oraz sensor temperatury).

Dla przykładu,: dla modułu wykonawczego typu wyłącznik 1-/2-biegunowy, każde naciśnięcie elementu symbolizującego wyłącznik (jeden lub dwa, niezależne wyłączniki w zależności od typu modułu) powoduje stosowną zmianę na ekranie modułu sterującego jak i zmianę stanu pracy tegoż modułu wykonawczego, zaś dla modułu wykonawczego typu sensor temperatury nie powoduje żadnej akcji ani po stronie modułu sterującego, ani też po stronie modułu wykonawczego (gdyż moduł ten cyklicznie i samodzielnie wysyła bieżący pomiar temperatury do modułu sterującego).

Rysunek 10. Ekran konfiguracji modułu sterującego systemu iControl

Naciśnięcie pola opcji na wybranym module wykonawczym (symbol "krzyżyka" w prawym, górnym rogu pola modułu wykonawczego) powoduje wyświetlenie półprzeźroczystego okna opcji i oczekiwanie na ruch po stronie użytkownika. Dostępne są następujące opcje:

  • Share umożliwiająca współdzielenie modułu wykonawczego z innym modułem sterującym (jeśli tylko moduł ten jest "dzieckiem" bieżącego modułu sterującego).
  • Delete umożliwiająca usunięcie modułu wykonawczego z listy tychże modułów dla bieżącego modułu sterującego (i wylogowanie z sieci, jeśli bieżący moduł sterujący jest "rodzicem" usuwanego modułu wykonawczego).
  • Cancel powodująca powrót do ekranu głównego zamykając listę opcji (taka sama akcja zostanie podjęta przez moduł sterujący, gdy wybierzemy jakikolwiek inny obszar ekranu poza obszarem wyświetlonej listy opcji).

Dodatkowo, w wypadku, gdy moduł wykonawczy nie wykonał przesłanego rozkazu (gdyż został usunięty z sieci bez wylogowania lub też na skutek nieudanej transmisji PLC), aplikacja interfejsu użytkownika zasygnalizuje ten fakt poprzez zmianę barw modułu wykonawczego, co pokazano dla modułu o nazwie "Lamp" na przykładowym rysunku.

Przejdźmy, zatem do ekranu konfiguracji modułu sterującego, który pokazano na rysunku 10. Umożliwia on umożliwia aktywację/dezaktywację każdej z grup modułów wykonawczych, edycję nazwy tychże grup (poprzez wybranie pola nazwy edytowanej grupy i pod warunkiem, iż grupa ta jest aktywna - wybrano wcześniej odpowiedni checkbox) oraz umożliwia wybór adresu logicznego naszego modułu sterującego.

Adres logiczny każdego z modułów sterujących musi być unikalny w ramach jednej i tej samej sieci (z przedziału 0xF0...0xFF). Co ważne, dezaktywacja grupy możliwa jest wyłącznie wtedy, gdy do grupy tej nie przyporządkowano jeszcze żadnego modułu wykonawczego. Nie jest także możliwa dezaktywacja grupy, do której nie przyporządkowano żadnego modułu wykonawczego, ale grupa ta jest jedyną aktywną grupą w ramach modułu sterującego.

Rysunek 11. Wygląd okna przeznaczonego do edycji nazw w systemie iControl

Pole oznaczone "Vibra" służy do włączenia/wyłączenia opcji obsługi silniczka wibracyjnego symulującego efekt naciskania rzeczywistego przycisku. Zaznaczenie tego pola powoduje w rzeczywistości wydłużenie czasu wysterowania buzzera/silniczka zapewniając odpowiednie wrażenia dotykowe. Na koniec opisu tego elementu GUI warto podkreślić, że wybór edycji nazwy grupy modułów wykonawczych powoduje wyświetlenie okna przeznaczonego do edycji nazw w systemie iControl (okno to wyświetlane jest za każdym razem w przypadku wyboru edycji jakiejkolwiek nazwy), którego wygląd pokazano na rysunku 11.

To okno jest zbliżone wyglądem do rozwiązań znanych choćby z interfejsów stosowanych w telefonach komórkowych. Jak łatwo się domyślić, klawisze numeryczne służą do zmiany wartości edytowanego znaku nazwy (każdy, w ramach listy znaków zdefiniowanej dla niego), zaś klawisze oznaczone "<" i ">"służą do zmiany pozycji edytowanego znaku nazwy. Klawisz "OK" zamyka okno edycyjne i zatwierdza wprowadzone dane. Pole oznaczone symbolem "krzyżyka" (w prawym, górnym rogu okna edycyjnego) służy do zamknięcia okna edycyjnego i porzucenia zmian.

Rysunek 12. Wygląd okna edycyjnego pozwalającego na dodanie nowego modułu wykonawczego

Przejdźmy, zatem do okna edycyjnego pozwalającego na dodanie nowego modułu wykonawczego, które jest wywoływane poprzez naciśnięcie ikonki  z poziomu ekranu głównego systemu iControl, jednak tylko wtedy, gdy system zarejestrował dołączenie nowego modułu. Wygląd wspomnianego okna pokazano na rysunku 12.

Klawisze oznaczone "<" i ">"służą do zmiany numeru grupy, do jakiej przyporządkowujemy nowy moduł wykonawczy (typ tego modułu pokazany jest na "belce" informacyjnej okna), przy czym dostępna lista grup zależy od konfiguracji przeprowadzonej w ramach okna konfiguracyjnego systemu iControl (pokazywane są wyłącznie numery aktywnych grup bez ich nazw).

Wybór pola nazwy modułu wykonawczego powoduje, jak poprzednio, wyświetlenie okna przeznaczonego do edycji jego nazwy ze wspomnianym wcześniej sposobem obsługi. Klawisz "OK" służy do zamknięcia okna edycyjnego zatwierdzając tym samym dokonaną konfigurację i aktualizując ekran główny modułu sterującego (i powodując wysłanie odpowiednich komunikatów sieciowych), zaś pole oznaczone symbolem "krzyżyka" (w prawym, górnym rogu okna edycyjnego) służy do zamknięcia okna edycyjnego i porzucenia dokonanej edycji (w tym usunięcia modułu wykonawczego z listy nowych i nieskonfigurowanych modułów wykonawczych).

Rysunek 13. Wygląd okna decyzyjnego (lub informacyjnego) systemu iControl

Ostatnim rodzajem okna, z jakim na pewno spotkamy się w czasie obsługi graficznego interfejsu użytkownika systemu iControl jest okno decyzyjne (lub informacyjne) pokazane na rysunku 13. Okno takie jest wyświetlane za każdym razem, gdy użytkownik jest informowany o jakimś zdarzeniu lub gdy oczekuje się od niego podjęcia jakiejś akcji (decyzji).

Klawisz "OK" służy w tym wypadku do potwierdzenia zapytania wysłanego przez system i zamknięcia okna informacyjnego, zaś pole oznaczone symbolem "krzyżyka" (w prawym, górnym rogu okna edycyjnego) służy do zamknięcia okna informacyjnego i odrzucenia zapytania wysłanego przez system.

Ostatnim elementem graficznego interfejsu użytkownika systemu iControl jest, wspomniana wcześniej, konsola błędów, której wywołanie możliwe jest po wystąpieniu błędów transmisji sygnalizowane na ekranie głównym aplikacji i wywołaniu wspomnianej konsoli zainicjowane przyciśnięciem ikonki błędów. Wygląd konsoli błędów systemu iControl pokazano na rysunku 14.

Rysunek 14. Wygląd konsoli błędów systemu iControl z przykładową listą błędów

Należy zaznaczyć, iż wywołanie wspomnianej konsoli powoduje wyczyszczenie bieżącej listy zarejestrowanych błędów. Pozostała jeszcze jednak kwestia, nad którą zapewne zastanawia się każdy, uważny Czytelnik. W jaki sposób zmieniamy aktualnie wyświetlaną grupę modułów wykonawczych?

To proste. Wystarczy, na ekranie głównym, wykonać gest przesunięcia w lewo lub w prawo by przełączać się pomiędzy zdefiniowanymi grupami modułów wykonawczych. Prawda, że proste i intuicyjne? Co ciekawe, w tym mechanizmie, wykorzystano wbudowaną w kontroler pojemnościowego panelu dotykowego, obsługę tzw. gestów znaną chociażby z interfejsów telefonów komórkowych!

Na koniec, kilka słów na temat mechanizmu zapewniającego efektywny sposób transmisji danych na magistrali PLC. Ponieważ transmisja poprzez sieć PLC może zająć dłuższą chwilę (nawet do 3 sekund w skrajnym przypadku), bezcelowe z punktu widzenia interfejsu użytkownika byłoby oczekiwanie na rezultat jej wykonania i tym samym blokowanie programu obsługi aplikacji, w związku z tym konieczne okazało się zastosowanie efektywnego mechanizmu jej przeprowadzenia.

W niniejszym rozwiązaniu zastosowano specjalny bufor kołowy pakietów transmisji (z odpowiednimi wskaźnikami miejsca zapisu/odczytu), którego elementem jest struktura danych opisująca kompletną ramkę transmisji oraz 2 funkcje obsługi przerwań: od przepełnienia Timera1, wywoływana cyklicznie co 100ms, której zadaniem jest sprawdzanie czy są jakiekolwiek dane przeznaczone do wysłania, inicjacja procesu wysłania danych, jego nadzór i obsługa bufora kołowego oraz funkcja obsługi przerwania zewnętrznego INT0, której zadaniem jest zarówno odbiór "zwykłych" danych przesyłanych przez moduły wykonawcze do modułu sterującego jak i odbiór statusów bieżącej i zainicjowanej we wcześniej wspomnianej procedurze obsługi przerwania, transmisji danych.

W tym, drugim przypadku, funkcja obsługi przerwania zewnętrznego INT0 sprawdza status wysyłania bieżącej transmisji danych i w zależności od jego stanu modyfikuje bieżąca strukturę danych dając asumpt do ponowienia tejże transmisji (w przypadku jej niepowodzenia i nie przekroczenia maksymalnej liczby retransmisji) lub też kończąc jej przebieg poprzez ustawienie odpowiednich flag w strukturze danych (przeprowadzenia transmisji zakończonego powodzeniem lub niepowodzeniem) oraz flag dla funkcji obsługi interfejsu użytkownika, dzięki czemu użytkownik informowany jest na bieżąco o aktualnym stanie systemu (czyli odpowiedzi ze strony sterowanych modułów wykonawczych). W ten prosty sposób unika się niepożądanego wstrzymywania pracy graficznego interfejsu użytkownika w przypadku problemów z komunikacją po magistrali PLC.

Wykaz elementów

Moduł wykonawczy wyłącznika 1-/2-biegunowego

Rezystory: (SMD 0805)
R1: 20 kΩ
R2, R3: 4,7 kΩ
R4: 2,1 kΩ/1%
R5...R7, R16, R17, R19, R20: 10 kΩ
R8: 7,5 kΩ/1%
R9: 36,5 Ω/1%
R10, R13: 37,4 kΩ/1%
R11: 3,83 kΩ/1%
R12: 41,2 Ω/1%
R14, R27, R28: 1 kΩ/1%
R15: 4,99 Ω/1%
R18: 4,02 kΩ/1%
R21: 22,1 Ω/1%
R22: 2 kΩ/1%
R23, R24: 20 kΩ
R25, R26: 2.2 kΩ

Kondensatory: (SMD 0805)
C1, C2, C5, C9, C17...C20, C27: 100 nF (X7R)
C3, C4: 22 pF
C6, C10, C25: 10 nF (X7R)
C7, C11, C12, C22, C23: 1 µF (X7R)
C8, C13...C16: 1000 pF/1% (NP0)
C21: 10 µF (SMD 1206, X7R)
C24: 1,5 nF (X7R)
C26: 150 nF/300 V (polipropylenowy X1, raster 15 mm)
C28: 22 µF/10 V (tantal., SMD "A")

Półprzewodniki:
U1: ATmega8 (TQFP32)
U2: CY8CPLC10 (SSOP28)
U3...U5: LMH6639MF (SOT23-6)
U6: 78M05 (DPAK)
T1, T4, T5: BC817 (SOT23-BEC)
T2: FCX591A (SOT89-BCE)
T3: FCX491A (SOT89-BCE)
D1: SMAJ12CA (DO-214AC)
D2: BAT54S (SOT23)
D3, D4: 1N4148 (MINIMELF)
STATUS: zielona dioda LED SMD 0805
BIU: czerwona dioda LED SMD 0805

Inne:
TR1: transformator separujący SMD Murata 78250MC
L1: dławik SMD 1 mH (L1812)
PWR1: przetwornica do druku Myrra M47114
Q1: rezonator kwarcowy, zegarkowy 32768 Hz
V1: warystor V250LA4P
PK1, PK2: przekaźnik Relpol RM40-3021-85-1012

Moduł sterujący

Rezystory: (SMD 0805)
R1: 22 kΩ
R2...R6: 4,7 kΩ
R7: 2,1 kΩ/1%
R8...R10, R12, R13, R22, R23: 10 kΩ
R11: 22,1 Ω/1%
R14: 7,5 kΩ/1%
R15: 36,5 Ω/1%
R16, R19: 37,4 kΩ/1%
R17: 3,83 kΩ/1%
R18: 41,2 Ω/1%
R20, R36, R38: 1 kΩ
R21: 4,99 Ω/1%
R24: 4,02 kΩ/1%
R25, R37: 2 kΩ/1%
R26, R27: 20 kΩ
R28: 8,2 Ω/1 W (rezystor bezpiecznikowy)
R29: 9,4 MΩ (0,25 W, raster 5 mm)
R30: 130 Ω (SMD 1206)
R31: 110 Ω (SMD 1206)
R32: 1 kΩ (SMD 1206)
R33: 100 kΩ
R34: 8,2 kΩ
R35: 2,4 kΩ

Kondensatory: (SMD 0805)
C1, C2, C6, C7: 22 pF
C3...C5, C8, C10, C18, C21...C23, C39, C40, C43: 100 nF (X7R)
C9, C16, C17, C19, C20: 1000 pF/1% (NP0)
C11, C13, C28: 10 nF (X7R)
C12, C14, C15, C25, C26: 1 µF (X7R)
C24: 10 µF (X7R, SMD 1206)
C27: 1,5 nF (X7R)
C29: 150 nF/300 V (polipropylenowy X1, raster 15 mm)
C30: 1 µF/400 V (elektrolit., 8/3,5 mm)
C31: 2,2 µF/400 V (elektrolit., 8/3,5 mm)
C32, C42: 100 nF (SMD 1206, X7R)
C3: 2,2 nF/250 V (polipropylenowy X1, raster 7,5 mm)
C34: 82 pF COG (SMD 1206, X7R)
C35: 100 pF COG (SMD 1206, X7R)
C36, C38: 100 µF/16 V (elektrolit., 5/2 mm)
C37: 220 µF/16 V (elektrolit., 8/3,5 mm)
C41: 220 µF/10 V (elektrolit., 5/2 mm)

Półprzewodniki:
U1: APE1723Y5-HF-3TR (SOT23-5)
U2: TNY274PN (DIP08)
U3: ATmega644A (TQFP44)
U4: CY8CPLC10 (SSOP28)
U5...U7: LMH6639MF (SOT23-6)
U8: 78M05 (DPAK)
T1, T2: BSS138 (SOT23)
T3: FCX491A (SOT89-BCE)
T4: FCX591A (SOT89-BCE)
T5: BC817 (SOT23-BEC)
T6: BC807 (SOT23-BEC)
D1...D4: 1N4007/400 V (DO41)
D5: BZW06-154 (DO15)
D6: SUF4007 (MELF)
D7: SUF4003 (MELF)
D8: SUF4001 (MELF)
D9: ZSMD-11V (MINIMELF)
D10: SS14 (SMA)
D11: BAT54S (SOT23)
D12: SMAJ12CA (DO-214AC)
OK1: PC817 (DIL04)

Inne:
TFT: wyświetlacz TFT Winstar WF35QTIBCDBC0# ze zintegrowanym kontrolerem panelu pojemnościowego CTP (320×240px, złącze ZIFF36 pin)
TR1: transformator Feryster TI-EF12-7-12-3W
TR2: transformator separujący SMD Murata 78250MC
L1, L2: dławik mocy Feryster DSZ-6/1000/0,2-V
L3: koralik ferrytowy 1,5 µH Feryster BDW-3,5/8,9-4S2
L4: dławik mocy SMD 100 µH DE1207-100 (obudowa DE1207)
L5: dławik SMD 1 mH (obudowa L1812)
L6: dławik mocy Feryster DSZ-6/1500/0,15-V
Q1: rezonator kwarcowy 11,0592 MHz, niski
Q2: rezonator kwarcowy, zegarkowy 32768Hz
BUZ: buzzer z generatorem piezo 5 V (raster 5 mm)
EXT.PORT: gniazdo męskie kątowe 90° 4-pin (NSL25-4W)
VIBRA: gniazdo męskie kątowe 90° 2-pin (NSL25-2W)
CLEAR: microswitch SMD typu TACTM-34N-F
V1: warystor V250LA4P
AC: złącze śrubowe AK500/2
Złącze ZIF 36-pin, raster 0.5mm, dolny kontakt, np.: ZIF0536DH
Taśma FFC (Flexible Flat Cable) 36-pin, raster 0.5mm, długość minimum 10cm, np.: FFC0536150: do połączenia wyświetlacza TFT ze złączem ZIF

Montaż

Opis montażu zaczniemy od modułu wykonawczego typu wyłącznik 1-/2-biegunowy - jego schemat montażowy pokazano na rysunku 15. Zaprojektowano bardzo zwartą konstrukcję dwustronnego obwodu drukowanego, który w swoich założeniach ma być montowany w typowej puszcze elektroinstalacyjnej o średnicy 60 mm i głębokości 40 mm, przy czym należy zaznaczyć, iż z uwagi na sporą liczbę elementów i małą powierzchnię, zastosowano dość gęsty montaż elementów SMD po obu stronach laminatu.

Rysunek 15. Schemat montażowy modułu wykonawczego systemu iControl typu wyłącznik 1-/2-biegunowy.

Dla zminimalizowania zakłóceń, na płytce urządzenia poprowadzono obszerne pola masy po obu stronach obwodu drukowanego oraz zastosowano szereg przelotek pomiędzy nimi w celu zmniejszenia pojemności pasożytniczych. Z uwagi na zastosowanie niewielkich elementów SMD, montaż tego typu układu najlepiej jest przeprowadzić z użyciem stacji lutowniczej wyposażonej w grot o niewielkiej średnicy, odpowiedniej jakości topników lutowniczych oraz dysponując sporym doświadczeniem.

Jak zwykle, montaż zaczynamy od przylutowania wszystkich półprzewodników w obudowach SMD (po obu stronach laminatu), następnie lutujemy rezystory, kondensatory, elementy indukcyjne, a na samym końcu wszystkie elementy przeznaczone do montażu przewlekanego, w tym przetwornicę Myrra M47114.

Należy zaznaczyć, iż z uwagi na spore zagęszczenie elementów po obu stronach obwodu drukowanego specjalnego sposobu montażu wymaga rezonator kwarcowy podłączony do układu CY8CPLC10, co najlepiej zobrazuje zdjęcie obwodu drukowanego od strony spodu pokazane na fotografii 16.

Fotografia 16. Sposób montażu rezonatora kwarcowego podłączonego do układu CY8CPLC10

Poprawnie zmontowany układ nie wymaga żadnych regulacji i powinien działać tuż po włączeniu zasilania. Jedyną czynnością, którą należy wykonać przed użytkowaniem urządzenia jest wybranie rodzaju modułu wykonawczego, jaki ma pełnić uruchamiany układ w systemie iControl, czego dokonujemy za pomocą zworki oznaczonej TYPE (o czym była mowa wcześniej). Przejdźmy, zatem do schematu montażowego modułu sterującego, który pokazano na rysunku 17.

Tym razem, jest to dużo większy, dwustronny obwód drukowany, który swoimi wymiarami przekracza nieco wymiary zastosowanego panelu TFT i choćby z uwagi na ten fakt, można było tym razem zastosować nieco większe elementy SMD montowane wyłącznie po stronie TOP jak i większe odstępy pomiędzy nimi upraszczające nieco proces uruchamiania.

Z drugiej strony, z uwagi na fakt, iż na płytce układu zamontowano złącze typu ZIFF przeznaczone do podłączenia wyświetlacza TFT o bardzo gęstym rastrze wyprowadzeń (0.5 mm) montaż tego elementu wymaga pewnej wprawy. Najprostszym sposobem montażu elementów o takim zagęszczeniu wyprowadzeń niewymagającym jednocześnie posiadania specjalistycznego sprzętu jest użycie typowej stacji lutowniczej, dobrej jakości cyny z odpowiednią ilością topnika oraz plecionki rozlutowniczej, która umożliwi usunięcie nadmiaru cyny spomiędzy wyprowadzeń układów.

Należy przy tym uważać by nie uszkodzić termicznie tegoż elementu. Następnie lutujemy wszystkie elementy półprzewodnikowe typu SMD, kolejno elementy bierne a na samym końcu pozostałe elementy przeznaczone do montażu przewlekanego (w obrębie zasilacza modułu) jak również elementy mechaniczne (złącza, dystanse). Z uwagi na zagęszczenie wyprowadzeń złącza ZIFF jak i układów scalonych, przed pierwszym podłączeniem układu należy jeszcze raz sprawdzić jakość wykonanych połączeń by nie dopuścić do ewentualnych zwarć.

Wspomniana kontrola będzie znacznie łatwiejsza, jeśli zmontowana płytkę sterownika przemyjemy alkoholem izopropylowym w celu wypłukania nadmiaru kalafonii lutowniczej. Tuż przed przykręceniem wyświetlacza do płyty naszego układu (przy pomocy czterech, odpowiedniej długości tulei dystansowych), należy go podłączyć korzystając ze złącza ZIFF umieszczonego po stronie elementów i odpowiedniej długości taśmy połączeniowej.

Rysunek 17. Schemat montażowy modułu sterującego systemu iControl

Poprawnie zmontowany układ powinien działać tuż po podłączeniu zasilania. Ewentualnego sprawdzenia mogą wymagać wartości napięć wyjściowych zastosowanej przetwornicy. Widoczne na płytce opcjonalne złącze oznaczone "EXT.PORT" służy do podłączenia modułu interfejsu Bluetooth lub LAN, który daje możliwość dodatkowej, zdalnej kontroli modułu sterującego lub całej sieci PLC (np. z poziomu aplikacji mobilnej), przy czym funkcjonalność ta nie jest tymczasem zaimplementowana w programie obsługi urządzenia.

Opcjonalnie, o czym wspomniano wcześniej, możemy do naszego urządzenia podłączyć także dowolny silniczek typu vibra (z telefonu komórkowego) przy pomocy dedykowanego złącza VIBRA, zaś sam element umocować od spodu modułu wyświetlacza TFT, co zapewni optymalny efekt, jeśli chodzi o odczucia towarzyszące naciskaniu panelu dotykowego.

Problem sieci 3-fazowych

Rysunek 18. Trójfazowy sprzęg dla sieci PLC.

Każdorazowo, pisząc o komunikacji poprzez sieć zasilającą mamy na myśli komunikację w ramach urządzeń transmisyjnych podłączonych do jednej i tej samej fazy tejże sieci, gdyż, jak łatwo się domyślić, komunikacja pomiędzy urządzeniami podłączonymi do różnych faz, w typowych warunkach pracy nie jest możliwa.

Jest to spowodowane dużą impedancją między poszczególnymi fazami sieci zasilającej (podyktowaną impedancją poszczególnych urządzeń do niej podłączonych dla tak wysokich częstotliwości) a co za tym idzie niemożliwością przejścia użytecznego sygnału PLC poprzez tą barierę (zbyt dużym tłumieniem sygnału). Z tego samego powodu (impedancji elementów indukcyjnych dla dużych częstotliwości) sygnał PLC nie "przechodzi" do sieci zasilającej znajdującej się za licznikiem energii elektrycznej.

Aby wyeliminować ten problem stosuje się różnego rodzaju, mniej lub bardziej rozbudowane, układy sprzęgów 3-fazowych (phase coupler) lub repeaterów (z użyciem technologii bezprzewodowych). Skomplikowanie stosowanego rozwiązania zależy głównie od rozległości sieci zasilającej a co za tym idzie, potrzeby zapewnienia odpowiedniej propagacji sygnału PLC.

W tak stosunkowo prostych i niewielkich systemach, jak układ iControl możemy jednak zastosować jedno z najprostszych rozwiązań, które spotyka się w tego rodzaju układach - schemat pokazano na rysunku 18. Pomiędzy każdą z faz sieci zasilającej włączono szeregowo włączony kondensator 22...100 nF (koniecznie na napięcie minimum 600 V) i bezpiecznik 250 mA.

Kondensator taki stanowi niewielką impedancję dla częstotliwości rzędu 130...133 kHz, z którą pracują modemy PLC, co zapewnia dobrą propagację sygnału pomiędzy poszczególnymi fazami sieci zasilającej. Z kolei dla częstotliwości sieciowej 50 Hz kondensator taki stanowi dość dużą impedancję, a co za tym idzie niewielkie obciążenie i straty mocy. Bezpiecznik stanowi proste zabezpieczenie na wypadek uszkodzenia (zwarcia) kondensatora szeregowego.

Dodatkowe informacje:

Ustawienia Fuse-bitów (ważniejszych) modułu sterującego:
CKSEL3...0: 1111
SUT1...0: 11
CKDIV8: 1
JTAGEN: 1
EESAVE: 0

Ustawienia fusebitów (ważniejszych) modułu wykonawczego wyłącznika 1-/2-biegunowego:
CKSEL3...0: 0100
SUT1...0: 10
CKOPT: 1
EESAVE: 0

Uruchomienie i konfiguracja systemu

Rysunek 19. Wygląd interfejsu użytkownika podczas procesu czyszczenia pamięci modułu sterującego.

Tak jak wspomniano wcześniej, proces konfiguracji systemu iControl wymaga pewnego, wyjściowego stanu systemu. Tym stanem wyjściowym jest taki, w którym do sieci zasilającej zostały podłączone wszystkie, planowane do użycia moduły sterujące, zaś w każdym z nich skonfigurowano unikalny numer adresu logicznego (z zakresu 0xF0÷0xFF) jak i przynajmniej jedną grupę modułów wykonawczych (pomieszczeń).

Następnie dołączamy do sieci kolejne moduły wykonawcze, za każdym razem dodając je do wybranego modułu sterującego (czyniąc go ich rodzicem). W przypadku, gdy wybrany moduł wykonawczy zamierzamy współdzielić innemu modułowi sterującemu, operację tę najlepiej przeprowadzić jest przed podłączeniem do sieci i dodaniem kolejnego, nowego modułu wykonawczego.

Tak przeprowadzona konfiguracja sieci zapewnia optymalną i bezproblemową obsługę wszystkich urządzeń i jednoczesnie skraca czas wdrożenia docelowego systemu. Dla porządku należy dodać, że przewidziano także możliwość wyczyszczenia wszystkich ustawień modułu sterującego, tj. parametrów wszystkich, zalogowanych modułów wykonawczych, ustawień grup (pomieszczeń) jak i pamięci zajętych numerów LA bieżącej sieci by moduł sterujący można było przywrócić do stanu wyjściowego (fabrycznego).

W tym celu, w trakcie uruchamiania urządzenia należy wcisnąć przycisk oznaczony na obwodzie drukowanym "CLEAR", co spowoduje, wyczyszczenie pamięci danych modułów wykonawczych, pamięci ustawień grup pomieszczeń oraz pamięci, w której moduł sterujący przechowuje informacje o przyznanych i zajętych numerach adresów LA (oczywiście zostanie wyświetlone stosowne zapytanie). Wygląd interfejsu użytkownika podczas procesu czyszczenia pamięci modułu sterującego pokazano na rysunku 19.

Muszę zauważyć, że testy praktyczne systemu iControl potwierdziły wręcz doskonałą funkcjonalność rozwiązania zaproponowanego przez firmę Cypress! Komunikacja z wykorzystaniem sieci zasilającej działała bez jakichkolwiek problemów, a jedyne, jakie zauważono wystąpiły wtedy, gdy do sieci zasilającej podłączono tanią lampę fluorescecyjną (tzw. świetlówkę) z typowym układem zapłonowym.

W takim przypadku, by zminimalizować wpływ pracy tego źródła światła na funkcjonowanie systemu iControl, należałoby w szereg z zasilaniem lampy fluoroscencyjnej dołączyć dławik mocy o indukcyjności rzędu 100...300 mH (o odpowiedniej mocy), który ograniczyłby wpływ zaburzeń o wysokiej częstotliwości na propagację sygnału PLC w sieci.

Zresztą, dość często przyczyną tego stanu rzeczy nie jest właściwie poziom zakłóceń, które generuje odbiornik tego typu (znacznie zmniejszając stosunek S/N), zaś fakt, że na jego wejściu zastosowano kondensator przeciwzakłóceniowy włączony równolegle do zacisków zasilających, który to dla częstotliwości nośnych sygnału PLC (132 kHz) stanowi obciążenie skutecznie tłumiąc użyteczny sygnał transmisji.

Rozwiązaniem tego problemu jest zastosowanie na wejściu (przed przedmiotowym kondensatorem) dławika mocy lub nawet prostego filtru LC. Tematyka ta została zresztą dość ciekawie opisana w nocie aplikacyjnej firmy Cypress oznaczonej symbolem AN58825, której to lekturę szczególnie polecam, gdyż zawiera szereg informacji o tematyce poprawiania jakości sieci zasilającej w świetle zastosowania technologii PLC!

Z uwagi na fakt, iż na płytkach obu układów zbudowano kompletne układy zasilające zasilane napięciem sieciowym 230 V istnieje niebezpieczeństwo porażenia prądem elektrycznym o napięciu 230 V, co stanowić może zagrożenie dla życia i zdrowia użytkowników tychże urządzeń.

W związku z tym, montaż układów w tym zakresie powierzyć należy osobie posiadającej uprawnienia elektryczne w zakresie eksploatacji urządzeń o napięciu do 1 kV. Miejsca na obwodach płytek drukowanych, gdzie występuje wysokie napięcie groźne dla życia i zdrowia oznaczone zostały odpowiednimi opisami.

Robert Wołgajew, EP

Artykuł ukazał się w
Elektronika Praktyczna
luty 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów