Konwerter rejestrów Modbus — FLOAT32, INT32, HEX
Zamień dwa rejestry Modbus (16 bit) na FLOAT32, INT32 lub UINT32 i odwrotnie — we wszystkich kolejnościach bajtów: ABCD, CDAB, BADC, DCBA.
Rejestry wpisuj dziesiętnie (16840) albo szesnastkowo (0x41C8).
Umieść to narzędzie na swojej stronie
Bezpłatnie, bez rejestracji. Widżet pokazuje na dole napis „Narzędzie udostępnia AMKBIT.pl”.
Dlaczego wartości z Modbus „wychodzą dziwne”
Rejestr Modbus ma 16 bitów. Liczby 32-bitowe (FLOAT32, INT32) zajmują dwa rejestry, a 64-bitowe — cztery. Protokół nie określa, w jakiej kolejności urządzenie wysyła słowa, dlatego producenci robią to różnie:
| Kolejność | Opis | Spotykana w |
|---|---|---|
| ABCD | big-endian, słowo starsze pierwsze | zgodnie ze specyfikacją Modbus |
| CDAB | zamienione słowa (word swap) | wiele sterowników PLC, liczników energii |
| BADC | zamienione bajty w słowach | rzadziej, niektóre przetworniki |
| DCBA | little-endian | urządzenia z procesorami x86/ARM bez konwersji |
Jeśli znasz przybliżoną wartość (np. temperaturę 25 °C), znajdź w tabeli kolejność, która daje sensowny wynik, i ustaw ją w SCADA lub sterowniku.
FLOAT32 (IEEE 754, pojedyncza precyzja) ma ok. 7 cyfr znaczących: 25 = 0x41C80000, 1,5 = 0x3FC00000. Wartości ujemne INT16 w rejestrze to liczby powyżej 32767 (kod U2), np. −1 = 0xFFFF.
Przykłady
Temperatura 25 °C
Rejestry 0x41C8 i 0x0000 w kolejności ABCD dają FLOAT32 = 25. Te same bajty odczytane jako CDAB to 0x000041C8 — prawie zero (2,36 × 10⁻⁴¹), co jest typowym objawem złej kolejności słów.
Poradniki
Wynik ma charakter pomocniczy. Przy ważnych decyzjach (finansowych, technicznych, zdrowotnych) sprawdź go niezależnie. Zasady korzystania.