NEWS
ModBus Hilfe - Azzurro ZCS
-
@Andi-5 meine Anleitung bezieht sich auf einen 3-Phasen Wechselrichter. Die Register da drin sollten gehen. Hier aber auch die komplette Definition: ModBus-RTU Communication Protocol Ibrido monofase e 3000SP.pdf
UPDATE: ach, jetzt verstehe ich! @Andi-5 braucht die Modbus Register von 1-phasigem Wechselrichter!
-
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.
-
Ich hatte ein Kontaktfehler. Es geht nun.
Es handelt sich bei mir um zwei WR HYD 15000, die im Master Slave Betrieb arbeiten.
Mit dem Rs485 Adapter gehe ich über die Com Schnittstelle auf die Pins 1 und 3 des ersten WR. Dann wird der erste WR(Master) mit den Pins 2 und 4 auf die Pins 1 und 3 des zweiten WR (Slave) verbunden.
Das ist zwar entgegen der Skizze im Handbuch aber nach den Bezeichnung aus der Tabelle macht es so Sinn. Über die unterschiedlichen Modbus Ids kann man dann unabhängig auf beide WR zugreifen. -
@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...
-
@alex-sch Danke für die Info resp. Hinweis. Werde mir das Teil mal anschauen.
-
Hallo,
ich habe auch einen Azzurro HYD10000 und die Com Schnittstelle ist bei mir für die Kommunikation mit dem Akku in Verwendung. Gibt es noch andere Möglichkeiten an die Daten vom Wechselrichter zu kommen?So schaut das bei mir aus.
Danke,
Thorben -
@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
-
@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 10
kam nur-bash: serial: No such file or directory
Dann habe ich nochmal mbpoll ausprobiertmbpoll localhost -r 531 -0 -1 -v
und es kommtConnecting to [localhost]:502 Connecting to [localhost]:502 mbpoll: Connection failed: Connection refused.
Jetzt komme ich hier erst mal nicht weiter.
-
@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.conf
bei 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-id
einzutragen. -
@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 -
@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*
-
@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.
-
@thomas-braun Wieder was gelernt, danke.