NEWS
Modbus Lesen und Schreiben auf Wago 750-881 [Gelöst]
-
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 -
Nimm mal den Haken bei CW beim Register 12304 raus.
-
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 :?
-
Kannst du mal dein Blockly exportieren und hier posten. Ich probier das mal an meinem Testsystem aus.
Gruß
Thomas
-
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?????????
-
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>
-
Und hier nochmal als Screenshot
9326_blockly.jpg -
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
-
Habe die Erklärung für "steuere" und aktualisiere" gefunden
-
Vielen Dank für deine Bemühungen!!!!!!
Genau das war es.
viele Grüße aus dem Norden
Uwe
-
Gern geschehen.
Kannst du den Titel noch um ein [Gelöst] vorne ergänzen.
Gruß aus dem Rheinland
Thomas
-
@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