Sieć Modbus- podstawowe parametry, ►Studia, Semestr 8, Automatyzacja procesów przemysłowych


Politechnika Częstochowska

Wydział Elektryczny

Automatyzacja Procesów Przemysłowych

Sieć Modbus- podstawowe parametry

Wykonał:

Janus Robert

Rok IV, Sem. VIII

Gr. KiRP 1

Protokół Modbus został stworzony przez firmę Modicon w 1979r. i stał się wkrótce standardem przyjętym przez większość znanych producentów sterowników przemysłowych dla asynchronicznej, znakowej wymiany informacji pomiędzy urządzeniami systemów pomiarowo-kontrolnych. Obecnie jest standardem otwartym. O jego popularności i rozpowszechnieniu zadecydowały takie cechy, jak:

0x01 graphic

Rys.1. Struktura systemu Modbus

Transakcje w protokole Modus.

Kontrolery urządzeń pracujących w systemie MODBUS komunikują się ze sobą przy wykorzystaniu protokołu typu master-slave, w którym tylko jedno urządzenie może inicjować transakcje (jednostka nadrzędna - master), a pozostałe (jednostki podrzędne -slave) odpowiadają jedynie na zdalne zapytania mastera. Transakcja składa się z polecenia (query) wysyłanego z jednostki master do slave oraz z odpowiedzi (response) przesyłanej z jednostki slave do master. Odpowiedź zawiera dane żądane przez master lub potwierdzenie realizacji jego polecenia. Master może adresować indywidualnych odbiorców (jednostki slave) lub też przesyłać wiadomości "rozgłoszeniowe" (broadcast), przeznaczone dla wszystkich urządzeń podrzędnych w systemie. Na polecenia rozgłoszeniowe jednostki slave nie przesyłają odpowiedzi.

Protokół MODBUS określa format wiadomości przesyłanych z jednostki master do slave. Zawiera on adres odbiorcy, kod funkcji reprezentujący żądane polecenie, dane oraz sumę kontrolną zabezpieczającą przesyłaną wiadomość. Odpowiedź urządzenia slave wysyłana jest również zgodnie z formatem zdefiniowanym w protokole MODBUS. Zawiera ona pole potwierdzenia realizacji rozkazu, dane żądane przez master oraz sumę kontrolną zabezpieczającą odpowiedź przed błędami. Jeżeli urządzenie slave wykryje błąd przy odbiorze wiadomości, lub nie jest w stanie wykonać polecenia, przygotowuje specjalny komunikat o wystąpieniu błędu i przesyła go jako odpowiedź do mastera.

0x01 graphic

Rys.2. Transakcja w trybie Modbus

Ramka w protokole Modbus.

W systemie MODBUS wiadomości są zorganizowane w ramki o określonym początku i końcu. Pozwala to urządzeniu odbierającemu na odrzucenie ramek niekompletnych i sygnalizację związanych z tym błędów. Ze względu na możliwość pracy w jednym z dwóch różnych trybów transmisji (ASCII lub RTU), definiuje się dwie ramki:

W trybie ASCII, każdy bajt w wiadomości przesyłany jest w postaci dwóch znaków ASCII. Podstawową zaletą tego trybu transmisji jest to, że pozwala on na długie odstępy między znakami (do 1 s) bez powodowania błędów. Znak przesyłany w trybie transmisji ASCII jest to heksadecymalny znak ASCII 4-9, A-F. Jeden znak heksadecymalny zawarty jest w każdym znaku ASCII wiadomości, znaki przesyłane są asynchronicznie. 10 bitowa jednostka informacyjna jest ograniczona znakami start (na początku) i stop (na końcu).

0x01 graphic
0x01 graphic

Rys. 3. Znak ASCII: a) z kontrolą parzystości b) bez kontroli parzystości

Przy transmisji w trybie ASCII stosuje się zabezpieczenie części informacyjnej ramki kodem LRC (Longitudinal Redundancy Check). Znacznikiem początku ramki jest znak dwukropka (":" - ASCII 3A). Dopuszczalnymi znakami dla pozostałych pól (za wyjątkiem znacznika końca ramki) są 0-9, A-F. Urządzenie po wykryciu znacznika początku ramki sprawdza, czy pole adresowe zawiera jego adres własny. Jeżeli tak, to odczytuje zawartość pola funkcji i związaną z nią zawartość pola danych. Część informacyjni ramki (bez znaku ":") zabezpiecza pole kontrolne LRC. Ramka kończy się przesłaniem dwóch znaków: CR i LF.

Obliczanie LRC polega na obliczaniu 8-bitowej sumy bajtów ramki (bez przeniesień). Wynik LRC to dopełnienie do dwóch obliczonej sumy.

0x01 graphic

Rys 4. Ramka w trybie ASCII

W trybie RTU(real-time unit) bajty są wysyłane binarnie jako znaki ośmiobitowe. Wiadomości rozpoczynają się odstępem czasowym trwającym minimum 3.5 x (czas trwania pojedynczego znaku), w którym panuje cisza na łączu. Najprostszą implementacją wymienionego interwału czasowego jest wielokrotne odmierzanie czasu trwania znaku przy zadanej szybkości bodowej przyjętej w łączu. Pierwszym polem informacyjnym ramki jest adres urządzenia. Połączone w system urządzenia stale (łącznie z przedziałami ciszy) monitorują magistralę. Po odebraniu zawartości pola adresu urządzenia sprawdzaj, czy przesłany adres jest ich adresem własnym. Jeżeli tak, to kontynuują interpretację pozostałych pól wchodzących w skład ramki. Odstęp pomiędzy poszczególnymi znakami ramki nie może być większy niż 1,5x. Jeżeli odstęp ten przekroczy podaną wartość, to urządzenie odbierające uzna ramkę za niekompletną i następny znak przyjmie za bajt pola adresowego kolejnej wiadomości. Podobnie, jeżeli owa wiadomość pojawi się na magistrali przed upływem koniecznej przerwy (3.5 x długość znaku), to urządzenie odbierające potraktuje ją jako kontynuację poprzedniej wiadomości. To doprowadzi do błędu sumy kontrolnej, ponieważ urządzenie odbierające będzie obliczać CRC dwóch wiadomości i porównywać go z CRC drugiej.

CRC w trybie RTU jest to 16 bitowy identyfikator składający się z dwóch 8 bitowych słów.

0x01 graphic
0x01 graphic

Rys. 5. Znak RTU: a) z kontrolą parzystości b) bez kontroli parzystości

0x01 graphic

Rys 6. Ramka w trybie RTU

0x01 graphic

Rys 7. Poprawna transmisja w trybie RTU

0x01 graphic

Rys 8. Nie poprawna transmisja w trybie RTU

Format znaku przy transmisji szeregowej

W standardzie MODBUS znaki są przesyłane szeregowo od najmłodszego do najstarszego bitu.

Organizacja jednostki informacyjnej w trybie ASCII:

Pola ramki Modbus

adres

0 - adres rozgłaszania (broadcast)

1 - 247 - adres jednostki slave

kod funkcji

1 $01 odczyt wyjść bitowych

2 $02 odczyt wejść bitowych

3 $03 odczyt n rejestrów

4 $04 odczyt n rejestrów wejściowych

5 $05 zapis 1 bitu

6 $06 zapis 1 rejestru

7 $07 odczyt statusu

8 $08 test diagnostyczny

15 $0F zapis n bitów

16 $10 zapis n rejestrów

17 $11 identyfikacja urządzenia slave

128 - 255 $80-$FF zarezerwowane na odpowiedzi błędne

rejestry i zmienne

Urządzenie jest widziane jako 16-bitowe rejestry Wn.

Typy zmiennych umieszczanych w rejestrach:

bitowe - bity rejestrów W0 .W4095

2-bajtowe - całe rejestry Wn

4-bajtowe - sąsiednie rejestry Wn : Wn+1

zalecenie

W celu ułatwienia przesyłania danych przy pomocy ramek z funkcja, ”odczyt (zapis) n rejestrów” rejestry powinny zajmować spójny obszar adresowany od 0 do rejmax.

Przykład architektury Modbus

0x01 graphic

Stos Protokołu Modbus

0x01 graphic

Powyższy wykres czasowy przedstawia 3 typowe scenariusze komunikacji Master-Slave.

0x01 graphic

W ostatnich latach na popularności znacznie zyskał Ethernet czyli bezprzewodowe sieci. Posiadają wiele zalet takich jak mniejsze koszty utrzymania, łatwiejsza diagnostyka i bardzo duże szybkości transferu danych. Dlatego też również protokół Modbas ma swoją odmianę Ethernetową, która nosi nazwę Modbus TCP

Różnice pomiędzy Modbus RTU a Modbus TCP wymagają zastosowania odpowiedniej bramy, która będzie pomostem pomiędzy tymi interfejsami i protokołami. Z odsieczą przychodzi firma Moxa wprowadzając do swej oferty całą gamę bramek o oznaczeniu Mgate 3000. Bramki firmy Moxa wyposażone są interfejs Ethernet oraz od 1 do 4 portów szeregowych RS-232/422/485. Porty szeregowe są niezależne od siebie. Każdy z portów można skonfigurować na inny interfejs (RS-232/422/485), inne parametry transmisji oraz inny protokół (RTU/ASCII). Ponadto każdy z portów można indywidualnie skonfigurować jako master lub slave.

Bramki Mgate w sposób przezroczysty i bilateralny konwertują protokóły Modbus TCP/RTU, dlatego można je zastosować praktycznie w dowolnej topologii.
Najczęściej spotykana jest konfiguracja w której Master TCP komunikuje się z urządzeniami z interfejsem szeregowym typu Slave. Do każdego portu szeregowego można podłączyć jedno urządzenie z RS-232/422 lub do 31 urządzeń z RS-485. MGate umożliwia urządzeniom typu Master TCP do 16 jednoczesnych połączeń urządzeń z każdym portem szeregowym.
W sytuacji gdy np. panel operatorski z portem szeregowym (Modbus RTU Master) chcemy połączyć z rozproszonymi urządzeniami typu Modbus TCP Slave, Mgate umożliwia obsługę do 32 takich urządzeń.

Standard RS-485 ogranicza liczbę urządzeń w sieci do 32 a maksymalny dystans transmisji do 1200m. Przy pomocy bramek MGate możliwa jest komunikacja urządzeń z interfejsem szeregowym poprzez sieć Ethernet. W ten sposób Master (Modbus RTU) może komunikować się ze Slave (Modbus RTU) umieszczonym praktycznie w dowolnej lokalizacji. Jedyne ograniczenie to maksymalnie 32 moduły MGate w jednej sieci.
Nowością w modułach MGate w stosunku do poprzedniej wersji jest mechanizm automatycznego wykrywania czasów odpowiedź poszczególnych urządzeń. Dzięki temu konfiguracja systemu jest bardzo prosta i mniej czasochłonna.

Nową odmianą protokołu Modbus jest Modbus Plus wykorzystujący technologie High speed token passing network HDLC.

0x01 graphic
Protokół HDLC

Łącza synchroniczne pozwalają na przesyłanie strumieni bitów. Jednak w przypadku sieci komputerowych ważne jest zachowanie podziału strumienia na bajty, a także zachowanie podziału ciągu bajtów na pakiety. Prosty protokół jakim jest HDLC umożliwia zachowanie takiego właśnie podziału.

Do zaznaczenia początku i końca pakietu danych służy ciąg bitów 01111110. Jest to specjalny znacznik (ang. flag), który nie może pojawić się wewnątrz pakietu. Dzięki niemu odbiornik ma pewność, że następujące po nim bity są kolejno pierwszym, drugim, itd. bajtem przesyłanych danych.

Pojedynczy znacznik HDLC może być jednocześnie końcem jednego pakietu i początkiem kolejnego.

0

1

1

1

1

1

1

0

Rys. 9  Znacznik początku i końca pakietu HDLC

Ponieważ ciąg bitów 01111110 jest zarezerwowany, dlatego trzeba odpowiednio zmodyfikować przesyłane dane, aby nie pojawił się on wewnątrz pakietu i nie został błędnie zinterpretowany. Dlatego za każdym razem, gdy w strumieniu danych pojawi się pod rząd 5 jedynek nadajnik wstawia po nich dodatkowe zero. Odbiornik z kolei po odebraniu 5 kolejnych jedynek pomija następujące po nich zero. W ten sposób przesyłany ciąg bitów zostaje odtworzony. Taka operacja nosi nazwę bit stuffing.

Dodatkowo żeby zapewnić integralność przesyłanych danych na końcu pakietu jest dodawana 16-bitowa suma kontrolna CRC16.

Na poniższym przykładzie widać, jak zmienia się ciąg bitów w przypadku zastosowania protokołu HDLC.

Trzybajtowy pakiet 0x15 0xff 0x3e:

0

0

0

1

0

1

0

1

 

1

1

1

1

1

1

1

1

 

0

0

1

1

1

1

1

0

Pakiet HDLC ze znacznikami i bit stuffingiem:
(ciemniejsze pola - bity dodane przez protokół HDLC, c - bity sumy kontrolnej CRC16)

0

1

1

1

1

1

1

0

0

0

0

1

0

1

0

1

1

1

1

1

0

1

1

1

1

0

0

1

1

1

1

1

0

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

c

0

1

1

1

1

1

1

0

Rys. 10  Trzybajtowy pakiet (0x15 0xff 0x3e) przed i po zastosowaniu HDLC

Jeśli przez linię transmisyjną nie mają być przesyłane żadne dane, wówczas nadajnik powinien nieprzerwanie wysyłać sekwencję 01111110.

Wysłanie ciągu samych jedynek służy do przerwania tramisji i zakomunikowania drugiej stronie, że wystąpił błąd.

Protokół HDLC dopuszcza stosowanie elementów sieci podzielonych funkcjonalnie na trzy grupy

Stacja nadrzędna to takie urządzenie w sieci, które przyznaje dostęp do sieci wszystkim urządzeniom w niej pracującym. Jest to swego rodzaju arbiter, zarządzający stacjami podrzędnymi. Bez zgody tej stacji żaden element podrzędny nie może rozpocząć transmisji w sieci.

Stacja podrzędna. Jeżeli w danej sieci jest używana stacja nadrzędna, pojawić sie musi jedna lub więcej stacji podrzędnych. Nie mają one takiej władzy jak stacje nadrzędne nad łączem, transmitują jedynie odpowiedzi na pakiety stacji nadrządnej. Jedynie na żądanie stacji głównej (nadrzędnej ) są aktywowane.

Stacje uniwersalne . Elementy tego typu są funkcjonalnym połączeniem stacji obu przedstawionych powyżej typów. Wszystkie stacje tego typu są władne wysłać i odbierać pakiety bez pozwolenia jakiegokolwiek arbitra. Żadna stacja uniwersalna nie może być kontrolowana przez inną stację w sieci.

Bibliografia

  1. http://www.simplymodbus.ca/FAQ.htm#Modbus

  2. http://www.automatyka.com.pl/poradnik/slownik_szukaj.php

  3. http://www.promotic.eu/pl/pmdoc/Subsystems/Comm/PLC/Modbus.htm

  4. http://www.sterowniki.pl/index.php?option=Articles&task=viewarticle&artid=192

9



Wyszukiwarka

Podobne podstrony:
Zagadnieniana kolokwium, Automatyka i robotyka air pwr, VI SEMESTR, Automatyzacja procesów przemysło
UNIDRIVE panel nr3, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych
MENTOR II panel nr4, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych
U do f, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych, Wykład
COMMANDER SE panel nr2, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych
Sprzęgło proszkowe nr5, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych
AMD panel nr1, ►Studia, Semestr 8, Automatyka Napędów Elektrycznych
AUTOMATYZACJA PROCESÓW PRZEMYSŁOWYCH
pytania teoria, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, KOLOKWIUM
Sprzężenie zwrotne, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, Reszt
Sciągi na egzamin, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, WYKŁAD
Automaty pytania, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, Reszta,
automaty czlony, IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, Reszta,
Automaty pytania (1), IŚ Tokarzewski 27.06.2016, VI semestr COWiG, Podstawy Automatyki Procesów, WYK
wyplyw cieczy ze zbiornika, Technologia chemiczna, 5 semestr, Podstawowe procesy przemysłu chemiczne
sprawko-badanie silnika(1), Semestr 5, Automatyzacja i robotyzacja procesu produkcji
Sprawozdanie Badanie elementów przełączających i czujników przesunięć(1), Semestr 5, Automatyzacja i
pytania na egzamin- automaty, Semestr 5, Automatyzacja i robotyzacja procesu produkcji
automatyka egzam, Semestr 5, Automatyzacja i robotyzacja procesu produkcji

więcej podobnych podstron