Forum
Vzhledem k tomu že se toto téma vyskytuje v několika vláknech, dovolil jsem si založit nové vlákno věnující se této problematice.
Já osobně MODBUS vůbec neznám takže bych přivítal kohokoli, kdo by mi s tím trošku pomohl a navedl na srozumitelné návody.
Momentálně se asi nejvíce řeší připojení MODBUS Elektroměrů.
Já mám trošku jiný problém. Snažím se integrovat zařízení pro automatizaci chodu bazénu od společnosti Albixon. Mám k tomu solinátor Hidrolife, který má rozhraní označené jako RS-485 MODBUS. Snažím se zjistit co se zapisuje resp čte z registru při určitých povelech. Výsledkem by měla být plné ovládání bazénu a úspora značných finančních prostředků.
Je to krásné zařízení, které dokáže ovládat vše kolem bazénu - takže je to nejen Solnička. Pokud se nám podaří rozlousknout tu komunikaci, byl by to opravdu silný nástroj v našich smart home.
Nicméně zatím jsem s tím nepohnul. Zkusím napsat nějaký komplexnější článek a dám ho sem. Každopádně nevím jestli se jedná o Modbus RTU nebo nějaký proprietární protokol. No ale přes telnet jsem nějaké odpovědi dostal. Bohužel tomu moc nerozumím takže čekám na nějaký tipy 🙂
Modbus RTU je uplne jednoduchy protokol, nieco ako v zmysle "adresa,prikaz,hodnota". K tomu nejaka omacka ako kontrolne sucty atd...
V defaulte je binarny, takze napr: "26, 02, 12, crc" je nieco ako "nacitaj vstup c.12 zo zariadenia 26". Ja osobne ho vobec nemam rad, sice chapem jeho opodstatnenie na dlhe vzdialenosti v zarusenom prostredi na pomalej linke, ale je strasne abstraktny, zlozity na pochopenie a diagnostiku (prave kvoli tomu, ze je to vsetko ciselne). Potom este existuje jeho ASCII varianta, tam je to vsetko textove, ale priznam sa, ze dalej som to neskumal a pre svoje projekty som ten protokol definitivne zavrhol a zostal som na ip stacku.
Tie fotky co si doeditol, to by teoreticky mohlo byt rozhranie k nakonfigurovaniu modbus/tcp cez wifi. Inak neriesil niekto tento bazen uz na fore?
Ano děkuji. No psal jsem to už v jiném vlákně. Dnešní den považuji za jeden z nejúspěšnějších 🙂 Získal jsem od Španělského výrobce 44. stránkový dokument : MODBUS Register Description, tak se v něm snad nějak zorientuji a něco vymyslím. Výsledkem snad někdy bude nové předdefinované Modbus zařízení v Loxone 🙂
Pro ty co mají teď čas (a chuť) se vrtat v modbusu. Dole prográmek na skenování Modbus TCP sítě. Mělo by to umět oťukat registry a zjistit, co ve kterém je.
Třeba se to bude někomu hodit... Já na to budu mít čas tak nejdřív za 1/2 roku 🙁
No a není tohle třeba alternativa k Loxone MODBUS Extension? :
Radku pokud bych chtěl použít ten prográmek, tak se asi stejně neobejdu bez toho USB/MODBUS převodníku že? Zkouším experimentovat přímo z loxone přes Modbus extension ale vadí mi ty neustálé restarty.
Jo, modbus převodník bys potřeboval
Měl bych jeden dotaz na někoho, kdo se trošku vyzná v protokolu modbus :
Pokud bych použil RS485 extension kde je možnost monitorování sběrnice, jak zjistím co je dotaz na zařízení a co je odpověď? Snahou je připojit zařízení komunikující přes Modbus na RS485 extension.
teoreticky kdybych odeslal dotaz na zařízení ve formátu:
0x01\0x04\0x00\0x0A\0x00\0x001\0x11\0xC8
kde:
první Byte 0x01 - znamená adresu Modbus zařízení tedy 1.
druhý Byte 0x04 - znamená kód funkce - pro Modbus tedy 04-read input registers.
další dva Byte 0x00 0x0A - je počáteční adresa- v tomto případě tedy 10.
další dva Byte 0x00 0x001 znamenají počet registrů co se mají přečíst - v tomto případě tedy 1.
a poslední dva Byte 0x11 0xC8 jsou CRC 16 checksum.
Odpověď z elektroměru nebo jiného zařízení na sběrnici by měla vypadat následovně :
0x01\0x04\0x02\0x00\0x28\0xB9\0x2E
první Byte 0x01 - znamená adresu Modbus zařízení tedy 1.
druhý Byte 0x04 - znamená kód funkce - pro Modbus tedy 04-read input registers.
třetí Byte 0x02 - je následujících Byte - tedy 2.
další dva Byte 0x00 0x28 jsou DATA tedy v tomto případě hodnota 40.
a poslední dva Byte 0xB9 0x2E je zase checksum.
Jak poznám na sběrnici co je dotaz a co odpověď ?
Pokud bych v loxone udělal na RS485 digitální aktor s příkazem 0x01\0x04\0x00\0x0A\0x00\0x001\0x11\0xC8
a následně pak senzor 0x01\0x04\0x02\0x00\0x28\0xB9\0x2E
kde by bylo nutné tučný text vymaskovat tak by MODBUS Extension nebyl potřeba.
Nebo se pletu?
Tohle ti nepomůže? Cca. uprostřed mají popsáno rozdíl mezi otázkou a odpovědí pro různé funkce.
@Koldo
No v principu to poznáš tak že ten zpětněj nemá adresu.
Když udělám dotaz.
47 03 50 03 00 01 6b ac
1. byte -47 adresa(71)
2. byte -03
3 a 4 byte - 50 03 (20483)
5 a 6 byte - 00 001 ( čtu jeden)
7 a 8 byte - checksum 6b ac
Vráceno.
47 03 02 06 61 f3 c3
1. byte -47 adresa(71)
2. byte -03
3.byte - vráceno datových bytu
4 a 5. byte 0661( 1663 stav elektroměru)
6 a 7 byte - checksum f3 c3
To stejný jsem udělal,když čtu 2.
Ale nevím jak by si spojoval 2 byte a převáděl z hex na čísla krom napsání programu. Jo a modbus je 16-bit nebo 32-bit, tak je potřeba spojovat datové byte z odpovědí a ty jako celek převádět z hex na čísla.
Aha tak to musím prostudovat. Problém totiž je v tom, že zařízení jako slave může mít - a taky má - několik Masterů. Takže tam lítá hromada paketů a já nevím co je dotaz a co odpověď
@ KarelZ - nějak nemůžu pochopit jednu věc. Všude se píše, že na Modbusu může být několik slave zařízení ale jen jeden Master. Jenže tady je asi ten můj problém. K zařízení je připojen displej který je de facto Master a další zařízení je WiFi modul což je taky Master. Do toho všeho se k tomu chci ještě připojit i já přes z Loxone což logicky bude taky Master.
Jak to bude fungovat ? Autor hned na první straně popisuje něco ve smyslu že je v jednotce nějaký HW který přepíná mezi modbus vstupy.
A semaphore system has been implemented between both ports in order to
manage register change requests happening simultaneously in both ports.
However, the remote masters can always read any register concurrently.
Každopádně skenování sběrnice je pro mě asi k ničemu protože tam běhá spousta rámců.
Proto jsem se ptal jak rozeznat od koho je dotaz a komu je určena odpověď?
Zatím to vidím skepticky, budu muset objednat ten Modbus Extension. Zároveň jsem objednal z Číny i převodník Modbus RTU/Mddbus TCP, jenže ten přijde až za měsíc:-(
Koldo, MODBUS extension máš za 5800, to zase není tak moc... IMHO trávit nad tímto tolik času vs. částka za čisté řešení pomocí extensionu...
Měl bych dotaz k tomu Albixonu. Co všechno ten řídicí systém u bazénu řídí ?
O mě tu ani tak nejde. Mám ho v rozvaděči - ale nastavený na jinou rychlost a bohužel vzhledem k připojeným zařízením nemůžu změnit. Už jsem ho i objednal. Spíš se mi jedná o řešení do budoucna. Většina lidí udělá to, že si na zahradě postaví bazén a za bazénem technologickou šachtu do které umístí i toto zařízení a až je vše hotové tak se řeší jak se to připojí ke stávajícímu systému. Takže logicky vychází nejlépe umístit do Hidrolife nějaký bridge Modbus RTU/Modbus TCP.
Zařízení Hidrolife umí upravovat slanou vodu, hlídat Ph, teplotu, redox, řídit tepelné čerpadlo - ohřev vody, osvětlení, spouštět protiproud, filtrační čerpadlo atd.... V podstatě je to takové I/O zařízení pro celý bazén. Já k tomu ještě přidám automatické dopouštění vody a alarm.
Koldo, nemam ti poslat na pivo do Brna ten Modbus extension, kdyz vidim, jak s tm je prace.....
Co tam chces resit za alarm? Jak budes dopoustet tu vodu? El. ventil v dome nebo technicke sachte?