ModBus: Datové typy
Datový typ | Popis |
---|---|
INT16 | Celé číslo v rozmezí -32768 až 32767. |
UINT16 | Celé číslo bez znaménka v rozmezí 0 až 65535. |
ENUM | Jedná se o výčet. Lze nastavit pouze jednu z hodnot uvedených v sekci parametry. |
BOOL | Booleovská hodnota je parametr s právě dvěma stavy (0 - nepravda/false a 1 - pravda/true). Obecně platí, že všechny hodnoty větší než nula jsou vyhodnoceny jako true. |
BITMAP* | Je souhrnem 16 booleovských hodnot (bity). Hodnoty jsou udávány od 0 do 15. Číslo, které se v registru má číst nebo zapisovat, je odvozeno od součtu všech bitů s hodnotou 1x2 umocněnou jejich indexem.
|
BITMAP32 | Je souhrnem 32 booleovských hodnot (bity). Podrobnosti o výpočtu si můžete přečíst u bitmapy. |
* Příklad pro objasnění:
Bit 3, 6, 8, 15 jsou 1, všechny ostatní jsou 0. Součet je pak 23+26+28+215 = 8+64+256+32768 = 33096. Opačná cesta je rovněž možná. V takovém případě se počínaje bitem ověřuje s nejvyšším indexem, zda čtené číslo je větší než, rovné mocnině dvou. Pokud tomu tak je, je nastaven bit 1 a mocnina dvou pak od čísla odečtena. Poté se kontrola s bitem opakuje s nejbližším menším indexem a právě vypočteným zbytkovým číslem, dokud není dosaženo bit 0 nebo dokud není zbytkovým číslem nula. Pro ilustraci uveďme příklad: Čtené číslo je 1416. Bit 15 se stane 0, protože 1416<32768. I bity 14 až 11 budou mít hodnotu 0. Bit 10 se stane 1, protože 1416>1024. Zbytkovým číslem je 1416-1024=392. Bit 9 se stane 0, protože 392<512. Bit 8 se stane 1, protože 392>256. Zbytkovým číslem je 392-256=136. Bit 7 se stane 1, protože 136>128. Zbytkovým číslem je 136-128=8. Bit 6 až 4 budou mít hodnotu 0. Bit 3 se stane 1, protože 8=8. Zbytkovým číslem je 0. Zbývající bity tak získají hodnotu 2 až všechny 0.