ModBus: Datatyypit

Datatyyppi

Kuvaus

INT16

Kokonaisluku alueella -32768...32767.
Datakohdalle todellisuudessa käytetty lukualue voi vaihdella.

UINT16

Etumerkitön kokonaisluku alueella 0–65535.
Datakohdalle todellisuudessa käytetty lukualue voi vaihdella.

ENUM

On summa. Vain parametriin merkittyjä arvoja voi käyttää.

BOOL

Boolin arvo on parametri, jossa on tarkalleen kaksi tilaa (0 – väärä/false ja 1 – tosi/true). Yleensä kaikkia nollaa suurempia arvoja pidetään tosina.

BITMAP*

16 boolin arvon (bitin) yhteenveto. Arvot merkitään välillä 0–15. Rekisteristä luettava tai siihen kirjoitettava luku saadaan kaikkien bittien summasta, jonka arvo on 1×2 korkeampi kuin sen hakemisto.

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

BITMAP32

32 boolin arvon (bitin) yhteenveto. Katso laskentatiedot Bitmapista.

* Selventävä esimerkki:
bitit 3, 6, 8, 15 ovat 1, kaikki muut ovat 0. Summa on siis 23+26+28+215 = 8+64+256+32768 = 33096. Myös päinvastainen reitti on mahdollinen. Tällöin tarkistetaan korkeimman arvon bitistä lähtien, onko luettu luku suurempi tai sama kuin kaksoispotenssi. Jos näin on, käytetään bittiä 1 ja vähennetään luvusta kaksoispotenssi. Sen jälkeen tarkistetaan bitti, jonka hakemisto on toiseksi pienin ja juuri laskettu jäännösarvo toistetaan, kunnes ollaan bitissä 0 tai jäännösluku on nolla. Esimerkki selvennykseksi: Luettu luku on 1416. Bitistä 15 tulee 0, koska 1416<32768. Myös biteistä 14–11 tulee 0. Bitistä 10 tulee 1, koska 1416>1024. Jäännösluku on 1416-1024=392. Bitistä 9 tulee 0, koska 392<512. Bitistä 8 tulee 1, koska 392>256. Jäännösluku on 392-256=136. Bitistä 7 tulee 1, koska 136>128. Jäännösluku on 136-128=8. Biteistä 6–4 tulee 0. Bitistä 3 tulee 1, koska 8=8. Jäännösluku on 0. Näin loput bitit ovat 2 – kaikki 0.