PLCBytes
Modbus-Werkzeuge

Modbus Adress-Umrechner

Geben Sie eine Adresse aus Handbuch oder Software ein und sehen Sie dasselbe Register in jeder Schreibweise: Registernummer, nullbasierte Adresse, Hex und die Bytes im Frame.

Adresse

Beispiel

Zum Beispiel 40001, 400001, 4x0001, 30010, 0x006B oder eine einfache Adresse wie 107.

Lesen als

Dasselbe Register in jeder Schreibweise

Typ
Adresse in der Anfrage (ab 0)
Dasselbe in Hex
Adressbytes im Frame
Registernummer, 5-stellig
Registernummer, 6-stellig
Ab 1 gezählt

Leseanfrage für diese Adresse

Die Bytes, die ein Master zum Lesen ab hier sendet. Vergleichen Sie sie mit einem seriellen Log oder Wireshark.

Modbus RTU (CRC Low-Byte zuerst)
Modbus TCP (Transaktion 1)

Läuft komplett in Ihrem Browser. Ihre Eingaben werden an keinen Server gesendet.

Registertypen im Überblick

TypRegisternummernLesenSchreibenGröße
Coils (0x)00001–09999 · 000001–0655360105, 151 Bit
Diskrete Eingänge (1x)10001–19999 · 100001–16553602nur lesen1 Bit
Input-Register (3x)30001–39999 · 300001–36553604nur lesen16 Bit
Holding-Register (4x)40001–49999 · 400001–4655360306, 1616 Bit

Registernummer oder Adresse?

Handbücher nennen Register meist nach ihrer Registernummer: 40001, 30001, 10001 oder 00001. Die erste Ziffer bezeichnet die Tabelle, gezählt wird ab 1. In der Anfrage auf der Leitung steht aber etwas anderes: eine nullbasierte Adresse von 0 bis 65535, ohne Tabellenziffer. Die Tabelle wählt stattdessen der Funktionscode, 03 für Holding-Register und 04 für Input-Register. Deshalb wird aus 40001 die Adresse 0 und aus 30010 die Adresse 9 mit Funktion 04.

Sechsstellige Nummern wie 400001 funktionieren genauso. Es gibt sie, weil fünf Stellen nur für 9999 Register pro Tabelle reichen, das Protokoll aber 65536 erlaubt. Schreibweisen wie 4x0001 oder 4x00001 sind nur eine andere Form von 40001.

Typische Fehler

Fragen aus der Praxis

Ist 40001 die Adresse 0 oder 1?

Adresse 0. 40001 ist das erste Holding-Register in der klassischen Modicon-Nummerierung, die ab 1 zählt. Die Anfrage enthält die nullbasierte Adresse, 40001 wird also als 00 00 gesendet und 40002 als 00 01.

Was ist der Unterschied zwischen 40001 und 400001?

Keiner, es ist dasselbe Register. Fünfstellige Nummern reichen nur bis 49999, also Adresse 9998. Sechsstellige Nummern (400001 bis 465536) decken den ganzen Bereich von 65536 Adressen ab, deshalb verwenden manche Handbücher sie für alle Register.

Im Handbuch steht 0x006B. Was gebe ich in meiner Software ein?

0x006B ist eine Hex-Adresse, dezimal 107. Verlangt Ihre Software eine nullbasierte Adresse, geben Sie 107 ein. Will sie eine Registernummer, geben Sie 40108 für ein Holding-Register oder 30108 für ein Input-Register ein.

Mit welchem Funktionscode werden 3xxxx- und 4xxxx-Register gelesen?

Input-Register (3xxxx) werden mit Funktion 04 gelesen. Holding-Register (4xxxx) werden mit Funktion 03 gelesen und mit 06 für ein Register oder 16 für mehrere geschrieben. Coils (0xxxx) nutzen 01, 05 und 15, diskrete Eingänge (1xxxx) die Funktion 02.

Warum bekomme ich die Ausnahme 02, ungültige Datenadresse?

Das Gerät hat an der angefragten Adresse kein Register. Typische Ursachen sind eine um eins verschobene Adresse, eine als dezimal eingegebene Hex-Adresse, das Lesen eines Input-Registers mit Funktion 03 oder umgekehrt oder mehr gelesene Register, als der Block enthält.

Verwandte Werkzeuge