NEWS
modbus errors & exceptions
-
@sven79 sagte in modbus errors & exceptions:
Welchen Hinweis geben mir die genannten Fehler- und Exceptioncodes?
wenn ich das richtig lese kommen die Error Codes von deinem Gerät.
Gibt es von/zu/auf diesem mehr Infos? -
Das ist ein RS485/TTL Board, angeschlossen an einen ESP32 auf dem Tasmota mit Modbus-TCP-Bridge läuft.
Ich habe testweise eine neue Instanz des Adapters gestartet, die lediglich ein Input Register von jedem Slave (ID 1, 2 und 3) liest - funktioniert einwandfrei.
-
@sven79 sagte in modbus errors & exceptions:
die lediglich ein Input Register von jedem Slave (ID 1, 2 und 3) liest -
Bus voll??
welche Einstellungen?
-
Inwiefern kann der Bus "voll" sein? Was führt dazu und woran erkenne ich das?
Die Adapter-Einstellungen sind unverändert auf den Standardwerten. Verbindungsparameter sind entsprechend auf die IP Adresse und Port des ESP32 gesetzt, Geräte ID ist 1, mehrere Geräte-IDs ist aktiviert und der Typ ist auf "Master" gesetzt.
-
@sven79 sagte in modbus errors & exceptions:
Die Adapter-Einstellungen sind unverändert
da wird das Problem auch am ehesten nicht zu suchen sein.
aber bei
@sven79 sagte in modbus errors & exceptions:
RS485/TTL Board, angeschlossen an einen ESP32 auf dem Tasmota mit Modbus-TCP-Bridge läuft.
+ Zähler gibt es zuviele mögliche Fehlerquellen
Ich meine die BUS Einstellungen
-
Die drei Stromzähler (Eastron SDM72D-M, SDM120-M, SDM230) sind auf 9600 Baud, 8 Datenbits, keine Parität, 1 Stop-Bit konfiguriert. Verkabelt mit EIB-Y(St) Y 2x2x0,8 mm² (eine Ader ungenutzt), terminiert mit 120 Ohm.
Meinst du dies mit den Bus-Einstellungen?
-
@sven79 sagte in modbus errors & exceptions:
Meinst du dies mit den Bus-Einstellungen?
ja!
die Geräte können einen höheren Datendurchsatz, was bei entsprechen kurzer Abfragezeit (!??) und Anzahl abgefragter Register (!??) notwendig sein kann.
Ob bei der kurzen (!??) Strecke ein Terminator notwendig ist weiß ich nicht, glaube eher nicht.
Also nochmal
@homoran sagte in modbus errors & exceptions:
@sven79 sagte in modbus errors & exceptions:
Welchen Hinweis geben mir die genannten Fehler- und Exceptioncodes?
wenn ich das richtig lese kommen die Error Codes von deinem Gerät.
Gibt es von/zu/auf diesem mehr Infos? -
Ich habe Tasmota nochmal neu mit Modbus-Debugging gebaut und im Weblog auf Level 4 geschaut, was passiert:
17:59:36.814 TCP: MBS: MBRTCP Got connection from 10.0.1.20 17:59:36.822 MBS: MBRTCP to Modbus TransactionId:1, deviceAddress:1, functionCode:4, startAddress:52, count:2, recvCount:2, recvBytes:4 17:59:36.824 MBS: Serial Send: 01 04 00 34 00 02 30 05 17:59:36.913 MBS: Serial Received: 01 04 04 00 00 00 00 FB 84 17:59:36.924 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:36.964 MBS: MBRTCP to Modbus TransactionId:2, deviceAddress:1, functionCode:4, startAddress:72, count:4, recvCount:4, recvBytes:8 17:59:36.968 MBS: Serial Send: 01 04 00 48 00 04 71 DF 17:59:37.065 MBS: Serial Received: 01 04 08 44 EB F7 02 00 00 00 00 16 47 17:59:37.075 MBS: MBRTCP from Modbus deviceAddress 1, writing 17 bytes to client 17:59:37.116 MBS: MBRTCP to Modbus TransactionId:3, deviceAddress:1, functionCode:4, startAddress:342, count:2, recvCount:2, recvBytes:4 17:59:37.120 MBS: Serial Send: 01 04 01 56 00 02 90 27 17:59:37.215 MBS: Serial Received: 01 04 04 44 EB F7 02 58 B1 17:59:37.222 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:37.267 MBS: MBRTCP to Modbus TransactionId:4, deviceAddress:1, functionCode:4, startAddress:384, count:8, recvCount:8, recvBytes:16 17:59:37.270 MBS: Serial Send: 01 04 01 80 00 08 F1 D8 17:59:37.366 MBS: Serial Received: 01 04 10 44 EB 11 89 00 00 00 00 44 EB 11 89 00 00 00 00 BE 1A 17:59:37.382 MBS: MBRTCP from Modbus deviceAddress 1, writing 25 bytes to client 17:59:37.478 MBS: MBRTCP to Modbus TransactionId:5, deviceAddress:1, functionCode:4, startAddress:1280, count:4, recvCount:4, recvBytes:8 17:59:37.481 MBS: Serial Send: 01 04 05 00 00 04 F1 05 17:59:37.545 MBS: Serial Received: 01 04 08 00 00 00 00 00 00 00 00 24 0D 17:59:37.554 MBS: MBRTCP from Modbus deviceAddress 1, writing 17 bytes to client 17:59:37.849 MBS: MBRTCP to Modbus TransactionId:6, deviceAddress:2, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:37.851 MBS: Serial Send: 02 04 00 00 00 20 F1 E1 17:59:37.907 MBS: Serial Received: 02 04 40 43 6A 33 33 00 00 00 17:59:37.914 MBS: MBRTCP from Modbus deviceAddress 2, writing 9 bytes to client 17:59:37.916 MBS: MBR Driver receive error 9 17:59:37.964 MBS: Serial Received: 17:59:37.969 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:37.971 MBS: MBR Driver receive error 7 17:59:37.973 MBS: MBRTCP to Modbus TransactionId:7, deviceAddress:3, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:37.976 MBS: Serial Send: 03 04 00 00 00 20 F0 30 17:59:39.257 MBS: MBRTCP to Modbus TransactionId:8, deviceAddress:1, functionCode:4, startAddress:52, count:2, recvCount:2, recvBytes:4 17:59:39.259 MBS: Serial Send: 01 04 00 34 00 02 30 05 17:59:39.357 MBS: Serial Received: 01 04 04 00 00 00 00 FB 84 17:59:39.370 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:39.373 MBS: MBRTCP to Modbus TransactionId:9, deviceAddress:1, functionCode:4, startAddress:72, count:4, recvCount:4, recvBytes:8 17:59:39.376 MBS: Serial Send: 01 04 00 48 00 04 71 DF 17:59:39.458 MBS: Serial Received: 01 04 08 44 EB F7 02 00 00 00 00 16 47 17:59:39.469 MBS: MBRTCP from Modbus deviceAddress 1, writing 17 bytes to client 17:59:39.474 MBS: MBRTCP to Modbus TransactionId:10, deviceAddress:1, functionCode:4, startAddress:342, count:2, recvCount:2, recvBytes:4 17:59:39.476 MBS: Serial Send: 01 04 01 56 00 02 90 27 17:59:39.558 MBS: Serial Received: 01 04 04 44 EB F7 02 58 B1 17:59:39.567 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:39.611 MBS: MBRTCP to Modbus TransactionId:11, deviceAddress:1, functionCode:4, startAddress:384, count:8, recvCount:8, recvBytes:16 17:59:39.614 MBS: Serial Send: 01 04 01 80 00 08 F1 D8 17:59:39.669 MBS: Serial Received: 01 04 10 44 EB 11 89 00 00 00 17:59:39.676 MBS: MBRTCP from Modbus deviceAddress 1, writing 9 bytes to client 17:59:39.678 MBS: MBR Driver receive error 9 17:59:39.720 MBS: Serial Received: 17:59:39.725 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:39.727 MBS: MBR Driver receive error 7 17:59:39.763 MBS: MBRTCP to Modbus TransactionId:12, deviceAddress:2, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:39.766 MBS: Serial Send: 02 04 00 00 00 20 F1 E1 17:59:39.821 MBS: Serial Received: 02 04 40 43 6A 33 33 00 00 00 17:59:39.828 MBS: MBRTCP from Modbus deviceAddress 2, writing 9 bytes to client 17:59:39.829 MBS: MBR Driver receive error 9 17:59:39.955 MBS: Serial Received: 17:59:39.960 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:39.962 MBS: MBR Driver receive error 7 17:59:40.437 WIF: Checking connection... 17:59:41.117 MBS: MBRTCP to Modbus TransactionId:14, deviceAddress:1, functionCode:4, startAddress:52, count:2, recvCount:2, recvBytes:4 17:59:41.119 MBS: Serial Send: 01 04 00 34 00 02 30 05 17:59:41.220 MBS: Serial Received: 01 04 04 00 00 00 00 FB 84 17:59:41.229 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:41.232 MBS: MBRTCP to Modbus TransactionId:15, deviceAddress:1, functionCode:4, startAddress:72, count:4, recvCount:4, recvBytes:8 17:59:41.234 MBS: Serial Send: 01 04 00 48 00 04 71 DF 17:59:41.320 MBS: Serial Received: 01 04 08 44 EB F7 02 00 00 00 00 16 47 17:59:41.329 MBS: MBRTCP from Modbus deviceAddress 1, writing 17 bytes to client 17:59:41.371 MBS: MBRTCP to Modbus TransactionId:16, deviceAddress:1, functionCode:4, startAddress:342, count:2, recvCount:2, recvBytes:4 17:59:41.374 MBS: Serial Send: 01 04 01 56 00 02 90 27 17:59:41.471 MBS: Serial Received: 01 04 04 44 EB F7 02 58 B1 17:59:41.480 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:41.523 MBS: MBRTCP to Modbus TransactionId:17, deviceAddress:1, functionCode:4, startAddress:384, count:8, recvCount:8, recvBytes:16 17:59:41.526 MBS: Serial Send: 01 04 01 80 00 08 F1 D8 17:59:41.581 MBS: Serial Received: 01 04 10 44 EB 11 89 00 00 00 17:59:41.588 MBS: MBRTCP from Modbus deviceAddress 1, writing 9 bytes to client 17:59:41.589 MBS: MBR Driver receive error 9 17:59:41.632 MBS: Serial Received: 17:59:41.636 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:41.639 MBS: MBR Driver receive error 7 17:59:41.675 MBS: MBRTCP to Modbus TransactionId:18, deviceAddress:2, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:41.678 MBS: Serial Send: 02 04 00 00 00 20 F1 E1 17:59:41.744 MBS: Serial Received: 02 04 40 43 6A 19 9A 00 00 00 00 00 00 00 00 3D C4 9B A6 00 17:59:41.750 MBS: MBRTCP from Modbus deviceAddress 2, writing 9 bytes to client 17:59:41.752 MBS: MBR Driver receive error 9 17:59:41.791 MBS: Serial Received: 17:59:41.796 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:41.798 MBS: MBR Driver receive error 7 17:59:41.835 MBS: Serial Received: 17:59:41.840 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:41.841 MBS: MBR Driver receive error 7 17:59:42.924 MBS: MBRTCP to Modbus TransactionId:20, deviceAddress:1, functionCode:4, startAddress:52, count:2, recvCount:2, recvBytes:4 17:59:42.927 MBS: Serial Send: 01 04 00 34 00 02 30 05 17:59:43.023 MBS: Serial Received: 01 04 04 00 00 00 00 FB 84 17:59:43.033 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:43.036 MBS: MBRTCP to Modbus TransactionId:21, deviceAddress:1, functionCode:4, startAddress:72, count:4, recvCount:4, recvBytes:8 17:59:43.038 MBS: Serial Send: 01 04 00 48 00 04 71 DF 17:59:43.124 MBS: Serial Received: 01 04 08 44 EB F7 02 00 00 00 00 16 47 17:59:43.135 MBS: MBRTCP from Modbus deviceAddress 1, writing 17 bytes to client 17:59:43.276 MBS: MBRTCP to Modbus TransactionId:22, deviceAddress:1, functionCode:4, startAddress:342, count:2, recvCount:2, recvBytes:4 17:59:43.278 MBS: Serial Send: 01 04 01 56 00 02 90 27 17:59:43.343 MBS: Serial Received: 01 04 04 44 EB F7 02 58 B1 17:59:43.352 MBS: MBRTCP from Modbus deviceAddress 1, writing 13 bytes to client 17:59:43.394 MBS: MBRTCP to Modbus TransactionId:23, deviceAddress:1, functionCode:4, startAddress:384, count:8, recvCount:8, recvBytes:16 17:59:43.398 MBS: Serial Send: 01 04 01 80 00 08 F1 D8 17:59:43.452 MBS: Serial Received: 01 04 10 44 EB 11 89 00 00 00 17:59:43.459 MBS: MBRTCP from Modbus deviceAddress 1, writing 9 bytes to client 17:59:43.461 MBS: MBR Driver receive error 9 17:59:43.503 MBS: Serial Received: 17:59:43.508 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:43.510 MBS: MBR Driver receive error 7 17:59:43.513 MBS: MBRTCP to Modbus TransactionId:24, deviceAddress:2, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:43.515 MBS: Serial Send: 02 04 00 00 00 20 F1 E1 17:59:43.606 MBS: Serial Received: 02 04 40 43 6A 00 00 00 00 00 00 00 00 00 00 3D C4 9B A6 00 00 00 00 00 00 00 00 40 C0 00 00 00 00 00 00 00 00 00 00 41 17:59:43.613 MBS: MBRTCP from Modbus deviceAddress 2, writing 9 bytes to client 17:59:43.615 MBS: MBR Driver receive error 9 17:59:43.656 MBS: Serial Received: 17:59:43.662 MBS: MBRTCP from Modbus deviceAddress 0, writing 9 bytes to client 17:59:43.664 MBS: MBR Driver receive error 7 17:59:43.666 MBS: MBRTCP to Modbus TransactionId:25, deviceAddress:3, functionCode:4, startAddress:0, count:32, recvCount:32, recvBytes:64 17:59:43.668 MBS: Serial Send: 03 04 00 00 00 20 F0 30
Wenn ich richtig liege, bedeuten die "MBR Driver receive error" jeweils 7 = "not enough minimal data recevied" und 9 = "CRC error".
Die Fehler bleiben auch bestehen, wenn ich nur noch einen Zähler am Bus lasse.
Wenngleich der Fehler wohl außerhalb von ioBroker liegt: habt ihr noch Tipps, wie ich mich der Problemursache nähern kann?
-
@sven79 Kenne den Tasmota Konverter nicht. Nutze für solche Sachen USRIOT oder Waveshare Teile. In der WLAN Bastler Liga läuft bei mir ein SDM120 mit einem USRIOT USR-WIFI232-A2 WLAN Modul mit einem RS485 TTL Konverter seit geraumer Zeit unauffällig, siehe https://forum.iobroker.net/topic/55710/sdm120-sdm72-sdm630-modbus-rs485-stromzähler-w-lan-iobroker/4?_=1678470143118
Hast Du einen RS485 <-> USB Stick? Den würde ich mal testweise anschließen, um den Tasmota Konverter auszuschließen.
Wenn es dann immer noch Probleme gibt, die Datenabfrage "ausräumen" bis kein Fehler mehr kommt. Vielleicht ist es ein einzelnes Datum, welches die Probleme verursacht.Bei 3 Zählern hätte ich auch die höchste verfügbare und funktionierende Baudrate gewählt, um möglichst viele Daten über den Bus zu bekommen.
-
Die Zähler können leider nur maximal 9600 Baud. Ich habe sie nun alle einzeln und 1:1 angeschlossen, nun geht's. Ich verstehe zwar nicht, wieso das monatelang ohne Änderungen im Verteilerkasten einwandfrei lief und nun plötzlich den Dienst quittierte, aber sei es drum.
-
@sven79 sagte in modbus errors & exceptions:
Die Zähler können leider nur maximal 9600 Baud.
nope!
zumindest der sdm72 kann 19200 . die anderen beiden habe ich nicht. -
@sven79 Moin, kannst du mir vielleicht verraten, wie du das gemacht hast? Ich habe eine MAX3485 an einem NodeMCU gehängt und Modbus über Tasmota versucht. Ich bekomme nur ein "Done" zurück, sonst nichts. Egal wie viel Logging ich anmache. Hab jetzt 3 x den Aufbau, bei jedem das gleich Problem. Komplett keine Response.