Modbus podrobne
13.4 Modbus podrobne
Modbus je najrozšírenejší komunikačný protokol v technike budov. Je jednoduchý, otvorený a má ho takmer každé tepelné čerpadlo, rekuperácia, merač aj striedač.
Modbus vytvorila v roku 1979 firma Modicon pre svoje priemyselné automaty. Protokol je otvorený: opis je verejný a za používanie sa neplatí. Existuje v dvoch hlavných podobách.
- Modbus RTU ide po sériovej linke, takmer vždy po RS-485. Jeden master, viac zariadení slave s adresami.
- Modbus TCP ide po počítačovej sieti. Zariadenie sa oslovuje IP adresou, štandardne na porte 502. Na sieti môže byť viac klientov naraz.
- Brána (gateway, prevodník) prekladá medzi dvoma svetmi. Brána RTU/TCP má na jednej strane RS-485, na druhej sieťový konektor.
Registre: zošit s očíslovanými riadkami
Zariadenie s Modbusom je ako zošit s očíslovanými riadkami. V každom riadku je jedno číslo. Regulátor zariadenia doň priebežne zapisuje, čo nameral. Master si riadky číta a do niektorých smie zapísať. Riadku sa hovorí register, jeho číslu adresa registra.

Modbus pozná štyri druhy registrov. Coils (cievky) sú jednobitové hodnoty 0/1 na čítanie aj zápis, napríklad povel zapnúť. Discrete inputs sú jednobitové stavy len na čítanie, napríklad porucha. Input registers sú čísla len na čítanie, typicky namerané teploty. Holding registers sú čísla na čítanie aj zápis, typicky žiadané hodnoty a režimy. Delenie nie je záväzné: veľa výrobcov dáva všetko do holding registrov a do opisu napíše, čo sa dá len čítať.
Mapa registrov
Mapa registrov (register map, Modbus tabuľka) je dokument výrobcu. Hovorí, na ktorej adrese je ktorý údaj, v akej jednotke, v akej mierke a či sa dá zapisovať. Bez nej je Modbus nepoužiteľný: master vidí čísla, ale nevie, čo znamenajú. Každý integrátor si ju vypýta ako prvú vec.
Mierka (scale): register nesie len celé číslo, v základnom tvare od 0 do 65 535 alebo od −32 768 do 32 767. Desatinné miesta sa preto prenášajú vynásobené. Hodnota 355 s mierkou 0,1 je 35,5 °C. Kto mierku prehliadne, uvidí vo vizualizácii vodu teplú 355 °C.
Ilustračná mapa registrov
Vymyslený príklad, nie údaje zariadení N2N.
| Adresa | Druh | Údaj | Mierka | Prístup | Príklad hodnoty |
|---|---|---|---|---|---|
| 100 | input register | Výstupná teplota vody | 0,1 °C | čítanie | 355 = 35,5 °C |
| 101 | input register | Vratná teplota vody | 0,1 °C | čítanie | 302 = 30,2 °C |
| 102 | input register | Vonkajšia teplota | 0,1 °C | čítanie | −35 = −3,5 °C |
| 10 | discrete input | Stav kompresora | — | čítanie | 1 = beží |
| 11 | discrete input | Porucha | — | čítanie | 0 = bez poruchy |
| 200 | holding register | Žiadaná teplota vody | 0,1 °C | čítanie, zápis | 380 = 38,0 °C |
| 201 | holding register | Režim | — | čítanie, zápis | 0 = vypnuté, 1 = kúrenie, 2 = chladenie |
Funkčné kódy hovoria, čo master žiada. Najčastejšie sú: 03 čítanie holding registrov, 04 čítanie input registrov, 06 zápis jedného registra, 16 zápis viacerých registrov. V mape registrov býva pri každom údaji napísané, ktorým kódom sa číta.
Čo Modbus nevie
- Nepredstaví sa. Zariadenie samo nepovie, aké údaje ponúka. Všetko sa nastavuje ručne podľa mapy registrov.
- Nie je zabezpečený. V bežnej podobe nemá heslo ani šifrovanie.
- Na linke RTU smie byť len jeden master. Dva systémy na jednej linke si rušia otázky. Rieši to brána alebo druhé rozhranie.
- Sám nič neohlási. Poruchu sa nadradený systém dozvie až pri najbližšom čítaní.
Najčastejšie chyby pri oživovaní Modbus RTU
| Chyba | Ako sa prejaví | Náprava |
|---|---|---|
| Prehodené vodiče A a B | Žiadna odpoveď. Výrobcovia značia svorky rôzne. | Vodiče vymeniť. Zariadenie sa tým nepoškodí. |
| Dve zariadenia s rovnakou adresou | Odpovedajú naraz, master dostane nezmysel. | Pripájať po jednom a každému nastaviť vlastnú adresu. |
| Rôzna rýchlosť alebo parita | Žiadna odpoveď alebo chyby prenosu. | Zjednotiť nastavenie na všetkých zariadeniach. |
| Chýba zakončenie, alebo je ich priveľa | Náhodné výpadky, najmä na dlhej linke. | Odpor 120 Ω len na oboch koncoch linky. |
| Hviezda, dlhé odbočky, nevhodný kábel | Nestabilná komunikácia, ktorá sa mení s počasím a záťažou. | Prekáblovať do línie vhodným káblom. |
| Posun adries o 1 | Master číta susedný riadok: namiesto teploty vidí iný údaj. | Skúsiť adresu o 1 nižšiu alebo vyššiu. Niektoré tabuľky číslujú od 0, iné od 1. |