Program Modbus Rtu pro RS485 resp. RS232

Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Pro mé tři přístroje PS-3KVA, SUN-1000G a SDM120M, které jsem si postupně pořídil na moji zkušební FVE, jsem potřeboval nějaký program, který by mi prozradil,
co všechno ty přístroje umí a co ta moje pokusná FVE občas dává.
Jelikož sehnat software, který by s těmito přístroji dokázal komunikovat po jejich portech RS232 (PS 3KVA, SUN1000G) resp. RS485 (SDM120M) ,a který by byl i srozumitelný a použitelný k tomu, co mne zajímalo, se mi nedařilo najít a získat ani od výrobců, takže jsem byl více méně donucen začít opět programovat v mém Delphi Starter Xe, využít moje předchozí programy a výsledky a nějak si nějaký program k těm přístrojům dát postupně sám dohromady pod operačním systémem Windows 32 bitů, který již léta stále používám od WxP přes W7 do W10.
Nejprve jsem se zabýval invertorem PS 3KVA, tam mne to vedlo k vytvoření programů od verse Modbus10 až k versi s názvem nejprve Modbus30 následně už definitivně přejmenovaným na ModbusAnsi10 .
O něco později jsem se začal zabývat invertorem SUN-1000G známým jako modrásek a k němu nebylo vůbec nic ani program ani protokol, jen podobné invertory naznačovaly, že by se zde mohlo jednat o komunikaci s Modbus Rtu .
Tento komunikační systém jsem si musel dostudovat a nově aplikovat. Pořídil jsem si smart elektroměr SDM120M, který mi dával jistotu, že by mohl po lince RS485 v systému Modbus Rtu komunikovat a s tím se mi po čase podařilo komunikaci navázat a postupně vylepšovat.
Poslední vývojová verze měla název Modbus28 a tu jsem, když už jsem jí dotáhnul ke své spokojenosti a použitelnosti, dal sem na forum jako shareware a posléze přejmenoval na ModbusRtu10.
Tato verze má na titulní straně programu název Modbus Rtu Reader, což znamená, že zvládá čtení ze všech registrů z kterých se dá v Modbusu Rtu číst, označovaných většinou jako inputsy a holdingy.

Dále jsem začal pracovat na verzi ModbusRtu11, která by měla umět číst stejně jako verze 10 ale měla by též umět i zapisovat. A hned jsem narazil na problém, neboť jsem zjistil, že např. pro SDM120M už existují dvě verze protokolu .. první nemá žádné číselné označení, takže jsem si ji označil jako verzi Vx.y, ale zřejmě by to mohla být i verze V1.0 .. ten druhý protokol už má číslo verze 2.4 a ten je aktuálně na stránkách EastronEurope .. ale kdo ví, co ještě může být mezi těmito verzemi. Nakonec už jsem se dopídil k tomu, že je to verze platná i pro moje SDM120M. No a nějak podobně to může být např. i u SDM630MCT a ani verze V1.7 pro něj nemusí být ta aktuální . Dal jsem dotazy na EastronEurope, zatím bez odezvy ale třebas se nějakého upřesnění ještě dočkám .. Takže na tom dále pracuji jak umím ale bez nějakého úsilí to asi samo nepůjde tak snadno.
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Přidávám sem program ModbusRtu10share tedy Reader - shareware v zipu, stačí ho rozbalit do předem zadaného adresáře a spustit ve Windowsech, opět pouze s omezením na 100 záznamů dat .. Modbus11 Reader+Writer už mám téměř hotový a začnu pracovat na tom ModbusRtu12 Multireader pro linku RS485 . Též sem přidávám pár obrázků a dat pro představu, co všechno ten program zvládá.
Přílohy
SDM230M-table-2023-09-05-143818.tab.txt
(20.36 KiB) Staženo 3 x
SDM230M-graph-2023-09-05-143818.jpg
SDM230M-data-2023-09-05-143818.txt
(12.01 KiB) Staženo 3 x
ModbusRtu11-display-2023-09-05-142609.jpg
ModbusRtu10share.zip
(757.23 KiB) Staženo 7 x
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Mám téměř odladěný program ModbusRtu12 Multireader pro linku RS485, ale jak jsem ladil i složitější změny, začaly na mne vyskakovat různé chyby .. jednak jsem dobře ve versích 10 a 11 neošetřil timing, takže pokud by tam cosi na lince nefungovalo a device by neodpovídal, program usne na velice dlouhé odezvě .. ve W10 už je to ošetřeno a program se dá vykřížkovat, ve W7 to ale může chtít i reset systému .. což se mi stávalo .. jedno aktuální řešení bylo dát v paremetrech do Timeoutu místo 300 jenom 5 ! .. ale také doplnit správné ošetření timeoutu pro port, což musím ve verzích 10 a 11 doplnit .. další problém mi nastal při kreslení grafu přes půlnoc, což program nezvládal .. tak jsem to vyřešil tak, že jsem graf po půlnoci stopnul ..
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Jak jseem ladil verzi ModbusRtu11 a pak 12 tak na mne různě začaly vyskakovat nějaké chybky .. takže nějaká chybka zřejmě vyypluje i z toho ModbusRtu10share, za což se předem omlouvám .. vesměs jsou to chybky se špatně načtenými parametry, kde se konkrétně zobrazuje OK ale buď tam není načtený driver a nebo tam maximálně zbyl driver z jiné verze .. určitě to ale nejsou chybky nebezpečné pro PC .. v plné verzi ModbusRtu10 a dalších by se ty chybky a vady na kráse už měly vyskytovat v menší míře .
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Přeladil jsem všechny Modbus Rtu verze, přes všechno úsílí na mne občas nějaké runtimy a violet acessy vyskakují, ale myslím, že OS ani jinému softwaru určitě neškodí.
Jako raritu se mi nevím jak na něco jsem v Delphi blbě šmátnul a tak mi z toho vylezl exáč ModbusRtu12, který se nedá smazat, protože podle hlášky používá sám sebe. Jinak s nějakými chybami fungoval a Defender na něm nenašel nic závadného .. Tak jsem si pro něj vytvořil adresář WC a tam jsem ho přesunul, přesouvat se normálně dal.

Dávám sem podle mne opravenou a vylepšenou verzi ModbusRtu10 Reader, tak kdo budete mít zájem tak to porovnejte s tou starší verzi, co už jsem jí sem dal minule.
Přílohy
ModbusRtu10share.zip
(770.72 KiB) Staženo 14 x
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Přidávám sem i versi ModbusRtu11 Reader+Writer ve versi shareware se stejným omezením na 100 datových záznamů.
Přílohy
ModbusRtu11-Writer.jpg
ModbusRtu11share.zip
(783.47 KiB) Staženo 11 x
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Přidávám sem i versi ModbusRtu12 Multireader ve versi shareware se stejným omezením na 100 datových záznamů a je zde navíc omezen interval měření pouze na jednu vteřinu.
Přílohy
ModbusRtu12share.zip
(1.14 MiB) Staženo 5 x
ca266054
Příspěvky: 176
Registrován: ned led 08, 2023 12:43 pm
Lokalita: Jablonec n.N.
Chci prodávat energii a využít dotace: NE
Výkon panelů [Wp]: cca 500 W
Kapacita baterie [kWh]: cca 240 Ah
Bydliště: cca Železný Brod u Jablonce a Turnova atd.

Re: Program Modbus Rtu pro RS485 resp. RS232

Příspěvek od ca266054 »

Readme_cz pro programy ModbusRtu10,11 a 12 :

Programy jsou napsány v jazyce Delphi, verze XE Starter cca pro Windows 7 (W7) 32 bit a pracují i pod W10 32 bit (W11 ani 64 bit nemám, to je s otazníkem).

Programy jsou vzhledem k zákonům moje autorské dílo. Zde na MyPower a též na Github je dávám jako verze shareware, kde je jednotně omezen počet záznamů dat číslem 100 a u verse 12 je ještě záznam omezen na interval po jedné vteřině.

V readme a v helpu je uvedena moje e-mailová adres, kdo by měl zájem o plnou verzi a program mu bude ve versi shareware v jeho OS přiměřeně fungovat (až na nějaké ty runtime a pod. viz další popis), napište mi na tento e-mail a já Vám plnou verzi za úplatu na e-mail pošlu.

Cenová nabídka pro plné verze je tato :
ModbusRtu10 ... 500,- Kč
ModbusRtu11 ... 700,- Kč
ModbusRtu12 ... 900,- Kč

a nejsem plátcem DPH.

Programy v tomto Xe Starteru se občas s OS Windos úplně neshodnou, takže občas se kvůli tomu objeví nějaká Runtime chyba a nebo Access Violate (hrozivý přístup zřejmě k nějaké neinicializované proměnné, což mi na druhý pokus o totéž zatím vždycky prošlo), nicméně se mi kvůli tomu nikdy nesložil ani program , ani Windowsy.

Popis k programům :

Inicializace :
- je obdobná jako u Modbus28, ale její záznam se řeší průběžně při změně parametrů, nikoli až na konci programu.

Parametry :
- u verzí 10 a 12 jsou shodné, u verze 11 je navíc nepovinně driver pro holdings registry (Holdregs) (pokud tam není, protože není k dispozici jako u SUN-1000G, tak se místo něj napíše NU (Not Used).
- od verze pro Modbus28 se parametry liší jen tím, že u vstupů (Inputs) se neuvádí jejich počet, ten je už zadán jako dříve v driveru a je ve všech verzích omezen na celkem 24 příkazů a proto jejich uvádění v parametrech bylo nadbytečné.

- počet výstupů je v programu omezen na 8, lze jich zadat méně ale není to nutné, počet výstupů je implicitně zadán v parametrech počtem vstupů, takže 8 výstupů max. je jenom pro informaci, že více výstupů to nevezme.

Drivery :
- jsou naprogramovány pro Modbus RTU, kde se čte příkazy 03 nebo 04 a zapisuje se příkazem 16 (10 hexadecimálně)
- pro verzi 10 a 11 jsou pro vstupy=příkazy (Inputs nebo Command) shodné s verzí u Modbus28. Tyto drivery předpokládají, že je na lince jen jedno zařízení a že budou jen s tím jedním zařízením pracovat a jeho modbusová adresa je už zadána v driveru. Není ale problém mít na lince od stejného portu s převodníkem USB/RS485 více zařízení s různými adresami a program spustit s různými parametry pro zvolené zařízení. Alternativně je možné použít více portů s převodníky USB/RS485 a s více zařízeními komunikovat na různých portech i s různými adresami na linkách.
- pro verzi 11 je ještě nutný ten driver pro holding registry .. u nich do příkazů není zadáno, zda se bude číst či zapisovat (03 nebo 16) , to se dosadí podle volby uživatele až progamem.
- verze 12 má pouze jeden driver a ten se liší od verzí 10 a 11 jen tím , že v příkazech už je zadána jako první člen adresa zařízení na lince. Počet zařízení na jedné lince, s kterým dokáže program komunikovat, může být teoreticky až 24, což je dáno počtem možných vstupů. Přitom se předpokládá, že na této lince jsou pouze zařízení se stejnými parametry pro port, na kterém je linka ve W7 nebo W10 32 bit přes převodník USB/RS485 připojená, tj se stejnou přenosovou rychlostí atd.

Data :
- data jsou pro všechny verze identická a každá z verzi by je měla umět načíst z disku volbou tlačítkem Data atd. .
V menu lze pak z dat vytvořit tabulku a nebo graf.

Grafy :
- moje Delphi XE Starter uměly a umějí vytváře poze grafy v celkem univerzálním grafickém formátu .bmp a kdo bude potřebovat šetřit místem, bude si je muset následně přeměnit na jiný datový formát obvykle .jpg, tak jak jsem to u všech grafů, které jsem sem na MyPower dával, dělal já ve Windowsech programem Malování.

Zpět na