ModBus: Adattípusok

Adattípus

Megnevezés

INT16

Egész szám -32 768 és +32 767 között.
Az adatpont tényleges számtartománya eltérhet ettől.

UINT16

Előjel nélküli egész szám 0 és 65 535 között.
Az adatpont tényleges számtartománya eltérhet ettől.

ENUM

Felsorolás. Csak a paraméterekben felsorolt értékek közül lehet választani.

BOOL

A logikai típusú érték pontosan két állapotú (0: hamis/false vagy 1: igaz/true) paraméter. Általában minden nullánál nagyobb értéket igaznak kell tekinteni.

BITMAP*

16 logikai értékből (bitből) álló adattömb. Az értékek 0 és 15 között vannak indexelve. A regiszterből kiolvasható vagy oda beírható szám úgy adódik, hogy az összes 1 értékű bitet meg kell szorozni 2-nek az indexük szerinti hatványával, majd ezeket a részösszegeket össze kell adni.

  • 0-s bit: 20 = 1
  • 1-es bit: 21 = 2
  • 2-es bit: 22 = 4
  • 3-as bit: 23 = 8
  • 4-es bit: 24 = 16
  • 5-ös bit: 25 = 32
  • 6-os bit: 26 = 64
  • 7-es bit: 27 = 128
  • 8-as bit: 28 = 256
  • 9-es bit: 29 = 512
  • 10-es bit: 210 = 1024
  • 11-es bit: 211 = 2048
  • 12-es bit: 212 = 4096
  • 13-as bit: 213 = 8192
  • 14-es bit: 214 = 16 384
  • 15-ös bit: 215 = 32 768

BITMAP32

32 logikai értékből (bitből) álló adattömb. A számítás részleteit lásd a BITMAP leírásánál.

* Példa az egyértelműsítéshez:
A 3-as, 6-os, 8-as és 15-ös bit 1, az összes többi 0. Az összeg ekkor 23+26+28+215 = 8+64+256+32 768 = 33 096. Fordított módon is el lehet járni, vagyis ha a számérték van meg, és a biteket kell meghatározni. A legmagasabb indexű bitből kiindulva, ellenőrizzük, hogy a kiolvasott szám nagyobb-e vagy egyenlő-e a kettő adott hatványával. Ha igen, akkor az 1-es bitet 1-re kell állítani, és a kettő hatványát ki kell vonni a számból. Ezután megismételjük a vizsgálatot az eggyel kisebb indexű bittel és az iménti maradék számmal addig, amíg el nem érjük a 0-s bitet, vagy a maradék szám nulla nem lesz. Példa az egyértelműsítéshez: A kiolvasott szám 1 416. A 15-ös bit 0 lesz, mert 1 416 < 32 768. A 14–11-es bitek szintén 0 értékűek lesznek. A 10-es bit 1 lesz, mert 1 416 > 1 024. A maradék 1 416-1 024=392. A 9-es bit 0 lesz, mert 392 < 512. A 8-as bit 1 lesz, mert 392 > 256. A maradék 392-256=136. A 7-es bit 1 lesz, mert 136 > 128. A maradék 136-128=8. A 6–4-es bitek 0 értékűek lesznek. A 3-as bit 1 lesz, mert 8=8. A maradék 0. Ezzel a maradék 2–0-s bitek mind 0 értékűek.