Proč Modbus ukazuje nesmyslná čísla?
Protokol Modbus byl vyvinut v roce 1979 pro jednoduchá PLC a operuje pouze s 16bitovými registry. Odesílá vždy "slova" (Words), ale nespecifikuje, jak se mají složit v případě, že hodnota vyžaduje 32 bitů (např. reálná čísla s desetinnou čárkou – Float). Zda dorazí dříve vyšší nebo nižší slovo (Word), závisí čistě na výrobci připojeného zařízení.
Vysvětlení variant uspořádání (Endianity)
- Big-Endian (ABCD): Nejpřirozenější způsob. Nejvýznamnější byte dorazí jako první. Často se používá u PLC Siemens.
- Little-Endian (DCBA): Zcela obrácené pořadí. Nejméně významný byte dorazí jako první. Běžné pro architekturu Intel (x86).
- Word-Swap (CDAB): Obě slova dorazila naopak, ale uvnitř slov je pořadí bytů správné. Tohle je nejčastější problém při vyčítání moderních elektroměrů.
- Byte-Swap (BADC): Slova dorazila správně, ale byty uvnitř nich jsou převrácené. Bývá méně obvyklé.
V praxi stačí z řídicího systému vyčíst dva registry, podívat se do této kalkulačky a jakmile v modrém sloupci uvidíte reálnou očekávanou hodnotu (například napětí `230.5` místo `1.2e-40`), ihned víte, jaký Swap musíte v softwaru nastavit.