LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

Protokół HART – dla kogo, do czego, jakich podzespołów użyć?

Struktura telegramu

Struktura telegramu HART została przedstawiona na rysunku 12. Każdy bajt jest przesyłany jako 11-bitowy znak UART, wyposażony w bity startu, stopu i parzystości.

 

 Rys. 12. Struktura telegramu w protokole HART

Rys. 12. Struktura telegramu w protokole HART

 

W wersji 5 i późniejszych, protokół HART określa dwa formaty telegramów, wykorzystujące różne formy adresowania. Oprócz formatu krótkiej ramki adresowej urządzenia slave, zawierającej 4 bity, wprowadzony został format ramki długiej. Pozwala on prowadzić komunikację większej liczbie uczestników i zwiększa bezpieczeństwo w razie błędnego adresowania, które może wystąpić wskutek zakłóceń transmisji.

Kolejnym elementom telegramu HART odpowiadają następujące zadnia:

  • Preambuła, składająca się z trzech lub więcej szesnastkowych znaków FF służy do synchronizacji sygnałów różnych uczestników transmisji.
  • Bajt startu (SD) wskazuje, który z uczestników nadaje (master, slave, slave w trybie burst) i jaki format adresu (długi/krótki) jest używany.
  • Pole adresowe (AD) w formacie krótkim zawiera jeden bajt (rysunek 13) z jednym bitem służącym do rozróżnienia dwóch urządzeń nadrzędnych i jednym bitem wskazującym telegramy wysyłane w trybie burst. Do adresowania urządzeń podrzędnych używane są 4 bity (adresy od 0 do 15).
  • Pole adresowe (AD) w formacie długim zawiera 5 bajtów, więc do identyfikacji urządzenia podrzędnego wykorzystywane jest 38 bitów.
  • Bajt komendy (CD) koduje polecenia urządzenia nadrzędnego należące do jednej z trzech kategorii: uniwersalne (Universal), typowe (Common-practice) lub charakterystyczne dla urządzenia (Device-specific). Znaczenie tych komend zależy od definicji w warstwie aplikacji (7).
  • Pole zliczania bajtów (BC) określa długość komunikatu, co jest niezbędne, gdyż liczba bajtów danych może wynosić od 0 do 25. Jest to jedyny sposób, aby odbiorca mógł jednoznacznie zidentyfikować telegram i sumę kontrolną. Liczba bajtów zależy od sumy długości statusu i liczby bajtów danych.
  • Dwa bajty statusu są włączane tylko w komunikatach będących odpowiedziami urządzeń podrzędnych i zawierają informację kodowaną bitowo. Wskazują czy odebrany komunikat był poprawny oraz określają stan pracy urządzenia podrzędnego. Jeśli działa ono poprawnie, oba bajty statusu ustawiane są na logiczne zero. Rys. 13. Adresy HART w formacie krótkim i długim

    Rys. 13. Adresy HART w formacie krótkim i długim

  • Dane mogą być transmitowane jako liczby całkowite bez znaku, zmiennoprzecinkowe lub ciągi znakowe w kodzie ASCII. Format danych jest zdeterminowany przez bajt komendy, ale trzeba zaznaczyć, że nie wszystkie komendy i odpowiedzi zawierają dane.
  • Bajt sumy kontrolnej (parity) zawiera wskaźnik wzdłużnej parzystości wszystkich bajtów telegramu. Wg [2], odległość Hamminga transmisji HART wynosi cztery.

 

Odporność na zakłócenia

W czasie pracy systemu uczestnicy transmisji mogą być podłączani i odłączani bez zagrożenia dla innych urządzeń i przerywania ich komunikacji.

Jeśli chodzi o zakłócenia, które mogą przenikać do linii transmisyjnych, specyfikacja protokołu HART wymaga 3 klasy odporności zgodnie z normami IEC 801-3 i -4, więc ogólne wymagania odpornościowe są spełnione. Dodatkowe mechanizmy wykrywania błędów w komunikacji są implementowane w innych warstwach.

Na niższych poziomach, UART i sprawdzanie wzdłużnej sumy kontrolnej pozwalają z powodzeniem wykryć do trzech uszkodzonych bitów w transmitowanym telegramie (odległość Hamminga równa 4). Problemy pojawiające się na poziomach wyższych, takie jak nieinterpretowalne komendy i błędy urządzeń są sygnalizowane przez urządzenie podrzędne w każdej transakcji przy użyciu bajtów statusu, zarezerwowanych dla tego celu. Odpytywanie w regularnych odstępach czasu pozwala urządzeniu nadrzędnemu utrzymywać aktualną wiedzę o stanie wszystkich podłączonych uczestników komunikacji i reagować zgodnie z wymaganiami użytkownika lub programu sterującego.

 

Czas transmisji i przepływność danych użytkownika

Czas potrzebny do transmisji jednego telegramu wynika z przepływności bitowej danych (1200 Hz) i liczby bitów w telegramie. Jego długość waha się w zależności o długości komunikatu – od 0 do 25 znaków – i formatu wiadomości. Jeśli używany jest format krótki, a komunikat składa się z 25 znaków, transmitowanych jest łącznie 35 bajtów. Jako że każdy bajt przesyłany jest jako 11-bitowy znak UART, otrzymujemy następujące wyliczenia:

 

Czas transmisji telegramu HART

 

Przy krótszych komunikatach, stosunek objętości danych użytkownika do informacji sterujących pogarsza się, aż do 128 ms koniecznych do przesłania pojedynczego bajtu danych. Jako średni czas trwania jednej transakcji, czyli przesłania telegramu przez urządzenie nadrzędne i podrzędne, włącznie z synchronizacją i innymi elementami koniecznymi do utrzymania ruchu, przyjmuje się 500 ms. Wynika stąd, że w ciągu jednej sekundy mogą nastąpić typowo dwie transakcje HART.

Przedstawione wartości pokazują, że protokół HART nie nadaje się do transmisji danych krytycznych czasowo. Może być użyty do określenia zmiennej odniesienia elementu sterującego w fazie testów i rozruchu, ale oczywiście nie sprawdzi się w realizacji zadań sterowania.

 

Warstwa aplikacji: komendy HART

Procedury komunikacyjne urządzeń nadrzędnych HART i programów sterujących są oparte o komendy, zdefiniowane w warstwie aplikacji protokołu HART.

Predefiniowane komendy pozwalają urządzeniu nadrzędnemu wydać polecenia urządzeniu terenowemu oraz przesłać komunikaty i dane. Dzięki temu możliwa jest transmisja wartości wodzących (set points), bieżących wartości i parametrów oraz realizacja rozmaitych usług w procedurach rozruchowych i diagnostycznych.

Urządzenia podrzędne odpowiadają niezwłocznie wysyłając telegramy z potwierdzeniem, które mogą zawierać raporty o ich stanie i/lub dane, których zażądał host.

 

 Rys. 14. Przykładowa transakcja HART

Rys. 14. Przykładowa transakcja HART

 

Na rysunku 14 przedstawiono przykładowe znaczenie bajtów w transakcji zainicjowanej za pomocą komendy 33. Pozwala ona urządzeniu nadrzędnemu odczytać cztery zmienne nadajnika urządzenia podrzędnego i odpowiadające im jednostki za pomocą jednego polecenia.

Aby umożliwić uniwersalną komunikację, komendy HART zostały zaklasyfikowane, zgodnie z ich funkcjami, do grup komend urządzeń nadrzędnych i podrzędnych (rysunek 15).

 

 Rys. 15. Klasyfikacja komend protokołu HART do klas poleceń oraz klas zgodności

Rys. 15. Klasyfikacja komend protokołu HART do klas poleceń oraz klas zgodności

 

W zależności od zadań, jakie mają zostać wykonane, urządzenie nadrzędne używa komendy należącej do jednej z sześciu klas zgodności. Każda z tych klas zawiera podzbiór komend obejmujący konkretny zakres zadań zarządzania i sterowania.

Urządzenia podrzędne interpretują i przetwarzają tylko te komendy HART, które są wysyłane do nich lub do wszystkich uczestników komunikacji. Każda z komend należy do jednej z trzech klas, które określają jak uniwersalne jest dane polecenie:

  • Komendy uniwersalne (Universal) są odbierane i używane przez wszystkie urządzenia terenowe używające protokołu HART (np. określenie urządzenia, rodzaj firmware’u itp.)
  • Komendy typowe (Common-practice) są zwykle obsługiwane przez większość urządzeń podrzędnych HART, ale niekoniecznie wszystkie (np. odczyt wartości zmiennej, ustawianie parametru itp.). Większość urządzeń jest w stanie zinterpretować typowe komendy i odpowiedzieć na nie.
  • Komendy charakterystyczne dla urządzenia (Device-specific) pozwalają realizować funkcje specyficzne dla danego przyrządu. Dają dostęp do informacji o typie i konstrukcji urządzenia, stanie pracy i rozruchu (patrz także: rozdział „Opisy urządzeń (DDL)”).

Większość urządzeń terenowych obsługuje komendy wszystkich trzech klas – interpretują wszystkie komendy uniwersalne, komendy typowe, które są do nich dopasowane oraz komendy przeznaczone wyłącznie dla nich, należące do klasy device-specific.