ModBus: Typy údajov

Typ údajov

Popis

INT16

Skutočný rozsah čísiel od -32768 do 32767.
Skutočný rozsah čísiel použitý pre dátový bod sa môže líšiť.

UINT16

Skutočný rozsah čísiel od 0 do 65535.
Skutočný rozsah čísiel použitý pre dátový bod sa môže líšiť.

ENUM

Je vyčíslenie. Je možné nastaviť iba jednu z hodnôt uvedených v časti Parametre.

BOOL

Booleovská hodnota je parameter s presne dvoma stavmi (0 - nesprávne/false a 1 - správne/true). Vo všeobecnosti sa všetky hodnoty väčšie ako nula považujú za true.

BITMAP*

Je súhrn 16 Booleovských hodnôt (bitov). Hodnoty sú indexované od 0 do 15. Číslo, ktoré sa má čítať alebo zapísať do registra, je výsledkom súčtu všetkých bitov s hodnotou 1 × 2 umocnené ich indexom.

  • Bit 0: 20 = 1
  • Bit 1: 21 = 2
  • Bit 2: 22 = 4
  • Bit 3: 23 = 8
  • Bit 4: 24 = 16
  • Bit 5: 25 = 32
  • Bit 6: 26 = 64
  • Bit 7: 27 = 128
  • Bit 8: 28 = 256
  • Bit 9: 29 = 512
  • Bit 10: 210 = 1024
  • Bit 11: 211 = 2048
  • Bit 12: 212 = 4096
  • Bit 13: 213 = 8192
  • Bit 14: 214 = 16384
  • Bit 15: 215 = 32768

BITMAP32

Je súhrn 32 Booleovských hodnôt (bitov). Pre podrobný výpočet si prečítajte BITMAP.

* Príklad na objasnenie:
Bit 3, 6, 8, 15 sú 1 všetky ostatné sú 0. Súčet je potom 23+26+28+215 = 8+64+256+32768 = 33096. Možný je aj opačný spôsob. Potom sa na základe bitu s najvyšším indexom overí, či je čítané číslo vyššie ako alebo rovné mocnine dvoch. Ak áno, je nastavený bit 1 a od čísla sa odpočíta mocnina dvoch. Následne sa skúška s bitom zopakuje s ďalším menším indexom a zostávajúce číslo sa opakovane vypočíta, kým sa nedosiahne bit 0 alebo kým zostávajúce číslo nebude nula. Na objasnenie príklad: Prečítané číslo je 1 416. Bit 15 bude 0, preto je 1416<32768. Bity 14 až 11 budú takisto 0. Bit 10 bude 1, preto je 1416>1024. Zostávajúci počet bude 1416-1024=392. Bit 9 bude 0, potom 392<512. Bit 8 bude 1, potom 392>256. Zostávajúci počet bude 392-256=136. Bit 7 bude 1, potom 136>128. Zostávajúci počet bude 136-128=8. Bit 6 až 4 bude 0. Bit 3 bude 1, potom 8=8. Zostávajúci počet bude 0. Zvyšné bity budú tak 2 až všetky 0.