Seite 1 von 1

Stabilität Modbus

Verfasst: 12. Feb 2020 07:17
von byteschubser
Hallo Zusammen

setzt ihr mit OpenHAB2 Komponenten ein, die via Modbus Seriall (RTU) kommunizieren? Mich würde da die Stabilität der Verbindung interessieren.

Ich habe sehr viele CRC Fehler. Ursprünglich waren Wechselrichter, Solarlog und Stromzähler alle an einem Bus. Das war "schlimm". Nun habe ich den Bus aufgetrennt.

1. Bus Wechselrichter und Solarlog
2. Bus alle Stromzähler

Der 1. Bus macht mir richtig Sorgen. Da gehen die CRC Fehler so weit, dass nur noch ein Neustart die Items des Wechselrichters wieder Online bringt. Ich bin nun soweit, dass ich täglich in der Nacht OpenHAB neu starte.

Der 2. Bus mit den Stromzähler hat immer mal wieder einen CRC Fehler aber ausgestiegen ist mir noch kein Item seit dem ich den Bus aufgetrennt habe.


Als Kabel verwende ich Cat5e. Der 1. Bus ist 12 Meter lang, der 2. Bus ist knappe 6 Meter. Bei beiden benutze ich einen RS485-USB-Konverter und beide sind auch Terminiert.


Im Log siehts quasi so aus:

Code: Alles auswählen

2020-02-12 07:03:29.563 [ERROR] [t.wimpi.modbus.io.ModbusRTUTransport] - Last request: 02 03 7e 12 00 03 bd d5
2020-02-12 07:03:29.564 [ERROR] [t.wimpi.modbus.io.ModbusRTUTransport] - failed to read: CRC Error in received frame: 161 bytes: 02 03 9e 34 00 0c 2b da 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 34 00 0c 2b da 02 03 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 33 02 03 9e ee 00 04 0b e7 02 03 08 00 00 00 00 00 00 00 00 9a 93 02 03 9e 4d 00 02 7b c7 02 03 04 00 00 00 00 c9 33 02 03 9e 4f 00 03 1b c7 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 70 00 02 ea 0b 02 03 04 00 28 34 a2 de 42 02 03 9e 55 00 01 bb c1 02 03 02 00 00 fc 44 02 03 9e 7c 00 03 eb c8 02 03 06 00 00 00 00 00
2020-02-12 07:03:29.565 [ERROR] [pi.modbus.io.ModbusSerialTransaction] - execute try 1/1 error: I/O exception: IOException CRC Error in received frame: 161 bytes: 02 03 9e 34 00 0c 2b da 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 34 00 0c 2b da 02 03 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 33 02 03 9e ee 00 04 0b e7 02 03 08 00 00 00 00 00 00 00 00 9a 93 02 03 9e 4d 00 02 7b c7 02 03 04 00 00 00 00 c9 33 02 03 9e 4f 00 03 1b c7 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 70 00 02 ea 0b 02 03 04 00 28 34 a2 de 42 02 03 9e 55 00 01 bb c1 02 03 02 00 00 fc 44 02 03 9e 7c 00 03 eb c8 02 03 06 00 00 00 00 00 . Request: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@51129e2a (unit id 2 & transaction 716). Serial parameters: SerialParameters@18a21462[portName=/dev/ttyUSB1,baudRate=9600,flowControlIn=none,flowControlOut=none,databits=8,stopbits=1,parity=none,encoding=rtu,echo=false,receiveTimeoutMillis=3000]
2020-02-12 07:03:29.566 [ERROR] [pi.modbus.io.ModbusSerialTransaction] - execute reached max tries 1, throwing last error: I/O exception: IOException CRC Error in received frame: 161 bytes: 02 03 9e 34 00 0c 2b da 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 34 00 0c 2b da 02 03 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 33 02 03 9e ee 00 04 0b e7 02 03 08 00 00 00 00 00 00 00 00 9a 93 02 03 9e 4d 00 02 7b c7 02 03 04 00 00 00 00 c9 33 02 03 9e 4f 00 03 1b c7 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 70 00 02 ea 0b 02 03 04 00 28 34 a2 de 42 02 03 9e 55 00 01 bb c1 02 03 02 00 00 fc 44 02 03 9e 7c 00 03 eb c8 02 03 06 00 00 00 00 00 . Request: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@51129e2a (unit id 2 & transaction 716). Serial parameters: SerialParameters@18a21462[portName=/dev/ttyUSB1,baudRate=9600,flowControlIn=none,flowControlOut=none,databits=8,stopbits=1,parity=none,encoding=rtu,echo=false,receiveTimeoutMillis=3000]
2020-02-12 07:03:29.566 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@552d10d0[slaveId=2,functionCode=READ_MULTIPLE_REGISTERS,start=32274,length=3,maxTries=3]). Will try again soon. Error was I/O error, so reseting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: IOException CRC Error in received frame: 161 bytes: 02 03 9e 34 00 0c 2b da 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 34 00 0c 2b da 02 03 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 33 02 03 9e ee 00 04 0b e7 02 03 08 00 00 00 00 00 00 00 00 9a 93 02 03 9e 4d 00 02 7b c7 02 03 04 00 00 00 00 c9 33 02 03 9e 4f 00 03 1b c7 02 03 06 00 00 00 00 00 00 35 85 02 03 9e 70 00 02 ea 0b 02 03 04 00 28 34 a2 de 42 02 03 9e 55 00 01 bb c1 02 03 02 00 00 fc 44 02 03 9e 7c 00 03 eb c8 02 03 06 00 00 00 00 00  [operation ID 4c808e18-6293-43f5-8229-498cbe154587]
Das einzige was ich noch versuchen kann, wäre die Baud Rate zu reduzieren auf 4800 oder gar 1200. Ich sehe aber nicht wirklich dass das was bringen könnte.

Irgendwelche Ideen?

Danke und schöne Grüsse
Uwe

Re: Stabilität Modbus

Verfasst: 13. Feb 2020 06:25
von PeterA
Hi,

Hier mein ModBus Projekt:
viewtopic.php?f=8&t=1355

Habe unsere Lüftungsanlage in OpenHab eingebunden.
Läuft nun fast ein Jahr ohne Probleme.
CRC Fehler sind äußerst selten. Wobei der Raspi auch direkt bei der Anlage steht. Also sehr kurze Leitungslänge.

Welchen ModBus Adapter benutzt Du ?

Re: Stabilität Modbus

Verfasst: 13. Feb 2020 06:48
von byteschubser
Hallo Peter

als Adapter nutze ich diesen: https://www.digitec.ch/de/s1/product/oe ... ul-5999133

Leitungslänge denke ich nicht dass das das Problem ist.

Zwischenzeitlich bin ich einen Schritt weiter und denke ziemlich sicher, dass mein Problem ein Multimaster Problem ist: Der Huawei Wechselrichter wird via Modbus abgefragt. Diese Abfragen kommen vom SolarLog und dienen der Darstellung der Stromproduktion. Das Solarlog kann ich via JSON API auslesen aber da fehlen mir ca 2/3 der statistischen Daten. Darum wollte ich nun den Wechselrichter direkt auslesen. Funktioniert, aber eben mit der "Flut" an CRC Fehlern und den beschriebenen Folgen.

Nun muss ich mir wohl überlegen:
- SolarLog abschalten und aufs Portal verzeichten
- mit den Fehlern und den nächtlichen Neustarts leben
- 169US$ ausgeben und einen Sharer kaufen https://www.icpdas-usa.com/tsh_735

Danke & viele Grüsse
Uwe

Re: Stabilität Modbus

Verfasst: 13. Feb 2020 11:09
von violine21
Hallo Uwe,
ich habe zwar keinen Huawei-Wechselrichter sondern einen Fronius aber wenn ich mich recht erinnere, hat der Huawei eine
optionale W-LAN-Schnittstelle.
Kannst Du da nicht etwas mit anfangen?

VG André

Re: Stabilität Modbus

Verfasst: 13. Feb 2020 11:19
von byteschubser
violine21 hat geschrieben:Hallo Uwe,
ich habe zwar keinen Huawei-Wechselrichter sondern einen Fronius aber wenn ich mich recht erinnere, hat der Huawei eine
optionale W-LAN-Schnittstelle.
Kannst Du da nicht etwas mit anfangen?

VG André
Hallo André

Leider nur die neueren -M0 Versionen der SUN2000 Wechselrichter. Meiner ist noch die alte HW ohne -M0 in der Typenbezeichnung. Da ist kein optionales WLAN Dongle möglich

Gruss Uwe


Gesendet von iPhone mit Tapatalk

Re: Stabilität Modbus

Verfasst: 13. Feb 2020 13:13
von udo1toni
Es stellt sich die Frage, ob es etwas als Open Source gibt, was den Mehr-Master-Betrieb ermöglicht. Du hast ja schon zwei Modbusse, wenn es da ein Stück Software gäbe, könntest Du den SolarLog exclusiv anschließen und alle anderen Geräte am anderen Bus betreiben. Voraussetzung wäre halt, dass die Anfragen vom SolarLog dann geordnet auf den anderen Modbus durchgereicht werden können.
Ich bin allerdings überhaupt nicht im Thema drin, so dass ich keine Idee habe, nach welchen Stichworten man da suchen muss, ich könnte mir aber vorstellen, dass Du nicht der Einzige mit diesem Problem bist (es gibt ja sogar fertige Hardware dafür...)

Re: Stabilität Modbus

Verfasst: 20. Feb 2020 06:47
von byteschubser
udo1toni hat geschrieben: 13. Feb 2020 13:13 Es stellt sich die Frage, ob es etwas als Open Source gibt
Ich werde mich jetzt in diese Richtung umschauen. Von den angeschriebenen Firmen kam entweder keine Antwort oder "pech, Sie sind nur eine Privatperson". Notfalls selber coden. Vielleicht genügen ja meine C Kenntnisse dafür...

Im Moment habe ich die Modbus zum Wechselrichter deaktiviert und lese die daten via HTTP/JSON aus dem SolarLoag aus. Mir fehlen zwar die Details aber die wichtigsten Werte gibts auch da.

Re: Stabilität Modbus

Verfasst: 22. Mai 2021 08:16
von mcdandrew
Ich habe seit kurzem einen Huawei Sun2000-12KTL M2 am Laufen.
Dieser ist mit dem optional erhältlichen WLAN Dongle netzwerktechnisch eingebunden.
Leider dient dieser nur dazu die Daten zum Hersteller zu übertragen um diese dann in der App zu visualisieren.
Ein lokales HTTP interface gibt es nicht.

Gibt es trotzdem eine Möglichkeit den Wechselrichter in Openhab einzubinden?