Modbus RTU Frage

Liebe Community,

ich habe ein Modbus RS485 Interface Modul welches an meinem EVU Zähler hängt und Daten über ein RS485 - USB Schnittstellenkonverter in IPSymcon angebunden werden soll.

Der Bus liefert auch auf ein Request des Masters auf die angesprochene ID (in meinem Falle 1) Daten. Die Funktionen des Moduls sind wie folgt:

-RS485 Schnittstelle
-Abfrageprotokoll Modbus RTU (8N1 mit Baudrate 9600)
-Funktion Code 3 (Read Holding Registers)
-32 Bit Integer mit Vorzeichen (Signed Int32, Typ D) in zwei aufeinanderfolgenden Modbus Registern (zwei Words (high/low) mit jeweils 16Bit)

Ein Request von IPS an den Slave mit ID1 sollte folgenden Aufbau haben:

ID: 01; Funktion (FC 3): 03; Startregister (2): 00 02 ; Anzahl Register (32 Bit): 00 02; CRC16(Checksumme): XX XX

somit

01 03 00 02 00 02 XX XX

Die Antwort müsste dann vom Slave kommen:

ID: 01; Funktion (FC 3): 03; Anzahl Bytes(2 x n): 04 ; Register 1(16Bit): XX XX ; Register 2(16Bit): YY YY; CRC16(Checksumme): ZZ ZZ

somit

01 03 04 XX XX YY YY ZZ ZZ

Aussschließlich mit den oben genannten Einstellungen am Serial Port, dem Modbus Gateway (mit ID 01) sowie dem Modbus Device (Integer 32 Bit- vorzeichenbehaftet, Holding Registers auslesen (03), Adresse lesen (02) ohne Schreibbefehle erhalte im im Debug des Seriell Ports folgende Protokolle:

07.12.2020, 20:34:33 | TRANSMIT | 01 03 00 02 00 02 65 CB
07.12.2020, 20:34:33 | RECEIVED | 04
07.12.2020, 20:34:33 | RECEIVED | 1A 22 04 04 08 08 90 33 00

Beim nächtsten Intervall ab und an auch:

07.12.2020, 20:34:38 | TRANSMIT | 01 03 00 02 00 02 65 CB
07.12.2020, 20:34:38 | RECEIVED | 04
07.12.2020, 20:37:46 | RECEIVED | 0D 22 02 04 04 08 48 33 00

Immer im Wechsel…

D.h. die eigentliche ID des Slave mit 01 kommt meiner Meinung schon gar nicht.

Ein Received bekomme ich nur mit o.g. Einstellungen, die RX und TX LED’s leuchten auch immer an dem Modbus Modul und dem USB Port auf. Der Bus steht also einwandfrei.

AM Modbus Device erhalte ich leider keinen Integer Wert (weil die Antwort ID schon nicht passt)

Hat jemand eine Idee was das Problem sein könnte?

Wäre für jede Hilfe dankbar.

VG Obala

Soviel ich weiß erscheint im Debug die ID nicht, und deshalb denke ich, dass in Deinem System, Gateway, Ident desGerätes, Adresse oder sonstwas nicht stimmt, denn laut Aussage im Modbus RTU Wiki wird bei einem Fehler das höherwertige Bit des Funktionscode gesetzt, das ist meiner Meinung nach die 04 in der Antwort.

Helfen würde es mir wenn Du realty Daten Deines IP-Symcon System hier abbildest.

Hardcopy der Instanz, Gateway/Splitter und ein Debug in Hex von dem Gateway, möglichst von einer Abfrageadresse.
Also zB. aktuelle Leistung oä
Gruß Helmut

Hallo Helmut,

danke für den Hinweis, ich habe mal Auszüge aus der Beschreibung des Modul als Screenshot gemacht, hier sind folgende Infos zu entnehmen:

Modbus2.PNG

Zudem nachfolgend meine Einstellung in IPS:

Modbus4.PNG

Und noch eine Hardcopy meins Debugs des Serial Ports mit Registeradresse 18 (Register 18 (16Bit HighWord) sowie 19 (16Bit LowWord). Dort steht der Momentanwert der Netzspannung Phase L3 gegen Erde (also Wert zwischen 230-240Volt)

Ein Received erhalte ich nur mit der Einstellung ID1 Baudrate 9600. Also die Anfrage mit 01 03 00 12 00 02 64 0E sollte eigentlich passen.

VG Obala

Das sieht dann doch gut aus, oder?

Wenn nur die Werte keinen Sinn ergeben, kannst du im Gateway noch die Swap Option umstellen :slight_smile:

Die GeräteID ist in deren Beispiel 0x7B = 123, falls dies irgendwie von Bedeutung ist.

paresy

Hallo paresy,

ja die 0x7B ist nur ein Beispiel, meine ist 0x01.

Ja das schaut auch „gut“ aus, also der Bus steht definitiv nur die Antwort passt noch überhaupt nicht. Ich habe die Vermutung das auf dem Bus etwas kollidiert. Also der Request mit der Response, und deswegen irgendwelche Bitfehler auftreten.

Auch mit einem anderen Modbus Monitor, also einem externen Programm erhalte ich auf COM4 nicht das als Antwort, was ich erwarte.

VG Obala

Also es lag an meinem alten Schnittstellenkonverter. Ich habe einen baugleichen neuen verwendet und nun sind die Daten einwandfrei vorhanden!

VG