Modbus
Z Wikipedie, otevřené encyklopedie
MODBUS je otevřený protokol pro vzájemnou komunikaci různých zařízení (PLC, dotykové displeje, I/O rozhranní apod), který umožňuje přenášet data po různých sítích a sběrnicích. Komunikace funguje na principu předávání datových zpráv mezi klientem a serverem (master a slave).
Obsah |
[editovat] Implementace MODBUS:
- Ethernet přes TCP/IP
- asynchronní sériový přenos (RS-232C, RS-422, RS-485, optické vlákno, radiový přenos)
- MODBUS PLUS vysokorychlostní síť
[editovat] Adresace
- adresa 0 - broadcast - zpráva je určena všem zařízením, ale žádné na ní neodpovídá
- adresy 1 až 247 - unicast - po přijetí a zpracování požadavku vyšle slave odpověď
- adresy 248 až 255 jsou v rezervě
[editovat] Popis protokolu
Protokol MODBUS definuje strukturu zprávy na úrovni protokolu (PDU – Protocol Data Unit) nezávisle na typu komunikační vrstvy. V závislosti na typu sítě, na které je protokol použit, je PDU rozšířena o další části a tvoří tak zprávu na aplikační úrovni (ADU – Application Data Unit). Kód funkce udává serveru jaký druh operace má provést. Rozsah kódů je 1 až 255, přičemž kódy 128 až 255 jsou vyhrazeny pro oznámení záporné odpovědi (chyby). Některé kódy funkcí obsahují i kód podfunkce upřesňující blíže požadovanou operaci. Obsah datové části zprávy poslané klientem slouží serveru k uskutečnění operace určené kódem funkce. Obsahem může být například adresa a počet vstupů, které má server přečíst nebo hodnota registrů, které má server zapsat. U některých funkcí nejsou pro provedení operace zapotřebí další data a v tom případě může datová část ve zprávě úplně chybět. Zabezpečení je CRC pro RTU Mode a LRC (kontrolní součet) pro ASCII Mode.
[editovat] Vysílací režimy
MODBUS protokol definuje dva sériové vysílací režimy, MODBUS RTU a MODBUS ASCII. Režim určuje v jakém formátu jsou data vysílána jak dekódována. Každá jednotka musí podporovat režim RTU, režim ASCII je nepovinný. Všechny jednotky na jedné sběrnici musejí pracovat ve stejném vysílacím režimu.
- MODBUS RTU - V režimu RTU obsahuje každý 8-bitový byte zprávy dva 4-bitové hexadecimální znaky. Vysílání zprávy musí být souvislé, mezery mezi znaky nesmějí být delší než 1.5 znaku. Začátek a konec zprávy je identifikován podle pomlky na sběrnici delší než 3.5 znaku.
- MODBUS ASCII - V režimu ASCII je každý 8-bitový byte posílán jako dvojice ASCII znaků. Oproti režimu RTU je tedy pomalejší, ale umožňuje vysílat znaky s mezerami až 1 s. Začátek a konec zprávy je totiž určen odlišně od RTU módu. Začátek zprávy je indikován znakem „:“ a konec zprávy dvojicí řídicích znaků CR, LF.