Protokół komunikacyjny RS485 i Modbus

Aug 29, 2025 Zostaw wiadomość

Wprowadzenie do interfejsu RS485

 

RS485 to standard interfejsu komunikacji szeregowej znany z dużej szybkości-transmisji na duże odległości, odporności na zakłócenia i możliwości współużytkowania wielu-urządzeń. Znajduje szerokie zastosowanie w automatyce przemysłowej, inteligentnych domach, systemach bezpieczeństwa i innych dziedzinach. Artykuł ten zawiera szczegółowy przegląd zasad działania interfejsu RS485, projektowania obwodów, protokołów komunikacyjnych i rozwiązań typowych problemów.


Zasada RS485

 

Interfejs RS485 wykorzystuje transmisję różnicową, wykorzystując dwie linie sygnałowe (A i B) do przesyłania sygnałów o poziomie napięcia. Wielkość sygnału zależy od różnicy napięć pomiędzy tymi dwiema liniami. W interfejsie RS485 obie linie sygnałowe A i B mogą działać jako nadajniki lub odbiorniki. Dzięki tej różnicowej metodzie transmisji interfejs RS485 skutecznie przeciwstawia się zewnętrznym szumom i zakłóceniom, zapewniając w ten sposób jakość transmisji.


Pola aplikacji RS485


Interfejs RS485 jest szeroko stosowany w scenariuszach wymagających-dużej odległości, dużej-szybkości i stabilnej transmisji danych, np. w automatyce przemysłowej, inteligentnych domach i systemach bezpieczeństwa. Pod względem odległości transmisji RS485 obsługuje do 1200 metrów, a pod względem prędkości transmisji obsługuje do 10Mbps. To sprawia, że ​​interfejs RS485 ma szerokie zastosowanie w scenariuszach obejmujących gromadzenie danych, regulację, monitorowanie i sterowanie.

 

 

 

info-638-230

Projekt obwodu RS485


Projekt obwodu dla interfejsu RS485 wymaga uwzględnienia wielu czynników, takich jak odległość transmisji, prędkość komunikacji, ochrona odgromowa i izolacja. Poniżej przedstawimy projekt obwodu dla interfejsu RS485 z każdego z tych aspektów.

 

Odległość transmisji


Dzięki transmisji różnicowej interfejs RS485 obsługuje większe odległości transmisji. Jednak w zastosowaniach praktycznych czynniki takie jak impedancja linii transmisyjnej, przesłuch i jakość sygnału nakładają ograniczenia na zasięg transmisji. Aby zminimalizować utratę sygnału i zniekształcenia, przy projektowaniu obwodów interfejsu RS485 generalnie zalecamy ograniczenie odległości transmisji do 1,2 km.


Szybkość komunikacji

 

Interfejs RS485 może osiągnąć prędkość komunikacji do 10Mbps. W zastosowaniach praktycznych zazwyczaj wybieramy odpowiednią szybkość komunikacji w oparciu o określone warunki. Wyższe prędkości komunikacji zwiększają wydajność transmisji, ale także zwiększają złożoność i wymagania techniczne obwodów interfejsu.


Ochrona odgromowa


Biorąc pod uwagę złożone środowisko przemysłowe, interfejsy RS485 często napotykają różne zakłócenia, takie jak uderzenia pioruna, elektryczność statyczna i przepięcia. Aby zabezpieczyć obwody interfejsu RS485, niezbędne są środki ochrony odgromowej. Aby zapewnić ochronę przed uderzeniem pioruna, można zastosować takie komponenty, jak regulowane zabezpieczenia przeciwprzepięciowe i warystory z tlenku metalu (MOV).


Izolacja

 

W niektórych scenariuszach wymagana jest izolacja pomiędzy interfejsem RS485 a innymi obwodami. Można to osiągnąć za pomocą komponentów takich jak transoptory lub sprzęgacze magnetyczne do izolowania sygnałów. Skutecznie zapobiega to potencjalnym pętlom uziemienia i zakłóceniom, zwiększając niezawodność i stabilność obwodów interfejsu.


Protokoły komunikacyjne RS485


W praktycznych zastosowaniach interfejsy RS485 wymagają również specyfikacji protokołu i formatowania danych. Typowe protokoły komunikacyjne RS485 obejmują Modbus, Profibus i CANopen. Każdy protokół ma odrębną charakterystykę i możliwe scenariusze, co pozwala na wybór w oparciu o określone wymagania. Poniżej przedstawiamy przede wszystkim protokół Modbus RTU, który jest najszerzej stosowanym protokołem transmisji w naszych projektach bazujących na interfejsach RS485.


Wprowadzenie do Modbus RTU

 

Modbus RTU to szeroko stosowany protokół komunikacji przemysłowej, jeden z protokołów komunikacji szeregowej oparty na strukturze Modbus. Protokół ten, używany głównie do komunikacji szeregowej pomiędzy urządzeniami, takimi jak sterowniki PLC, czujniki i elementy wykonawcze, ułatwia wymianę danych. W tym artykule szczegółowo opisano specyficzne znaczenie każdego rejestru w protokole Modbus RTU, przedstawiono przykłady transmisji i odbioru danych dla każdego kodu funkcji oraz podkreślono kluczową sumę kontrolną CRC.


Format danych protokołu Modbus RTU


Protokół Modbus RTU wykorzystuje komunikację szeregową do transmisji danych.


Swoiście:


Pole Adres identyfikuje adres urządzenia podrzędnego podczas komunikacji, który może mieć dowolną wartość z zakresu od 0 do 247.


Kod funkcji określa typ danych i kierunek odczytu/zapisu, zazwyczaj jest to liczba całkowita z zakresu od 1 do 127.


Pole danych zawiera rzeczywistą zawartość danych.
Suma kontrolna (CRC) weryfikuje integralność pakietu danych.
Kody funkcji protokołu Modbus RTU
W protokole Modbus RTU różne kody funkcji reprezentują różne typy danych i kierunki odczytu/zapisu. Poniżej znajdują się powszechnie używane kody funkcji i ich znaczenie:


01: Odczytaj rejestr cewki
02: Odczytaj dyskretny rejestr wejściowy
03: Przeczytaj rejestr wstrzymania
04: Odczytaj rejestr wejściowy
05: Zapisz rejestr pojedynczej cewki
06: Zapisz pojedynczy rejestr wstrzymania
15: Zapisz wiele rejestrów cewek
16: Zapisz wiele rejestrów wstrzymania


Rejestry adresowe protokołu Modbus RTU


Adresy urządzeń i adresy rejestrów są krytycznymi parametrami komunikacji w protokole Modbus RTU. Rejestry adresowe można podzielić na cztery typy:


Rejestr cewek (rejestr cewek)

 

Rejestry cewek przechowują wartości logiczne (0 lub 1). Kody funkcji 01, 05 i 15 są dozwolone do obsługi rejestrów cewek. Stan każdej cewki może być reprezentowany przez pojedynczy bit binarny.


Na przykład, jeśli cewka w bicie 0x0001 jest ustawiona na 0, jej wartość binarna wynosi 00000000 00000001.. Jeśli cewka jest ustawiona na 1, jej wartość binarna zmienia się na 00000000 00000010.


Rejestr wejść dyskretnych


Rejestr wejścia dyskretnego przechowuje wartości przełączników wejść binarnych i jest-tylko do odczytu, a odpowiadający mu kod funkcji to 02. Różnica między rejestrem wejścia dyskretnego a rejestrem cewki polega na tym, że wskazuje, czy przełącznik jest w stanie WŁ., a nie w jego bieżącym stanie.


Rejestr holdingowy

 

Rejestr holdingowy przechowuje 32-bitowe zmienne całkowite. Kody funkcji 03, 04, 06 i 16 umożliwiają operacje odczytu/zapisu w rejestrze holdingowym. Wartości w rejestrze holdingowym mogą ułatwiać przesyłanie danych pomiędzy urządzeniami lub być dostosowywane przez użytkowników jako istotne parametry kontrolne.


Rejestr wejściowy

 

Rejestry wejściowe przechowują 32-bitowe zmienne całkowite i obsługują operacje tylko do odczytu z kodem funkcji 04. Podobnie jak w przypadku rejestrów przechowujących, wartości w rejestrach wejściowych mogą być przesyłane między urządzeniami, ale użytkownicy nie mogą ich modyfikować.


Kontrola CRC protokołu Modbus RTU

 

Aby zapewnić niezawodność komunikacji protokołem Modbus RTU, protokół ten wykorzystuje metodę cyklicznej kontroli redundancji (CRC) w celu sprawdzenia integralności pakietów danych. Kod kontrolny CRC jest obliczany na podstawie przesłanych i odebranych pakietów danych i jest weryfikowany jednocześnie po stronie wysyłającej i odbierającej.


Biorąc za przykład rejestr wstrzymania odczytu (kod funkcji: 03), szesnastkowe wartości sumy kontrolnej CRC dla wysłanych i odebranych pakietów danych wynoszą odpowiednio 0x39 i 0x3E. Konkretne przesyłane i odbierane pakiety danych są następujące:


Nadajnik-wysłał pakiet danych: 01 03 00 00 00 01 C4 0B
W tym pakiecie pierwszych 6 bitów (01 03 00 00 00 01) reprezentuje format protokołu Modbus RTU, natomiast dwa ostatnie bity (C4 i 0B) stanowią sumę kontrolną CRC.
Odebrany pakiet u odbiorcy: 01 03 02 00 01 39 3E
W tym pakiecie danych pierwszych 6 bitów 01 03 02 00 01 39 reprezentuje odebraną wartość rejestru przechowującego (dwa bajty), podczas gdy dwa ostatnie bity 3E i 39 stanowią obliczoną sumę kontrolną CRC.


Przykład transmisji protokołu Modbus RTU


Poniżej znajduje się prosty przykład transmisji protokołu Modbus RTU do odczytu danych z rejestru przechowywania urządzenia:


Nadajnik wysyła: 01 03 00 00 00 02 C5 9A
Odbiorca odbiera: 01 03 04 00 00 00 66 CB


Ten przykład odczytuje rejestr wstrzymania urządzenia 01 przy użyciu kodu funkcji 03, uzyskując dostęp do dwóch bajtów pod adresem rejestru 0x0000. Zatem odebrany pakiet danych zawiera wartości 0x0000 i 0x0000, tj. 0x0000 0000 reprezentowane w systemie szesnastkowym jako 0x66CB.


Wniosek


W tym artykule omówiono przede wszystkim zasady, zastosowania, projektowanie obwodów, protokoły komunikacyjne i rozwiązania problemów związanych z interfejsami RS485. Interfejsy RS485 znajdują szerokie zastosowanie w automatyce przemysłowej, inteligentnych domach, systemach bezpieczeństwa i innych dziedzinach. Aby jednak zapewnić niezawodność i stabilność obwodu interfejsu, należy wziąć pod uwagę takie czynniki, jak odległość transmisji, prędkość komunikacji, ochrona odgromowa i izolacja. Wprowadzono podstawową wiedzę na temat protokołu Modbus RTU, w tym jego formatu danych, kodów funkcji, rejestrów adresowych i sumy kontrolnej CRC. W zastosowaniach praktycznych protokół Modbus RTU jest szeroko stosowany do komunikacji pomiędzy urządzeniami w systemach sterowania automatyki przemysłowej. Podczas odczytu danych należy zwrócić szczególną uwagę na wybór adresu urządzenia, adresu rejestru i kodu funkcji.

Wyślij zapytanie

whatsapp

Telefon

Adres e-mail

Zapytanie