Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus Lesen und Schreiben auf Wago 750-881 [Gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Modbus Lesen und Schreiben auf Wago 750-881 [Gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dolomiti
      Dolomiti last edited by

      Hallo,

      ich gehe mal davon aus, dass die Temperatur via MQTT als Datenpunkt vorliegt. Ich habe mich mit MQTT noch nicht beschäftigt. Als nächstes musst du im Modbus-Adapter unter Holding-Register die Adresse in der Wago anlegen. Das Handbuch listet im Kapitel 12 die Registerbelegung auf. Wenn du also %MD100 beschreiben willst, musst die im ioBroker die Adresse 12488 bei Holding-Register anlegen. Erklärung hierzu:

      Laut Handbuch Merker ab 12288 beschreibbar. Da du Double-Werte schreiben willst sind dies immer 2 Register -> MD100 = 200 Register (Word) -> 12288+200 = 12488.

      Lesen ist ähnlich: Bei diskrete Eingänge die Adresse 12292 anlegen. Startadresse wieder 12288 + 4 (Merker 0.4).

      Man muss hier auf passen, da der Merkerbereich immer bei 12288 anfängt, also %MX0.1 ist ein binärer Merker ist aber genauso im %MW0 und %MD0 vorhanden. Dazu habe ich irgendwo mal eine Exceltabelle gefunden, die ich mal anhänge.

      Wenn du alle Datenpunkte angelegt hast musst du dir noch ein Skript schreiben welches bei Änderung der Temperatur diese auf das entsprechende Register schreibt. Geht vielleicht auch eleganter, aber ich bin nicht so der Skriptspezialist. Im https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state steht etwas von

      To simply connect two states with each other, write:
      
      on('stateId1', 'stateId2');
      
      All changes of stateId1 will be written to stateId2.
      

      Gruß

      Thomas
      2411_wago-modbus-adressen.xlsx

      1 Reply Last reply Reply Quote 0
      • S
        stromer66 last edited by

        Vielen Dank für deine Tipps.

        Das mit dem Lesen klappt auch soweit jetzt, nur mit dem Schreiben hapert es noch.

        Das Skript mit dem der wert von MQTT in das Modbus Register geschrieben wird funktioniert, das habe ich mit Blockly erstellt.

        IoBroker scheint auch auf das richtige Register in Codesys zuzugreifen, nur überträgt er einfach nicht den Wert obwohl der Wert in der Objektliste auftaucht der geschrieben werden soll.

        Vielleicht kann mir ja jemand helfen.

        1 Reply Last reply Reply Quote 0
        • S
          stromer66 last edited by

          Hallo

          mal wieder ein Update.

          Lesen klappt eigentlich wunderbar, nur Schreiben bereitet mir immer mehr Probleme.

          Wenn ich die Adresse 12306 einfach händisch beschreibe wird der Wert sauber übertragen. Lasse ich mein Skript laufen wird mir zwar in der Objektansicht der Wert angezeigt und auch entsprechend aktualisiert (Ansicht Objekte) aber nicht zur Wago übertragen. Es passiert einfach nichts.Der zuletzt händisch übertragene Wert bleibt einfach stehen.

          Habe ich einen Denkfehler in meinem Skript (die Multiplikation mit 100 mache ich um die Kommastellen in eine ganze Zahl umzuwandeln, damit ich mit dem Datenformat klarkomme) oder liegt hier ein genereller Fehler vor.

          Außerdem kommt bei mir immer mehr die Frage auf was die ganzen Werte die ich in der Spalte "Rolle" einstellen kann für einen Sinn haben?

          Also Fragen über Fragen, ich hoffe mir kann jemand helfen.
          9326_codesys.jpg
          9326_iobroker_instanz.jpg
          9326_iobroker.jpg
          9326_iobroker_skript.jpg

          1 Reply Last reply Reply Quote 0
          • Dolomiti
            Dolomiti last edited by

            Nimm mal den Haken bei CW beim Register 12304 raus.

            1 Reply Last reply Reply Quote 0
            • S
              stromer66 last edited by

              Hallo das hat leider nichts gebracht.

              Ich habe jetzt mal alle Adressen auf die ich lesend zugegriffen habe auch mal gelöscht. Auch dann klappt es nicht.

              Langsam bin ich am Ende :?

              1 Reply Last reply Reply Quote 0
              • Dolomiti
                Dolomiti last edited by

                Kannst du mal dein Blockly exportieren und hier posten. Ich probier das mal an meinem Testsystem aus.

                Gruß

                Thomas

                1 Reply Last reply Reply Quote 0
                • S
                  stromer66 last edited by

                  Also wenn ich den automatisch eingetragenen Wert in der Objektliste anklicke, so das ich ihn editieren könnte, wird er übertragen.

                  Also sieht es so aus als wenn ich die Übertragung aktivieren müsste.aber wie?????????

                  1 Reply Last reply Reply Quote 0
                  • S
                    stromer66 last edited by

                    Hallo

                    ich habe den Blockly exportiert.

                    <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">

                    <block type="on_ext" id="W0As]a,[q5I,{{RNGICx" x="-312" y="13"><mutation items="1"></mutation>

                    <field name="CONDITION">ne</field>

                    <value name="OID0"><shadow type="field_oid" id="K?bn+]ZoWWW]7WdJ,ITS"><field name="oid">mqtt.0.Bad_unten.Bad_unten.Luftfeuchtigkeit</field></shadow></value>

                    <statement name="STATEMENT"><block type="update" id="RNH(k;~btRWeOed(}lN}"><mutation delay_input="false"></mutation>

                    <field name="OID">modbus.2.holdingRegisters.12306_test</field>

                    <field name="WITH_DELAY">FALSE</field>

                    <value name="VALUE"><block type="math_arithmetic" id="|XBX5G581KA.nBxSoIH4"><field name="OP">MULTIPLY</field>

                    <value name="A"><shadow type="math_number" id="SRq./}*,tmVXrHBL?1CB"><field name="NUM">1</field></shadow>

                    <block type="get_value" id="c9mFy}GzM7deCQX5T`~n"><field name="ATTR">val</field>

                    <field name="OID">mqtt.0.Bad_unten.Bad_unten.Luftfeuchtigkeit</field></block></value>

                    <value name="B"><shadow type="math_number" id="@JW}_lm|{yc-mk]=I%"><field name="NUM">100</field></shadow></value></block></value></block></statement></block>

                    <block type="variables_get" id="a,:_/cb)XP]Xo#~c5RYs" x="-13" y="63"><field name="VAR">umrechnung</field></block></xml>

                    1 Reply Last reply Reply Quote 0
                    • S
                      stromer66 last edited by

                      Und hier nochmal als Screenshot
                      9326_blockly.jpg

                      1 Reply Last reply Reply Quote 0
                      • Dolomiti
                        Dolomiti last edited by

                        So, es funktioniert. Habe mir mal den Code vom Blockly anzeigen lassen und den auf mein Testsystem angepasst.

                        on({id: 'modbus.0.inputRegisters.0_T_WZ_AI', change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          setState("modbus.1.holdingRegisters.770_ID129", (getState("modbus.0.inputRegisters.0_T_WZ_AI").val * 1), true);
                        });
                        

                        Mir ist aufgefallen, dass beim setState ein "true" dranhängt. Das ist lt. Doku der ack-Wert. Wenn ich das richtig verstehe denkt ioBroker, das der Wert geschrieben wurde. Habe den Code also als neues Skript angelegt und ",true" gelöscht. Damit funktioniert es.

                        Du musst nicht den Blockly-System-Baustein "aktualisiere" nehmern sondern "steuere". Damit geht es. Ich weiß nicht genau den Unterschied, da kann vllt. einer der anderen Experten weiterhelfen.

                        Gruß

                        Thomas

                        1 Reply Last reply Reply Quote 0
                        • Dolomiti
                          Dolomiti last edited by

                          Habe die Erklärung für "steuere" und aktualisiere" gefunden

                          viewtopic.php?t=6902#p71565

                          1 Reply Last reply Reply Quote 0
                          • S
                            stromer66 last edited by

                            Vielen Dank für deine Bemühungen!!!!!!

                            Genau das war es. 😄

                            viele Grüße aus dem Norden

                            Uwe

                            1 Reply Last reply Reply Quote 0
                            • Dolomiti
                              Dolomiti last edited by

                              Gern geschehen.

                              Kannst du den Titel noch um ein [Gelöst] vorne ergänzen.

                              Gruß aus dem Rheinland

                              Thomas

                              1 Reply Last reply Reply Quote 0
                              • Z
                                Zimbl @stromer66 last edited by

                                @stromer66 kannst du mir sagen, welche Konfiguration du genommen hast....bei der Wago und beim IOBroker ? Ich bekomme keine Verbindung zustande...von der Wago aus dem IOBroker kann ich lesen. Aber ich kann nichts auf die Wago schreiben...

                                Vielen Dank

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                857
                                Online

                                31.9k
                                Users

                                80.3k
                                Topics

                                1.3m
                                Posts

                                3
                                15
                                3460
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo