From Wikipedia, the free encyclopedia
Modbus je otevřený protokol pro vzájemnou komunikaci různých zařízení (PLC, dotykové displeje, I/O rozhraní 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).
Na sběrnici je jedno „master“ zařízení (v případě verze Modbus TCP jich může být více) posílající dotazy, ostatní zařízení jsou „slave“. „Slave“ zařízení odpovídá na dotazy, které jsou mu adresovány. V pozici mastera je tedy řídící prvek (např. PLC nebo průmyslové PC), v roli slave zařízení jsou ovládané nebo sledované prvky (např. čidla, měřící přístroje, PLC, prvky výrobních linek atp.).
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á, jaký druh operace slave (též server – podřízený) 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é masterem slouží klientovi k uskutečnění operace určené kódem funkce. Obsahem může být například adresa a počet vstupů, které má klient přečíst nebo hodnota registrů, které má klient 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.
Modbus preferuje sériovou komunikační sběrnici standardu RS485, preferovaný režim sériové linky je 19200 baudů, 8 datových bitů a sudá parita.
Protokol Modbus 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. 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.
Označení | Význam |
---|---|
Discrete Input | Jeden bit určený pouze ke čtení. Např. binární vstup. |
Coil | Jeden bit, který lze číst i zapisovat. Např. cívka relé, lze ji ovládat i zjišťovat její stav. |
Input Register | 16bitový registr určený pouze ke čtení. Např. analogový vstup. |
Holding Register | 16bitový registr, který lze číst i zapisovat. Např. čítač, lze jej nastavit i číst jeho hodnotu. |
Kód | Název funkce | Popis |
---|---|---|
01 | Read Coils | Čtení jednoho nebo více bitů |
02 | Read Discrete Inputs | Čtení jednoho nebo více bitů |
03 | Read Holding Registers | Čtení jednoho nebo více 16bitových registrů |
04 | Read Input Registers | Čtení jednoho nebo více 16bitových registrů |
05 | Write Single Coil | Zápis jednoho bitu |
06 | Write Single Register | Zápis jednoho 16bitového registru |
15 | Write Multiple Coils | Zápis více bitů |
16 | Write Multiple Registers | Zápis více 16bitových registrů |
V praxi někdy splývají pojmy Coils a Discrete Inputs (respektive Holding Registers a Input Registers), záleží pouze na výrobci zařízení, jak interpretuje tyto pojmy, respektive jak namapuje modbusové adresy registrů na své vlastní adresy (registrů/vstupů/výstupů…). V některých případech lze v případě čtení zaměnit funkce 01 a 02 (respektive 03 a 04).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.