ModBus: Datatyper

Datatype

Beskrivelse

INT16

Helt tal i området fra -32768 til 32767.
Det talområde, som rent faktisk er anvendt til et datapunkt, kan afvige.

UINT16

Helt tal uden fortegn i området fra 0 til 65535.
Det talområde, som rent faktisk er anvendt til et datapunkt, kan afvige.

ENUM

Er en oplistning. Kun én af de værdier, der er angivet under parametre, kan indstilles.

BOOL

En boolsk værdi er en parameter med præcis to tilstande (0 – falsk/false og 1 – sand/true). Generelt vurderes alle værdier større end nul som true.

BITMAP*

Er en sammenfatning af 16 boolske værdier (bits). Værdierne angives fra 0 til 15. Det tal, der skal læses eller skrives i registeret, fremkommer af summen af alle bits med værdien 1x2 opløftet i indekstallets potens.

  • 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

Er en sammenfatning af 32 boolske værdier (bits). Find detaljer om beregningen under bitmap.

* Eksempel til forklaring:
Bit 3, 6, 8, 15 er 1, alle andre er 0. Summen er så 23+26+28+215 = 8+64+256+32768 = 33096. Den omvendte vej er også mulig. Her kontrolleres det med udgangspunkt i bitten med det højeste indeks, om det læste tal er større end eller lig med 2. potensen. Hvis det er tilfældet, sættes bit 1 og 2. potensen trækkes fra tallet. Derefter gentages kontrollen med bitten med det nærmeste lavere indeks og det netop beregnede resttal, indtil man kommer frem til bit 0, eller resttallet er nul. Et eksempel for at tydeliggøre: Det læste tal er 1416. Bit 15 bliver 0, da 1416<32768. Bittene 14 til 11 bliver ligeledes 0. Bit 10 bliver 1, da 1416>1024. Resttallet bliver 1416-1024=392. Bit 9 bliver 0, da 392<512. Bit 8 bliver 1, da 392>256. Resttallet bliver 392-256=136. Bit 7 bliver 1, da 136>128. Resttallet bliver 136-128=8. Bit 6 til 4 bliver 0. Bit 3 bliver 1, da 8=8. Resttallet bliver 0. Dermed bliver de resterende bits 2 til 0 alle 0.