X
Forum

Forum

Notifications
Clear all

LOXONE - MODBUS

426 Posts
46 Users
39 Likes
56.6 K Views
Jakub
(@jakub)
Reputable Member
Joined: 5 years ago
Posts: 249
 

@dusanmsk Ja pouzivam FC5 na Modbus TCP a funguje bez problemu (Atrea rekuperace). CRC se u Modbus TCP nepouziva (kontrola integrity zpravy je resena jiz na urovni TCP/IP), takze ho musi priradit prevodnik TCP->RTU.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

No neviem, ked tam tie bajty poslem rucne (aj s tym crc), tak to funguje. Ked to rucne poslem bez crc, tak to nefunguje. Cize prevodnik ziadne crc nedopocitava (a podla mna by ani nemal, je to transparentny prevodnik predsa).

Ale aj keby som odhliadol od toho, ze loxone neposiela crc, tak tam neposiela to co by mal.

Ok, zariadim sa klasicky ako vzdy, postavim tu zavlahu mimo posrane loxone.


   
ReplyQuote
(@_petr_)
Honorable Member
Joined: 6 years ago
Posts: 491
 

Problém je v tom, že Loxone se na to kouká jako na Modbus TCP a CRC tam nepošle. Potřebuješ převodník s podporou modbus.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

V pohode, postavim to mimo loxone. Uz tak mi hromada veci bezi mimo neho, tak pribudne dalsia. A casom ho z baraku snad vyhodim uplne.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 
Posted by: @dusanmsk

No neviem, ked tam tie bajty poslem rucne (aj s tym crc), tak to funguje.

Z toho usuzuju, že na převodníku máš nastavený "transparent mode" (nějak tak to bude nazvané). Což znamená Modbus RTU over TCP, jinými slovy Modbus RTU zpráva poslaná přes TCP (což je kočkopes, který ani není standardizovaný).

Modbus RTU a Modbus TCP jsou jiné protokoly, zpráva vypadá jinak (s a bez CRC, jiná délka), jak už psali kluci přede mnou. Loxone komunikuje podle standardů přes Modbus TCP (nedělá žádné Modbus RTU over TCP). Takže na vině není Loxone, ale ten převodník.

Nevím co máš za převodník, ale pokud tam máš cosi jako "transparent mode", tak ho musíš vypnout, pokud tam někde máš volbu Modbus TCP tak zapnout (tím přinutíš převodník k překladu zpráv Modbus RTU <-> Modbus TCP).

 


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 
obrazek

Nahoře zpráva Modbus RTU, dole zpráva Modbus TCP


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 
Posted by: @dusanmsk

Pridal som nove modbus zariadenie, adresa 255.

Jo a pro úplnost připomínám, že máš neplatnou adresu 255. Maximum je 247. Vyšší adresy jsou proprietární (používají se např. na vynucený factory reset apod).

Doporučuju změnit adresu na koncovém zařízení (určitě na to v manuálu najdeš příkaz), jinak by se ti mohlo stát, že ti ji převodník či Loxone neakceptují.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

Skusam prevodnik USR-DR302. Nasiel som v nom zaskrtavatko "modbus-tcp", ked je zaskrtnute, tak uz nefunguje ani povodny paket (bez crc casti), ani z loxone. Adresu zariadenia som zmenil na 01.

Momentalne mi to funguje v transparentnom rezime s:

on 01 05 00 00 FF 00 8C 3A

off 01 05 00 00 00 00 CD CA

Asi si s tym takto vystacim, napisem si este akurat nejaky obsluzny script co bude to rtu generovat podla parametrov (id rele, zap/vyp) a mam hotovo (pricom najvacsi oser vidim asi v tom pocitani crc16 v bashi).


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@dusanmsk

"Transparentní režim" u USR převodníků je nestandardní kočkopes ("Modbus RTU over TCP").

Pokud chceš ručně testovat Modbus TCP, tak nestačí na konci odstranit CRC, musíš i na začátku přidat 6 bajtů MBAP hlavičky (viz můj předchozí post nebo i https://www.vodnici.net/community/loxone-a-arduino/loxone-modbus/paged/12/#post-29379).

Pokud to ještě chceš zkoušet, tak zkus přes Modbus TCP:

on: 00 01 00 00 00 06 01 05 00 00 FF 00


   
ReplyQuote
(@cijoml)
Estimable Member
Joined: 6 years ago
Posts: 150
 

Ahoj zeptam se uplne blbe kdyz mam zarizeni se kterym umim komunikovat RS485 normalne dvoudrat mam jeho adresu a rychlost, je nejaky zpusob jak z nej vytahnout registry ktere poskytuje a pripadne i format ulozeni?


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@cijoml

Ne.

Můžeš si vytáhnout surová data ze všech registrů, ale samotné zařízení ti neřekne, jak ty data interpretovat.

Musíš si někde sehnat manuál k tomu zařízení (dokonce i k čínským bazmekům se to většinou dá dohledat...).


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

@budulinek 00 01 00 00 00 06 01 05 00 00 FF 00 funguje, ale z loxone stale nie.

Diky za pomoc, ale kaslem na to, budem zavlahu pustat z rpi4, vystacim si s tym transparentnym rezimom.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@dusanmsk

Tak pokud ti Modbus TCP funguje a budeš psát skript, tak můžeš rovnou napsat skript pro Modbus TCP (a ne pro transparentní režim). Aspoň nebudeš muset řešit CRC16 v bashi.

První 6 bajtů můžeš klidně nechat stejných, takže

on: 00 01 00 00 00 06 01 05 00 00 FF 00

off: 00 01 00 00 00 06 01 05 00 00 00 00


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

Hm, to by tiez slo, diky!


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway

Opravena chyba v Modbus TCP protokolu, doplněna podpora pro RS485 moduly s automatickým HW řízením směru toku. Vřele doporučuju (jednodušší zapojení, spolehlivější chod). Třeba:

https://www.aliexpress.com/item/1005001631650868.html
(otestováno)

https://www.aliexpress.com/item/4000974923186.html
https://www.aliexpress.com/item/1005001992729937.html


   
ReplyQuote
Page 14 / 29
Share: