KONWERTER PROTOKOŁÓW DLA URZĄDZEŃ POMIAROWYCH



Podobne dokumenty
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

Komunikacja w mikrokontrolerach Laboratorium

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Problematyka sieci miejscowej LIN

DODATEK A OPIS INTERFEJSU SIECIOWEGO FMP300

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

1.10 MODUŁY KOMUNIKACYJNE

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

Instrukcja obsługi symulatora linii produkcyjnej Komunikacja Modbus RTU (sterowniki PSW, Beckhoff)

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi

Ogólne przeznaczenie i możliwości interfejsu sieciowego przepływomierza UniEMP-05 z protokołem MODBUS. ( )

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Adres rejestru. szesnastkowo. Typ zmiennej. Numer funkcji Modbus. Opis zmiennej. (dziesiętnie)

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

REJESTRATOR EKRANOWY Typu KD8

Moduł komunikacyjny Modbus RTU w standardzie RS-485 do ciepłomierza SonoMeter 31 i przelicznika energii Infocal 9

Magistrala LIN

TECHNIKA MIKROPROCESOROWA

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

REJESTRATOR Z EKRANEM DOTYKOWYM TYPU KD7

Mini Modbus 1AI. Moduł rozszerzający 1 wejście analogowe, 1 wyjście cyfrowe. Wyprodukowano dla

Komunikacja Master-Slave w protokole PROFIBUS DP pomiędzy S7-300/S7-400

KATALOG MODUŁÓW INTERFEJSY Modbus

dokument DOK wersja 1.0

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

CM Konwerter ModBus RTU slave ModBus RTU master

RS485 MODBUS Module 6RO

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Instrukcja obsługi czytnika MM-R32

RS485 MODBUS Module 6RO

interfejs szeregowy wyświetlaczy do systemów PLC

Sieci miejscowe stosowane w układach serwonapędowych. Zagadnienia komunikacji w nowoczesnych układach serwonapędowych R Θ. R ω R M

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Politechnika Wrocławska

LEKCJA TEMAT: Zasada działania komputera.

Protokół Modbus RTU / Sieć RS-485

ARCHITEKTURA PROCESORA,

ND48-RS protokół komunikacyjny ASCII A2.04

Instrukcja MM-717 Tarnów 2010

RS485 MODBUS Module 6RO

Komunikacja w mikrokontrolerach Laboratorium

STEKOP SA. Odbiornik dialerowy. Zakład Pracy Chronionej Białystok, ul. Młynowa 21 tel./fax : (+48 85) ,

Industrial Ethernet Dokumentacja techniczna połączenia Sterowniki S7-400(300) firmy Siemens - System PRO-2000 firmy MikroB

MiniModbus 4DI-M. Moduł rozszerzający 4 wejścia cyfrowe z pamięcią liczników. Wyprodukowano dla

INFORMATOR TECHNICZNY GE IP. Zalecana konfiguracja systemu gorącej rezerwacji Hot-Standby Redundancy w oparciu o kontrolery PACSystems

CM Konwerter SUCOM_A Master - ModBus RTU Slave

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

MiniModbus 4DI. Moduł rozszerzający 4 wejścia cyfrowe. Wyprodukowano dla

RS485 MODBUS Module 16O

Termometr LB-471T INSTRUKCJA UśYTKOWANIA wersja instrukcji 1.1

STHR-6610 Naścienny przetwornik temperatury i wilgotności

2. Format danych i zaimplementowane funkcje MODBUS

CM Konwerter ModBus RTU slave ModBus RTU slave

CM ModBus RTU slave DMX master

RS485 MODBUS Module 16RO

Instrukcja do oprogramowania ENAP DEC-1

STR-6610-D Naścienny przetwornik temperatury z czujnikiem Dallas

LB-471P, panel ciśnieniomierza z pętlą prądową 4..20mA INSTRUKCJA UśYTKOWANIA wersja instrukcji 1.1

Zadania do ćwiczeń laboratoryjnych Systemy rozproszone automatyki - laboratorium

UKI INSTRUKCJA OBSŁUGI UNIWERSALNEGO KONWERTERA INTERFEJSÓW TK/3001/034/006. Wersja instrukcji:

Serwery OPC UA 1. SERWER OPC UA DLA CONTROL

RS485 MODBUS Module 16O

2.7 MODUŁY KOMUNIKACYJNE

KONCENTRATOR DANYCH Z PROTOKO EM MODBUS. Typu PD x 94 x 58 mm INSTRUKCJA OBS UGI

Protokół komunikacyjny sondy cyfrowej CS-26/RS-485 (lub RS-232)

KONWERTER ETHERNET-RS485/RS232

LSPX-21 LISTWOWY MODUŁ WEJŚĆ ANALOGOWYCH DOKUMENTACJA TECHNICZNO-RUCHOWA. Wrocław, październik 2003 r.

UNIPROD GLIWICE ul. Sowińskiego 3 tel: , fax kontakt@uniprod.pl

STEROWNIK MODUŁÓW PRZEKAŹNIKOWYCH SMP-8

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

SDM-6RO. Moduł rozszerzający 6 wyjść przekaźnikowych. wyprodukowano dla

INSTRUKCJA OBSŁUGI. KONWERTERA USB/RS232 - M-Bus

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Dokumentacja Techniczna. Konwerter USB/RS-232 na RS-285/422 COTER-24I COTER-24N

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Kod produktu: MP01611-ZK

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

SAIA PROGRAMOWALNY STEROWNIK PLC

m e d i a s e r v i c e Moduł kamery JPEG z komunikacją szeregową CJ0706A

Konfiguracja parametrów sondy cyfrowo analogowej typu CS-26/RS/U

RS485 MODBUS Module 16RO

Mikroprocesory i Mikrosterowniki Laboratorium

SM Wyświetlacz 4x LED, 1x CAN, 1xRS232/485, 2x wejście analogowe

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Spis treści. 1 Moduł Modbus TCP 4

SYGNALIZATORY MIEJSCA ZWARCIA W SIECI KABLOWEJ SN Z SERII SMZ-4DM INSTRUKCJA OBSŁUGI PRZEZ PROTOKÓŁ MODBUS RTU

STHR-2810, 2811, 2812 Przetwornik temperatury i wilgotności z czujnikiem Sensirion

SDM-8AO. Moduł rozszerzający 8 wyjść analogowych. wyprodukowano dla

Transkrypt:

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.