Miniserver Loxone a komunikace přes Modbus RTU

  • pondělí, 14 září 2020 18:27

Modbus RTU protokol pro připojení zařízení přes linku RS485. Loxone má jako modul Modbus RTU master k Miniserveru a k němu velké množství hotových komunikací pro další zařízení, jako elektroměry, regulátory kotlů a další a další. Jak si ukážeme dále, ideální je připojit si vždy zařízení, které má Loxone předdefinováno, neboť si ušetříme čas a práci s vymýšlením vymyšleného. My si ale ukážeme i tu druhou možnost, jednoduše pro to že jsme nic jiného neměli, a připojíme senzor, který Loxone nemá v předdefinované nabídce.


V sestavě máme Modbus Extension, což je master na protokolu Modbus RTU a k němu snímač teploty a vlhkosti MD02.

loxone52 01


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.

loxone52 02


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.

loxone52 03


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.

loxone52 20


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í

loxone52 10b


Ale my si vložíme obecný analogový senzor dvakrát a přejmenujeme si jej na MD02 teplota a vlhkost.

loxone52 11


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.

loxone52 04


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í

loxone52 12b


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 ...

loxone52 07


... 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. (:

loxone52 08


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í

loxone52 13b


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.

loxone52 21


Vlhkost máme v adresním registru 2.
Klikněte na obrázek pro zvětšení

loxone52 14b


Díky přiřazení objektů do vizualizace máme k dispozici vše i na mobilu.

loxone52 05


Ú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“.

loxone52 18


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.

loxone52 15


Pokud RS485 spojení roztrhne, máme k dispozici náš definovaný údaj, který si můžeme libovolně vyhodnotit.

loxone52 17


Také opět na mobilní aplikaci.

loxone52 06


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.

Pro psaní komentářů se přihlašte

Kontakt

email : blaja @blaja.cz
email reklama: info @blaja.cz
email adresy bez mezery 
před zavináčem

Jaroslav Blažek
Štěpánská 1888
755 01 Vsetín
+420 608 180 209