🔄 Losowy artykuł
Szlaki górskie Pociągiem dookoła Polski Podróże kulinarne Hotele-unikaty świata Parkingi przy lotniskach Łowiska Europy Campingi dla kamperów Imprezy — atrakcje w Polsce Poradnik pilota drona Wydarzenia i bilety Promocje bankowe Kamery na żywo Oferty Centrum Podróży Koliber Triper.pl Trip.FazaFM.com — plany podróży

Modbus

Modbus – protokół komunikacyjny stworzony przez firmę Modicon. Służy do komunikacji z programowalnymi kontrolerami tej firmy, a także innych producentów. Umożliwia zarządzanie siecią takich urządzeń jak np. system sterowania temperatury i wilgotności. Powstały wersje dla portu szeregowego i dla sieci IP. W sieciach IP używany jest protokół TCP na porcie 502. Modbus jest protokołem typu Client-Server.

Modbus - struktura systemu

Modbus został stworzony w 1979r. przez firmę Modicon. Firma ta została przejęta przez Schneider Electric. Modbus jest obecnie standardem otwartym, co przyczyniło się do dużego rozpowszechnienia standardu. Początkowo działał poprzez port szeregowy RS-232 lecz wraz z rozwojem protokołu możliwe było wykorzystanie RS-485, co pozwalało na zwiększenie prędkości transmisji.

Modbus ASCII

Ramka komunikacji w trybie ASCII

: Adres Kod funkcji Dane Suma kontrolna CR LF
...
  • bajty są wysyłane szesnastkowo (po dwa znaki ASCII)
  • odstępy pomiędzy kolejnymi znakami ramki < 1s

Modbus RTU

Ramka komunikacji w trybie RTU

Adres Kod funkcji Dane Suma kontrolna
...
  • bajty są wysyłane binarnie jako znaki ośmiobitowe
  • każda ramka jest poprzedzona odstępem (cisza na linii)> 3,5T (gdzie T oznacza czas transmisji jednego znaku)
  • odstępy pomiędzy kolejnymi znakami ramki < 1,5T

Znaczenie bajtów

adres

0 – adres rozgłoszeniowy

1 – 247 – adres jednostki server

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 server

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.

Diagnoza błędów

Wykrywanie błędów transmisji następuje dzięki kontroli parzystości poprzecznej (bit parzystości znaku) i wzdłużnej (LRC, CRC).

Wykrywanie i diagnozowanie błędów komunikacji następuje przez:

  • odesłanie przez server ramki z kodem błędu:
01 – niedozwolona funkcja
02 – niedozwolony numer rejestru
03 – niedozwolona wartość danej
04 – uszkodzenie w przyłączonym urządzeniu
05 – potwierdzenie pozytywne
06 – brak gotowości, komunikat usunięty
07 – potwierdzenie negatywne
08 – błąd parzystości pamięci
  • przekroczenie czasu oczekiwania na odpowiedź (timeout w jednostce client) – server nie odsyła odpowiedzi przy błędach w ramce żądania

Zobacz też

Linki zewnętrzne

ℹ Źródło: artykuł „Modbus” w polskiej Wikipedii. Treść dostępna na licencji CC BY-SA 4.0; lista autorów w historii edycji. Wersja może się różnić od aktualnej na Wikipedii (kopia odświeżana okresowo).
💳 Revolut
Karta wielowalutowa do podróży — płacisz za granicą bez przewalutowań.
Odbierz kartę →
💰 ZEN.COM
Konta multiwalutowe i karty — płatności bez granic z poziomu aplikacji.
Sprawdź ZEN →
🌍 Wise
Przelewy za granicę po realnym kursie — bez ukrytych marż.
Wypróbuj Wise →
Linki polecające — obowiązują regulaminy usług.
FazaFM.com — radio i newsy Hrubek.pl — Hrubieszów blisko Ciebie Gorzkie Groszki — blog