ModBus: Datentypen

Datentyp

Beschreibung

INT16

Ganzzahl im Bereich von -32768 bis 32767.
Der tatsächlich für einen Datenpunkt verwendete Zahlenbereich kann abweichen.

UINT16

Vorzeichenlose Ganzzahl im Bereich von 0 bis 65535.
Der tatsächlich für einen Datenpunkt verwendete Zahlenbereich kann abweichen.

ENUM

Ist eine Aufzählung. Es kann nur einer der unter Parameter aufgeführten Werte gesetzt werden.

BOOL

Ein boolscher Wert ist ein Parameter mit genau zwei Zuständen (0 – falsch/false und 1 – wahr/true). Generell werden alle Werte größer als Null als true gewertet.

BITMAP*

Ist eine Zusammenfassung von 16 boolschen Werten (Bits). Die Werte werden von 0 bis 15 indiziert. Die im Register zu lesende oder zu schreibende Zahl ergibt sich aus der Summe aller Bits mit dem Wert 1×2 hoch ihrem 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

Ist eine Zusammenfassung von 32 boolschen Werten (Bits). Für Details der Berechnung bitte bei Bitmap nachlesen.

* Beispiel zur Verdeutlichung:
Bit 3, 6, 8, 15 sind 1 alle anderen sind 0. Die Summe ist dann 23+26+28+215 = 8+64+256+32768 = 33096. Der Umgekehrte Weg ist ebenfalls möglich. Dabei wird ausgehend vom Bit mit dem höchsten Index geprüft, ob die gelesene Zahl größer gleich der Zweierpotenz ist. Wenn das der Fall ist, wird das Bit 1 gesetzt und die Zweierpotenz von der Zahl abgezogen. Danach wird die Prüfung mit dem Bit mit dem nächst kleineren Index und der gerade berechneten Restzahl wiederholt bis man bei Bit 0 angekommen ist oder die Restzahl Null ist. Zur Verdeutlichung ein Beispiel: Die gelesene Zahl ist 1416. Bit 15 wird 0, da 1416<32768. Bits 14 bis 11 werden ebenfalls 0. Bit 10 wird 1, da 1416>1024 ist. Die Restzahl wird 1416-1024=392. Bit 9 wird 0, da 392<512. Bit 8 wird 1, da 392>256. Die Restzahl wird 392-256=136. Bit 7 wird 1, da 136>128. Die Restzahl wird 136-128=8. Bit 6 bis 4 werden 0. Bit 3 wird 1, da 8=8. Die Restzahl wird 0. Somit werden die restlichen Bits 2 bis alle 0.