ModBus: Gegevenstypen

Gegevenstype

Beschrijving

INT16

Geheel getal in het bereik van -32768 t/m 32767.
Het werkelijke voor het datapunt gebruikte getallenbereik kan afwijken.

UINT16

Geheel getal zonder teken in het bereik van 0 t/m 65535.
Het werkelijke voor het datapunt gebruikte getallenbereik kan afwijken.

ENUM

Is een opsomming. Er kan slechts één van de onder de parameter vermelde waarden worden ingesteld.

BOOL

Een booleaanse waarde is een parameter met exact twee uitvoerwaarden (0 – onjuist/false en 1 – juist/true). In het algemeen worden alle waarden groter dan nul als true aangegeven.

BITMAP*

Is een samenvatting van 16 booleaanse waarden (Bits). De waarden worden van 0 t/m 15 geïndexeerd. Het in het register te lezen of te schrijven getal is het resultaat van de som van alle bits met de waarde 1×2 verhoogd van hun index.

  • 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

Is een samenvatting van 32 booleaanse waarden (Bits). Lees de bitmap voor meer informatie over de berekening.

* Voorbeeld ter verduidelijking:
Bit 3, 6, 8, 15 zijn 1, alle andere bits zijn 0. De som is dan 23+26+28+215 = 8+64+256+32768 = 33096. De omgekeerde weg is eveneens mogelijk. Daarbij wordt, uitgegaan van de bit met de hoogste index, gecontroleerd of het gelezen getal groter of gelijk is aan de tweede macht. Als dit het geval is, wordt bit 1 geplaatst en de tweede macht van het getal afgetrokken. Daarna wordt de controle met het bit met de daarna kleinste index en het zojuist berekende restgetal herhaald tot men bij bit 0 is aangekomen of het restgetal nul is. Een voorbeeld ter verduidelijking: Het gelezen getal is 1416. Bit 15 wordt 0, omdat 1416<32768. Bits 14 t/m 11 worden eveneens 0. Bit 10 wordt 1, omdat 1416>1024 is. Het restgetal wordt 1416-1024=392. Bit 9 wordt 0, omdat 392<512. Bit 8 wordt 1, omdat 392>256. Het restgetal wordt 392-256=136. Bit 7 wordt 1, omdat 136>128. Het restgetal wordt 136-128=8. Bit 6 t/m 4 worden 0. Bit 3 wordt 1, omdat 8=8. Het restgetal wordt 0. Zodoende worden de resterende bits 2 t/m 0.