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 UŜytkownicy sieci UL Warstwa uŝytkownika Z a r z ą d z a n i e AL Warstwa aplikacji Wspiera: zadania uŝytkownika, komunikaty, bloki funkcji DL Warstwa łącza danych Wspiera warstwę aplikacji, sterowanie dostępem do medium PL Warstwa fizyczna Obsługuje medium transmisyjne Standard sieci miejscowej Z a r z ą d z a n i e 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 Funkcja Dane CRC 8 bitów 8 bitów N 8 bitów 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 stanu wyjść dwustanowych w zapytaniu liczba wyjść; w odp. liczba bajtów 02 stanu wejść dwustanowych () w zapytaniu liczba wejść; w odp. liczba bajtów 03 zawartości grupy rejestrów ( w zapytaniu liczba rej.; w odp. liczba bajtów 04 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 Urz.Pom.1 R1 R1 Urz.Pom.2 R1 R2 R2 R1 Urz.Pom.1 R2 R3 R3 R2 R1 R3 R3 R2.... R3...... Slave #1 Urz.Pom.1 R1 R1 Urz.Pom.2 R1 R2 R2 R1 Urz.Pom.1 R2 R3 R3 R2 R1 R3 R3 R2.... R3...... Slave #2 Urz.Pom.1 R1 R1 Urz.Pom.2 R1 R2 R2 R1 Urz.Pom.1 R2 R3 R3 R2 R1 R3 R3 R2.... R3......... Slave #15 Urz.Pom.1 R1 R1 Urz.Pom.2 R1 R2 R2 R1 Urz.Pom.1 R2 R3 R3 R2 R1 R3 R3 R2.... R3...... 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 B 7 B 4 B 3 B 0 Adres modułu 0.. 15 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 UP #2... UP #15 UP #1 UP #2... UP #15 Węzeł Slave RS485 Moduł Slave #0 Węzeł Slave RS485 Moduł Slave #1... RS485 Węzeł Slave RS485 Moduł Slave #15 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 Tryb Adres danej/param. Kod operacji Koniec b) Start Kod operacji Dane lub parametry Koniec Rys. 8. Format ramki, a) zapytania, b) odpowiedzi
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 Tryb A1 A0 K1 K0 Koniec SOH M,0,1,Z,> CR LF 01H 4DH 30H 31H 5AH 3EH 0DH 0AH b) Start K1 K0 D6 Dx D0 Koniec SOH Z >.. CR LF 01H 5AH 3EH... 0DH 0AH Rys. 9. 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 (B 4 B 0). 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) 1 0 00 FJP (EI) unsigned char 2 1 01 FJSP (EZ) 3 2 02 E2E1 (E2+E1) 4, 5 3, 4 03, 04 WPP (MD) Nazwa Typ Opis Operacje unsigned char unsigned char Fizyczna jednostka przepływu Fizyczna jednostka sumatora przepływu Rejestr błędów float Wartość przepływu w % 6, 7 5, 6 05, 06 PCH float Przepływ chwilowy w jedn, fizycznych 8, 9 7, 8 07, 08 PSS> float Pełny stan sumatora w przód 10, 11 9, 10 09, 0A PSS< float Pełny stan sumatora w tył 12 11 OB TMP signed char Temperatura Slave 13-18 12-17 0C - 11 Rez 0-5 19 18 12 MSK unsigned int Maska adresów urządzeń pomiarowych 20 19 13 SAW unsigned int Stan aktywnych urządzeń pomiarowych 21 20 14 TRF unsigned int Czas odświeŝania pomiarów (w min) Zapis/odczyt Zapis/odczyt 22.. 32 21.. 31 15.. 1F TXT ASCII Tekst opis urz. pom. 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 LSB B 7 B 0 MSB 0 LSB B 7 B 0 MSB B 15 B 8 LSB B 7 B 0 unsigned char 0-255 signed char -128 do 127 unsigned int 0-65535 B 31 B 30- B 23 B 22 B 0 float Sign bit Pole wykładnika Pole mantysy 3,4*10-38 3,4*10 38 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) Slave adres b) Slave adres Funkcja Adres startowy rejestrów Liczba rejestrów CRC SAD FNC RADHi RADLo NRHi NRLo CRCLo CRCHi 21H 03H 00H 07H 00H 02H 72H AAH Funkcja Liczba bajtów Dane Ŝądane rejestry CRC SAD FNC BCN (R8Hi) (R8Lo) (R9Hi) (R9Lo) CRCLo CRCHi 21H 03H 04H... Rys. 11. Ramki: a) zapytania i b) odpowiedzi; odczyt Stan sumatora przepływu w przód
8 Z. KUBIAK a) Slave adres Funkcja Adres startowy rejestrów Wartość CRC SAD FNC RADHi RADLo Hi Lo CRCLo CRCHi 21H 06H 00H 14H 00H 0FH 8EH AAH b) Slave adres Funkcja Adres startowy rejestrów Wartość CRC SAD FNC RADHi RADLo Hi Lo CRCLo CRCHi 21H 06H 00H 14H 00H 0FH 8EH 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 Funkcja Kod błędu CRC SAD FNC EXC CRCLo CRCHi 21H 83H 02H C1H 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 VCC VCC VDD Magistrala Modbus (RS485) A B Tx1 Tx0 Rx1 Rx0 UI2 Mikrokontroler UI1 GND GND GND1 ZK ISP GND X A B UI Układ interfejsu ZK Zadajnik kodu Magistrala Urządzeń Pomiarowych (RS485) 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.