NEWS
ModBus Hilfe - Azzurro ZCS
ModBus Hilfe - Azzurro ZCS
-
@mrFenyx noch eine Frage zu deiner Lösung. Wäre es denkbar, dass man das ganze nicht per LAN sondern per WLAN umsetzt via Raspi? Hast du dazu entsprechende Erfahrungen?
Danke schon mal
-
@marmic der HF2211 S ist dein Freund - der wandelt Modbus RTU in TCP über dein WLAN. Bei Ali knapp 20 Euros...
-
Hat jemand mal den oben genannte USB RS485 Adapter mit dem ZCS Azzurro HYD 10000 verbunden? Ich versuche das gerade über die Com-Schnittstelle, wundere mich aber, dass der WR überhaupt nicht antwortet. Über Erfahrungen damit wäre ich dankbar.
-
@mrFenyx noch eine Frage zu deiner Lösung. Wäre es denkbar, dass man das ganze nicht per LAN sondern per WLAN umsetzt via Raspi? Hast du dazu entsprechende Erfahrungen?
Danke schon mal
@marmic hi, habe deine frage leider erst jetztgesehen. Ja, bei mir läuft es auch durch eine Raspi die alle Infos dann per modbusTCP über WiFi verfügbar macht. Dafür benutze ich dieses Tool hier: https://github.com/3cky/mbusd. Wenn du mehr Hilfe brauchst, sag es mir und ich kann es ausführlicher beschreiben.
Update: mein Post von weiter oben mit der Anleitung beschreibt auch wie man mbusd benutzt

-
Lösung
Hardware
Um die Daten ber ModBus zu lesen, braucht man eine physiskalische Verbindung zum Wechselrichter. Dafür muss man einen RS485 zu USB Adapter kaufen. Ich habe mehrere solche Adapter probiert und fast keiner davon funktioniert richtig, außer dem hier: https://smile.amazon.de/gp/product/B082D5PXJ4/.
Zusätzlich braucht man auch etwas, was die Daten dann zukünftig liest. Ich habe eine RaspberryPi dafür benutzt.
Als nächstes muss man die Verbindung zwischen dem Wechselrichter und dem RS485 Adapter machen. Das ist eigentlich das "schwierige" Teil, da bei dem Wechselrichter nur 2 Pins verfügbar sind und eine passende Klemme wird nicht mitgeliefert. Ich hatte zufällig etwas gefunden was mit ein bisschen "Handarbeit" gepasst hat. Den RS485 Port findest du beim WR auf der unteren Seite, wo auch alle anderen Kabel rauskommen.
Sobald die Verbindung physikalisch steht, kann man den Stick in der RasPi einstecken. Mit dem Befehl
lsusbkann man dann prüfen ob der Stick erkannt wird. Es soll ein Gerät angezeigt, ähnlich wie dieser:Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC.Software
Für einfaches, lokales Testen kann man das Tool mbpoll. Installation passiert dann laut Doku so:
wget -O- http://www.piduino.org/piduino-key.asc | sudo apt-key add - echo 'deb http://raspbian.piduino.org stretch piduino' | sudo tee /etc/apt/sources.list.d/piduino.list sudo apt update sudo apt install mbpollDa ich eigentlich nur dieses eine Gerät an den USB Ports des RasPis angebunden habe, hat es die Adresse
/dev/ttyUSB0. Wenn mehrere USB Geräte verbunden sind, musst du herausfinden auf welche Adresse der RS485 Adapter läuft. Dann kann man sowas ausführen, um zu schauen ob alles läuft:mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v. Im besten Fall kommt dann ein Wert heraus und nicht eine Fehlermeldung. Leider funktioniert es bei mir so nicht zuverlässig (bin mir nicht sicher wieso und da ich es eigentlich nicht so benutzen würde, ist es mir eigentlich egal).Bei mir läuft ioBroker eigentlich auf einer anderen RasPi, die zu weit weg ist um die direkt am WR zu verbinden. Deswegen benutze ich auf dem RasPi dass am WR verbunden ist ein zusätzliches Tool, ein sogenanntes ModBus RTU to TCP Gateway. Die software heißt mbusd. Wie man es baut und installiert steht im Link, ist nicht so schwierig. Sobald die Installation durch ist, braucht man eine Config Datei. Ich benutze das hier:
# Serial port device name device = /dev/ttyUSB0 # Serial port speed (Folow on your PLC or Modbus Device config) speed = 9600 # Serial port mode (Folow on your PLC or Modbus Device config) mode = 8n1 # RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1) trx_control = addc # Sysfs file to use to control data direction # trx_sysfile = ############# TCP port settings ############# # TCP server port number port = 502 # Maximum number of simultaneous TCP connections maxconn = 32 # Connection timeout value in seconds timeout = 60 ######### Request/response settings ######### # Maximum number of request retries retries = 3 # Pause between requests in milliseconds pause = 100 # Response wait time in milliseconds wait = 500Die Datei soll man im Ordner
/etc/mbusdalsmbusd-ttyUSB0.confspeichern (oder wenn nicht ttyUSB0, dann die richtige Adresse / Serial Port). Dann kann man mbusd als Service aktivieren indem man dieses Befehl ausführt:systemctl enable mbusd@ttyUSB0.service. Auch hier, ttyUSB0 mit der eigentlichen Adresse ersetzen, falls notwendig. Mit dem Befehljournalctl -u mbusd@<serial port>.service -f -n 10kann man sehen was da gerade passiert, im besten fall, keine Fehler
Wenn das erstmal geht, dann kann man nochmal mbpoll ausprobieren
mbpoll localhost -r 531 -0 -1 -v. Wenn alles richtig ist, dann bekommt man etwas ähnliches wie das hier:debug enabled Set device=localhost mbpoll 1.4-25 - FieldTalk(tm) Modbus(R) Master Simulator Copyright © 2015-2019 Pascal JEAN, https://github.com/epsilonrt/mbpoll This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; type 'mbpoll -w' for details. Connecting to [localhost]:502 Connecting to [localhost]:502 Set response timeout to 1 sec, 0 us Protocol configuration: Modbus TCP Slave configuration...: address = [1] start reference = 531, count = 1 Communication.........: localhost, port 502, t/o 1.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave 1... [00][01][00][00][00][06][01][03][02][13][00][01] Waiting for a confirmation... <00><01><00><00><00><05><01><03><02><00><E1> [531]: 225Noch eine wichtige Info die man zukünftig braucht ist die IP Adresse vom RasPi. Wenn man es nicht schon kennt dann bekommt man es über den Befehl
ifconfig.Die richtige ModBus Adresse finden
Ein weiteres wichtiges Stück Info ist, wie man die Adressen aus der Dokumentation zu dem "übersetzt" was mbpoll, ioBroker oder ein anderer ModBus Master braucht. Wichtig sind hier 2 Sachen zu verstehen:
- die Adressen in der Anleitung sind im Hexadecimal eingetragen. Diese muss man zu Decimal konvertieren. Z.B habe ich die Adresse 0x0200 (Running State). 0x0200 in Decimal ist 512. Rechner finden man online, hier z.B. https://www.rapidtables.com/convert/number/hex-to-decimal.html
- bei ioBroker (und auch andere ModBus Master) spricht man die sogenannten "Holding Register" an indem man die Adresse die man vorher bekommen hat, 512, zu 40001 addiert. Also, um das "Running State" in ioBroker anzuzeigen, braucht man die Adresse 40513.
ioBroker Config
Nun zum spannenden Teil. In ioBroker braucht man den modbus adapter. Sobald dieser installiert ist und eine Instanz zur Konfiguration verfügbar ist, soll man diese ungefähr wie folgt konfigurieren:


Dann springt man zu den Holding Registers und fängt an, die einzelnen Adresse hinzuzufügen. Ich habe schon ziemlich viele schon bei mir hinzugefügt also teile ich diese gerne mit euch:
_address name description unit type len factor offset formula role room poll wp cw isScale 40513 operating_status Operating Status uint16be 1 1 0 value true false false false 40519 grid_voltage Grid Voltage V uint16be 1 0.1 0 value true false false false 40520 grid_current Grid Current A int16be 1 0.01 0 value true false false false 40525 grid_frequency Grid Frequency Hz uint16be 1 0.01 0 value true false false false 40526 batt_charge_discharge_power Battery Charge / Discharge Power W int16be 1 10 0 value true false false false 40527 batt_voltage Battery Voltage V uint16be 1 0.1 0 value true false false false 40528 batt_charge_discharge_current Battery Charge / Discharge Current A int16be 1 0.01 0 value true false false false 40529 batt_soc Battery Status of Charge % uint16be 1 1 0 value true false false false 40530 batt_temp Battery Temperature °C uint16be 1 1 0 value true false false false 40531 grid_power Grid Power: to Grid + / From Grid - W int16be 1 10 0 value true false false false 40532 load_power Household Consumption W uint16be 1 10 0 value true false false false 40533 batt_inverter_power Battery Inverter Power: Discharge + / Charge - W int16be 1 10 0 value true false false false 40534 pv_power_gen PV Generated Power W uint16be 1 10 0 value true false false false 40535 eps_output_voltage EPS Output Voltage V uint16be 1 0.1 0 value true false false false 40536 eps_output_power EPS Output Power kW uint16be 1 0.01 0 value true false false false 40537 daily_energy Daily Energy kW uint16be 1 0.01 0 value true false false false 40538 daily_energy_to_grid Daily Energy to Grid kW uint16be 1 0.01 0 value true false false false 40539 daily_energy_from_grid Daily Energy from Grid kW uint16be 1 0.01 0 value true false false false 40540 daily_energy_load Daily Energy Load kW uint32sw 2 0.01 0 value true false false false 40541 total_energy Total Energy kW uint32be 2 1 0 value true false false false 40543 total_energy_to_grid Total Energy to Grid kW uint32be 2 1 0 value true false false false 40545 total_energy_from_grid Total Energy from Grid kW uint32be 2 1 0 value true false false false 40547 total_energy_load Total Energy Load kW uint32be 2 1 0 value true false false false 40549 batt_daily_charge Daily Energy Charging Battery kW uint16be 1 0.01 0 value true false false false 40550 batt_daily_discharge Daily Energy Discharging Battery kW uint16be 1 0.01 0 value true false false false 40551 batt_total_charge Total Energy Charging Battery kW uint32be 2 1 0 value true false false false 40553 batt_total_discharge Total Energy Discharging Battery kW uint32be 2 1 0 value true false false false 40561 grid_voltage Grid Voltage V uint16be 1 0.1 0 value true false false falseUm diese zu importieren, hier drauf clicken und dann dort direkt einfügen:

Das war es schon. Ich hoffe das es hilft. Wenn es fragen dazu gibt, einfach reinschreiben

@mrfenyx - Zuerst mal danke für die Mühe mit der Erklärung.
Habe in der Zwischenzeit die selben Voraussetzungen an Hardware.Den bisherigen Versuche mit Waveshare RS485 to RJ45 Ethernet Modul habe ich abgebrochen. Scheint nicht zu funktionieren.
Pi/USB-RS485 (ttyUSB0) - Inverter Azzurro 1PH HYD6000 ZSS HP.
Der Inverter hat zumindest einen komfortablen COM Anschluss.
Die Belegung der COM Pins wurde mir vom Azzurro Support bestätigt. 5(+) - 6(-). Sind auch mit A+ und A- am USB verbunden.
Modbusadresse steht auf 1.Mit: Mit dem Befehl journalctl -u mbusd@ttyUSB0.service -f -n 10 kann man sehen was da gerade passiert, im besten fall, keine Fehler meinst du sicherlich so etwas als Antwort?
journalctl -u mbusd@ttyUSB0.service -f -n 10
-- Logs begin at Sun 2023-09-10 14:17:02 CEST. --Kein Eintrag ist für mich als positiv zu bewerten.
Jedoch der folgenden Befehl: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v
ergibt:
-- Polling slave 1...
[01][03][02][13][00][01][74][77]
Waiting for a confirmation...
<01><90><02><00><00>
ERROR CRC received 0x0 != CRC calculated 0xCDC1
Read output (holding) register failed: Invalid CRCHattest du diesen Fehler auch? Wenn ja wie wurde er behoben?
Hast du einen Lösungsvorschlag?
Grüsse
RP -
@mrfenyx - Zuerst mal danke für die Mühe mit der Erklärung.
Habe in der Zwischenzeit die selben Voraussetzungen an Hardware.Den bisherigen Versuche mit Waveshare RS485 to RJ45 Ethernet Modul habe ich abgebrochen. Scheint nicht zu funktionieren.
Pi/USB-RS485 (ttyUSB0) - Inverter Azzurro 1PH HYD6000 ZSS HP.
Der Inverter hat zumindest einen komfortablen COM Anschluss.
Die Belegung der COM Pins wurde mir vom Azzurro Support bestätigt. 5(+) - 6(-). Sind auch mit A+ und A- am USB verbunden.
Modbusadresse steht auf 1.Mit: Mit dem Befehl journalctl -u mbusd@ttyUSB0.service -f -n 10 kann man sehen was da gerade passiert, im besten fall, keine Fehler meinst du sicherlich so etwas als Antwort?
journalctl -u mbusd@ttyUSB0.service -f -n 10
-- Logs begin at Sun 2023-09-10 14:17:02 CEST. --Kein Eintrag ist für mich als positiv zu bewerten.
Jedoch der folgenden Befehl: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v
ergibt:
-- Polling slave 1...
[01][03][02][13][00][01][74][77]
Waiting for a confirmation...
<01><90><02><00><00>
ERROR CRC received 0x0 != CRC calculated 0xCDC1
Read output (holding) register failed: Invalid CRCHattest du diesen Fehler auch? Wenn ja wie wurde er behoben?
Hast du einen Lösungsvorschlag?
Grüsse
RP@schwabe_ch ja, den Fehler habe ich auch immer noch sehr oft - anscheinend gibt es da ein Problem wenn man direkt auf die Daten mit ModbusRTU zugreifen will. Da hilft aber das mbusd Tool, was die ModbusRTU daten in ModbusTCP konvertiert (wenn es richtig konfiguriert ist
). Versuch es mit diesem Befehl: mbpoll localhost -r 531 -0 -1 -v. Damit geht es bei mir 99% der Zeit (manchmal schlägt das auch fehl).Stell auch sicher dass das mbusd tool wirklich läuft, mit
sudo service mbusd@ttyUSB0 status. Hier soll das Ergebnis so aussehen:

Viel Glück! Wenn es weiterhin Probleme gibt, lass es mich wissen, vielleicht kann ich helfen. -
Hallo in die Runde,
Erst einmal ein großes Dankeschön für die Erklärung.
Ich habe nun seit heute meinen Wechselrichter 3PH HYD15000
Dort gibt es einen Com Anschluss. Die Pins 5 und 6 gehen zur Kommunikation an den 3 Phasen Messer.
Pin 1-4 (je zwei + und -) sind noch frei. Laut Anleitung dienen diese zur Bildung einer Cascade.
Allerdings habe ich schon von Begin an Probleme mit den Programmen auf dem Pi.
Ich habe mbpoll installiert. Die Adresse des USB Gerätes (das aus deinem Amazonlink) ist auch/dev/ttyUSB0
Ich habe geschaut, ob es läuft. Dabei kam auch was zurück. Also OK.
Nun mbusd. Da fing es bei mir an schwierig zu werden. Da ich kein Held in Sachen Pi bin, kann ich da auch nicht Dinge die andere für selbsterklärend sind.
Habe aber mbusd wohl soweit installiert bekommen.
Aber wie erzeuge ich die Config in dem besagten Ordner? Ich habe da einiges rumprobiert. Aber dies wohl dann doch nicht wirklich richtig gemacht. Hier benötige ich noch mal eine genauere Erklärung.
Mit dem Befehl journalctl-u mbusd@<serial port>.service -f -n 10kam nur-bash: serial: No such file or directory
Dann habe ich nochmal mbpoll ausprobiertmbpoll localhost -r 531 -0 -1 -vund es kommtConnecting to [localhost]:502 Connecting to [localhost]:502 mbpoll: Connection failed: Connection refused.Jetzt komme ich hier erst mal nicht weiter.
-
@schwabe_ch ja, den Fehler habe ich auch immer noch sehr oft - anscheinend gibt es da ein Problem wenn man direkt auf die Daten mit ModbusRTU zugreifen will. Da hilft aber das mbusd Tool, was die ModbusRTU daten in ModbusTCP konvertiert (wenn es richtig konfiguriert ist
). Versuch es mit diesem Befehl: mbpoll localhost -r 531 -0 -1 -v. Damit geht es bei mir 99% der Zeit (manchmal schlägt das auch fehl).Stell auch sicher dass das mbusd tool wirklich läuft, mit
sudo service mbusd@ttyUSB0 status. Hier soll das Ergebnis so aussehen:

Viel Glück! Wenn es weiterhin Probleme gibt, lass es mich wissen, vielleicht kann ich helfen.@mrfenyx Danke für die Hilfe. Habe mich heute wieder mal daran gewagt.
Nun habe ich beim Aufruf von :
/etc/mbusd $ journalctl -u mbusd@ttyUSB0.service -f -n 10
einen Fehler.




Meiner Meinung nach richtiges .conf File, in richtigem Verzeichnis.
Woran könnte das liegen.
Die erste Idee, Berechtigung, ist aber root/root.

Hast Du einen Tip woran das liegen könnte?
Danke und einen schönen Abend
-
@mrfenyx Danke für die Hilfe. Habe mich heute wieder mal daran gewagt.
Nun habe ich beim Aufruf von :
/etc/mbusd $ journalctl -u mbusd@ttyUSB0.service -f -n 10
einen Fehler.




Meiner Meinung nach richtiges .conf File, in richtigem Verzeichnis.
Woran könnte das liegen.
Die erste Idee, Berechtigung, ist aber root/root.

Hast Du einen Tip woran das liegen könnte?
Danke und einen schönen Abend
@schwabe_ch Hier die
/etc/mbusd/mbusd-ttyUSB0.confbei mir (ownership ist root:root):
So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl
ls /dev/*USB*? -
@schwabe_ch Hier die
/etc/mbusd/mbusd-ttyUSB0.confbei mir (ownership ist root:root):
So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl
ls /dev/*USB*?@mrfenyx sagte in ModBus Hilfe - Azzurro ZCS:
So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden.
Ich würde da ohnehin empfehlen, den Link zum Gerät aus
/dev/serial/by-ideinzutragen. -
@schwabe_ch Hier die
/etc/mbusd/mbusd-ttyUSB0.confbei mir (ownership ist root:root):
So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl
ls /dev/*USB*?@mrfenyx -- Danke fürden Hinweis.
ls /dev/USB ergibt /dev/ttyUSB0
Ich habe seit gestern das wohl falsch bestellte WIFI Kit white Datalogger eines Kollegen angeschlossen um zu testen ob die RS485 überhaupt funktioniert.
Tut sie, es werden auch Daten an die App übermittelt.
So weit so gut, aber der Inverter zeigt das RS485 Logo im Display nicht immer an. Folgendes hat eine zeitliche wenn auch nicht ganz genaue Messung ergeben:20-25 Sekunden up
60-70 Sekunden down
20-25 Sekunden up
60-670 Sekunden down
...uswKönnte der Fehler von mbpoll damit zusammenhängen?
Denn der neue Aufruf nachdem ich nochmals alles auf einer neuen SD erstellt habe sieht folgendermassen aus:
Datalogger wurde natürlich vorher abgehängt.-- Polling slave 1...
[01][03][02][13][00][01][74][77]
Waiting for a confirmation...
ERROR Connection timed out: select
Read output (holding) register failed: Connection timed out -
@mrfenyx sagte in ModBus Hilfe - Azzurro ZCS:
So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden.
Ich würde da ohnehin empfehlen, den Link zum Gerät aus
/dev/serial/by-ideinzutragen.@thomas-braun : Könntest du mir bitte kurz erklären was der Unterschied von /dev/serial/by-id zu /dev/ttyUSB0 wäre.
-
@thomas-braun : Könntest du mir bitte kurz erklären was der Unterschied von /dev/serial/by-id zu /dev/ttyUSB0 wäre.
Kann ich. Die /dev/tty* Dateien werden vom Kernel 'zufällig' in der Reihenfolge des Auftauchens des Gerätes vergeben. Das kann sich ändern, jenachdem ob ein Gerät von Hand umgestöpselt wird oder welches Gerät beim Booten zuerst 'hier bin ich' ruft.
Die Links aus /dev/serial/by-id sind immer die gleichen (außer bei einem Firmware-Update würde die ID verändert) und verweisen dann auf das richtige, zuvor vom Kernel (siehe oben) zugewiesene Gerät in /dev/tty*Deswegen gibt man in den Einstellungen auch die fixe Datei als Adressat an und nicht den Wanderzirkus aus /dev/tty*
-
Kann ich. Die /dev/tty* Dateien werden vom Kernel 'zufällig' in der Reihenfolge des Auftauchens des Gerätes vergeben. Das kann sich ändern, jenachdem ob ein Gerät von Hand umgestöpselt wird oder welches Gerät beim Booten zuerst 'hier bin ich' ruft.
Die Links aus /dev/serial/by-id sind immer die gleichen (außer bei einem Firmware-Update würde die ID verändert) und verweisen dann auf das richtige, zuvor vom Kernel (siehe oben) zugewiesene Gerät in /dev/tty*Deswegen gibt man in den Einstellungen auch die fixe Datei als Adressat an und nicht den Wanderzirkus aus /dev/tty*
@thomas-braun Danke, bei mir im /dev/serial/by-id/ ist ein Verweis mit dem Namen: usb-FTDI_FT232R_USB_UART_A10OQNJW-if00-port0 auf ../../ttyUSB0 enthalten. Das bedeutet somit, egal in welchem der 4 USB Ports und egal wie viele USB Devices daran angeschlossen sind mit dem .../by-id/ findet er immer den für mich entscheidenden ttyUSB0.
-
@thomas-braun Danke, bei mir im /dev/serial/by-id/ ist ein Verweis mit dem Namen: usb-FTDI_FT232R_USB_UART_A10OQNJW-if00-port0 auf ../../ttyUSB0 enthalten. Das bedeutet somit, egal in welchem der 4 USB Ports und egal wie viele USB Devices daran angeschlossen sind mit dem .../by-id/ findet er immer den für mich entscheidenden ttyUSB0.
Wobei es wie bereits gesagt passieren kann, dass da auf einmal /dev/ttyUSB1 verlinkt wird. Deswegen geht man ja auf die by-id-Datei und nicht direkt auf die Geräte-Datei.
-
Wobei es wie bereits gesagt passieren kann, dass da auf einmal /dev/ttyUSB1 verlinkt wird. Deswegen geht man ja auf die by-id-Datei und nicht direkt auf die Geräte-Datei.
@thomas-braun Wieder was gelernt, danke.

-
@mrfenyx -- Danke fürden Hinweis.
ls /dev/USB ergibt /dev/ttyUSB0
Ich habe seit gestern das wohl falsch bestellte WIFI Kit white Datalogger eines Kollegen angeschlossen um zu testen ob die RS485 überhaupt funktioniert.
Tut sie, es werden auch Daten an die App übermittelt.
So weit so gut, aber der Inverter zeigt das RS485 Logo im Display nicht immer an. Folgendes hat eine zeitliche wenn auch nicht ganz genaue Messung ergeben:20-25 Sekunden up
60-70 Sekunden down
20-25 Sekunden up
60-670 Sekunden down
...uswKönnte der Fehler von mbpoll damit zusammenhängen?
Denn der neue Aufruf nachdem ich nochmals alles auf einer neuen SD erstellt habe sieht folgendermassen aus:
Datalogger wurde natürlich vorher abgehängt.-- Polling slave 1...
[01][03][02][13][00][01][74][77]
Waiting for a confirmation...
ERROR Connection timed out: select
Read output (holding) register failed: Connection timed out@schwabe_ch also leider habe ich auch manchmal das Problem dass das RS485 Logo nicht mehr im Display vom Inverter angezeigt wird. Wenn das passiert, dann schickt es tatsächlich keine Daten mehr - bei mir passiert das aber extrem selten, vielleicht einmal alle 2-3 Monate. Die einzige Lösung die ich dafür bis jetzt habe, ist am Inverter in die Einstellungen zu gehen, zu Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.) - nichts ändern, nur öffnen und bestätigen. Dann kommt das Logo wieder im Display an und die Daten gehen zur Raspi.
Wegen mbpoll, wie schon vorher gesagt, ich bekomme fast nie Daten wenn ich diese direkt per ModbusRTU anfrage, also quasi /dev/... benutze. Es funktioniert aber 99,9% richtig wenn ich mit mbusd das in ModbusTCP "konvertiere" und dann localhost:502 benutze. -
@schwabe_ch also leider habe ich auch manchmal das Problem dass das RS485 Logo nicht mehr im Display vom Inverter angezeigt wird. Wenn das passiert, dann schickt es tatsächlich keine Daten mehr - bei mir passiert das aber extrem selten, vielleicht einmal alle 2-3 Monate. Die einzige Lösung die ich dafür bis jetzt habe, ist am Inverter in die Einstellungen zu gehen, zu Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.) - nichts ändern, nur öffnen und bestätigen. Dann kommt das Logo wieder im Display an und die Daten gehen zur Raspi.
Wegen mbpoll, wie schon vorher gesagt, ich bekomme fast nie Daten wenn ich diese direkt per ModbusRTU anfrage, also quasi /dev/... benutze. Es funktioniert aber 99,9% richtig wenn ich mit mbusd das in ModbusTCP "konvertiere" und dann localhost:502 benutze.@mrfenyx said in ModBus Hilfe - Azzurro ZCS:
Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.)
Ich habe aber keinen Menüpunkt Kommunikation.
Unter Einstellungen -> 8. Modus-Adresse -> 1. Modus-Adresse / 2. Baud-Rate.
Unter Punkt 2. Baud-Rate sind lediglich die üblichen 9600 usw. aufgeführt. Nix mit Stop bit. etc.
Die Anzeige von RS485 im Display folgt auch einer ziemlich genauen zeitlichen Abfolge. 20 Sek up-60 Sek down usw....
Vom Support azzurro erhalte ich keine Antwort. Mein Solateur ist hilflos überfragt. Dem musste zuerst einmal der Unterschied von RTU und TCP erklärt werden.
Ich hatte gehofft das Problem könnte mit V6 behoben werden. Leider nein.
Irgend eine andere Idee wie ich z.B. die Abfrage optimieren könnte um das Fenster 20 Sek. z.B. in einer Schleife bzw. Zeitverzögerung zu erwischen? -
Hi mrfenyx,
vielleicht kannst du mir an diesem Punkt den entscheidenden Tipp geben:
Dann kann man sowas ausführen, um zu schauen ob alles läuft: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v. Im besten Fall kommt dann ein Wert heraus und nicht eine Fehlermeldung.
Genau da hakt es bei mir, ich bekomme verschiedene Fehlermeldungen im Wechsel:
- ERROR Connection reset by peer: read
Read output (holding) register failed: Connection reset by peer - ERROR Connection timed out: select
Read output (holding) register failed: Connection timed out - ERROR CRC received 0x190 != CRC calculated 0x4C00
Read output (holding) register failed: Invalid CRC
Ist das ein Hardware-Problem mit dem Adapter oder kann ich da irgendwas retten? Wäre für jede Hilfe dankbar, bevor ich den nächsten Adapter kaufe...
Besten Dank & Grüße
- ERROR Connection reset by peer: read
