„ModBus“: Duomenų tipai

Duomenų tipas

Aprašymas

INT16

Sveikas skaičius intervale nuo -32768 iki 32767.
Duomenų punktui faktiškai naudojamas skaičių intervalas gali skirtis.

UINT16

Sveikas skaičius intervale nuo 0 iki 65535.
Duomenų punktui faktiškai naudojamas skaičių intervalas gali skirtis.

ENUM

Tai yra sąrašas. Gali būti nustatyta tik viena iš prie parametro nurodytų verčių.

BOOL

Bulio vertė – tai parametras su dviem būsenomis (0 – klaidinga („false“) ir 1 – teisinga („true“)). Visos didesnės už nulį vertės yra „true“.

BITMAP*

Tai 16 Bulio verčių (bitų) santrauka. Vertės indeksuojamos nuo 0 iki 15. Registre matomas arba įrašomas skaičius yra nustatomas pagal bitų sumą, taikant 1 vertę, kuri padauginama iš 2 ir pakeliama šios vertės indekso laipsniu.

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

BITMAP32

Tai 32 Bulio verčių (bitų) santrauka. Išsamesnės informacijos dėl apskaičiavimų rasite Bitmap aprašyme.

* Meniu valdymo pavyzdžiai:
3, 6, 8, 15 bitai yra lygūs 1, o visi kiti lygūs 0. Tuomet suma lygi 23+26+28+215 = 8+64+256+32768 = 33096. Atvirkštinė tvarka taip pat įmanoma. Taigi pradedant bitu su didžiausiu indeksu nustatoma, ar gautas rodmuo yra didesnis arba lygus antruoju pakeltam minėto indekso laipsniu. Jei taip atsitinka, nustatomas 1 bitas ir iš skaičiaus atimamas 2 pakeltas atitinkamo indekso laipsniu. Vėliau tikrinamas bitas su kitu mažesniu indeksu ir ką tik apskaičiuotas likutinis skaičius, darant tai tol, kol prieinama prie 0 bitų arba likutinis skaičius yra lygus nuliui. Kad būtų aiškiau, pateikiame pavyzdį: nuskaitytas skaičius yra 1416. 15 bitas bus 0, nes 1416<32768. 14 – 11 bitai taip pat bus 0. 10 bitas bus 1, nes 1416>1024. Likutinis skaičius bus 1416-1024=392. 9 bitas bus 0, nes 392<512. 8 bitas bus 1, nes 392>256. Likutinis skaičius bus 392-256=136. 7 bitas bus 1, nes 136>128. Likutinis skaičius bus 136-128=8. 6 – 4 bitai bus 0. 3 bitas bus 1, nes 8=8. Likutinis skaičius bus 0. Taip likę bitai iki 2 bus 0.