KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH
Transkrypt
KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH
VII OGÓLNOPOLSKA KONFERENCJA NAUKOWO-TECHNICZNA „KOMPUTER W OCHRONIE ŚRODOWISKA” GNIEZNO, 14-17 WRZEŚNIA 2005 Zygmunt KUBIAK Instytut Informatyki Politechnika Poznańska ul. Piotrowo 3A 60-965 Poznań KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH Streszczenie. Urządzenia pomiarowe często oferowane są z nietypowym interfejsem producenta. W opracowaniu przedstawiono jedno z rozwiązań tego problemu, polegające na konwersji protokołu urządzenia do postaci standardowej – Modbus. Omówiono realizację sprzętową oraz podstawy rozwiązania programowego problemu. 1. Wstęp O ile w układach pomiarowych z wyjściem analogowym obowiązuje (i nadal z powodzeniem jest stosowany) głównie standard 4-20 mA, o tyle w cyfrowej, przewodowej transmisji danych pojawiło się bardzo wiele standardów zaliczanych do tzw. sieci miejscowych oraz wiele opracowań firmowych. W związku z tym systemy nadzorowania procesów technologicznych, w tym specjalizowane narzędzia jak programy SCADA muszą być wyposaŜane w specjalne sterowniki programowe obsługujące róŜne standardy interfejsów urządzeń wejścia/wyjścia systemów. W przypadku ogólnie uznanych standardów wspomniane programy znajdują się na wyposaŜeniu systemów. W wielu jednak przypadkach producenci urządzeń pomiarowych/sterujących stosują własne protokoły, które nie mają wsparcia programowego, np. w systemach SCADA. Wtedy zachodzi potrzeba napisania dodatkowych, specjalizowanych sterowników co jest rozwiązaniem mało uniwersalnym i kosztownym. Zdecydowanie lepszym wyjściem jest opracowanie modułu realizującego konwersję nietypowego protokołu urządzenia na jeden z uznanych standardów interfejsu. W opracowaniu przedstawiono problematykę konstrukcji modułu Modbus Slave spełniającego funkcję konwertera protokołów. 2. Standard Modbus Standard Modbus pojawił się jako jeden z pierwszych przemysłowych interfejsów cyfrowych. Powstał jako nowatorski pomysł w firmie Modicon do połączenia w sieć, Kubiak Z.: Konwerter protokołów dla urządzeń pomiarowych. Rozdz. 9 w pracy zbiorowej „Efektywność wdraŜania technologii informatycznych”. FUTURA i PZITS, Poznań 2005, s. 103– 112. 2 Z. KUBIAK sterowników PLC – tej samej firmy. W początkowym etapie rozwoju PLC, budowano sterowniki o coraz większej liczbie wejść/wyjść. Firma Modicon zmieniła ten kierunek, oferując sterowniki o niewielkiej liczbie wejść/wyjść i dając moŜliwość tworzenia struktury sieciowej przy pomocy magistrali Modbus. W roku 1985 protokół został rozszerzony przez Gould Inc. Szybko zyskał duŜą popularność w rozwiązaniach przemysłowych systemów sterowania. Standard Modbus zaliczany jest do sieci miejscowych (ang. Fieldbus), tzn. sieci łączących układy wejścia/wyjścia lub/i sterowniki PLC Cechą nowych rozwiązań systemów sterowania jest rozproszona struktura układów wejścia/wyjścia, czyli sieć miejscowa łącząca inteligentne węzły. Model sieci miejscowej (rys. 1) zasadniczo obejmuje tylko trzy warstwy (1, 2 i 7) znanego modelu odniesienia OSI, opracowanego dla sieci rozległych. Ponadto sieci miejscowe z załoŜenia są sieciami czasu rzeczywistego, a poniewaŜ przeznaczone są do pracy w warunkach przemysłowych muszą charakteryzować się zwiększoną odpornością na zakłócenia. UL Warstwa uŜytkownika Zadania uŜytkownika Z a r z ą d z a n i e UL Warstwa uŜytkownika UŜytkownicy sieci AL Warstwa aplikacji Wspiera: zadania uŜytkownika, komunikaty, bloki funkcji Z a r z ą d z a n i e Standard sieci miejscowej DL Warstwa łącza danych Wspiera warstwę aplikacji, sterowanie dostępem do medium PL Warstwa fizyczna Obsługuje medium transmisyjne AL Warstwa aplikacji DL Warstwa łącza danych PL Warstwa fizyczna Medium transmisyjne Rys. 1. Model sieci miejscowej W protokole Modbus określone są dwa tryby transmisji: ASCII lub RTU. W rozwiązaniu przedstawionym w artykule wykorzystano tryb RTU (Remote Terminal Unit) i jest on przedmiotem dalszych, skróconych rozwaŜań. Warstwa fizyczna dotyczy technicznych aspektów przesyłania danych w postaci strumienia bitów. Strumień ten jest dzielony na jednostki 8-bitowe, które transportowane są asynchronicznie (start-stopowo). Start B0 B1 B2 B3 B4 B5 B6 B7 Par Stop Start B0 B1 B2 B3 B4 B5 B6 B7 Stop Stop Rys. 2. Formaty jednostki informacyjnej w trybie Modbus RTU KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH 3 Medium transmisyjne nie jest dokładnie sprecyzowane w protokole Modbus. Z reguły stosowany jest standard RS485. Warstwa łącza danych dotyczy takich zagadnień jak przygotowanie ramki wiadomości, zatwierdzanie i rozpakowanie wiadomości, zaleŜności czasowych, detekcji i sygnalizacji błędów. Ogólny format ramki stosowanej w Modbus RTU przedstawiono na rys. 3. Ramka moŜe zostać wysłana po okresie ciszy na łączu wynoszącym minimum 3,5 jednostki informacyjnej (rys. 2). Z powyŜszego wynika taki sam minimalny odstęp między ramkami. Wewnątrz ramki odstęp między jednostkami informacyjnymi tworzącymi ramkę nie powinien przekroczyć 1,5 jednostki informacyjnej. Slave adres 8 bitów Funkcja 8 bitów Dane N•8 bitów CRC 16 bitów Rys. 3. Format ramki w trybie Modbus RTU Modbus jest protokołem typu M-S (Master-Slave) co oznacza, Ŝe inicjować transakcje moŜe wyłącznie węzeł master (jednostka nadrzędna), a pozostałe węzły (slave – jednostki podrzędne) odpowiadają jedynie na zapytania mastera. Pole adresowe ramki określa dostępne adresy węzłów slave z zakresu 0-247. W ramce zapytania jak i odpowiedzi umieszczony jest wyłącznie adres węzła slave. Adres 0 wykorzystywany jest przez mastera jako adres rozgłoszeniowy, akceptowany przez wszystkie węzły slave sieci. Na ramkę rozgłoszeniową węzły slave nie odpowiadają. Pole funkcji obejmuje zakres kodów operacji 1- 255. Master umieszcza w polu funkcji kod operacji przeznaczony do wykonania w węźle slave. Slave, w ramce odpowiedzi, potwierdza poprawne wykonanie operacji tym samym kodem. JeŜeli z jakiegoś powodu operacja nie moŜe być wykonana, slave sygnalizuje błąd umieszczając w polu funkcji kod operacji zwiększony o wartość 80h. Pole danych moŜe zawierać takie informacje jak np. adres początkowy rejestrów, liczba bajtów danych, dane itp. Przykłady przedstawione zostaną dalej. W trybie RTU pole kontrolne jest 16-bitowym słowem CRC (Cyclical Redundancy Check), które jest wyznaczane na podstawie poprzedzających pól ramki Modbus. W opisie standardu Modbus zamieszczono równieŜ metody wyznaczania CRC. Istotnym parametrem, który naleŜy ustawić w węźle master jest maksymalny czas odpowiedzi na ramkę zapytania. Po przekroczeniu tego czasu transakcja jest przerywana. Taka sytuacja oznacza wystąpienie błędu transmisji lub odłączenie zaadresowanego węzła slave. Czas ten dobierany jest tak aby najwolniejszy w sieci węzeł slave zdąŜył odpowiedzieć. Węzeł slave, który wykrył błąd transmisji, nie wykonuje polecenia i nie wysyła Ŝadnej odpowiedzi. Spowoduje to przekroczenie czasu oczekiwania na ramkę odpowiedzi i przerwanie transakcji. Oprogramowanie węzła master powinno uwzględniać obsługę błędów. Warstwa aplikacji dotyczy bezpośredniego świadczenia usług uŜytkownikowi. W przypadku sieci miejscowych oznacza to wysłanie rozkazów według określonego scenariusza, w celu pozyskiwania informacji z nadzorowanego obiektu i ewentualnie realizacji wymaganych sterowań. Protokół Modbus jest ściśle związany z organizacją sterowników PLC a dokładniej sterowników serii Modicon. Oznacza to, Ŝe węzeł slave, z pkt. widzenia organizacji danych w sieci, jest zbiorem rejestrów (słów 16-bitowych) i układów bitowych. Protokół Modbus definiuje 24 podstawowe funkcje. Wybrane z nich, zestawione zostały w tab. 1. 4 Z. KUBIAK Tabela 1. Wybrane funkcje Modbus Funkcja Opis Dodatkowy opis pola danych 01 Odczyt stanu wyjść dwustanowych w zapytaniu liczba wyjść; w odp. liczba bajtów 02 Odczyt stanu wejść dwustanowych () w zapytaniu liczba wejść; w odp. liczba bajtów 03 Odczyt zawartości grupy rejestrów ( w zapytaniu liczba rej.; w odp. liczba bajtów 04 Odczyt wejść pomiarowych (16-bitowych) w zapytaniu liczba wejść; w odp. liczba bajtów 06 Zapis pojedynczego rejestru w odpowiedzi echo 15 Zapis grupy wyjść dwustanowych w zap. l. wyjść i l. bajtów; w odp. l. wyjść 16 Zapis grupy rejestrów w zap. l. rej. i l. bajtów; w odp. l. rej. 3. Sieć Modbus, współpracująca z urządzeniami pomiarowymi W opracowaniu przedstawiono przypadek gdy węzły slave sieci Modbus nie są sterownikami PLC firmy Modicon, a sieć przeznaczona jest do połączenia urządzeń pomiarowych, przykładowo przepływomierzy firmy Bailey-Fischer&Porter. Rolę obszaru komunikacyjnego, pośredniczącego w transmisji danych między urządzeniem pomiarowym a węzłem master, pełni utworzona w pamięci modułu slave tablica rejestrów wirtualnych (rys. 4). Rejestr jest najczęściej wykorzystywanym układem funkcjonalnym w aplikacjach sieci Modbus. Slave #0 Slave #1 Slave #2 Slave #15 Urz.Pom.1 Urz.Pom.1 Urz.Pom.1 Urz.Pom.2 R1 R1 R1 R1 Urz.Pom.1 R2 R2 R2 R2 R1 R3 R3 R3 R3 R2 R4.. R4.. R4.. .... R4..R3 .... R4.. .. Urz.Pom.1 Urz.Pom.1 Urz.Pom.1 Urz.Pom.2 R1 R1 R1 R1 Urz.Pom.1 R2 R2 R2 R2 R1 R3 R3 R3 R3 R2 R4.. R4.. R4.. .... R4..R3 .... R4.. .. Urz.Pom.1 Urz.Pom.1 Urz.Pom.1 Urz.Pom.2 R1 R1 R1 R1 Urz.Pom.1 R2 R2 R2 R2 R1 R3 R3 R3 R3 R2 R4.. R4.. R4.. .... R4..R3 .... R4.. .. Urz.Pom.1 Urz.Pom.1 Urz.Pom.1 Urz.Pom.2 R1 R1 R1 R1 Urz.Pom.1 R2 R2 R2 R2 R1 R3 R3 R3 R3 R2 R4.. R4.. R4.. .... R4..R3 .... R4.. .. .... Master Rys. 4. Koncepcja sieci Modbus z punktu widzenia organizacji danych W opracowanym rozwiązaniu przyjęto podział pola adresowego ramki Modbus na dwie 4-bitowe grupy (rys. 5). Młodsza, określa adres urządzenia pomiarowego, dołączonego do węzła slave (1 – 15); starsza – adres modułu (0..15). Adres Modbus Slave 1 .. 255, wył. K*16, gdzie K = 1 .. 15 B7 – B4 Adres modułu 0 .. 15 B3 – B0 Adres urządzenia pomiarowego 1 .. 15 Rys. 5. Przyjęta organizacja pola adresów ramki Modbus PoniewaŜ w sieci Modbus adres 0 jest zarezerwowany dla transmisji rozgłoszeniowej, zrezygnowano z obsługi adresu 0 dla urządzeń pomiarowych. W rezultacie opracowana sieć Modbus moŜe obsłuŜyć maksymalnie 15 * 16 = 240 KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH 5 urządzeń pomiarowych. Dostępna w takim przypadku, maksymalna liczba węzłów slave wynosząca 16 jest wystarczającą dla większości rzeczywistych konfiguracji (rys. 6). UP #1 UP #2 ... UP #15 UP #1 RS485 UP #1 ... RS485 Moduł Slave #0 Węzeł Slave UP #2 ... UP #15 RS485 Moduł Slave #1 Węzeł Slave UP #2 ... UP #15 Moduł Slave #15 Węzeł Slave RS485 Magistrala Modbus Węzeł Master Rys. 6. Przyjęta konfiguracja sieci Modbus, dla połączenia przepływomierzy; UP – urządzenie pomiarowe; węzeł master – komputer PC z oprogramowaniem Master Modbus lub sterownik PLC z modułem Master Modbus W przypadku, gdy liczba urządzeń pomiarowych przeznaczonych do obsługi przekraczałaby 240, moŜna skonfigurować kolejną sieć lub wykorzystać zerowy adres urządzenia pomiarowego w węzłach o adresach róŜnych od zera. Wspomniane wcześniej przepływomierze wykorzystują do komunikacji cyfrowej znakowy protokół ASCII, który umoŜliwia zaprogramowanie nastaw oraz odczyt danych pomiarowych i konfiguracyjnych. Transmisja moŜliwa jest w trzech standardach: RS232C (tylko z jednym przepływomierzem), RS422 (dupleks – maksymalnie 32 urządzenia), RS485 (półdupleks – maksymalnie 32 urządzenia). 4. Konwersja protokołu urządzenia pomiarowego na Modbus W protokole urządzenia pomiarowego stosowany jest kod znakowy. Na rys. 7 przedstawiono format zapisu pojedynczego znaku. Start B0 B1 B2 B3 B4 B5 B6 BP Stop Rys. 7. Format zapisu znaku w protokole urządzenia pomiarowego; BP – bit parzystości Odstęp między znakami w ramce nie powinien przekraczać 1,5 długości znaku. Przepływomierz jest urządzeniem typu slave, tzn. generuje ramkę odpowiedzi wyłącznie w przypadku gdy poprawnie odbierze i zinterpretuje ramkę zapytania. Ogólny format ramki zapytania (odczytu danych lub parametrów) i odpowiedzi przedstawia rys. 8. a) Start b) Tryb Start Adres danej/param. Kod operacji Kod operacji Dane lub parametry Rys. 8. Format ramki, a) zapytania, b) odpowiedzi Koniec Koniec 6 Z. KUBIAK Przykład ramek zapytania i odpowiedzi dla szczególnego przypadku odczytu stanu sumatora przepływu w przód pokazano na rys. 9. a) Start SOH 01H Tryb ‚M’ 4DH A1 ,0’ 30H A0 ,1’ 31H K1 ,Z’ 5AH K0 ,>’ 3EH Koniec CR LF 0DH 0AH b) Start SOH 01H K1 ‘Z’ 5AH K0 ‘>’ 3EH D6 Dx …….. ......... D0 Koniec CR LF 0DH 0AH Rys. 9. Odczyt stanu sumatora przepływu w przód; a) zapytanie, b) odpowiedź Urządzenie pomiarowe, zgodnie z rys. 6, dołączone jest do modułu Modbus Slave. PoniewaŜ procedura obsługi wielu urządzeń w ramach węzła slave jest czasochłonna, podstawową metodą pracy modułu jest tryb autonomiczny. W pamięci RAM mikrokontrolera modułu slave utworzono tablice rejestrów (tabela 2), które stanowią obraz stanu urządzeń pomiarowych węzła (dokładniej R1 – R11). Są one cyklicznie odświeŜane. Tablice powiązane są z wybranymi urządzeniami pomiarowymi poprzez adres Modbus Slave (B4 – B0). W pamięci Slave zarezerwowano obszar dla 16-tu tablic rejestrów, identycznych pod względem rozmiaru i nazw rejestrów. Przykładowo adres węzła Modbus Slave 45H oznacza wybór modułu o numerze 4 oraz w ramach tego węzła, przepływomierza o numerze 5 a więc równieŜ tablicy rejestrów o numerze 5. Tabela 2. Tablica rejestrów Nr rejestru Adres (dec) Adres (hex) Nazwa Typ Opis Operacje 1 0 00 FJP (EI) 1 01 3 2 02 4, 5 3, 4 03, 04 Wartość przepływu w % Odczyt 6, 7 5, 6 05, 06 FJSP (EZ) E2E1 (E2+E1) WPP (MD) PCH Fizyczna jednostka przepływu Fizyczna jednostka sumatora przepływu Rejestr błędów Odczyt 2 unsigned char unsigned char unsigned char float Odczyt 8, 9 7, 8 07, 08 PSS> float Przepływ chwilowy w jedn, fizycznych Pełny stan sumatora w przód 10, 11 9, 10 09, 0A PSS< float Pełny stan sumatora w tył Odczyt TMP signed char Temperatura Slave Odczyt float 12 11 OB 13 - 18 19 12 - 17 18 0C - 11 12 MSK unsigned int 20 19 13 SAW unsigned int 21 20 14 TRF unsigned int 22 .. 32 21 .. 31 15 .. 1F TXT ASCII Rez 0 - 5 Maska adresów urządzeń pomiarowych Stan aktywnych urządzeń pomiarowych Czas odświeŜania pomiarów (w min) Tekst opis urz. pom. Odczyt Odczyt Odczyt Zapis/odczyt Odczyt Zapis/odczyt Zapis/odczyt KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH 7 Rejestry R12 (TMP), R19 (MSK) oraz R20 (SAW) mają znaczenie globalne, tzn. we wszystkich tablicach 0-15 mają taką samą zawartość. Zmiana zawartości któregoś z tych rejestrów powoduje natychmiastową aktualizację tego rejestru we wszystkich tablicach. Rejestr MSK (R19) a dokładniej mówiąc, pozycje bitów w rejestrze, których wartości zostały ustawione na 1, oznaczają zainstalowane przez uŜytkownika urządzenia pomiarowe. W trakcie cyklu pomiarowego, na jego początku, węzeł slave sprawdza obecność (sprawność) węzła pomiarowego pytając o zawartość rejestru R1 (FJP). Poprawny odbiór tej ramki ustawia bit na 1 w rejestrze SAW (R20), na pozycji odpowiadającej adresowi urządzenia pomiarowego. Cykl autonomiczny wykonywany jest tylko dla tych urządzeń pomiarowych, których adresy odpowiadają wartości 1 w rejestrze maski (MSK). Domyślnie R19 ustawiony jest na wartość FFH co oznacza, Ŝe w trakcie cyklu autonomicznego przeszukiwane są wszystkie adresy urządzeń pomiarowych. Tablica rejestrów odświeŜana jest cyklicznie, z czasem TRF – domyślnie co 6min. Rejestr R21 zawiera domyślnie ustawioną wartość TRF = 06H. Do realizacji zadań modułu slave wykorzystano następujące ramki Modbus: ramkę odczytu rejestrów (kod 03H), ramkę zapisu wartości do pojedynczego rejestru (kod 06H), ramkę zapisu grupy rejestrów (kod 10H). Ponadto moduł obsługuje ramki błędów. Dane odczytywane bezpośrednio (w trybie autonomicznym) z urządzenia pomiarowego zapisane są w postaci znaków ASCII. Przed umieszczeniem ich w rejestrach modułu Slave (tabela 2), dane przetwarzane są do postaci wybranych typów, zgodnych z konwencją przyjętą w języku C. MSB 0 unsigned char 0 - 255 LSB B7 – B0 MSB 0 LSB B7 – B0 signed char -128 do 127 MSB B15 – B8 unsigned int 0 -65535 LSB B7 – B0 B31 B30- B23 B22 – B0 float Sign bit Pole wykładnika Pole mantysy 3,4*10-38 – 3,4*1038 Rys. 10. Typy danych i ich zapis wykorzystane w tablicy rejestrów Szczegółowe przykłady ramek przedstawiono na kolejnych rysunkach. Ramka Modbus moŜe dotyczyć pojedynczej danej (np. R8-R9 - Stan sumatora przepływu w przód) lub grupy danych (np. rejestry R1 – R7). a) b) Slave adres SAD 21H Slave adres SAD 21H Funkcja FNC 03H Funkcja FNC 03H Adres startowy rejestrów RADHi RADLo 00H 07H Liczba bajtów BCN 04H Liczba rejestrów NRHi 00H NRLo 02H Dane – Ŝądane rejestry (R8Hi) (R8Lo) (R9Hi) .... CRC CRCLo 72H CRCHi AAH CRC (R9Lo) CRCLo CRCHi Rys. 11. Ramki: a) zapytania i b) odpowiedzi; odczyt „Stan sumatora przepływu w przód” 8 Z. KUBIAK a) b) Slave adres SAD 21H Funkcja Slave adres SAD 21H Funkcja FNC 06H FNC 06H Adres startowy rejestrów RADHi RADLo 00H 14H Adres startowy rejestrów RADHi RADLo 00H 14H Wartość Hi 00H CRC Lo 0FH CRCLo 8EH Wartość Hi 00H CRCHi AAH CRC Lo 0FH CRCLo 8EH CRCHi AAH Rys. 12. Zapis do rejestru R21 wartości czasu odświeŜania TRF=15min; odpowiedź (ramka b)) jest echem Ŝądania zapisu Zawartość ramki jest analizowana po stwierdzeniu, ze CRC jest poprawne; w przeciwnym przypadku ramka jest odrzucana. W Modbus zdefiniowano kilka typów błędów np. kod 01H oznacza nieprawidłową funkcję, kod 02H – niepoprawny adres danych a kod 03 – nieprawidłowa wartość danych. Slave adres SAD 21H Funkcja Kod błędu FNC 83H EXC 02H CRC CRCLo C1H CRCHi 3BH Rys. 13. Ramka błędu W Modbus kod błędu jest równy FNC (funkcja w ramce zapytania) +80H. Ramka błędu przedstawiona na rys. 13 jest wysyłana przez moduł slave gdy w ramce zapytania podano nieprawidłowy adres początkowy rejestru (np. R5). Błąd adresu generowany jest równieŜ gdy podano złą liczbę rejestrów – moŜna podawać pojedynczą daną lub zestaw danych, np. odczyt pełnego stanu sumatora w przód, wymaga deklaracji adresu początkowego 07H oraz liczby rejestrów 02H. Komplet informacji o urządzeniu pomiarowym uzyskamy w przypadku deklaracji: adres początkowy 00H oraz liczba rejestrów 0BH (11 dziesiętnie); błędem jest gdy podana liczba rejestrów nie wskazuje na rejestr końcowy danej. 5. Moduł Modbus Slave Podstawowym elementem modułu jest mikrokontroler ATmega 64 (rys. 14). Dzięki stosunkowo duŜej pamięci RAM (4kB), organizacja tablic rejestrów koniecznych dla pracy autonomicznej węzła Modbus Slave (współpraca maksymalnie z 16 urządzeniami pomiarowymi), nie wymagała dodatkowej pamięci zewnętrznej. Uprościło to konstrukcję modułu. ATmega 64 wyposaŜony jest w dwa programowalne układy USART co upraszcza programowanie transmisji w kanałach szeregowych, obsługujących magistralę Modbus oraz magistralę urządzeń pomiarowych. Wewnętrzne rozwiązania mikrokontrolera takie jak reprogramowalna pamięć Flash o duŜej objętości czy teŜ technologia umoŜliwiająca programowanie w systemie (ISP), zdecydowanie ułatwiają uruchamianie i serwisowanie modułu a takŜe obniŜają koszty tych operacji. Podstawowe elementy otoczenia mikrokontrolera to układy interfejsu, dostosowujące sygnały wewnętrznych układów USART do magistral Modbus i urządzeń pomiarowych, KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH 9 pracujących w standardzie RS485. Od strony magistrali urządzeń pomiarowych wprowadzono separację galwaniczną. Wymagało to wprowadzenia przetwornicy zasilania separowanego. Moduł slave zawiera zadajnik kodu przeznaczony do sprzętowego określenia adresu modułu. Pozostała część adresu węzła jest tworzona (oraz weryfikowana) na podstawie zawartości rejestrów (R19 i R20 - tabela 2). Informacja zawarta w rejestrze R19 jest buforowana równieŜ razem z innymi danymi konfiguracyjnymi w wewnętrznej pamięci mikrokontrolera EEPROM. Moduł Modbus Slave został wyposaŜony ponadto w diody LED, widoczne na rys. 15, a przeznaczone dla celów diagnostycznych. VCC A B UI2 GND Magistrala Modbus (RS485) VCC Tx1 Rx1 VCC Tx0 Rx0 Mikrokontroler ISP A B UI1 GND X VDD GND1 UI – Układ interfejsu ZK – Zadajnik kodu ZK Magistrala Urządzeń Pomiarowych (RS485) GND Rys. 14. Uproszczony schemat blokowy modułu Modbus Slave Rys.15. Realizacja modułu Modbus Slave 6. Podsumowanie Konwersja protokołów moŜe być realizowana na bieŜąco, tzn. wykonywana jest następująca transakcja: na postawie zapytania od węzła master, węzeł slave po weryfikacji i interpretacji odebranej ramki przygotowuje i wysyła odpowiednią ramkę zapytania do urządzenia pomiarowego a następnie na podstawie uzyskanej odpowiedzi, po niezbędnym przetworzeniu danych, tworzy ramkę w standardzie Modbus i przesyła ją do węzła master. Taka procedura moŜe być czasochłonna ze względu na specyfikę pracy 10 Z. KUBIAK przepływomierza. W tym przypadku zdecydowanie korzystniejszym trybem pracy węzła slave, gwarantującym krótki czas dostępu do danych pomiarowych jest wcześniej opisana praca autonomiczna węzła. Przedstawione rozwiązanie moŜe być z powodzeniem wykorzystane do współpracy z innymi protokołami sieci miejscowych pod warunkiem, Ŝe stosują RS485 na poziomie medium transmisyjnego. Przykładem moŜe być standard Profibus DP. Wymaga to zastosowania jako układu interfejsu UI1 (rys. 14), np. ADM1486 firmy Analog Devices, przeznaczonego do zastosowań w sieciach Profibus. Element ten moŜe być oczywiście z powodzeniem stosowany równieŜ w omawianej sieci Modbus, gdzie wymagania czasowe są mniejsze. Bibliografia [1] Modbus-IDA, Modbus application protocol specification v1.1a, 2004 [2] Modicon Inc., Industrial Automation Systems, Modicon Modbus protocol – Reference guide, Massachusets, 1996 [3] Atmel, 8-bit AVR Microcontroller with 64K Bytes In-System Programmable Flash. ATmega 64, Rev2490JS-AVR, 2005 [4] Doliński J., Mikrokontrolery AVR w praktyce. BTC, Warszawa, 2004 [5] www.alfine.pl [6] www.analog.com PROTOCOLS CONVERTER FOR MEASUREMENT DEVICES Summary. Measurement devices are often offered with untypical producer’s interface. One of the problem solution was presented in the paper. It consists in protocol conversion of device to a Modbus standard. There was also presented hardware realization and basis of programmed problem solution.