Protokol Modbus je komunikační protokol vytvořený v roce 1979 společností Modicon, který umožňuje komunikaci se zařízeními PLC. Díky své jednoduchosti a spolehlivosti se stal celosvětovým standardem používaným jak v BMS (Building Automation Systems), tak v ICS (Industrial Control Systems). Navzdory době uvedení na trh je Modbus stále jedním z nejpoužívanějších protokolů v průmyslových elektronických zařízeních.
Čím je Modbus slavný?
Proč se protokol Modbus stal tak populárním a stále se často používá v průmyslových prostředích? Zde jsou klíčové faktory:
- Modbus byl vytvořen jedním z největších výrobců PLC (Programmable Logic Controllers) a byl vyvinut speciálně pro automatizační aplikace.
- Je to jednoduché! Protokol Modbus se snadno implementuje a udržuje.
- Modbus je otevřený protokol, což znamená, že jej může bezplatně implementovat každý výrobce.
- Komunikace zabezpečena proti poškození zpráv. Díky CRC (kontrola cyklické redundance) je přenos zkontrolován na případné chyby, aby byla zajištěna přesnost.
- Díky výše uvedenému byl Modbus přijat jako standard většinou výrobců průmyslových regulátorů.
Jak Modbus funguje?
Zařízení s protokolem Modbus komunikují pomocí techniky klient-server (Master-Slave), kde pouze klient může volat dotaz a zahájit transakci se serverem, který bude klientovi odpovídat na dotazy požadovanými daty. Nejjednodušší konfigurace je jeden klient jeden server, ale síť může být postavena z jednoho klienta s až 247 servery. V řešení iSMA by typickou aplikací byl Master Controller iSMA-B-MAC36NL jako klient komunikující s moduly iSMA MIX a MINI I/O (servery).
Od července 2020 se organizace Modbus rozhodla nahradit pojmenování „master-slave“ pojmem „klient-server“ pro popis komunikace Modbus, charakterizované komunikací mezi klientským zařízením, která iniciuje komunikaci a vytváří požadavky na serverová zařízení, který zpracovává požadavky a vrací příslušnou odpověď (nebo chybovou zprávu).
Jaké jsou verze protokolu Modbus?
Protokol Modbus byl vytvořen tak, aby umožňoval přenos mezi zařízeními po sériové sběrnici. Rozhraní RS485 pro komunikaci Modbus je v průmyslové automatizaci nejčastěji používáno, ale s Modbusem existují i možnosti ethernetové komunikace.
Modbus RTU
Nejčastěji se používá v sériové komunikaci. Bajty v rámci jsou odesílány binárně jako osmibitové znaky. Rámeček je zabezpečen kontrolním součtem CRC, který detekuje jakékoli chyby. Znaky v rámci musí být vysílány nepřetržitě bez mezer mezi znaky (maximálně 1,5 T, kde T je čas přenosu jednoho znaku). Každému rámci předchází tichá perioda větší než 3,5T.
Modbus ASCII
Používá se v sériové komunikaci. Bajty v rámci jsou odesílány v šestnáctkové soustavě (po dvou znacích ASCII). Data v rámci jsou zabezpečeny kontrolním součtem LRC. Rámce začínají dvojtečkou („:“) a končí novým řádkem (CR / LF).
Modbus TCP / IP
Verze se používá pro komunikaci v sítích TCP / IP. Výchozí komunikační port pro Modbus TCP / IP je 502. Kontrolní součet v rámci není potřeba, protože spodní vrstvy protokolu TCP / IP poskytují ochranu kontrolního součtu.
Každá verze protokolu Modbus má stejný typ datového modelu a použité funkce. Protokol Modbus se stále vyvíjí a aktualizuje díky organizaci Modbus a jejím členům a komunitě, která zahrnuje nezávislé uživatele a dodavatele zařízení.
Jak adresovat Modbus zařízení?
Modbus servery (slave) mají jedinečné adresy zařízení, které se pohybují od 1 do 247. To je nutné pro správnou komunikaci mezi Serverem (Master) a Klientem (Slave). První bajt dat požadovaných ze serveru je adresa klienta. Pokud je první bajt jiný než přiřazený, klientské zařízení ví, že zprávu bude ignorovat. Rozdělí adresa na Modbusu vypadá následovně:
- Broadcast {0}
- Jedinečné adresy zařízení typu slave (klient) {1-247}
- Rezervované adresy {248-255}
iSMA V/V moduly lze adresovat pomocí integrovaných otočných přepínačů v rozsahu {1-99}, jak lze vidět na obrázku výše.
Jaké jsou datové typy Modbus objektů?
Modbus je založen na datovém modelu, který je uložen ve 4 hlavních tabulkách, které jsou buď pouze pro čtení nebo s oprávněním ke čtení a zápisu. Každá tabulka může uložit až 9999 hodnot. Cívky (Coils) a diskrétní vstupy (Discrete) mají 1 bit, zatímco registry mají 16 bitů (2 bajty).
Jaké jsou funkční Modbus kódy?
Jak bylo uvedeno výše, první bajt požadovaný klientem je adresa zařízení. Pokud je adresa platná pro zařízení, přečte druhý bajt, což je funkční kód, ke kterému by mělo mít serverové zařízení přístup, aby z něj vyčetlo nebo změnilo hodnotu.
Jaká je vrstva Modbusu na OSI modelu?
Modbus funguje na aplikační vrstvě modelu OSI. Fyzicky lze komunikaci provádět pomocí sériové sběrnice (mezi klienty Modbus RTU/ASCII a serverem Modbus RTU/ASCII) nebo Ethernetem (mezi klientem Modbus TCP a serverem Modbus TCP). Následující obrázek ukazuje, jaké vrstvy OSI modelu se používají při práci s Modbus RTU/ASCII a Modbus TCP.
Tímto způsobem je možné mít na jedné sběrnici maximální zatížení až 32 UL (Unit Load) podle standardu EIA-485. Jelikož V/V iSMA moduly používají pouze 1/4 UL, každý port RS485 na klientském zařízení umožňuje až 128 zařízení na jednom segmentu sběrnice.
Více informací o Modbusu v produktech iSMA najdete v katalogových list a manuálech iSMA V/V MINI a MIX modulů v produktovém katalogu zde.