Gleitkommadatenformat (float), Tabelle 4. gleitkommaformat – Basler Electric DGC-2020HD Modbus Protocol Benutzerhandbuch

Seite 15

Advertising
background image

9469375991 Rev A

9

DGC-2020HD Modbus

™ Protokoll

Allgemeine Informationen

Datentypen abgebildet auf 1 Register

o Unsigned Integer 16 (Uint16) (Vorzeichenlose Ganzzahl)

o Unsigned Integer 8 (Uint8) (Vorzeichenlose Ganzzahl)

o Zeichenketten maximal 2 Zeichen lang (String)

Datentypen abgebildet auf mehr als 2 Registern

o Zeichenketten länger als 4 Zeichen (String)

Gleitkommadatenformat (Float)

Das Modbus Gleitkommadatenformat verwendet zwei aufeinander folgende Halteregister, um einen
Datenwert zu repräsentieren. Das erste Register beinhaltet die niederwertigsten 16 Bits des folgenden
32-bit Formats:

MSB ist das Vorzeichenbit für den Gleitkommawert (0 = positiv).

Die nächsten 8 Bit sind der Exponent, vorbelastet mit 127 Dezimalstellen.

Die 23 LSB bestehen aus den normalisierten Mantissen. Für das Bit mit dem höchsten
Stellenwert der Mantisse wird stets 1 angenommen, und es wird nicht explizit gespeichert, wobei
sich eine effektive Genauigkeit von 24 Bit ergibt.

Der Wert der Gleitkommazahl wird erhalten, indem die binäre Mantisse mit Zwei multipliziert wird,
potenziert mit dem unvorbelasteten Exponenten. Das angenommene Bit der binären Mantisse hat den
Wert 1,0, wobei die übrigen 23 Bit einen Bruchwert ergeben. Tabelle 4 zeigt das Gleitkommaformat.

Tabelle 4. Gleitkommaformat

Vorzeichen

Exponent + 127

Mantisse

1 Bit

8 Bit

23 Bit

Das Gleitkommaformat ermöglicht Werte im Bereich von etwa 8,43X10^

-37

bis 3,38X10^

38

. Ein

Gleitkommawert bestehend aus ausschließlich Nullen entspricht dem Wert Null. Ein Gleitkommawert
bestehend aus ausschließlich Einsen (keine Zahl) entspricht einem Wert 'momentan nicht zutreffend' oder
deaktiviert.

Beispiel: Der Wert 95.800 im Geleitkomaformat entspricht einem Hexadezimalwert von 47BB1C00. Diese
Zahl wird aus zwei aufeinander folgenden Halteregistern wie folgt gelesen:

Halteregister

Wert

K (Hi Byte)

hex 1C

K (Lo Byte)

hex 00

K+1 (Hi Byte)

hex 47

K+1 (Lo Byte)

hex BB

Die gleiche Byte Anordnung wird zum Schreiben benötigt.

Lange Ganzzahl (Long Integer) Datenformat (Uint32, Int32 und IP Adresse)

Das Modbus Datenformat Lange Ganzzahl verwendet zwei aufeinander folgende Halteregister, um einen
32-bit Datenwert zu repräsentieren. Das erste Register beinhaltet die niederwertigsten 16 Bits und das
zweite Register die höchtswertigen 16-bit.

Beispiel: Der Wert 95.800 im Format Lange Ganzzahl entspricht einem Hexadezimalwert von 0x00017638.
Diese Zahl wird aus zwei aufeinander folgenden Halteregistern wie folgt gelesen:

Halteregister

Wert

K (Hi Byte)

hex 76

K (Lo Byte)

hex 38

K+1 (Hi Byte)

hex 00

K+1 (Lo Byte)

hex 01

Die gleiche Byte Anordnung wird zum Schreiben benötigt.

Advertising