Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: Abfrage von Modbus TCP via Homeserver

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

    #61
    Wer will sowas mit einem HS unter 4.11 debuggen? Mir sagt man ja schon nach, ich habe die Ader zur Selbstbestrafung, aber so?
    Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

    Kommentar


      #62
      Ok, genau da bräuchte ich Nachhilfe:
      Wo im debug muss ich schauen, unter Logikbausteine steht er drin, aber ja keine Info dazu.
      Den Eintrag unter HSL 2.0 hänge ich mal an, da kann ich nichts mit anfangen.
      Updatereihenfolge wäre dann 4.9 und dann 4.11 oder brauchts mehr Schritte?
      Und geht dann gleich 4.11.3 oder erst 4.11?
      Angehängte Dateien

      Kommentar


        #63
        Kenne mich mit dem alten HS nicht aus, aber das sieht so aus, als wären garkeine Module geladen.
        Wenn das Modul erfolgreich geladen wird taucht es unter HSL2.0 => Global aber auch unter einer eigenen Überschrift "hs_modbusTCP_reader14184" auf.
        Glaub deine Update-Reihenfolge mit 4.9 -> 4.11.3 ist korrekt. 4.11.0 brauchst du afaik nicht.

        Kommentar


          #64
          Ok,

          ich habe jetzt geupdatet, und aber Version 4.9 (min von 4.4 auf 4.5 und dann auf 4.9) lief es.
          Jetzt bin ich bei 4.11.3 angekommen, und erhalte schonmal werte, und die Verbindung funktioniert.
          Wie stelle ich jetzt die richtigen Datentypen ein, bzw. wie erhalte ich aus den doch recht ungewöhnlichen Werten die korrekten?
          Die Multiplyer habe ich alle aus der Huawei Doku, dort stehen die zu den entsprechenden Adressen drin.
          Um die Zahlen kleiner zu bekommen könnte ich die ja rausnehmen wenn ich das richtig verstanden habe.

          Im Anhang sollte z.B. die markierte Reg5 numeric einen Wert von 110,16 Kwh angeben.
          Die Reg6 nummeric sollte ca. 15970Kwh anzeigen.

          Habe ich da irgendwas falsch hinterlegt? Beim PV Strom sollte ich z.B. mit teilen durch 10000 hinkommen, um den Wert in Ampere zu bekommen, hatte nur nichtmehr genug zeit das zu testen bevor die Sonne weg war :-)
          Angehängte Dateien

          Kommentar


            #65
            Am besten sagst du hier, was genau für ein Gerät es ist oder verlinkst die besagte Anleitung. Modbus ist ein sehr flexibles Protokoll, daher gar der Baustein so viele Eingänge.

            Sicherlich ist Eingang 8 und/oder 9 noch nicht passend zum Gerät. Und die Registertypen wie int16 passen zur Adresse?

            Mit den Multipliern erst am Ende spielen.

            Kommentar


              #66
              Also mal , dass du diese hier meinst UND diese auf deinen Wechselrichter passt: https://www.photovoltaikforum.com/co...finitions-pdf/

              Dann passt der Registertyp und auch die Shifts. Da du int16 hast, sind IMHO die Eingänge 8/9 egal, da das erst für 32bit, also Doppelregister eine Rolle spielt. Gern aber an der Stelle durchprobieren, wo du 32bit Register hast - und ich nix in der Anleitung finden konnte. Vielleicht beides LittleEndian.
              Laut Anleitung ist die UnitID ist per default 0 und du hast 2. Warum?

              Ansonsten mit nem Modbus Client auf deinem PC abfragen und Werte vergleichen und dann in den Baustein übernehmen. Es ist z.B. nicht auszuschließen, dass sie Modicon Annotation nehmen und du statt 32016 eher 2016 abfragen musst.
              Im Logikeditor kann man das nun ja ab 4.11 auch gut dynamisch ändern.

              Viel Erfolg.
              (bitte die Werte der Ausgänge im Logikeditor im Debug dir ansehen. Hatten hier auch schon Wertüberläufe durch falsche Datentypen. Auch weil du nach dem Baustein noch einrechnest. )

              P.S.: Hier spricht einer die ganzen Probleme mit Modbus an - und daher bleibt nur Durchprobieren. Der Baustein hat dafür die unterschiedlichen Eingänge zur Steuerung: https://ctlsys.com/support/common_mo...isconceptions/
              Zuletzt geändert von SvenB; 23.09.2022, 08:05.

              Kommentar


                #67
                Wow, das ist das erste mal, das die Glaskugel funktioniert hat.

                Ich verstehe schon. Die Abfragen funktionieren eigentlich, ich habe die 16 bit Werte alle so wie ich sie brauche. Was nicht klappt sind die 32 bit Werte.
                Ich spiel da jetzt noch etwas rum.
                Was auch komisch ist:
                Wenn ich am PC abfrage, bekomme ich auf manchen Adressen keinen Wert, der entsprechende Wert ist dann eine Adresse nach hinten verschoben (betrifft 6 Werte).
                Wenn ich diese nach hinten verschobenen Adressen in der Logik eingebe kommt aber sowas wie falsche Adresse......

                Im Anhang mal die Debug Seite, kannst du dazu was sagen? bzw. weist was das bedeutet?

                Ergänzung: WordOrder BigEndian hat gerade schonmal 4 weitere Werte ins rechte Licht gerückt.
                Angehängte Dateien
                Zuletzt geändert von DerSelbermacher; 23.09.2022, 19:09.

                Kommentar


                  #68
                  Du hast zwei Bausteine für das gleiche Gerät hintereinander. Guck mal in die Hilfe und schalte KeepAlive ab. Viele Modbus Implementierungen binden sich an die IP.

                  Du solltest auch nur den ersten Baustein mittels Intervall E1 starten/Stoppen und die Verketteten Bausteine von A1 auf E3 verketten. Steht IMHO auch so in der Doku. Beides gibt ggf. Fehler weil er mehrere Abfragen parallel macht und das Gerät sich wehrt.

                  die Werte im Debug sind (gerade Code nicht offen) die raw Werte der Register for dem Shiften. Wenn die nicht passen stimmen die Register / Settings nicht.

                  Kommentar


                    #69
                    A1 auf E3 war schon verkettet, zusätzlich habe ich mir für die Trigger und den Intervall ein KO angelegt um alles starten und stoppen zu können.
                    Werte passen jetzt alle.
                    Was noch nicht funktioniert ist irgendwie die automatische Abfrage. Ich starte mit einer 1 auf E1 der ersten Logik den Ablauf, dann sollte ja eigentlich die Erste Abfrage durchlaufen, danach die 2. Es wird jeweils durch NoKeepAlive die Verbindung getrennt nachdem jeder Logikblock durch ist. Alle 30s sollte dass dann wiederholt werden.
                    In der Realität bekomme ich keine aktualisierten Werte. Nur wenn ich über E3 von der Visu aus extra nachtrigger, kommen Werte, und das auch sehr zögerlich und nicht alle.
                    Im Logik debugger sieht das dann so aus, das die Logik z.B. 55mal gestartet wird, aber nur 5mal der Ausgang einen neuen Wert erhält, obwohl sich die meisten der Werte dauerhaft verändern. (die 55mal kommen nicht vom händischen nachtriggern, sondern wohl schon von der 30s automatik, nur Ergebnisse liefert der Baustein meist nur nach dem händischen nachtriggern)

                    Auf der HS Debugseite ist jetzt alles weg, ausser der Punkt unter Exceptions der oben schon steht.

                    Kommentar


                      #70
                      Du darfst das hier (E1) nicht machen / aktivieren, weil dann laufen beide Bausteine gleichzeitig:
                      image.png
                      Der zweite Baustein muss durch den ersten getriggert werden. Wenn er das nicht wird, dann hat der erste Baustein einen Fehler gehabt.
                      Am besten Postest du nochmal einen screenshot, wie es nun ist.

                      Modbus ist nicht nur selbst "interpretationswürdig", auch die Implementierungen sind alle anders. Evtl. musst du mit den anderen Optionen noch experimentieren: 100ms sleep und weitere. Das liegt daran, dass auf der Gegenseite sehr langsame Mikrocontroller drin sind und man diese mit zu schnellen Abfragen sonst überlastet. Wenn die nix zurückgeben, kommt an den Ausgängen nix.

                      Kommentar


                        #71
                        Hallo in der Runde,

                        danke vorab für die Möglichkeit der Schnittstellenanbindung an ModBus.
                        Breche mir momentan die Zähne aus bei einem Energiezähler von Janitza UMG604Pro.
                        Versuche die Summe der aktuellen Wirkleistung aus dem Gerät auszulassen.
                        Laut Janitza Doku befindet sich das Datenpacket im Register 19026 und als Datentyp "float" 32Bit "IEEE754"
                        Gesagt getan. Die Datenpackete werden abgeholt, aber die Darstellung der Gleitpunktzahl wird nicht richtig dargestellt.
                        Habe hier Screenshots mit meinen Vorgaben für die Kommunikation abgelegt.
                        Hat jemand Medizin für die Problematik.

                        Danke im Voraus!​

                        Screenshot 2022-09-24 104139.jpg Screenshot 2022-09-24 104214.jpg Screenshot 2022-09-24 104435.jpg Screenshot 2022-09-24 102205.jpg Screenshot 2022-09-24 104320.jpg
                        ​​
                        Angehängte Dateien

                        Kommentar


                          #72
                          Mit E8/E9 spielen. denke beides muss auf BigEndian (1) sein. Auch in der Anleitung steht:
                          Byte-Reihenfolge
                          Die Daten in der Modbus-Adressenliste können im Format
                          • Big-Endian (High-Byte vor Low-Byte) und im Format
                          • Little-Endian (Low-Byte vor High-Byte) abgerufen werden.
                          Die in dieser Adressenliste beschrieben Adressen liefern die Daten im Format „Big-Endian“ zurück. Wenn Sie Daten im Format „Little-Endian“ benötigen, müssen Sie zur Adresse den Wert 32768 addieren.
                          (Weil hier von DerSelbermacher so eine Gratismentalität aufkommt verweise ich an der Stelle nochmal auf meine Wishlist. Nachdem ihr Happy seid, ist meine Frau auch froh, wenn ich mal wieder Happy bin )
                          Zuletzt geändert von SvenB; 24.09.2022, 10:24.

                          Kommentar


                            #73
                            Ich hab nochmal überprüft: Die Voreinstellung von den Endians vom Baustein sind in meinen Augen korrekt. Im verlinkten Artikel im Post ist das hin und her auch erklärt.
                            Also für alle die hier mit 32bit Feldern Probleme haben: Am besten Anleitung lesen und/oder durchprobieren. Manchmal kann man es auch Gerät einstellen oder wie bei Osti gibt es für beides je ein Register.

                            Grob erklärt gibt der Endian an, ob bei großen Zahlen oder Genauigkeiten der große Teil im ersten oder im letzten Register ist. Sprich man die Register von hinten nach vorne oder von vorne nach hinten liest. Und von links nach rechts lesen tut man ja auch nicht überall auf der Welt.

                            Modbus ist uralt und aus heutiger Sicht mehr ne Philosophie als ein Standard. Am besten wie Osti mit nem Computer-Tool die Parameter durchtesten oder im Online-Test vom Experten.

                            Kommentar


                              #74
                              Zitat von SvenB Beitrag anzeigen
                              (Weil hier von DerSelbermacher so eine Gratismentalität aufkommt verweise ich an der Stelle nochmal auf meine Wishlist. Nachdem ihr Happy seid, ist meine Frau auch froh, wenn ich mal wieder Happy bin )
                              So war das nicht gemeint, auch ich werde dir was zukommen lassen (die Wishlist sagt aber vollständige Adresse verborgen...kann deshalb den Kauf nicht abschließen
                              :-(). Es gibt bestimmt viele Leute die in einer ähnlichen Situation sind wie ich und nach einer Möglichkeit suchen, deshalb habe ich das dort verlinkt. (ich war richtig euphorisch wie ich den Thread gefunden habe, obwohl ich anfangs auch nur Bahnhof verstanden habe) Ich war kurz davor ein Gateway zu kaufen welches mir bei weitem nicht die Menge an Daten geliefert hätte wie dein Logikmodul.
                              Von daher Riesen Dank, vor allem auch für die Geduld und die Erklärungen. Es ist immer toll wenn man als totaler Laye auf so einem Gebiet trotzdem etwas einigermaßen selbstständig umsetzen kann, und dabei noch vieles lernt (was nur durch Leute wie euch möglich ist).
                              Also DANKE


                              Kommentar


                                #75
                                Lass mal hier auf die Probleme konzentrieren, so dass alle am Ende von deinem Problem lernen. Rest kriegen wir via PN hin.

                                Hat das geklappt mit den anderen Optionen und das beide Bausteine nacheinander laufen? Hast nochmal einen Screenshot?

                                Kommentar

                                Lädt...
                                X