Array ( [0] => 15521817 [id] => 15521817 [1] => cswiki [site] => cswiki [2] => Modbus [uri] => Modbus [3] => MODBUS communication stack.png [img] => MODBUS communication stack.png [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 1 [has_content] => 1 [12] => [oai_cs_optimisticky] => ) Array ( [0] => '''Modbus''' je otevřený protokol pro vzájemnou komunikaci různých zařízení ([[Programovatelný logický automat|PLC]], [[Dotyková obrazovka|dotykové displeje]], I/O rozhraní apod.), který umožňuje přenášet data po různých sítích a [[sběrnice|sběrnicích]]. Komunikace funguje na principu předávání datových zpráv mezi [[klient–server|klientem a serverem]] (master a slave). [1] => [2] => == Popis protokolu == [3] => 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ř. [[Programovatelný logický automat|PLC]] nebo průmyslové [[Osobní počítač|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.). [4] => [5] => === Struktura rámce === [6] => 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). [7] => [8] => 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 [[Cyklický redundantní součet|CRC]] pro RTU Mode a LRC ([[kontrolní součet]]) pro ASCII Mode. [9] => [10] => === Přenosová media, verze protokolu === [11] => * [[Ethernet]] přes [[TCP|TCP/IP]] [12] => * sériový přenos ([[RS-232|RS-232C]], [[RS-422]], [[RS-485]], [[optické vlákno]], radiový přenos) [13] => * MODBUS PLUS vysokorychlostní síť [14] => [15] => ==== Modbus po sériové lince ==== [16] => 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. [17] => [18] => 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. [19] => [20] => * MODBUS RTU – V režimu RTU se [[8bitový]] byte vysílá jako jeden znak, integrita zpráv je zajištěna pomocí kontrolního součtu typu [[CRC]] a pomocí paritního bitu. 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. Časování a definice protokolu zajišťuje rychlou komunikaci a spolehlivou komunikaci po sběrnici RS485, aniž by byly kladeny přehnané nároky na připojená zařízení. Díky svým dobrým vlastnostem a otevřenosti patří MODBUS RTU k nejrozšířenějším komunikačním standardům pro průmyslovou automatizaci. [21] => [22] => * MODBUS [[ASCII]] – V režimu ASCII je každý 8bitový 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ů [[Carriage return|CR]], [[Line feed|LF]]. Tato verze protokolu je tak „lidsky čitelnější“, ale proti RTU verzi je málo využívaná. [23] => [24] => === Adresace === [25] => * adresa 0 – [[broadcast]] – zpráva je určena všem zařízením, ale žádné na ní neodpovídá [26] => * adresy 1 až 247 – [[unicast]] – po přijetí a zpracování požadavku vyšle slave odpověď [27] => * adresy 248 až 255 jsou v rezervě [28] => [29] => === Typ přenášených dat === [30] => {| class="wikitable" [31] => ! Označení !! Význam [32] => |- [33] => | ''Discrete Input'' || Jeden [[bit]] určený pouze ke čtení. Např. binární vstup. [34] => |- [35] => | ''Coil'' || Jeden bit, který lze číst i zapisovat. Např. cívka [[relé]], lze ji ovládat i zjišťovat její stav. [36] => |- [37] => | ''Input Register'' || 16bitový registr určený pouze ke čtení. Např. analogový vstup. [38] => |- [39] => | ''Holding Register'' || 16bitový registr, který lze číst i zapisovat. Např. čítač, lze jej nastavit i číst jeho hodnotu. [40] => |} [41] => [42] => === Kódy základních funkcí === [43] => {| class="wikitable" [44] => ! Kód !! Název funkce !! Popis [45] => |- [46] => | 01 || ''Read Coils'' || Čtení jednoho nebo více bitů [47] => |- [48] => | 02 || ''Read Discrete Inputs'' || Čtení jednoho nebo více bitů [49] => |- [50] => | 03 || ''Read Holding Registers'' || Čtení jednoho nebo více 16bitových registrů [51] => |- [52] => | 04 || ''Read Input Registers'' || Čtení jednoho nebo více 16bitových registrů [53] => |- [54] => | 05 || ''Write Single Coil'' || Zápis jednoho bitu [55] => |- [56] => | 06 || ''Write Single Register'' || Zápis jednoho 16bitového registru [57] => |- [58] => | 15 || ''Write Multiple Coils'' || Zápis více bitů [59] => |- [60] => | 16 || ''Write Multiple Registers'' || Zápis více 16bitových registrů [61] => |} [62] => [63] => 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). [64] => [65] => == Externí odkazy == [66] => * {{Commonscat}} [67] => * Oficiální stránky protokolu MODBUS: [http://www.modbus.org www.modbus.org] [68] => ** Modbus.org: [http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf Definice protokolu MODBUS (anglicky)] [69] => ** Modbus.org: [http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf Návod na implementaci MODBUSu po sériové lince (anglicky)] [70] => * Přehled protokolu MODBUS ([[Portable Document Format|pdf]]): [http://home.zcu.cz/~ronesova/bastl/files/modbus.pdf http://home.zcu.cz/~ronesova/…] (stejný článek v [[HyperText Markup Language|html]]: [http://www.mcu.cz/news.php?extend.1104 1.], [http://www.mcu.cz/news.php?extend.1096 2.]) [71] => * MODBUS ovladač: [http://www.promotic.eu/cz/pmdoc/Subsystems/Comm/Protocol/Modbus.htm http://www.promotic.eu/...] [72] => {{Autoritní data}} [73] => [74] => [[Kategorie:Automatizace průmyslu]] [75] => [[Kategorie:Sběrnice]] [] => )
good wiki

Modbus

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.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.