PLCBytes
Nástroje pro Modbus

Dekodér Modbus registrů

Vložte surové registry a uvidíte všechny způsoby, jak je lze číst: 16, 32 i 64bitová celá čísla a floaty, ve všech čtyřech pořadích bajtů. Zadejte hodnotu, kterou ukazuje vaše zařízení, a dekodér za vás najde správný formát.

Registry

Příklad

Oddělujte mezerami, čárkami nebo novými řádky. Fungují i řádky zkopírované z Modbus Poll, například 3 = 17254.

Formát

Najít moji hodnotu

Zadejte hodnotu, kterou ukazuje váš elektroměr, měnič nebo HMI. Dekodér vyzkouší všechny registry, datové typy, pořadí bajtů i běžné škálování (÷10, ÷100, ÷1000) a nejlepší shodu zobrazí jako první.

Export pro Home Assistant

Použije vybranou shodu výše; jinou vyberete kliknutím. Výsledek vložte do configuration.yaml.

Připojení

Už máte hub modbus:? Zkopírujte jen položku senzoru pod sensors:. Po úpravě souboru restartujte Home Assistant.

32bitové hodnoty

Dva registry čtené jako jedna hodnota. Vyberte první registr dvojice.

PořadíFloat32Int32UInt32Bajty

64bitové hodnoty

Čtyři registry čtené jako jedna hodnota, od registru vybraného výše.

PořadíFloat64Int64UInt64Bajty

16bitové registry

AdresaHexUInt16Int16Bity 15 … 0

Běží celé ve vašem prohlížeči. Nic z toho, co zadáte, se neodesílá na server.

Jak funguje pořadí bajtů

32bitová hodnota má čtyři bajty A B C D rozdělené do dvou 16bitových registrů. Výrobci se na pořadí neshodnou, a proto mohou tytéž registry znamenat 230.5 nebo nesmysl.

ABCD
Big-endian. Nejdřív vyšší slovo, jak zamýšlí specifikace Modbus. Zkuste jako první.
CDAB
Prohozená slova. Nejdřív nižší slovo. Velmi časté u elektroměrů a PLC.
BADC
Prohozené bajty. Bajty prohozené uvnitř každého registru. Vzácné.
DCBA
Little-endian. Vše obráceně.

Jak číst výsledky

Modbus přenáší jen 16bitové registry. Co znamenají – číslo se znaménkem, 32bitový float, hodnotu v desetinách – určuje výrobce zařízení, ne protokol. Dekodér ukáže všechna běžná čtení vedle sebe, abyste je mohli porovnat s displejem nebo s mapou registrů.

Časté chyby

Otázky z praxe

Proč místo mého floatu vidím obrovské číslo nebo NaN?

Registry jsou téměř jistě spojené ve špatném pořadí. Float32 má znaménko a exponent v prvních bajtech; když přijde nižší slovo jako první, dostanou se do exponentu bity zlomku a vzniknou hodnoty jako 4.6e-41 nebo 2.6e+9. Porovnejte čtyři řádky v tabulce 32bitových hodnot: řádek, který odpovídá displeji, je pořadí bajtů, které potřebuje váš software.

Manuál uvádí 40001, ale software chce 0. Co je správně?

Obojí ukazuje na stejný registr. 40001 je číslo registru v klasickém zápisu Modicon: úvodní 4 označuje holding registr a číslování začíná od 1. Dotaz po sběrnici ale nese adresu od nuly, takže z 40001 je 0 a z 40002 je 1. Většina softwaru chce adresu od nuly. Zde zadejte jako první adresu 40001, aby popisky odpovídaly manuálu.

Jaké pořadí bajtů používají elektroměry a solární střídače?

Jednotné pravidlo neexistuje. Specifikace Modbus definuje jen 16bitové registry, takže každý výrobce si sám volí, jak uloží 32bitové hodnoty. Mnoho zařízení posílá nejdřív vyšší slovo (ABCD), velká část elektroměrů a PLC ale nejdřív nižší slovo (CDAB). Mapa registrů by to měla uvádět. Pokud ne, přečtěte hodnotu, kterou znáte, třeba napětí sítě nebo frekvenci, a použijte Najít moji hodnotu.

Jak vložit hodnoty z Modbus Poll nebo z logu?

Vložte řádky tak, jak jsou. Dekodér vezme hodnotu za rovnítkem nebo dvojtečkou, takže z 0 = 17254 a 1 = 32768 budou dva registry. Pokud jsou hodnoty desítkové, zvolte Desítkově; když vstup nemůže být hex (třeba pěticiferná čísla), dekodér přepne sám.

Odesílají se moje data někam?

Ne. Dekódování běží ve vašem prohlížeči jako součást této stránky. Nic z toho, co vložíte, se nenahrává ani neukládá na server.

Související nástroje