Modbus-Tabellenformat und Datentypen
Format der Tabellen
Die Registertabellen umfassen folgende Spalten:
Adresse |
Register |
Anz. |
RW |
X |
Einheit |
Typ |
Bereich |
Standard |
Gesich. |
Funktionscode |
Betroffene Geräte |
Beschreibung |
Bezeichnung |
Beschreibung |
---|---|
Adresse |
16-Bit-Registeradresse im Hexadezimalformat. Die Adresse entspricht den im Modbus-Frame verwendeten Daten. |
Register |
16-Bit-Registernummer im Dezimalformat. Register = Adresse + 1 |
Anz. |
Anzahl an 16-Bit-Registern, die gelesen/geschrieben werden müssen, um Zugang zu den vollständigen Informationen zu erhalten |
R/RW |
Register mit Schreibschutz (R/RW) oder mit Schreib-/Lesezugriff (RW). |
X |
Skalenfaktor:
|
Einheit |
Informationen zur Messeinheit:
|
Typ |
Typ der codierten Daten (siehe unten: Tabelle Datentypen) |
Bereich |
Zulässige Werte für die jeweilige Variable, in der Regel ein Teilbereich des formatabhängigen Wertebereichs. Für den Datentyp BITMAP lautet der Inhalt dieser Domäne „–”“. |
Standard |
Standardwert der Variablen |
Gesich. |
Beim Ausschalten der Spannungsversorgung des PowerTag Link-Gateways wird der Wert gesichert:
HINWEIS: Beim Einschalten oder bei einer Reinitialisierung
werden die verfügbaren Werte übernommen.
|
Funktionscode |
Code der verwendbaren Funktionen im Register |
Betroffene Geräte |
Code der Gerätetypen, für die das Register verfügbar ist. |
Beschreibung |
Informationen über das Register und die geltenden Einschränkungen |
Datentypen
Name |
Beschreibung |
Bereich |
---|---|---|
INT16 |
16-Bit-Ganzzahl mit Vorzeichen (1 Wort) |
-32768...+32767 |
UINT16 |
16-Bit-Ganzzahl ohne Vorzeichen (1 Wort) |
0...65535 |
INT32 |
32-Bit-Ganzzahl mit Vorzeichen (2 Wörter) |
-2 147 483 648...+2 147 483 647 |
UINT32 |
32-Bit-Ganzzahl ohne Vorzeichen (2 Wörter) |
0...4 294 967 295 |
INT64 |
64-Bit-Ganzzahl mit Vorzeichen (4 Wörter) |
-9 223 372 036 854 775 808...9 223 372 036 854 775 807 |
UINT64 |
64-Bit-Ganzzahl ohne Vorzeichen (4 Wörter) |
0 bis 18 446 744 073 709 600 000 |
Float32 |
32-Bit-Wert (2 Wörter) |
-3.4028E+38... +3.4028E+38 |
ASCII |
Alphanumerisches Zeichen aus 8 Bit |
Tabelle der ASCII-Zeichen |
BITMAP |
16-Bit-Feld (1 Wort) |
– |
DATETIME |
Siehe DATETIME |
– |
Daten des Typs Float32: Einzel-Präzisions-Float mit Vorzeichen-Bit, 8-Bit-Exponent, 23-Bit-Mantisse (positiv und negativ normalisiert reell)
Für Daten des Typs ASCII lautet die Reihenfolge bei der Übertragung von Zeichen in Wörtern (16-Bit-Register) wie folgt:
-
niederwertiges Zeichen n
-
höherwertiges Zeichen n + 1
Alle Register (16 Bits oder 2 Bytes) werden mit Big Endian-Codierung übertragen:
-
Das höherwertige Byte wird zuerst übertragen.
-
Das niederwertige Byte folgt an zweiter Stelle.
32-Bit-Variablen, die in zwei 16-Bit-Wörtern gespeichert werden (z. B. Verbrauchszähler), weisen das Big-Endian-Format auf:
-
Das höherwertige Wort wird zuerst übertragen, gefolgt vom niederwertigen Wort.
64-Bit-Variablen, die in vier 16-Bit-Wörtern gespeichert sind (z. B. Datumsangaben), weisen ein Big Endian-Format auf:
-
Das höherwertige Wort wird zuerst übertragen usw.
DATETIME
DATETIME ist ein zur Codierung von Datum und Uhrzeit verwendeter Datentyp gemäß der Definition der Norm IEC 60870-5.
Register |
Typ |
Bit |
Bereich |
Beschreibung |
---|---|---|---|---|
1 |
INT16U |
0-6 |
0x00–0x7F |
Jahr: Die Werte 0x00 (00) bis 0x7F (127) entsprechen den Jahren 2000 bis 2127. Beispiel: 0x0D (13) verweist auf das Jahr 2013. |
7-15 |
– |
Reserviert |
||
2 |
INT16U |
0–4 |
0x01–0x1F |
Tag |
5-7 |
– |
Reserviert |
||
8-11 |
0x00–0x0C |
Monat |
||
12-15 |
– |
Reserviert |
||
3 |
INT16U |
0-5 |
0x00–0x3B |
Minuten |
6-7 |
– |
Reserviert |
||
8-12 |
0x00–0x17 |
Stunden |
||
13-15 |
– |
Reserviert |
||
4 |
INT16U |
0-15 |
0x0000–0xEA5F |
Millisekunden |
Direktadressierung eines Bits
Die Adressierung ist zulässig für die Bereiche des Typs BITMAP mit den Funktionen 1, 2, 5 und 15.
Die Adresse des ersten Bits ist wie folgt aufgebaut: (Adresse des Registers x 16) + Bit-Nummer.
Dieser Adressiermodus ist spezifisch für Schneider Electric.
Beispiel: Für die Funktionen 1, 2, 5 und 15 muss das Bit 3 des Registers 0x0078 adressiert werden. Die Adresse des Bits ist daher 0x0783.
Beispiel für Modbus-Frames
Anfrage
Definition |
Anzahl Bytes |
Wert |
Kommentar |
---|---|---|---|
Servernummer |
1 Byte |
0x05 |
PowerTag Link Modbus-Adresse |
Funktionscode |
1 Byte |
0x03 |
Lesen von n Ausgangs- oder internen Wörtern |
Adresse |
2 Bytes |
0x36E2 |
Adresse eines Verbrauchszählers mit der Dezimaladresse 14050 |
Anzahl Wörter |
2 Bytes |
0x002C |
Lesen von 44 16-Bit-Registern |
CRC |
2 Bytes |
xxxx |
Wert von CRC16 |
Antwort
Definition |
Anzahl Bytes |
Wert |
Kommentar |
---|---|---|---|
Servernummer |
1 Byte |
0x05 |
PowerTag Link Modbus-Adresse |
Funktionscode |
1 Byte |
0x03 |
Lesen von n Ausgangs- oder internen Wörtern |
Anzahl Bytes |
2 Bytes |
0x0058 |
Anzahl gelesener Bytes |
Wert der gelesenen Wörter: |
88 Bytes |
– |
Lesen von 44 16-Bit-Registern |
CRC |
2 Bytes |
xxxx |
Wert von CRC16 |
Modbus-Register
Die Adresse des Registers mit der Nummer n lautet n-1. Die Tabellen in den folgenden Teilen dieses Dokuments enthalten sowohl die Registernummern (im Dezimalformat) und die entsprechenden Adressen (im Hexadezimalformat). Beispiel: Die Adresse des Registers mit der Nummer 3000 lautet 0x0BB7 (2999).