Ankündigung

Einklappen
Keine Ankündigung bisher.

Gira X1 und Modbus TCP mit Logikbaustein

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Moin, ich habe mal eine grundsätzliche Frage:

    Ist es möglich mit einem der Modbus Bausteine überhaupt eine Verbindung zu einem Modbus Master aufzubauen? Mein UVR16x2 Regler von Technische Alternative stellt diesen zum Lesen und Schreiben bereit. Ich bekomme keinerlei Verbindung hin und lese den Regler derzeit nur via HTTP Request aus. Mit dem Modbus könnte ich dann auch schreiben etc.

    Vielleicht könnt ihr mir das beantworten?

    Herzlichen Dank, Martin
    You do not have permission to view this gallery.
    This gallery has 3 photos.

    Kommentar


      Zitat von 1203v245grad Beitrag anzeigen
      Ist es möglich mit einem der Modbus Bausteine überhaupt eine Verbindung zu einem Modbus Master aufzubauen?
      Nein - das ist bei modbus nicht vorgesehen. Als modbus master wird typischerweise jener Teilnehmer bezeichnet, der sich zu einem modbus slave verbindet und dort die register schreibt oder liest.
      Damit entspricht der "Master" umgangssprachlich dem "Client" und der "Slave" entspricht umgangssprachlich dem "Server". Es verbindet sich IMMER der Master zum Slave. In die Gegenrichtung funktioniert das nicht, da der Master NIE auf einer Portadresse auf Anfragen von aussen wartet (sonst wäre er eben der Slave).

      Die von dir geposteten Einstellungen zeigen ja eindeutig, dass eine UVR es unterstützt, ihre Werte bei einem (anderen) Modbus slave zu hinterlegen.

      was funktionieren könnte: jemand baut einen Modbus Slave Baustein für den X1 und deine UVR schreibt in diesen Werte rein. Müsste sich wer finden, der das ausprobiert.

      vG Alram

      Kommentar


        Hallo Alram,
        hatte heute ein paar Minuten mehr Zeit deinen Baustein bezüglich Register schreiben zu testen. Funktioniert alles wunderbar soweit. Persönlich habe ich aber noch Probleme Werte über das Touchpanel, welches am der Wand hängt, an den Baustein zu senden. Ich kann zwar Werte eingeben, es kommt aber am Baustein nichts an. Ich glaube, es hängt an den Einstellungen in den variablen Datenpunkten. ( Dezimalwert, 8 bit, 16 bit, 32 bit...). Da muss ich noch trial and error spielen, hat aber nichts mit deinem Baustein zu tun. Ich würde mich ggf. nochmal melden, sollten zusätzliche Register nötig sein. Die jetzigen 4 funktionieren gut. Lg Peter

        Kommentar


          alramlechner lieben Dank für die schnelle Antwort! Hab es mir fast gedacht.

          Ist so etwas dolle aufwendig? Könntest und möchtest du das testen?

          Herzliche Grüße, Martin

          Kommentar


            Zitat von 1203v245grad Beitrag anzeigen
            Dank für die schnelle Antwort!
            ​Gerne!

            Zitat von 1203v245grad Beitrag anzeigen
            Ist so etwas dolle aufwendig? Könntest und möchtest du das testen?
            Muss da leider passen - aber vielleicht findet sich jemand anderer ...

            Zitat von 1retro Beitrag anzeigen
            Funktioniert alles wunderbar soweit
            Sehr schön zu hören - danke für die Rückmeldung.

            edit: hast du die cut-off Eingänge auch ausprobiert? hab gerade gesehen, dass diese mglw. um den Faktor 10 daneben liegen. je nach dem, was die Spalte "gain" bedeutet....
            Zuletzt geändert von alramlechner; 14.04.2023, 08:53.

            Kommentar


              Hi Alram,
              ja, die cut off Eingänge hatte ich auch getestet. Diese funktionieren auch Problemlos. Es ist richtig, dass der 10fache Wert gesendet werden muss. Kann man ja in der Zukunft bei einem nächsten Update vielleicht mal mit ändern lg

              Kommentar


                Hi Alram,

                kmk85 und ich tauschen uns gerade viel per PN aus und versuchen mit deinem Modbus Baustein unsere Solaredge Wechselrichter auszulesen. Wir stolpern andauernd über die selben Probleme. Wir wundern uns etwas, ob außer uns hier im Forum noch niemand Probleme mit dem Modbus zwischen X1 und Solaredge hat oder ob wir uns einfach dumm anstellen :-).
                Zudem kommt mein Gefühl, dass Modbus im Wechselrichter eher schlampig implementiert wurde.

                Wir haben folgende Probleme:
                Die Leistungswerte ergeben ja nur mit der Verrechnung eines entsprechenden Skallierungsfaktors Sinn. Jetzt ist es so, dass es zu unschönen Sprüngen in den Ergebnisen kommt, da durch das nicht syncrone/gleichzeitige Auslesen der Register die Faktoren mal zu früh und mal zu spät verrechnet werden. Dadurch liegt dann einmal das Produkt von Leistungswert und Faktor voll daneben. Aktuell verwende ich pro Parameter den ich auslesen will 2 deiner Modbus Bausteine (Wert und für SF).

                Hättest du ein Tipp für uns wie wir das in den Griff bekommen können? Oder machen wir etwas grundlegend falsch?

                Viele Grüße
                Chris und kmk85

                Kommentar


                  Hallo Chris,

                  Zitat von knxChris90 Beitrag anzeigen
                  Jetzt ist es so, dass es zu unschönen Sprüngen in den Ergebnisen kommt, da durch das nicht syncrone/gleichzeitige Auslesen der Register die Faktoren mal zu früh und mal zu spät verrechnet werden.
                  Das ist genau das Gleiche Problem, welches ich bei meinem Fronius hatte. Das kannst du mit meinem Modbus Baustein nicht in den Griff bekommen. Das liegt einfach daran, dass die Register mit den Werten als auch jene mit den Skalierungsfaktoren in einer Read Operation (=in einer Transaktion) ausgelesen werden müssen. Da hat jetzt nichts mit einer schlampigen Implementierung von Modbus im Wechselrichter zu tun.

                  Sauber lösen kann man das wohl nur mit einem dedizierten Baustein für den Wechselrichter (bzw. SunSpec - wenn sich SolarEdge auch an diese hält wie Fronius). Ich mach das zwischenzeitlich native am Raspberry Pi.


                  vG Alram

                  Kommentar


                    Hi Alram,

                    ah ok. Dann sind wir uns ja einig was das Problem ist :-) Schade, ich hatte gehofft, dass wir nur ein "Leichtsinnsfehler" gemacht haben und es einfach wird, dass zum Laufen zu bekommen....

                    Demnach hast du dir für deinen Fronius kein extra Modbus Baustein erstellt?!? Falls doch könnten wir diesen auch für den Solaredge WR nutzen....

                    Viele Grüße Chris

                    Kommentar


                      Zitat von knxChris90 Beitrag anzeigen
                      Demnach hast du dir für deinen Fronius kein extra Modbus Baustein erstellt?!?
                      leider nein ...

                      Kommentar


                        Mahlzeit zusammen,

                        auch ich bin gerade dabei meinen Wechselrichter einzubinden. (Goodwe GW10k-et)

                        Nun bekomme ich im X1 aber immer folgende Fehlermeldung:

                        System.IO.IOException: Von der Übertragungsverbindung können keine Daten gelesen werden: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. ---> System.Net.Sockets.SocketException: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat
                        bei System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
                        --- Ende der internen Ausnahmestapelüberwachung ---
                        bei System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
                        bei EasyModbus.ModbusClient.ReadHoldingRegisters(Int32 startingAddress, Int32 quantity)
                        bei haeusler_gmail_com.logic.Modbus.ModbusClientNode.F etchFromModbusServer()​

                        hat einer ne Idee?
                        Über den Simply Modbus TCP Client kann ich die Daten sauber auslesen. Der Wechselrichter ist über einen Waveshare RTU to eth adapter angeschlossen.

                        Kommentar


                          Hi alramlechner,

                          bin über deinen Modbus Client zu dem Huawei Teil gekommen weil ich super genervt war von der Implementierung. Hab nur durch dein Code auf Github gesehen das es ein paar Postings dazu gibt.

                          Mir ist aufgefallen, wenn ich die Eingänge deaktiviere, dass die Parameter als nicht initialisiert angezeigt werden. Da ich aktuell noch nicht vor habe da irgendwelche Anpassungen zu machen wollte ich die Ausblenden.

                          Was ich eher vor hatte ist, Abhängig vom Wetter den Lademodus der Batterie anzupassen, es gibt dort Maximaler Eigenverbrauch oder TOU (Time of Use) wo man Zeitfenster definieren kann.

                          Edit: Vielleicht kann man auch die lesenden Register so anpassen, dass nur die gelesen werden welche aktiv sind. Spart vielleicht etwas Zeit.

                          Kannst du sowas mit einbauen mit den entsprechenden Registern, oder hast du etwas dagegen wenn ich deinen Code für meine Zwecke nutze und weiter anpasse?
                          Sonnige Grüße
                          Marcus

                          Kommentar


                            hi,

                            Zitat von mbrockeu Beitrag anzeigen
                            Mir ist aufgefallen, wenn ich die Eingänge deaktiviere, dass die Parameter als nicht initialisiert angezeigt werden. Da ich aktuell noch nicht vor habe da irgendwelche Anpassungen zu machen wollte ich die Ausblenden.
                            und das funktioniert dann nicht? (irgendeinen defaultwert kann man sonst doch einfach rein schreiben, oder?)

                            Zitat von mbrockeu Beitrag anzeigen
                            Was ich eher vor hatte ist, Abhängig vom Wetter den Lademodus der Batterie anzupassen, es gibt dort Maximaler Eigenverbrauch oder TOU (Time of Use) wo man Zeitfenster definieren kann.

                            Edit: Vielleicht kann man auch die lesenden Register so anpassen, dass nur die gelesen werden welche aktiv sind. Spart vielleicht etwas Zeit.
                            ich glaube im baustein finde ich nicht heraus, ob ein Ausgang belegt/verbunden ist oder nicht. jetzt müsste ich ein bool parameter für jedes register einbauen ... ich glaub so viel bringt das nicht, dass sich der aufwand lohnen würde.

                            Zitat von mbrockeu Beitrag anzeigen
                            Kannst du sowas mit einbauen mit den entsprechenden Registern, oder hast du etwas dagegen wenn ich deinen Code für meine Zwecke nutze und weiter anpasse?
                            Ich hab grad vor, eher weniger einzubauen. ich hab keinen huawei wechselrichter und kann das daher nicht wirklich testen. aber du kanst gern einen PR in mein repo machen oder das repo klonen ...

                            vG Alram


                            Kommentar


                              Danke für die Rückmeldung. Dann gucke ich mir mal an was da eventuell doch raus geht. Muss mir dann eh erstmal das Zertifikat besorgen.

                              Bis jetzt läuft der Baustein jedenfalls gut.

                              Kommentar


                                Hi Leute,

                                kämpfe schon seit Tagen mit einem augenscheinlich simplen Problem bei meiner Modbusabfrage.
                                In der Logikblatt Simulation werden alle Werte angezeigt.

                                Im Gruppenmonitor und daher auch in der Visu tut sich garnichts.

                                Vll stehe ich auch schon komplett auf der Leitung.

                                Habt ihr eine Idee?

                                Besten Dank​
                                Angehängte Dateien
                                Zuletzt geändert von KX1991; 13.07.2023, 20:45.

                                Kommentar

                                Lädt...
                                X