Modbus

Modbusprotokół 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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya