Modbus je komunikační protokol z roku 1979, který vznikl pro průmyslové řídicí systémy. Přes svůj věk je dodnes jedním z nejrozšířenějších způsobů, jak číst data z elektroměrů, střídačů, regulátorů, čidel a dalších technologií v budovách a provozech. Pokud stavíte monitoring, Modbus potkáte skoro jistě.
Princip: kdo se ptá a kdo odpovídá
Modbus funguje na principu dotaz–odpověď. Jedno zařízení se ptá (klient, dříve „master“) a ostatní odpovídají (server, dříve „slave“). Zařízení samo od sebe nic neposílá – data je potřeba pravidelně vyčítat. Interval vyčítání (polling) je proto důležité nastavení: příliš častý zatěžuje zařízení a síť, příliš řídký ztrácí detail.
Modbus RTU a Modbus TCP
| Vlastnost | Modbus RTU | Modbus TCP |
|---|---|---|
| Fyzická vrstva | sériová linka, typicky RS-485 | Ethernet / IP síť |
| Adresace zařízení | adresa 1–247 na sběrnici | IP adresa (+ Unit ID) |
| Typické použití | měřidla a regulátory na jedné sběrnici | střídače, dataloggery, brány, PLC |
| Výchozí port | – | TCP 502 |
V praxi se oba světy často spojují: měřidla na sběrnici RS-485 jsou připojená k bráně, která je zpřístupní přes Modbus TCP.
Datový model: čtyři typy dat
Modbus nezná „teplotu“ nebo „výkon“. Zná jen čtyři tabulky hodnot:
- Coils – jednotlivé bity pro čtení i zápis (např. zapnuto/vypnuto).
- Discrete inputs – bity jen pro čtení (např. stav kontaktu).
- Input registers – 16bitové hodnoty jen pro čtení (typicky měření).
- Holding registers – 16bitové hodnoty pro čtení i zápis (měření i nastavení).
Co v kterém registru je, určuje výrobce zařízení v takzvané mapě registrů. Bez ní jsou data jen čísla bez významu. Pro střídače existují i standardizované mapy (například modely SunSpec), ale jejich podpora se mezi výrobci liší.
Na co si dát pozor
Adresy. Dokumentace používá různé konvence – někde se čísluje od 0, jinde od 1, jinde s prefixem (40001 = první holding registr). Posun o jedna je nejčastější chyba při napojení.
Větší čísla. Jeden registr má 16 bitů. Hodnoty jako energie ve Wh se ukládají do dvou nebo čtyř registrů – a výrobci se liší v tom, v jakém pořadí (byte order, word order).
Měřítko a jednotky. Registr často obsahuje celé číslo, které se musí vynásobit koeficientem (např. 0,1 V). Koeficient bývá napevno v dokumentaci, nebo v dalším registru.
Znaménka. Stejný registr může být se znaménkem i bez něj. U výkonu do a ze sítě je znaménko zásadní.
Bezpečnost. Modbus nemá žádné ověření ani šifrování. Kdo se dostane do sítě, může číst – a u zapisovatelných registrů i měnit nastavení. Proto patří Modbus do oddělené sítě a pro monitoring by měl být přístup jen ke čtení.
Modbus v monitoringu: jak to zapadá
Typický postup při napojení technologie přes Modbus:
- Získat mapu registrů pro konkrétní model a verzi firmwaru.
- Ověřit síťový přístup a nastavení (IP, port, Unit ID nebo adresa na sběrnici).
- Vyčíst testovací hodnoty a porovnat je s displejem zařízení.
- Převést registry na veličiny se správnými jednotkami a znaménky.
- Zapojit hodnoty do společného datového modelu a hlídat výpadky.
Kroky 4 a 5 jsou místo, kde Modbus přestává být protokolem a stává se součástí integrace systémů: data ze střídačů, měřidel a regulátorů různých výrobců musí skončit ve stejném modelu, aby se nad nimi dal postavit jeden přehled – například pro přehled v aplikaci na míru nebo pro automatizaci procesů, která na data reaguje.
Modbus, MQTT, nebo API?
Modbus je ideální pro lokální vyčítání ze zařízení. MQTT se hodí pro průběžné posílání telemetrie na server, typicky z IoT bran. Cloudová API výrobců jsou pohodlná, ale závisí na dostupnosti a omezeních cloudu. V jednom projektu se často kombinují všechny tři.