HW / DOKUMENTACE ModbusTool

Uživatelský návod ModbusTool.

Spuštění, nastavení čtecích bloků a signálů, čtení Modbus TCP, živé grafy a CSV záznam.

Zpět na aplikaci

První čtení

  1. Spusťte přenosný ModbusTool-2.0.2.exe z oficiální stránky. Potřebujete Windows s .NET Framework 4.8, bez instalátoru a bez oprávnění správce pro samotný běh. EXE obsahuje aplikaci a podmínky freeware, nikoli vlastní runtime.
  2. Zadejte IP adresu nebo DNS jméno a port (běžně 502). Jedno okno/profil obsluhuje jeden TCP cíl.
  3. V záložce Bloky upravte výchozí blok1: zapnutí, jméno, Unit ID, funkci 3/4, počáteční adresu a počet registrů.
  4. Vyčíst jednou projde všechny zapnuté bloky. Číst opakovaně prochází seznam opakovaně; Zastavit zruší i právě probíhající síťové čekání.
  5. V Registry vyberte blok a prohlédněte UInt16, Int16, HEX a bity. Signály se zobrazují samostatně v Hodnoty.

Ctrl+Enter vyčte jednou, Ctrl+Shift+Enter spustí opakování, Escape zastaví. Kopírování aktuální tabulky je v menu Výsledky; vybrané buňky lze také kopírovat Ctrl+C.

Nápověda → O aplikaci a licence ukazuje výrobce HW Solution s.r.o., verzi, oficiální web a úplné podmínky freeware. Aplikace je zdarma pro osobní i firemní použití bez registrace; vlastní zdroje nejsou veřejnou součástí distribuce. Podmínky jsou přístupné přímo v jediném EXE.

Verze 2.0.1 přizpůsobuje rozložení systémovému měřítku při spuštění. Tlačítka a popisky mají výšku podle textu; při nedostatku šířky lišty zalomí tlačítka. Tabulky zachovají čitelné šířky sloupců a podle potřeby nabídnou vodorovný posuvník. Stejně se přizpůsobuje editor signálů.

Adresování a časování

  • Adresy jsou offsety od nuly, 0–65535, desetinně nebo s prefixem 0x. 0x10 znamená 16. Jeden blok obsahuje 1–125 registrů; jeho konec nesmí překročit 65535.
  • Běžná reference 40001 odpovídá FC03/adresa 0 a 30001 FC04/adresa 0. Některé manuály již uvádějí offsety. Program reference nepřevádí: zadání 40001 odešle skutečný offset 40001.
  • Každý blok má vlastní Unit ID (0–255), funkci 3 nebo 4. Vhodné i pro více jednotek za jednou TCP bránou.
  • Požadavky běží postupně v pořadí řádků jedním TCP klientem. Neslučují se překryvy ani sousední bloky. Počet větší než 125 rozdělte ručně do dalších bloků.
  • Timeout 100–60000 ms platí pro jeden požadavek včetně DNS, připojení a celého přenosu. Prodleva 100–3600000 ms začíná až po dokončení všech bloků; není pevnou periodou vzorkování.
  • Chyba jednoho bloku nezastaví ostatní. Neprobíhá okamžitý retry; při opakování přijde další pokus až v dalším cyklu. Po chybě spojení se klient pro další požadavek připojí znovu.
  • DNS preferuje IPv4, poté IPv6. Konkrétní IPv6 lze zadat i v hranatých závorkách. Nedostupná první DNS adresa může spotřebovat celý timeout; pak použijte konkrétní IP nebo větší limit.

Časy odečtů jsou skutečné časy dokončení jednotlivých požadavků; hodnoty různých bloků nejsou současným snímkem zařízení.

Bloky a profily

Bloky lze přidat, duplikovat včetně signálů, vypnout, smazat a přesunout nahoru/dolů. Změna jména bloku aktualizuje reference jeho signálů. Při mazání bloku se signály aplikace požádá o potvrzení. Konfigurace je během čtení uzamčená.

Menu Profil nabízí nový profil, otevření JSON, uložení a import/export obou CSV tabulek. Hvězdička v titulku znamená neuložené změny. Profil se automaticky neukládá. Při odchodu nebo nahrazení profilu lze změny uložit, zahodit nebo akci zrušit.

JSON je formát verze 1. Ukládá Host, Port, TimeoutMs, IntervalMs, seznamy Blocks/Signals a GraphSignals. Grafové klíče vytváří aplikace; při ruční editaci JSON zachovejte jejich vazby. Neobsahuje naměřené hodnoty, historii ani rozběhnutý záznam. Zápis profilu a definic CSV používá dočasný soubor a atomickou výměnu cíle.

Import CSV

Oba formáty jsou UTF-8 s oddělovačem ;; export přidává BOM. Uvozovky se zdvojují podle běžných pravidel CSV. Názvy sloupců nerozlišují velikost písmen a lze je přeuspořádat; všechny uvedené sloupce jsou povinné. enabled je 0 nebo 1. Číselné faktory a posuny přijímají čárku i tečku bez oddělovačů tisíců; export definic používá čárku.

Bloky

block;unit_id;function;address;count;enabled
mereni;1;3;0;20;1
stavy;2;4;100;8;1

Signály

block;name;address;type;order;factor;offset;unit;enabled
mereni;Napeti L1;0;Float32;ABCD;1;0;V;1
mereni;Teplota;2;Int16;AB;0,1;0;°C;1

Import nahradí příslušnou tabulku; druhou zachová. Nejprve se ověří celý výsledný profil bez síťového provozu. Chyba obsahuje řádek, sloupec a důvod; neplatný import nemění aplikovaný profil, rozpracovanou tabulku ani zobrazená měření. Import bloků, který by poškodil existující signály, je odmítnut. Import signálů vyřadí výběry grafů, které již neexistují nebo nejsou zapnuté.

Názvy bloků musí být jedinečné, názvy signálů jedinečné uvnitř bloku; porovnání nerozlišuje velikost písmen. Názvy a jednotky nesmějí obsahovat řídicí znaky ani zalomení řádku. Platné jsou i prázdné tabulky se záhlavím; pro čtení musí být alespoň jeden blok zapnutý a před přidáním signálu musí existovat blok.

Obecné vzory blocks.csv, signals.csv a demo.modbus.json jsou samostatně ke stažení na oficiální stránce aplikace. Při přípravě nové konfigurace začněte bloky, potom přidejte signály, vyberte grafy a uložte celý JSON profil. Vzor používá místní adresu 127.0.0.1, kterou změňte na skutečný cíl; jeho typy a adresy musí odpovídat mapě vašeho zařízení.

Výklad signálů

Tlačítko Definice signálů… otevře editor. Signál vybere svůj blok a skutečnou adresu protokolu, nikoli pořadí uvnitř bloku. Všechny jeho registry musí ležet v příslušném rozsahu.

Typ Registry Pořadí
UInt16, Int16 1 AB, BA
UInt32, Int32, Float32 2 ABCD, BADC, CDAB, DCBA

A/B jsou horní/dolní bajt prvního registru, C/D druhého. Výchozí AB/ABCD zachovává síťové pořadí; CDAB prohodí slova, BADC bajty ve slovech, DCBA obrátí všechny bajty.

Výsledek = dekódovaná hodnota × násobitel + posun. Například Int16, faktor 0,1 a jednotka °C zobrazí registr 235 jako 23,5 °C. NaN, Infinity a přetečení přepočtu zneplatní pouze daný signál; surová slova zůstanou dostupná. Násobitel a posun musejí být konečná čísla.

U každého bloku/signálu se zobrazuje poslední úspěšný čas. Při chybě zůstane poslední dobrá hodnota s označením NEAKTUÁLNÍ; nová chyba z ní nevytvoří nový vzorek. Tooltip času ukazuje stáří signálu. Změněná hodnota krátce zežloutne. Změna aplikované konfigurace vymaže dosavadní výsledky a grafy, aby se nesmíchaly různé mapy.

Živé grafy

V záložce Hodnoty zaškrtněte nejvýše čtyři signály ve sloupci Graf. Výběr lze měnit i během čtení a ukládá se do profilu. Každý signál má vlastní graf s osou a jednotkou; sběr nově vybraného signálu začíná okamžikem výběru.

Každý graf uchovává nejvýše 10 000 položek včetně mezer. Starší položky se zahazují, nevzniká neomezená paměťová historie. Překreslování je nejvýše 5× za sekundu, skutečné vzorky se tím neomezují. Chyba, Stop a přerušení měření vytvářejí mezery; čára je nespojuje. Grafy nepřehrávají dříve uložené CSV.

Záznam a export měření

Před čtením zapněte Záznam do CSV a vyberte nový soubor. Existující soubor se nepřepisuje ani se do něj nepřipojuje další relace. Záznam vytváří soubor průběžně; při běžném Stop/zavření dokončí frontu a zápis. Při dalším spuštění vyberte další nový soubor.

Zápis běží mimo GUI s frontou nejvýše 256 výsledků bloků. Chyba disku nebo plná fronta viditelně zastaví záznam; čtení a grafy pokračují. Velikost souboru není automaticky omezovaná ani rotovaná.

Menu Výsledky → Exportovat aktuální výsledky CSV… uloží jeden snímek posledních pokusů všech již čtených bloků ve stejném formátu. Okno při zavření asynchronně počká na probíhající export. Samotný export nemění nastavení ani historii.

Výsledkový CSV má UTF-8 BOM, ;, uvozovky u všech polí a následující sloupce:

session_id;cycle_id;timestamp_utc;row_type;block;unit_id;function;address;name;type;raw_hex;value;unit;quality;error;elapsed_ms
  • timestamp_utc je ISO 8601 v UTC; GUI zobrazuje místní čas.
  • row_type je raw (každý fyzický registr), signal (dekódovaný přepočtený signál) nebo block (chyba bloku).
  • quality je good nebo error. Při chybě je nová value prázdná; staré dobré hodnoty se nezapisují jako nové. U dekódovací chyby lze zachovat nová surová slova.
  • value používá invariantní desetinnou tečku pro přenositelnost a úplnou přesnost. Při importu výsledků do českého Excelu nastavte desetinný oddělovač na tečku; definice signálů jsou samostatný CSV formát popsaný výše.
  • raw_hex je původní fyzické pořadí slov; přepočet ani prohození pořadí jej nemění.

Záznam do souboru slouží pro dlouhodobou historii; paměťový graf je omezený průběžný náhled.

Výrobce a distribuce

ModbusTool vydává HW Solution s.r.o. Oficiální stránka je https://www.hwsolution.cz/freeware/modbus-tool/. Veřejná distribuce je jediný přenosný EXE s vloženými podmínkami freeware; návod a obecné vzory lze stáhnout zvlášť. Kontrolní součet SHA-256 a velikost na stránce se vztahují ke konkrétní zveřejněné verzi.