NEWS

Modbus - Erste Schritte



  • Servus Gemeinde,

    ich habe heute mal spontan ioBrocker auf meinem Windows Server installiert.

    Ich habe dann mal den Modbus Adapter aktiviert und wollte eine Adresse 12289 hinterlegen, die einen Boolchen Wert hinterlegt hat.

    Leider steige ich noch nicht so richtig hinter die Konfiguration.

    Ich konnte auch keinen "leitfaden" zu dem Adapter finden.

    Der Adapter ist auf jeden Fall Aktiv und die Lampe leuchtet grün.

    Gruss

    Björn



  • Modbus ist nicht so verbreitet.

    Du solltest ein paar Screenshots machen, was du schon probiert hast.



  • Echt? Sind hier nicht viele mit der Wago unterwegs?

    Anbei die Screenshots.

    Aliase sind aktiviert.

    Die Boolche Variable in der Wago ist TRUE.
    1534_bild_002.png
    1534_bild_003.png
    1534_bild_004.png
    1534_bild_005.png



  • Mittlerweile bin ich soweit, dass ich was ausgelesen bekomme und auch schreiben kann 🙂

    Leider interpretiert iobroker ein TRUE aber noch falsch?!
    1534_bild_001.png
    1534_bild_002.png
    1534_bild_003.png



  • Muss meine Nachricht oben revidieren.

    Er ließt die Werte grundsätzlich. Wenn man mal ein paar Mehr Variablen importiert hat, kann man auch mehr sehen 8-)

    Bytes funktionieren einwandfrei.

    Bits ließt er ohne erkennbare Struktur falsch. Die Werte, ob TRUE oder FALSE stimmen nicht. Wenn ich den Wert aber über iobroker überschreibe, ändert er es in der Wago an der richtigen Position.



  • Ich glaube, ich habe es jetzt, kann nur nicht sagen, ob es nen Anwendungsfehler, oder Scriptfehler ist.

    Geht man die Variablen in der Wago durch %MX1.0 - %MX1.15, so sind diese in ioBrocker genau gedreht. Gleiches gilt mit dem nächsten Abschnitt %MX2.0 - %MX2.15

    "Reversed" hier das Script im iobroker evtl. fälschlicherweise ein Array der Diskreten Eingänge?



  • Ich habe Kode analysiert und konnte kein Fehler finden.

    Da wird ein Telegram Typ 3 verwendet um multiple registers zu lesen.

    Kannst du Aliases ausschalten und die direkte Adressen verwenden?

    Dann sollte dein address so was wie 2298 sein. (oder 2297)



  • Wenn ich den Haken bei Aliases raus habe und dann z.b. die Adresse 2297 oder 2298 verwende, kommt````
    Poll error count: 6 code: Error: Illegal Data Address



  • Ich habe auf dem Git eine neue Version, die auch modbus RTU kann.

    Adressierung mit Alias habe ich auch geändert.

    Bitte testen.

    Es kann sein, dass die bestehende Adressen mit alias wo anders zeigen werden. Es wird in der Zukunft auch so bleiben.



  • Hallo Bluefox,

    eine Frage zu der RTU Erweiterung:

    Denkst du es wäre auch Möglich, Modbus RTU over TCP zu implementieren?

    Das ist quasi das RTU Protokoll über TCP geschickt, gute Erklärung dazu hier: http://www.simplymodbus.ca/TCP.htm

    Ich bräuchte dieses Feature um meine Lüftungsanlage anzubinden, dafür würde ich Modbus RTP over TCP benötigen



  • Hi Bluefox,

    Kompliment. Vieles geht nun wunderbar.

    Einzig bei den Reals ist mir noch ein kleiner Fehler aufgefallen.

    Auf der Adresse 13288 habe ich den Wert 25 liegen.

    Den bekomme ich aber nur zurück, wenn ich mit der Adresse 13289 auslese. Hier scheint die Adresse um eine Position verschoben zu sein. Das kann ich bei anderen Adressen des Typs Real auch nachvollziehen.



  • Hallo,

    ich würde auch gern was zu Modbus fragen. Ich lese damit meinen Wechselrichter aus (SE7K), funktioniert auch prima, die Werte kommen an.

    Allerdings sind die Werte skaliert bzw. mit einem sich ändernden (!) Faktor versehen.

    Beispiel: im Moment kommen gemäß LCD Display des WR ca. 3.800W vom Dach. Das zeigt der Modbus Adapter auch:
    filename="p1.JPG" index="0">~~ Der Wert im Register 40084 ist 3794 und der Skalierungsfaktor ist 0. Passt also alles.

    Sinkt der Ertrag ab (in diesem Fall auf 2.132W), so ändert sich der Wert im Register, aber auch der Skalierungsfaktor:
    455_p2.jpg Der Wert im Register 40084 springt auf 21320 und der Skalierungsfaktor auf -1, man muss also das Komma um eins nach links verschieben bzw den Wert des Registers 40084 durch 10 teilen, um 2.132,0 Watt rauszubekommen (würde im Modbus Adapter dem Faktor 0.1 entsprechen).

    Wie könnte ich das sinnvoll abbilden, damit ein dauerhaft richtiger Wert (für die History-Instanz) entsteht?

    Viele Grüße

    Christian



  • @ChristianF:

    Hallo,

    ich würde auch gern was zu Modbus fragen. Ich lese damit meinen Wechselrichter aus (SE7K), funktioniert auch prima, die Werte kommen an.

    Allerdings sind die Werte skaliert bzw. mit einem sich ändernden (!) Faktor versehen.

    Beispiel: im Moment kommen gemäß LCD Display des WR ca. 3.800W vom Dach. Das zeigt der Modbus Adapter auch:

    p1.JPG Der Wert im Register 40084 ist 3794 und der Skalierungsfaktor ist 0. Passt also alles.

    Sinkt der Ertrag ab (in diesem Fall auf 2.132W), so ändert sich der Wert im Register, aber auch der Skalierungsfaktor:

    p2.JPGDer Wert im Register 40084 springt auf 21320 und der Skalierungsfaktor auf -1, man muss also das Komma um eins nach links verschieben bzw den Wert des Registers 40084 durch 10 teilen, um 2.132,0 Watt rauszubekommen (würde im Modbus Adapter dem Faktor 0.1 entsprechen).

    Wie könnte ich das sinnvoll abbilden, damit ein dauerhaft richtiger Wert (für die History-Instanz) entsteht?

    Viele Grüße

    Christian `
    Nur mit einem Skript.



  • @NightWatcher:

    Hi Bluefox,

    Kompliment. Vieles geht nun wunderbar.

    Einzig bei den Reals ist mir noch ein kleiner Fehler aufgefallen.

    Auf der Adresse 13288 habe ich den Wert 25 liegen.

    Den bekomme ich aber nur zurück, wenn ich mit der Adresse 13289 auslese. Hier scheint die Adresse um eine Position verschoben zu sein. Das kann ich bei anderen Adressen des Typs Real auch nachvollziehen. `
    Das ist schon mal sehr gut.

    Um Fehler reproduzieren zu köffnen, brauche ich info:

    Alias: ja/nein

    Direkte Adresse: ja/nein

    ???



  • @tschombe:

    Hallo Bluefox,

    eine Frage zu der RTU Erweiterung:

    Denkst du es wäre auch Möglich, Modbus RTU over TCP zu implementieren?

    Das ist quasi das RTU Protokoll über TCP geschickt, gute Erklärung dazu hier: http://www.simplymodbus.ca/TCP.htm

    Ich bräuchte dieses Feature um meine Lüftungsanlage anzubinden, dafür würde ich Modbus RTP over TCP benötigen `
    Habe hier https://github.com/Cloud-Automation/nod … -254460761

    Genauso wie du eine Anfrage gestellt. Schauen wir mal an, ob was passiert.

    Ohne Gerät oder Simulator ist es schwer so was zu entwickeln.



  • @Bluefox:

    @NightWatcher:

    Hi Bluefox,

    Kompliment. Vieles geht nun wunderbar.

    Einzig bei den Reals ist mir noch ein kleiner Fehler aufgefallen.

    Auf der Adresse 13288 habe ich den Wert 25 liegen.

    Den bekomme ich aber nur zurück, wenn ich mit der Adresse 13289 auslese. Hier scheint die Adresse um eine Position verschoben zu sein. Das kann ich bei anderen Adressen des Typs Real auch nachvollziehen. `
    Das ist schon mal sehr gut.

    Um Fehler reproduzieren zu köffnen, brauche ich info:

    Alias: ja/nein

    Direkte Adresse: ja/nein

    ??? `

    Nichts leichter als das. Da Bilder mehr sagen als Wörter, anbei ein Screenshots.

    Die Adressen in der Wago lauten:

    13288

    13290

    13292

    13294

    13296
    1534_bild_002.png
    1534_bild_003.png
    1534_bild_004.png



  • Hi.

    Hardware für MODBUS TCP Variante hätte ich,

    Was und wie könnte/sollte man testen?

    Grüße

    Gesendet von meinem D5803 mit Tapatalk



  • Ob man die Werte einfach rauslesen kann. Mehr nicht.



  • @Bluefox:

    @tschombe:

    Hallo Bluefox,

    eine Frage zu der RTU Erweiterung:

    Denkst du es wäre auch Möglich, Modbus RTU over TCP zu implementieren?

    Das ist quasi das RTU Protokoll über TCP geschickt, gute Erklärung dazu hier: http://www.simplymodbus.ca/TCP.htm

    Ich bräuchte dieses Feature um meine Lüftungsanlage anzubinden, dafür würde ich Modbus RTP over TCP benötigen `
    Habe hier https://github.com/Cloud-Automation/nod … -254460761

    Genauso wie du eine Anfrage gestellt. Schauen wir mal an, ob was passiert.

    Ohne Gerät oder Simulator ist es schwer so was zu entwickeln. `

    Ja hab ich gesehen :mrgreen:

    vielleicht erbarmt sich ja einer von den Entwicklern.

    Ich denke meine Testumgebung könnte ich relativ schnell aktivieren, falls sich von den Entwicklern auf github

    jemand bereiterklärt das zu implementieren könnte ich zeitnah testen.

    Z.b. könnte ein Wireshark-Mitschnitt ggf helfen



  • @Bluefox:

    Ob man die Werte einfach rauslesen kann. Mehr nicht. `

    Das könnte unter Windows helfen: Ein Modbuse-Device Simulator, leider nicht für RTU over TCP, aber für allgemeine Tests evtl ganz hilfreich

    http://www.plcsimulator.org/


Log in to reply
 

Suggested Topics

  • 4
  • 3
  • 5
  • 3
  • 13
  • 138
  • 28
  • 4

1.3k
Online

25.3k
Users

31.4k
Topics

400.1k
Posts