NEWS


  • Re: Frage zu Modbus

    Hallo zusammen,
    ich habe hier schon die Suche bemüht, allerdings bin ich blöd oder stehe auf dem Schlauch:

    Habe ein 16-Kanal Relais mit Modbus-unterstützung gekauft. In freudiger Erwartung, es über ioBroker und den Modbus-Adapter steuern zu können.
    Der Hersteller hat mir auch eine ausführliche Doku mitgeliefert, hier ein kleiner Auszug:

    9600 Baud ,8N1
    Slave ID: 1
    
    Beispiele:
    Channel 1 Open :  01 06 00 01 01 00 D9 9A
    Channel 1 Close : 01 06 00 01 02 00 D9 6A
    Channel 1 Toggle: 01 06 00 01 03 00 D8 FA
    Channel 1 Latch:  01 06 00 01 04 00 DA CA
    
    Channel 2 Open :  01 06 00 02 01 00 29 9A
    Channel 2 Close : 01 06 00 02 02 00 29 6A
    Channel 2 Toggle :01 06 00 02 03 00 28 FA
    Channel 2 Latch : 01 06 00 02 04 00 2A CA
    
    ...
    

    Die Logik von Modbus bzw. wie die Befehle für das Relais aufgebaut sind erschließen sich mir schon.
    Byte 1: Addresse (Slave ID)
    Byte 2: "Typ" (06 für Command?)
    Byte 3&4: Register-Adresse
    Byte 5: Kommando (01=öffnen, 02=schließen, ...)
    Byte 6: Delay
    Byte 7&8: CRC Checksum

    Nur:
    Wo soll ich das im Modbus-Adapter eintragen?
    Diskrete Ausgänge? Holding Register?
    Als Adresse einfach die 1?
    Und wie schalte ich dann die Relais?

    bitte einmal für Dumme 😞

    Danke vielmals vorab!


  • also, ich habe vieles probiert, vieles gelesen.
    ich bekomme das Relais auch über das Tool "ModbusPoll" angesprochen (über Windows PC und meinen RS485-to-USB Adapter).

    Aber ich kann der Doku des Adapters im github leider wirklich nicht die notwendige Info entnehmen, wo/wie die Steuerbefehle im Adapter eingetragen werden müssten.

    @Bluefox, kannst Du mir vielleicht hier einfach einen Schubs in die richtige Richtung geben?
    Oder gibt es jemanden, der ebenfalls ein Relais über den Adapter steuert und einen Screenshot machen könnte.
    Ich glaube, viel mehr brauch ich nicht..

    Danke!


  • Hier habe ich mal die Doku hochgeladen, die vom Verkäufer mitgeleifert wurde.
    Mitsamt Video, wie er das über "Modbus Poll" steuert. genau so habe ich es auch zum Laufen gebracht.
    Aber - wie gesagt - ich habe immer noch keinen blassen Schimmer, wie ich die Steuerbefehle in den Adapter eintragen soll 😞

    https://www.dropbox.com/sh/mx7wn5hpnwfv940/AABeftE_QS4KWlnBJV-2_nAza?dl=0


  • @kanonidom Hallo Kanonidom,
    dann sind wir jetzt zu zweit. Stehe vor dem gleichen Problem wie du. Habe ein ähnliches Relais und bekomme es einfach nicht über Modbus und IOBroker angesprochen.
    Das einzige Erfolgserlebnis war ein "false" unter Objects-> Status für das erste Relais. Ansonsten bricht die Verbindung immer ab:

    modbus.0 2021-04-09 19:28:50.709 warn (19917) Poll error count: 1 code: {"err":"timeout","timeout":50000}
    modbus.0 2021-04-09 19:28:50.698 error (19917) Client in error state.
    modbus.0 2021-04-09 19:28:50.695 error (19917) Request timed out.
    modbus.0 2021-04-09 19:28:50.690 warn (19917) Error: undefined
    modbus.0 2021-04-09 19:28:00.660 info (19917) Connected to slave

    Meine bisherigen Erkenntnisse sind:
    Diskrete Eingänge sind die, die du nicht hast. Da kann man einen Taster anschließen (Lichtschalter als Taster o.ä.)
    Diskrete Ausgänge: Dort werden die Adressen der Relais eingetragen. Der digitale Teil sozusagen, es gibt nur 1 oder 0
    Eingangsregister und Holding sind für analoge Geräte gedacht. Temperaturmessung, Spannung etc.

    In den Anleitungen stehen die Adressen etc. im HEX- Code, IOBroker arbeitet aber mit Dezimalzahlen, d.h. du musst die Werte erst umrechen.
    Schalten kann man das Relay dann später in den Objekten, in denen dann alle stehen sollten (wenn wir mal soweit wären 🙂 )

    Auf den "False" Zustand bin ich damit gekommen
    ![0_1617990996081_Bildschirmfoto von 2021-04-09 19-52-10.jpg](Uploading 100%)
    Schalten läßt es sich trotzdem nicht, war aber schonmal ein Erfolgserlebnis. Falls es mit "Switch" nicht klappt, versuch mal "State"

    OK, ich habe einen kleinen Vorteil. Ich habe folgendes Relais genommen: link text
    Das hat zusätzlich noch einen Ethernet- Anschluss mit MQTT und das funktioniert einwandfrei.
    Im Internet habe ich auch einige Posts gefunden, in denen geschrieben wurde, dass diese Relais nicht dem Modbus- Standard entsprechen und nur ein paar RS485- Befehle verstehen. Auf der anderen Seite funktionieren sie ja mit den anderen Testprogrammen wie sie sollen.

    Viele Grüße
    Henning

    PS: Ich hoffe nur, das jetzt jemand mit viel Ahnung alles zerreist was ich geschrieben habe und die Lösung für unser Problem schreibt 🙂


  • @kanonidom

    Also diese Platine habe ich jetzt nicht aber habe schon viel mit Modbus rum gebastelt.
    Bei dem Adapter ist es wichtig die richtige adresse zu haben wenn es die falsche ist wird der rot und geht danach nur noch mit neustart wieder. Leider muss man die genaue adresse haben das ist aber etwas modbus Spezifiches. Was sich da zusammen setzt gerade bei serial sehr tricki.
    Ich würde es über die Holding register versuchen. Es kann sein das die platine mit einer Deziaml zahl arbeitet sprich. 1= eingang 1, 2=eingang 2, 3=eingang 1 und 2 geschaltet, usw. dafür habe ich mal ein script gebaut um das umzurechnen. Byte-rechner.json nach dem was ich in der anleitung überflogen habe könnte das so passen. Also über ein Holdin register und den den rest mit der ganzzahl.


  • @thabam Hallo ThaBam, es hat funktioniert. Nachdem ich die Adressen 40001- 400018 als State angelegt habe, wurden einige Werte angezeigt. Viele sind auf 0 aber der wichtigste war dabei. Bei meinem Teil wird im Register 40002 addiert:
    Relais 1 on= 1
    Relais 2 on=2
    Relais 3 on= 4
    Relais 1+3 on, 2 off = 5

    Dummerweise kann aber nur der Status abgefragt werden. Versucht man zu schreiben, kommt die Fehlermeldung "(16900) Cannot write [1]: {"err":"timeout","timeout":5000}". In den Einstellungen auf "Do not use Write multiple Registers" kann zwar angeklickt werden, ist aber nach dem Abspeichern und erneuten Aufrufen wieder weg. Der Tip aus link text hat auch nicht funktioniert.

    Vielen Dank für die Hilfe, so hatte ich wenigstens ein Erfolgserlebnis mit Modbus. Du schreibst, du hast schon viel damit rumgebastelt. Läuft bei dir etwas mit Modbus oder war es zu instabil o.ä.?

    Bildschirmfoto von 2021-04-10 19-37-58.png
    [0_1618077144263_Bildschirmfoto von 2021-04-10 19-37-58.png](Uploading 100%)

Suggested Topics

1.4k
Online

38.3k
Users

43.7k
Topics

611.2k
Posts