ModBus: Tipovi podataka

Tip podataka

Opis

INT16

Ceo broj u opsegu od -32768 do 32767.
Numerički opseg koji je zaista korišćen za neku tačku podataka može se razlikovati.

UINT16

Ceo broj bez predznaka u opsegu od 0 do 65535.
Numerički opseg koji je zaista korišćen za neku tačku podataka može se razlikovati.

ENUM

Predstavlja nabrajanje. Može da se setuje samo jedan od parametara.

BOOL

Bulova vrednost je parametar koji uzima samo dva stanja (0 – pogrešno/false i 1 – tačno/true). Generalno se sve vrednosti veće od nule smatraju true.

BITMAP*

Predstavlja skup od 16 bulovih vrednosti (bitovi). Signaliziraju se vrednosti od 0 do 15. Broj koji treba pročitati ili upisati dobija se na osnovu zbira svih bitova sa vrednošću 1x2 stepenovanom indeksom.

  • 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

Predstavlja skup od 32 bulove vrednosti (bitovi). Za pojedinosti izračunavanja proveriti raspored bitova.

* Primer za pojašnjenje:
Bit 3, 6, 8, 15 su 1, svi ostali su 0. Zbir je tada 23+26+28+215 = 8+64+256+32768 = 33096. Obrnuti način je takođe moguć. Pritom se počev od bita sa sledećim većim indeksom proverava da li je očitani broj veći ili jednak drugom stepenu. Ako je to slučaj, bit 1 se setuje, a broj se smanjuje za dva stepena. Nakon toga se provera bitom sledećeg nižeg indeksa i upravo izračunatog ostatka ponavlja dok se ne dođe do bita 0 ili dok ostatak ne postane nula. Primer za pojašnjenje: Očitani broj je 1416. Bit 15 postaje 0, zato što je 1416<32768. Bitovi 14 do 11 postaju takođe 0. Bit 10 postaje 1, zato što je 1416>1024. Ostatak će biti 1416-1024=392. Bit 9 postaje 0, zato što je 392<512. Bit 8 postaje 1, zato što je 392>256. Ostatak će biti 392-256=136. Bit 7 postaje 1, zato što je 136>128. Ostatak će biti 136-128=8. Bitovi 6 do 4 postaju 0. Bit 3 postaje 1, zato što je 8=8. Ostatak će biti 0. Tako su preostali bitovi 2 svi jednaki 0.