Forum
Vymazal jsem Modbus Arduino a začal manuálně spouštět UDP výstup - v Arduinu konečně vidím Loxone jako UDP a už i nabíhají u ethernetu byty, ale stále na monitoru UDP v Loxonu nevidím nic. Aktualizoval jsem na ten poslední firmware, tak doufám, že ty šašci v tom nebaj nějakej šotek.
Zkusil jsem pro jistotu přes vrátného, zda mi jede UDP monitor a normálně to šlape....
Super, tak to je posun.
V Loxone si podle mě musíš nejdřív nadefinovat Virtuální UDP vstup (se správnou IP a portem), teprve pak Loxone začne na daném portu poslouchat a zobrazovat příchozí zprávy v monitoru.
Modbus brána vždycky posílá odpovědi na ten samý port, ze kterého přišel požadavek. To znamená, že UDP port u virtuálního vstupu i výstupu musí být stejný.
@budulinek Po ranním restartu PC a Loxone config se z čista jasna UDP monitor probudil.
U toho prvního dotazu mi to funguje, ale chtěl jsem vyzkoušet vyslat jinej dotaz, ale asi ho zatím špatně vytvářím, mohl bys mi prosím ještě zkontrolovat tento, jestli to dobře chápu? Protože když to dám do Loxonu, tak UDP monitor nic neregistruje (funguje jen na ten první):
Zadávám \xOO\xOO\xOO\xOO\xOO\xO6\xO1\xO3\xOO\x28\xOO\xO2
Když to zkusím přes Packet Sender a zadám \OO\OO\OO\OO\OO\O6\O1\O3\OO\28\O2 (opět místo O dávám nuly), tak po odentrování mi to v ASHII přeskočí na toto a arduino mi normálně odpoví. Když to dělá přes Packet Sender, tak vidím jak nabíhají RX u RS485 a i u Ethernetu, když posílám přes Loxone, tak ethernet přibývá, ale na RS485 to stojí
Kolik se ušetřilo na HW vůči originálnímu Loxone Modbus Extension?
Protože to co ty asi tvoříš hodiny, je normálně hotové za 10 minut.
Naposledy jsem přidával Eniku elektroměr před měsícem, takže to mám v živé paměti a vyčítaní 9 důležitých parametrů byla otázka chvilky.
4500 úspora je pro mne poměrně veliká motivace, zvláště když vím, že investovaný čas do bastlení bych stejně nedokázal proměnit v prachy na extension. Buď mám na výběr to vybastlit a ušetřit, nebo koupit modbus extension, na který mi teď úplně nezbývá a nebo se na všechno vy.... a sedět na gauči, protože počasí a vláda nedovolí nic jinýho 😀
Ja sa tiez cudujem preco takto. Ved USR prevodnik stoji 25$ a uz je aj na DIN.
@smotek7 ten už mám objednaný z Ali, hned potom co se to tady řešilo, ale někde to visí a ne a ne přijít, takže jsem nevydržel a řeším jinou cestu.
Naposledy jsem přidával Eniku elektroměr před měsícem, takže to mám v živé paměti a vyčítaní 9 důležitých parametrů byla otázka chvilky.
Z toho co píšeš usuzuju, že to nebylo tvoje první Modbus zařízení. V tom je asi ten důvod, proč to Jimovi trvalo několik hodin a tobě chvilku.....
Pokud se Arduino (nebo jakákoliv jiná Modbus brána, třeba ten USR) připojí jako modbusserver (tj. Modbus TCP), tak je nastavování Modbus zařízení v Loxone Config naprosto identické jako u Loxone Modbus Extension. Srovnej:
Loxone Modbus Extension za nějakých 5000 CZK:
https://www.loxone.com/cscz/kb/komunikace-s-modbus/
Jakákoliv Modbus brána (Arduino za 15 USD nebo USR za 25 USD):
https://www.loxone.com/cscz/kb/komunikace-pres-modbus-tcp/
Takže kupování Modbus Extension je opravdu zbytečné. Jediná otázka je, jestli Arduino brána nebo USR brána. Obě zařízení dělají totéž, možná Arduino trochu víc protože umí navíc i Modbus UDP (připomínám, že použití UDP je možnost navíc, nikoliv nutnost). EDIT: Jo a Arduino má i skener RS485 linky (hodí se pro ověření připojení a hlavně pro hledání zařízení s neznámou / zapomenutou adresou).
Proč takto (tj. proč Modbus UDP a vstupy/výstupy) a ne standardně jako modbusserver? Jenom kvůli možnosti monitorovat zprávy v UDP monitoru. Pokud vím, na monitoring modbusu v Loxonu žádný nástroj není (kdyžtak mě opravte).
Myslím, že máš někde chybu v syntaxi těch modbus požadavků, co posíláš. Máš ověřeno, že elektroměr a brána fungují, možná by nebylo od věci přejít v tuto chvíli ke klasickému "klikacímu" řešení abys nemusel modbus zprávy skládat ručně. Tj. modbusserver (tj. Modbus TCP) a přidávání Modbus zařízení, aktorů a senzorů.
Ano ten monitor je vyhoda.
@budulinek Když to programuju přes TCP a přidávám senzory, tak mi to jednou za čas hodí, že elektroměr nevrací žádné hodnoty. Měl bych nastavit delší timeout? Teď mám 500 ms
Můžeš zkusit delší timeout na straně Loxonu a případně i na RS485 lince v Arduinu. S tím už si budeš muset pohrát sám. Taky zavři prohlížeč s web rozhraním Arduina (na diagnostické stráne je auto refresh, který může zatěžovat ethernet shield)
@budulinek Super díky moc!
Mám snad poslední dotaz: Když půjdu programovat před UDP a vygeneruju impuls na více požadavků v jeden okamžik, tak mi to nerozliší jaká odpověď se má k čemu přiřadit. Je to určitě problém v identifikaci, ale nevím jak to mám víc rozlišit a k oběma vstupům se načte stejná hodnota.
Na V L1-N posílám požadavek \xOO\xOO\xOO\xOO\xOO\xO6\xO1\xO4\xOO\xOO\xOO\xO2
Vrací mi to 00,00,00,00,00,07,01,04,04,09,46,00,00
identifikuji \.\.\.\.\.\.\.\.\.\2\1
Na V L2-N posílám požadavek \xOO\xOO\xOO\xOO\xOO\xO6\xO1\xO4\xOO\xO2\xOO\xO2
Vrací mi to 00,00,00,00,00,07,01,04,04,09,4E,00,00
identifikuji \.\.\.\.\.\.\.\.\.\2\1
Tak přesně k tomuto (párování požadavků a odpovědí) slouží v Modbus TCP/UDP první dva bajty zprávy. Každý požadavek by měl mít první dva bajty unikátní. Volba je zcela na tobě, ale třeba:
Na V L2-N posílám požadavek \xOO\xO2\xOO\xOO\xOO\xO6\xO1\xO4\xOO\xO2\xOO\xO2
Vrací mi to 00,02,00,00,00,07,01,04,04,09,4E,00,00
identifikuji \xOO\xO2\.\.\.\.\.\.\.\2\1
Pokud bys použil "klikačku" Modbusserver (tj. Modbus TCP), tak tam se o tyhle dva bajty postará Loxone. U Modbus UDP se o to musíš postarat sám.
Jo a ještě jeden fígl: u modbus požadavků nepotřebuješ generátor impulsů. Periodu požadavků si nastavíš v "Interval opakování". Samozřejmě může být jakkoliv krátký, nejsi omezen 5 sekundami jako u Modbusserveru :-). Dál musíš mít zaškrtnuto "Použít jako digitální výstup".
a potom stačí samotný výstup, myší kliknout na začátek "VQ" aby se ti udělalo prázdné kolečko. To znamená, že výstup bude furt aktivní a bude posílat požadavky v definované periodě.
@budulinek Vším jsem se díky Tvé pomoci dokázal prokousat, určitě bych to nedal jen podle toho návodu, protože když je člověk modbusem nepolíben, tak prostě neví o čem je řeč.
Když to vidím teď zpětně a spojil jsem si snad většinu detailů, tak chápu, co psal @kobra, že měl nastavený elektroměr během chvilky. Zkoušel jsem obě varianty, jít cestou TCP a UDP. Cesta TCP mě štvala s intervaly mezi dotazy 5 sekund a občas se stalo, že mi nepřišla odpověď a stále mi na app chodila chybová hláška, že se nehlásí. Nakonec jsem vše udělal přes UDP požadavky a rozeznání odpovědí, mohu se dotazovat v kratších intervalech, než 5 sekund a neregistruju zatím žádné výpadky - samozřejmě se vše potvrdí časem.
Ještě jednou díky a teď hurá do propojení solničky a Loxone 😀