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.

Podobne dokumenty