V sestavě máme Modbus Extension, což je master na protokolu Modbus RTU a k němu snímač teploty a vlhkosti MD02.
Připojený snímač označení XY-MD02 je osazen snímačem SHT20 doplněným o RS485 rozhraní s podporou protokolu Modbus RTU. Jedná se o známý snímač, najdete jej ke koupi za pár stokorun téměř kdekoliv na internetu, třeba tady. Samozřejmě čínské produkce.
Dva vodiče napájení 24 VDC a dva linka RS485. To je vše.
Drobná poznámka, těchto snímačů jsme již pár měli a v základním nastavení každý ukazoval trochu jinak, proto je vhodné je před vážným použitím údaje ověřit a případně kalibrovat. Buď v Miniserveru, nebo přímo zápisem do registru snímače, viz manuál XY-MD02.
V každém případě potřebujeme znát komunikační údaje a pak údaje o tom, kde se v registru nachází požadovaná informace teploty a vlhkosti. To jsou běžné údaje každého zařízení s Modbus RTU protokolem dostupné v manuálu.
Do sestavy Miniserveru vložíme náš Modbus Extension, tedy Master a k němu Modbus zařízení. Postup je stále stejný jakou u jiných modulů, detailní popis najdete tady.
Na screenu je ukázka množství předdefinovaných zařízení, kde jsou již nastaveny přístupové adresy registrů pro všechny hodnoty a nastavení. Není nutné nad ničím dlouze přemýšlet, což je opravdu výborná věc. Takže pro praktické použití bychom vybírali Modbus RTU zařízení podle této podpory.
Klikněte na obrázek pro zvětšení
Ale my si vložíme obecný analogový senzor dvakrát a přejmenujeme si jej na MD02 teplota a vlhkost.
Zřejmě vám to nebude fungovat na první dobrou, my jsme taky chvíli bádali co a jak. Pokud nemáte zkušenosti s Modbus RTU protokoly a adresací v registrech, nechejte si poradit, nebo zvolte zařízení které je již předdefinováno. Což je samozřejmě ta nejlepší varianta.
Pro tuto komunikaci nastavíme základní parametry linky RS485 ve vlastnostech Modbus masteru, tedy Extension. Podle parametrů našeho připojeného snímače: 9600 / 1 stop bit / žádná parita. Datových bitů je osm, to zde nastavit nelze.
Klikněte na obrázek pro zvětšení
LED na Modbus masteru by měla poblikávat. Není k dispozici žádná větší diagnostika, pokud se netrefíte adresou zařízení, nebo ji přesně neznáte, musíte si pomoci jinak. My jsme si na linku připojili osciloskop a ...
... jen jsme hledali data pro vysílání a příjem. Pokud budete mít třeba špatnou adresu zařízení, tak druhá část impulsů, odpověď ze slave, na osciloskopu nebude.
Tohle je ukázka jen pro zajímavost, běžně nic takového nebudete potřebovat, adresa každého nového zařízení je známá. My jsme ale senzor vytáhli použitý ze šuplíku a adresa, ač poznamenaná fixem, byla smazána. (:
Tohle je v podstatě nejdůležitější nastavení pro čtení dat ze senzoru. Adresa v registru 1 (nejedná se o adresu zařízení), Read input registr a typ proměnné. Dále interval dotazování je komunikační cyklus, zde každých 5 sekund, což je nejmenší nastavitelná hodnota.
Údaj dole „Standardní hodnota“ 213 je to co se zobrazí v případě, že dojde k přerušení komunikace po překročení časového limitu 20 sekund. Je možné vložit libovolnou hodnotu z rozsahu. Je to vidět na naší videoukázce.
Klikněte na obrázek pro zvětšení
Máme pro vás příklad, jak se adresují registry v PLC Simatic, tam je hodnota na adrese 30001. To proto, abychom si uvědomili, že každý Modbus RTU Master může číst registry jinak.
Vlhkost máme v adresním registru 2.
Klikněte na obrázek pro zvětšení
Díky přiřazení objektů do vizualizace máme k dispozici vše i na mobilu.
Údaj teploty je, jak jsme uváděli na začátku, trochu zkreslen, proměřuje asi +3 °C. Jak říkával jeden „důvěřuj, ale prověřuj“.
Abychom viděli hodnotu i s desetinou čárkou, provedli jsme si drobnou úpravu v programu Miniserveru. Cest jak vidět proměnnou ve správném tvaru je více, my jsme jen použili první nápad.
Pokud RS485 spojení roztrhne, máme k dispozici náš definovaný údaj, který si můžeme libovolně vyhodnotit.
Také opět na mobilní aplikaci.
Naše videoukázka měření teploty v Loxone Miniserveru s Modbus RTU senzorem.
https://www.youtube.com/watch?v=aug2zTzmetY&feature=youtube
Závěr:
Tak tady už to vypadalo jinak. Samotný Modbus RTU modul je určen přednostně pro zpracování signálů ze známých a předdefinovaných zařízení, pro specifické použití v řízení domu. Tomu odpovídá i ten nejmenší nastavitelný komunikační cyklu 5 vteřin, což je v domech zřejmě maximum. Pokud si vložíte do projektu některý z předdefinovaných senzorů, uvidíte hodnotu komunikačního cyklu klidně i desítky sekund. Tento protokol se zde nepoužívá pro nějaké rychlejší spojité regulace, externí sestavy vstupů a výstupů a podobně, ale právě pro zařízení související s ovládáním chytrého domu.
Jaroslav Blažek
Doplňující odkazy k článku:
Loxone s.r.o. České Budějovice, kontakt tady.