Modbus TCP mit Buderus Logatherm WPS 38.2 HT

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • FiCastle
    Extension Master
    • 11.01.2019
    • 150

    #1

    Modbus TCP mit Buderus Logatherm WPS 38.2 HT

    Guten Tag

    Könnte mir bitte jemand behilflich sein beim Verständnis, wie ich mit dem Miniserver von einer Buderus Logatherm WPS 38.2 HT (baugleich mit Junkers Bosch Supraeco T 380-2) Erdwärmepumpe über Modbus TCP verschiedene Werte (z.B. eines Fühlers) auslesen kann?

    Die technische Dokumentation mit den Modbus-Adressen hat Buderus mir übergeben (siehe im Anhang).

    Ich habe es hingekriegt, den Wert "Season Status" aus den Digital Registers auszulesen. Die Verbindung zum Slave klappt also.

    Was ich nicht verstehe ist, warum ich die Adresse 25 anstelle der in der Anleitung angegebenen 125 verwenden muss. Mir ist auch nicht klar warum scheinbar die Werte unter "Address" und nicht die unter "De Facto-address" verwendet werden sollen. Mit der De Facto Adress 10026 kriegte ich auf jeden Fall keine Werte zurückgeliefert.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 963
Größe: 262,0 KB
ID: 408029

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 903
Größe: 56,4 KB
ID: 408030


    Noch anspruchsvoller wird's bei der Abfrage von Werten aus den Analog Registers. Da krieg ich gar keine Daten zurück.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 892
Größe: 214,3 KB
ID: 408028​​


    Als konkretes Beispiel möchte ich den Wert des Ausstemperaturfühlers TL 1, outdoor direct abfragen.

    Ich habe beide, die "Address" und "DeFacto-adress" versucht. Die 8 Möglichkeiten der Einstellungen von 16-Bit Register, Registerreihenfolge und Byte-Reihenfolge habe ich auch durchgespielt. Ohne Erfolg.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 869
Größe: 78,7 KB
ID: 408027

    Ich wäre für jede Hilfe äusserst dankbar!

    Schöne Grüsse
    Roger
  • FiCastle
    Extension Master
    • 11.01.2019
    • 150

    #2
    Kann hier niemand helfen? Ich wäre sehr dankbar.

    Kommentar

    • romildo
      Lebende Foren Legende
      • 25.08.2015
      • 5169

      #3
      Schon mal mit:
      IO-Adresse:11
      Befehl: 3 - Read holding register
      versucht?
      LG Romildo

      Kommentar

      • FiCastle
        Extension Master
        • 11.01.2019
        • 150

        #4
        Hallo

        romildo

        vielen Dank für den Hinweis, der mich auf die richtige Fährte brachte.

        Hier die Lösung, falls auch mal sonst mal wer nicht durchblickt, wie die Adressierung auf Loxonianisch zu übersetzen ist .

        Relevant ist die “De Facto Address”. Im Beispiel «Season status» lautet diese 10026. Von dieser Adresse wird der Wert der Adresse der ersten Variabel der Funktion abgezogen.

        Im Beispiel «Season status» kommt die Funktion 2 «Read Input Status» mit der Adresse 10001 zur Anwendung.

        Von der 10026 wird also die 10001 abgezogen. Als Resultat erhält man die effektive zu verwendende Adresse 25. Damit ist auch der Offset von 1 erklärt.

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 22 Größe: 95,2 KB ID: 408693

        Für die Abfrage eines Analog Registers, z.B. «TL1 Sensor, Outdoor direct» sieht die Berechnung der Adresse wie folgt aus:

        De Facto Adresse (30012) abzüglich Function 4 Adresse (30001) = 11

        ​Betreffend Datentyp hab ich im Netz recherchiert und rausgefunden, dass «Real» dem Datentyp «64-bit unsigned integer»​ entspricht.

        Um rauszufinden, welche sonstigen Parameter noch relevant sind, hab ich 8 Analogsensoren mit der Adresse 11 versehen und alle 8 möglichen Zustände der Häkchen auf je einen Analogsensor konfiguriert. Daraus lies sich dann einfach ablesen, welches der korrekte Wert sein muss. Mit dem Wissen, dass noch ein Scale-Factor von 10 einbezogen werden muss. Also 157 / 10 = 15.7 Grad Celsius.

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 20 Größe: 26,7 KB ID: 408694

        Daraus resultierten die folgenden Parameter:
        • Es werden keine 16 Bit Register verwendet
        • Es wird LowWord/HighWord verwendet (niederwertigstes Register zuerst)
        • Es wird HighByte/LowByte verwendet (Big Endian)
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 19 Größe: 12,2 KB ID: 408695

        Schöne Grüsse
        Roger
        Zuletzt geändert von FiCastle; 04.11.2023, 09:17.

        Kommentar

        Lädt...