Forum

Forum

MODBUS RTU/TCP conv...
 
Notifications
Clear all

MODBUS RTU/TCP converter/gateway jako náhrada za Modbus Extension

3 Posts
1 Users
3 Likes
2,025 Views
(@zmata)
Member
Joined: 7 years ago
Posts: 115
Topic starter  

Pokud potřebujete MODBUS extension, lze místo drahého extension od Loxone použít převodník RTU na TCP. Možností je několik.

Existují hotové převodníky, nebo SW gateway. Mám vyzkoušeno obojí.

Nejprve jsem koupil na Aliexpresu USR-TCP232-410s za 35$. Převodník může být napájen 24V DC. Funguje dobře.

Vzhledem k mé paranoe ohledně externích zařízení s vlastním SW jsem ale následně nalezl a zprovoznil ještě levnější řešení. Nalezl jsem prográmek MBUSD - https://github.com/3cky/mbusd . Jedná se o jednoduchou nenáročnou softwarovou MODBUS gateway.

Kompilace pod debianem proběhla bez problémů (případně mohu poskytnout vygenerovaný deb balíček pro Debian 9), připojil jsem modbus elektroměry přes USB-RS485 převodník z aliexpresu - https://www.aliexpress.com/item/Industrial-USB-To-RS485-422-Converter-Upgrade-Protection-CH340-RS485-Converter/32766941381.html - a spustil přikaz s parametry. Vše se rozjelo.

V loxone se pak přistupuje jako k modbus TCP zařízení. Gateway využívám ke čtení elektroměrů od společnosti Eastron (koupitelné na aliexpresu jako Eastron či Deson. Večer doplním návod na zprovoznění.

 

Edited L. : Trochu sem to naformatoval


   
Aleq and L reacted
Quote
(@zmata)
Member
Joined: 7 years ago
Posts: 115
Topic starter  

Tak k tomu zprovoznění SW gateway. Budete potřebovat nějaký linuxový stroj (pokud nemáte domácí linuxový server, tak stačí obyčejné Raspberry, atp.) a převodník USB-RS485. Převodník propojíte se zařízeníma, ze kterých chcete číst, připadně zapisovat modbus registry a zasunete do USB linuxového stroje.

Nyní nainstalujete potřebné záležitosti, stáhnete MBUSD a provedete kompilaci:

sudo -s
apt-get install git linux-headers-`uname -r` build-essential uucp eclipse-cdt-autotools
cd /usr/local/src/
git clone https://github.com/3cky/mbusd.git mbusd.git
cd mbusd.git
./configure
make
make install

Případně mohu poslat debianí balíček, který by měl fungovat i v Raspberry. Po úspěšné kompilaci se musí spustit příkaz mbusd s patřičnými parametry. Použil jsem následující:

mbusd -p /dev/ttyUSB0 -s 9600 -P 502 -v2

kde /dev/ttyUSB0 je port na kterém máte převodník
9600 je přenosová rychlost RS485 a tedy i modbus zařízení (tu je třeba mít stejnou s tou, která je na zařízeních - většina zařízení ji umožňuje měnit)
502 je TCP Port
V2 je úroveň ukecanosti logu

Parametry si upravíte podle svých potřeb.

Příkaz mbusd --help vyjede komplexnější popis, nicméně vám bude stačit to, co jsem uvedl.
Při ladění je možné využít parametr -d, který zabrání spuštění na pozadí, případně můžete zvýšit ukecanost až na -v9.

V loxone je třeba přidat modbus server. Stoupnete si na Komunikace Miniserveru a kliknete na ikonku Modbusserver.
Vyplníte název - např.: MBUSD
Adresa - IP_linuxového_stroje_s_mbusd:port_mbusd (např.: 192.168.1.10:502)
Čekající doba startu jsem dal 5
Timeout jsem dal 500

Dále již zbývá pouze vložit modbus zařízení a jeho senzory (čtení), případně aktory (zápisy), nebo vybrat z předdefinovaných zařízení.

Já čtu elektroměry Eastron SDM630 (třífázový) a SDM120 (jednofázový). Loxone má SDM630 předdefinovaný a SDM120 funguje na tu samou konfiguraci, akorát si vyházíte senzory pro 2. a 3. fázi. Oproti použití s Modbus extension jsem ve všech senzorech elektroměru musel zaškrtnout parametr Pořadí registru. Pravděpodobně to bude třeba i pro jiná zařízení, ale nemám zatím na čem vyzkoušet. SDM630 se dá na Aliexpressu koupit za necelých 80$, SDM120 za 22$. Pozor, vyrábí se i verze bez modbus!


   
ReplyQuote
(@zmata)
Member
Joined: 7 years ago
Posts: 115
Topic starter  

Ve wiki jsem vzhledem ke změnám v nové verzi MBUSD upravil návod pro SW gateway. Trochu se změnila kompilace a hlavně je možné jednoduše spouštět jako 1 - n služeb.


   
Georgio reacted
ReplyQuote
Share: