Reklama: Chcesz umieścić tutaj reklamę? Zapraszamy do kontaktu »
Faulhaber robotic
Powrót do listy artykułów Aktualizowany: 2013-04-19
LonWorks | Protokół LonTalk | Neuron Chip

Opis technologii LonWorks

LonWorks to jedna z technologii wykorzystywanych w przemyśle, a przede wszystkim w instalacjach budynkowych, do współpracy wielu urządzeń w ramach jednej sieci. LonWorks jest rozwijany przez firmę Echelon od lat osiemdziesiątych. Głównymi cechami sieci LonWorks są otwartość i decentralizacja. Otwartość oznacza, że dokumenty opisujące szczegóły komunikacji w ramach sieci LonWorks są ogólnie dostępne a komponenty działające w tej sieci mogą pochodzić od wielu różnych producentów. Częścią wspólną tych urządzeń są Neuron Chipy i Smart Transceivery, czyli układy firmy Echelon odpowiadające za właściwą komunikację pomiędzy poszczególnymi węzłami. Decentralizacja natomiast oznacza rezygnacje z popularnego w świecie sieci komputerowych podziału na jednostki nadrzędne i podrzędne (np. master-slave czy klient-serwer). W sieci LonWorks każdy węzeł może nadawać i odbierać dane na takich samych zasadach. W ten sposób wzrasta niezawodność systemu.

Protokół CNP (ang. Control Network Protocol), odpowiadający w systemie LonWorks za komunikację, jest zgodny z siedmiowarstwowym modelem ISO/OSI i został zoptymalizowany pod kątem zastosowań w układach automatyki. Główny nacisk został położony na efektywny transport niewielkich pakietów, mechanizmy potwierdzania odbioru danych i autoryzacji, a także na możliwość korzystania z różnych mediów transmisyjnych w ramach jednej sieci LonWorks. Podczas tworzenia pakietu poszczególne warstwy dodają do datagramu swój nagłówek, a następnie przekazują go niżej. Po przejściu przez wszystkie warstwy gotowa wiadomość zostaje wysłana. Podczas odbierania natomiast każda z warstw odczytuje swój nagłówek, a następnie przekazuje okrojony datagram do warstwy wyższej. Poniżej poszczególne elementy protokołu zostały szczegółowo opisane.

Warstwa fizyczna

Istnieje kilka mediów transmisyjnych możliwych do wykorzystania w sieciach LonWorks. Najpopularniejszy z nich to para skręconych przewodów (TP/FT). Główną zaletą skrętki są niskie koszty, łatwa instalacja i duża niezawodność. Innym popularnym medium transmisyjnym w sieciach LonWorks jest sieć energetyczna (PL). Główną zaletą takiego rozwiązania jest wykorzystanie istniejącej infrastruktury. Umożliwia to na przykład implementację systemów automatyki w zabytkowych budynkach bez potrzeby naruszania ścian. Innym popularnym zastosowaniem jest sterowanie oświetleniem ulicznym. Główną wadą tej techniki są zdecydowanie niższe prędkości transmisji oraz możliwe zakłócenia z sieci AC. Kolejnym często wykorzystywanym kanałem transmisji sieci LonWorks są sieci Ethernet zarówno w postaci zamkniętych sieci LAN, jak i połączeń Internetowych. Połączenie to zapewnia wysoką przepustowość i możliwość dostępu zdalnego. Inne, mniej popularne kanały transmisji to kable koncentryczne, światłowody oraz fale radiowe. Możliwe jest połączenie różnych kanałów transmisyjnych sieci LonWorks w ramach jednej sieci logicznej. W tym celu używane są routery.

Warstwa łącza danych

Aby zapewnić zdecentralizowany dostęp do kanału transmisyjnego w sieciach LonWorks wykorzystuje technikę CSMA (Carrier Sense Media Access). Urządzenie, które chce nadać wiadomość czeka na zakończenie aktualnie trwającego ruchu w sieci i próbuję wysłać swoją ramkę danych. Badania wykazały, że standardowe wersje tego typu technik wykorzystywane choćby w sieci Ethernet nie sprawdzają się w warunkach dużego obciążenia. Dlatego wykorzystano specjalny rodzaj CSMA zoptymalizowany pod kątem przesyłania krótkich pakietów.

Warstwa sieci

Sieci LonWorks mogą być tworzone według topologii magistrali, gwiazdy, pierścienia oraz mieszanej. Adresy logiczne poszczególnych węzłów składają się z trzech liczb oddzielonych kropkami. Są to adres domeny (domain), adres podsieci(subnet) i adres węzła(node). Domeny skupiają wszystkie urządzenia, które komunikują się pomiędzy sobą. Jeżeli to samo medium jest wykorzystywane przez grupy urządzeń, które nie wchodzą ze sobą w interakcje, warto utworzyć dla nich osobne domeny. Adres domeny może składać się z 0, 1, 3 lub 6 bajtów. Jego długość jest wybierana przez narzędzie konfiguracyjne. W ramach domeny może występować do 255 podsieci służących do grupowania poszczególnych węzłów. Adresy podsieci są wykorzystywane również przez routery do odpowiedniego zarządzania trasami pakietów. Węzły w ramach jednej podsieci muszą dzielić to samo medium transmisyjne i nie mogą być przedzielone żadnym routerem . Maksymalna liczba węzłów w ramach podsieci to 127. Poza adresem logicznym każdy węzeł sieci LonWorks posiada również swój unikatowy numer identyfikacyjny – Neuron ID. Każdy Neuron Chip otrzymuje taki numer w fazie produkcji. Dzięki Neuron ID możliwa jest komunikacja z nieskonfigurowanymi węzłami, które nie mają jeszcze przypisanego adresu logicznego. Używanie unikatowego adresu jest jednak nieefektywne podczas normalnej komunikacji, a także sprawia problemy podczas ewentualnej wymiany urządzeń.

Warstwa transportowa

Jej zadaniem jest poprawne przekazywanie pakietów pomiędzy węzłami sieci LonWorks. W tym celu można wybrać jeden z kilku trybów transmisji. W trybie bez potwierdzeń dana jest wysyłana tylko jeden raz. Tryb ten wykorzystuje się głównie do danych zmieniających się okresowo np odczytów z sensorów, gdzie utrata pojedynczego pakietu nie jest krytyczna. W trybie z potwierdzeniami nadawca wiadomości oczekuje na potwierdzenie od wszystkich adresatów. Jeżeli nie otrzyma go w określonym czasie – ponawia transmisję. Tryb ten jest najpewniejszy, ale generuje dużo ruchu w sieci. W trybie z powtórzeniami wiadomość zostaje wysłana kilka razy w pewnych odstępach czasu, jednak nadawca nie czeka na żadne potwierdzenia. W ten sposób najlepiej sprawdza się przy wiadomościach adresowanych do wielu urządzeń, gdzie istnieje ryzyko zgubienia pojedynczego pakietu, natomiast nie można sobie pozwolić na zwiększony ruch związany z potwierdzeniami.

Warstwa sesji

Wprowadza ona opcjonalne mechanizmy ochrony przed niepowołanym dostępem w postaci 6-bajtowego klucza unikatowego dla każdej domeny. Bezpieczeństwo transmisji zapewniają niejawne algorytmy kryptograficzne zaimplementowane na Neuron Chipach. Inną usługą oferowaną przez warstwę sesji jest komunikacja w trybie zapytanie – odpowiedź. Jest to tryb podobny do potwierdzeniowego, odpowiedź jednak być obliczana przez odbiorce na podstawie danych z zapytania.

Warstwa prezentacji

Warstwa nadająca odpowiednią strukturę danym przesyłanym po sieci. Stanowi ona jedną z najbardziej charakterystycznych cech sieci LonWorks predysponującą ją do sprawnego przesyłania krótkich pakietów. W warstwie tej zaimplementowany został mechanizm zmiennych sieciowych (Network Variables), które są udostępniane innym węzłom sieci. Każda zmienna sieciowa musi mieć przypisany kierunek (wejściowa lub wyjściowa), typ oraz rozmiar w bajtach.

Wśród typów zmiennych sieciowych wyróżniamy standardowe typy z języka C takie jak bool, int, char czy float, a także typy złożone jak unie, struktury, tablice czy łańcuchy znaków. Maksymalny rozmiar pojedynczej zmiennej to 31 bajtów. Zmienne sieciowe tego samego typu, ale o przeciwnym kierunku mogą zostać połączone w procesie integracji sieci. Pojedyncze wyjście może zostać połączone z wieloma wejściami. Łączenie zmiennych może zachodzić nie tylko między różnymi węzłami, ale także wewnątrz pojedynczego urządzenia. Istnieją również inne sposoby wymiany danych w warstwie prezentacji: application messages i foreign frames. Są one jednak używane sporadycznie.

Warstwa aplikacji

Składa się głównie z zestawu usług zaimplementowanych na Neuron Chipie przez producenta ułatwiających pracę z narzędziem do konfiguracji sieci. Umożliwia zarówno konfigurację urządzenia w sieci, jak i edycję niektórych parametrów realizowanego programu. Usługi diagnostyczne mogą okazać się pomocne podczas testowania niezawodności sieci oraz wykrywania przyczyn ewentualnych usterek. Warstwa aplikacji umożliwia również łączenie zmiennych sieciowych w bloki funkcjonalne ułatwiające realizację zadań sterowania w środowisku zdecentralizowanym. Dzięki takim blokom możliwa jest na przykład implementacja regulatorów PID, łączenie w grupy włączników z elementami wykonawczymi itp.

Lonmark International

Możliwość wykorzystania standardu przez różnych producentów niesie ze sobą wiele potencjalnych problemów na poziomie integracji sieci LonWorks. Nawet jeśli samo odczytywanie datagramów przebiegnie pomyślnie, w dalszym ciągu mogą wystąpić problemy choćby z interpretacją danych. Dobrym przykładem są tutaj czujniki mogące zwracać wynik w jednostkach metrycznych lub imperialnych, nie mówiąc już o różnych sposobach reprezentacji bitowej tych wyników. Użytkownicy technologii LonWorks widząc ten problem postanowili powołać organizację zajmującą się tworzeniem norm, standardów oraz certyfikatów ułatwiających produkcję oraz integrację elementów. W ten sposób powstał Lonmark International. Jednym z najważniejszych osiągnięć organizacji jest standaryzacja najczęściej używanych typów zmiennych sieciowych (Standard Network Variable Types – SNVT) oraz parametrów aplikacji (Standard Configuration Property Types – SCPT). Standard definiuje nazwy typów SNVT i SCPT, obszar zastosowań (np. kontrola oświetlenia, sterowanie silnikami), reprezentację binarną (rozmiar, opis poszczególnych elementów w przypadku typów złożonych) oraz sposób przeliczania na wartości fizyczne. W celu łatwiejszej identyfikacji typów węzłów Lonmark International wprowadził również 8-bajtowy identyfikator aplikacji (Program ID). Poszczególne pola pozwalają na zidentyfikowanie producenta, obszaru zastosowań (np. HVAC, instalacje pożarowe, przejściówki na inne protokoły), klasy produktów oraz konkretnego modelu.

Oprogramowanie do integracji sieci LonWorks

Jak już niejednokrotnie zostało podkreślone, do poprawnego działania sieci LonWorks niezbędna jest integracja współpracujących w niej urządzeń. Część elementów wchodzących w skład modelu warstwowego sieci LonWorks jest zaimplementowana na sztywno w każdym Neuron Chipie. Inne są wybierane podczas instalacji, gdy decydujemy się na konkretne kanały transmisji danych i urządzenia wykonawcze. Jednak działanie sieci zdeterminowane jest głównie w procesie integracji, gdzie za pomocą dedykowanego oprogramowania konfigurowane są poszczególne węzły. Oprogramowanie tego typu umożliwia między innymi przedstawianie sieci w postaci graficznej, nadawanie odpowiednich adresów logicznych, wgrywanie aplikacji i danych konfiguracyjnych do poszczególnych węzłów, diagnostykę, a także łączenie i podgląd zmiennych. Aby program konfiguracyjny mógł poprawnie współpracować z urządzeniami podłączonymi do sieci, producent powinien dostarczyć kilka plików konfiguracyjnych pozwalających na utworzenie szablonów. Pliki z rozszerzeniami .XIF lub .XFB zawierają opis wykorzystywanych zmiennych sieciowych i danych konfiguracyjnych. Drugi rodzaj plików zawiera dane, które powinny zostać wgrane do pamięci EEPROM węzła. Wersja w formacie hex ma rozszerzenie .NXE, natomiast wersja binarna – .APB. W ramach jednej sieci może istnieć wiele urządzeń wykorzystujących ten sam szablon.

Proces całkowitej integracji sieci jest dokonywany w celu początkowego uruchomienia sieci, kiedy to wybierane są parametry wszystkich węzłów. Później, gdy wymagane są drobne zmiany, wymiana lub naprawa pojedynczych elementów możliwe jest wczytanie wcześniej utworzonego projektu i dokonanie konfiguracji pojedynczych elementów. Integratorzy mogą pracować nad modyfikacjami w projekcie bez fizycznego połączenia z siecią. Dzięki temu prace mogą rozpocząć się jeszcze przed zakończeniem instalacji, udoskonalenia mogą być opracowywane bez wstrzymywania sieci, a aktualizacja konfiguracji może być wykonywana nawet zdalnie.

Neuron Chip

Elementem występującym w każdym węźle sieci LonWorks jest Neuron Chip. Składa się on z kilku procesorów 8-bitowych odpowiedzialnych za obsługę poszczególnych warstw protokołu. CPU1 odpowiedzialny jest za obsługę dostępu do medium transmisyjnego. CPU2 odpowiada za formułowanie datagramów wysyłanych po sieci. Zawiera tablice adresów logicznych i zmiennych sieciowych, algorytmy kryptograficzne wykorzystywane w warstwie sesji oraz standardowe funkcje konfiguracyjne i diagnostyczne. CPU3 jest przeznaczony do obsługi programów użytkownika napisanych w języku Neuron C. Skompilowany kod umieszczany jest na zewnętrznej pamięci EEPROM. W niektórych modelach istnieje również czwarty procesor odpowiedzialny za obsługę przerwań. Poszczególne procesory komunikują się przy pomocy wspólnych obszarów pamięci RAM. Oprogramowanie działające na Neuron Chipie nie będące aplikacją użytkownika nie jest upublicznione. Aby wywołać zawarte tam funkcje należy skorzystać z odpowiednich funkcji API. Z jednej strony zapewnia to bezpieczeństwo, standaryzację i stabilność komunikacji, z drugiej jednak skazuje na używanie jednego typu układów i podwyższa koszty. Neuron Chipy posiadają pewną ilość portów IO oraz podstawowe interfejsy komunikacyjne takie jak USART, SPI czy I2C. Dzięki temu mogą służyć zarówno jako główny procesor sterujący lub wypełniać tylko zadania komunikacyjne, a główne sterowanie pozostawiać innemu mikrokontrolerowi.

Autor:
762687 Innovation Code
Źródło:
762687 Innovation Code | LonWorks
Dodał:
Innovation Code