NEWS
Modbus adapter
-
Vielen Dank Jens für die schnelle Antwort.
Tatsächlich war, dass der Fehler der mich in die Irre geführt hat, da keine Eingänge und Ausgänge merh konfiguriert waren.
Jetzt habe ich noch eine Frage.
Ich habe die Programmierung auf der SPS schon seit einiger Zeit, sie funktioniert auch so wie ich das haben will.
Wenn ich beim Iobroker einen Taster in der Visualisierung platziere und ihn betätige, kommt das Signal in der SPS erst an wenn ich vom Taster gehe und zwar für die eingestelle Zeit "Pulstime" vom Adapter Modbus.
Es muss sicherlich möglich sein, dass ein Taster in der Visu sich auch wie ein Taster bei der SPS verhält.
Sprich ich betätige den Taster in der Visu und so lange ich drauf bleibe kommt auch das Signal TRUE an der SPS an, sobald ich nicht mehr den Taster betätige geht das Signal auf FALSE.
Vielen Dank
-
Das ist bei mir auch so, habe ich soeben durch Versuch festgestellt.
Hatte mir darüber noch gar keine Gedanken gemacht. Das bedeutet, alles was ich über 'Tastendruck lang' in der SPS programmiert habe, funktioniert über die ioBroker-Visu nicht.
Nachdem ich mir das nun noch mal alles angeschaut habe (ist schon lange her, daß ich das programmiert habe), ist meine Theorie wie folgt:
In der Wago-Visu kann man die Taster unterschiedlich programmieren, Wert toggeln oder Wert tasten. Diese Möglichkeit habe ich in der ioBroker-Visu noch bei keinem Widget gefunden. Somit scheinen mir die Widgets, die man zum Licht schalten so verwendet, alle als Schalter programmiert zu sein. Erst die Logik in der SPS macht es möglich, daß das Ganze halbwegs funktioniert. Dort benutze ich für die Hardware- und WagoVisu-Taster einen Baustein aus der OscatLib (FbKurzLang), dessen Ergebnis dann zusammen mit dem Merker-Flag (was die ioBrokerVisu schaltet) in einem weiteren Baustein (auch aus irgendeinem Forum) verarbeitet wird. Das Merker-Flag stellt letztlich auch den Zustand der entsprechenden Lampe dar.
Sicherlich wäre es für die Experten möglich, ein Widget als reinen Taster zu programmieren, aber ich glaube durch die ganzen Poll und Delay Zeiten wird das über Modbus nicht funktionieren. Außerdem bräuchte man ein zweites Flag (Object), welches dann den Zustand (vom Licht) darstellt.
Zurück zu deiner Frage, ja, das Signal kommt in der SPS an, wenn du vom Taster gehst, offensichtlich ist MouseUp der Trigger zum Umschalten. Allerdings was du mit "für die eingestellte Zeit 'Pulstime'" meinst, verstehe ich nicht. Das Flag müßte doch solange den Zustand behalten, bis es wieder jemand aktiv umsetzt?
Gruß Jens
der Licht Baustein stammt übrigens von hier:
-
Hey Jens,
danke nochmals für die schnelle Antwort.
Ja ich will jetzt ungern in meine bestehende Programmierung anfangen etwas zu verändern.
Ich will, dass immer noch die SPS entscheidet ob ein gewisser Ausgang geschaltet werden darf oder nicht.
Ich habe es so programmiert, dass z.B die Jaloousie bei mir nur mit bestimmten Voraussetzungen verfahren darf.
Dazu gehört unter anderem, Bsp. wenn der "Taster_WZ kürzer als 2sec. betätigt wird fährt die Jalousie auf Handmodus besser gesagt sie fährt nur so lange der Taster_WZ betätigt ist.
Wird der Taster_WZ länger als 2 sec. betätigt schaltet die Jalousie auf Automatikmodus und man braucht nicht mehr den Taster betätigen damit die Jalousie auf ihre Endlage fährt."
Diesen FB habe ich indivisuell für mich erstellt und ist mit weiteren Voraussetzungen geknüpft.
In diese Richtung bewegt sich der Rest meiner Programmierung. Mit Sicherheit kann man das anderes in der SPS programmieren, da will ich aber jetzt nicht anfagen Sachen umzuprogrammieren damit es für Iobroker i.O ist.
Ich habe leider noch keine Erfahrungen mit "Skripte/CSS" gemacht bestimmt lässt sich da so ein Taster ohne Weiteres programmieren.
Ich wäre über weitere Antworten sehr dankbar Vielleicht sind hier Leute mit der selben Problematik.
-
Sollten wir vielleicht ein neues Thema anfangen?
z.Bsp.: Wago und ioBroker
Denn zum Thema Jalousien fallen mir sofort viele Fragen ein.
-
Wäre sofort dabei, ich glaube allgemein in Sachen Modbus und SPS in Kombination mit iobroker sind sehr viele Fragen offen.
-
Zum Thema Modbus - Wago gibt es aber auch schon Themen.
Ist das vielleicht schon etwas dabei?
-
Ich habe nicht alles durchgelesen aber gefunden habe ich nichts zu diesem Thema mit dem Taster.
-
hier
viewtopic.php?f=37&t=7943&p=83578&hilit … ter#p83578
gibt's ein Script, das könnte auch was für deinen Taster sein.
-
Hallo zusammen,
ich habe nach der Aktualisierung des Adapters in unregelmäßigen Abständen Abstürze bzw. Fehlermeldungen im Log. Ist das bereits bekannt?
Der Adapter läßt sich nach wie vor bedienen.
Der Adapter ist wirklich toll. Funktioniert schnell und sehr stabil. Was man von manchen kommerziellen OPC Servern wirklich nicht behaupten kann.
Hab den Debuglog mal eingeschaltet. Bei Interesse kann ich den gerne zur Verfügung stellen.
Gruß
Thomas
-
Ich habe heute festgestellt, dass der Adapter jedenfalls in v 2.0.9 reproduzierbar abstürzt, wenn negative Werte via "Eingangsregister" geschrieben werde sollen. ich übertrage so etwa die Außentemperatur an meine UVR1611. Das Problem lässt sich einfach reproduzieren, indem irgendein Wert per Offset ins Negative gezogen wird. Das Log sieht so aus:
` > host.tinkerboard 2018-11-03 17:03:44.681 error instance system.adapter.modbus.0 terminated with code 6 (uncaught exception)
Caught 2018-11-03 17:03:44.681 error by controller[0]: at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
Caught 2018-11-03 17:03:44.681 error by controller[0]: at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
Caught 2018-11-03 17:03:44.680 error by controller[0]: at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:157:27)
Caught 2018-11-03 17:03:44.680 error by controller[0]: at that.states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4632:61)
Caught 2018-11-03 17:03:44.680 error by controller[0]: at adapter.getStates (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:387:18)
Caught 2018-11-03 17:03:44.680 error by controller[0]: at Slave._initValues (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:362:22)
Caught 2018-11-03 17:03:44.679 error by controller[0]: at Slave.write (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:89:29)
Caught 2018-11-03 17:03:44.679 error by controller[0]: at Object.writeValue (/opt/iobroker/node_modules/iobroker.modbus/lib/common.js:168:20)
Caught 2018-11-03 17:03:44.679 error by controller[0]: at Buffer.writeUInt16BE (buffer.js:1254:5)
Caught 2018-11-03 17:03:44.679 error by controller[0]: at checkInt (buffer.js:1185:11)
Caught 2018-11-03 17:03:44.678 error by controller[0]: TypeError: "value" argument is out of bounds
modbus.0 2018-11-03 17:03:43.617 error at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
modbus.0 2018-11-03 17:03:43.617 error at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
modbus.0 2018-11-03 17:03:43.617 error at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:157:27)
modbus.0 2018-11-03 17:03:43.617 error at that.states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4632:61)
modbus.0 2018-11-03 17:03:43.617 error at adapter.getStates (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:387:18)
modbus.0 2018-11-03 17:03:43.617 error at Slave._initValues (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:362:22)
modbus.0 2018-11-03 17:03:43.617 error at Slave.write (/opt/iobroker/node_modules/iobroker.modbus/lib/slave.js:89:29)
modbus.0 2018-11-03 17:03:43.617 error at Object.writeValue (/opt/iobroker/node_modules/iobroker.modbus/lib/common.js:168:20)
modbus.0 2018-11-03 17:03:43.617 error at Buffer.writeUInt16BE (buffer.js:1254:5)
modbus.0 2018-11-03 17:03:43.617 error at checkInt (buffer.js:1185:11)
modbus.0 2018-11-03 17:03:43.617 error TypeError: "value" argument is out of bounds
modbus.0 2018-11-03 17:03:43.616 error uncaught exception: "value" argument is out of bounds</anonymous></anonymous> `
-
Ich habe die gleichen Meldungen wie Mr. Burns.
Ich vermute bis jetzt, dass das Problem auf der Cient Seite liegt und sich mein Solaredge Wechselrichter für einige Zeit vom Bus verabschiedet.
@Mr. Burns: was für ein Gerät ist angeschlossen? Wechselrichter von Solaredge?
-
Hallo zusammen,
ich versuche zur Zeit meine Vallox Lüftungsanlage mit dem Modbus Adapter abzufragen (Modbus RTU). Leider gelingt mir das nur zum Teil. Wenn ich den Adapter starte, bekomme ich ca. 10-15 Minuten Werte geliefert. Danach disconnected sich der Adapter und versucht danach erfolglos wieder eine Verbindung aufzubauen. Anbei das Log:
modbus.0 2018-11-12 21:40:59.402 info Disconnected from slave
modbus.0 2018-11-12 21:40:58.404 warn Poll error count: 2 code: {"err":"timeout"}
modbus.0 2018-11-12 21:40:58.404 error Request timed out.
modbus.0 2018-11-12 21:40:58.403 warn Error: undefined
modbus.0 2018-11-12 21:40:48.388 info Connected to slave
modbus.0 2018-11-12 21:39:48.198 info Disconnected from slave
modbus.0 2018-11-12 21:39:47.197 warn Poll error count: 1 code: {"err":"timeout"}
modbus.0 2018-11-12 21:39:47.196 error Request timed out.
modbus.0 2018-11-12 21:39:47.192 warn Error: undefined
modbus.0 2018-11-12 21:30:13.981 info Connected to slave
modbus.0 2018-11-12 21:30:13.547 info starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.12.0
IOBroker läuft auf einem Debian, welches mittels Virtual Box auf einem Windows 10 visualisiert ist. Die Lüftungsanlage ist via RS485 USB Adapter angeschlossen.
Hat jemand eine Idee warum es zu den Verbindungsabbrüchen kommt?
Bis jetzt konnte ich immer die passende Antworten für meine ioBroker Projekte im Forum finden (Bis jetzt ). Ich habe schon gefühlt mit sämtliche Einstellungen ausprobiert, leider ohne Erfolg.
-
Hallo,
ich habe exakt die gleichen Fehler wie Teamgeist610 beschrieben hat.
Mitlerweile connected der Adapter überhaupt nicht mehr.
Neuinstallation brachte auch nichts.
-
Hallo zusammen,
ich versuche zur Zeit meine Vallox Lüftungsanlage mit dem Modbus Adapter abzufragen (Modbus RTU). Leider gelingt mir das nur zum Teil. Wenn ich den Adapter starte, bekomme ich ca. 10-15 Minuten Werte geliefert. Danach disconnected sich der Adapter und versucht danach erfolglos wieder eine Verbindung aufzubauen. Anbei das Log:
modbus.0 2018-11-12 21:40:59.402 info Disconnected from slave
modbus.0 2018-11-12 21:40:58.404 warn Poll error count: 2 code: {"err":"timeout"}
modbus.0 2018-11-12 21:40:58.404 error Request timed out.
modbus.0 2018-11-12 21:40:58.403 warn Error: undefined
modbus.0 2018-11-12 21:40:48.388 info Connected to slave
modbus.0 2018-11-12 21:39:48.198 info Disconnected from slave
modbus.0 2018-11-12 21:39:47.197 warn Poll error count: 1 code: {"err":"timeout"}
modbus.0 2018-11-12 21:39:47.196 error Request timed out.
modbus.0 2018-11-12 21:39:47.192 warn Error: undefined
modbus.0 2018-11-12 21:30:13.981 info Connected to slave
modbus.0 2018-11-12 21:30:13.547 info starting. Version 2.0.9 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.12.0
IOBroker läuft auf einem Debian, welches mittels Virtual Box auf einem Windows 10 visualisiert ist. Die Lüftungsanlage ist via RS485 USB Adapter angeschlossen.
Hat jemand eine Idee warum es zu den Verbindungsabbrüchen kommt?
Bis jetzt konnte ich immer die passende Antworten für meine ioBroker Projekte im Forum finden (Bis jetzt ). Ich habe schon gefühlt mit sämtliche Einstellungen ausprobiert, leider ohne Erfolg. `
Hallo,
konnten ihr zu dem Fehler schon was raus finden? Ich habe den gleichen Fehler. Bei mir läuft der Adapter nach einem Neustart ca. einen halben Tag ohne Probleme und dann bekomme ich immer die "Request timed out"-Fehler. Nach einem Neustart funktioniert wieder alles.
Danke euch!
Viele Grüße
Michael
-
Hallo zusammen,
bei mir läuft der Modbus adapter ohne Probleme, allerdings anderes Endgerät.
Welche Timeout, reconnect werte etc. verwendet ihr?
das sind meine Werte, die waren im Hanbuch bei mir erwähnt. Wenn ich zu häufig die Werte abgefragt habe, hatte ich auch andere Probleme, bsp. Verbindungsabbruch aber mit einem einfachen adapter neustart war das nicht behoben, ich musste warten bis das andere Geräte wieder reagierte.
Also der modbus adapter hat dazu geführt das ein Fehler im Zielgerät auftrat… nicht ganz das selbe wie bei Euch aber ggf. einen Versuch wert.
-
Danke dir für deine Antwort.
Ich hab jetzt den Slave-Raspberry, auf dem der Modbus Adapter läuft nochmal komplett aufgesetzt und jetzt funktioniert es ohne Probleme seit zwei Tagen. Ich glaub hier lief allgemein was nicht ganz rund.
Hab jetzt auch Poll-Delay, Reconnect-Zeit und Read-Timeout jeweils auf 60 Sekunden gesetzt. Evtl lag es auch an dem.
-
Ich kenne das timeout Problem ebenfalls. Ich konnte mein Problem lösen, indem ich zwischen dem iobroker raspi mit der modbus Instanz und den angeschlossenen modbus Geräten nur einen Switch setzen durfte. Sobald der zweite Switch ins Spiel kam, kam sporadisch der timeout; unabhängig von den timeout Einstellungen innerhalb der modbus Instanz.
-
Hallo zusammen,
ich habe auch das bekannte Problem und komme hier einfach nicht weiter. Ich habe den Modbus Adapter mit einem Raspi und einem USB-Seriell Interface in Betrieb. Dieser kommuniziert mit Klimaanlagen über Modbus RTU. Es werden auch eine Vielzahl von Daten ausgetauscht und das Ganze funktioniert auch nach langem Spielen mit den Timeouteinstellungen im Adapter für Stunden stabil. Nur plötzlich kommt dann, in diesem Fall nach einem Tag, der Error wie im angehängtem Bild. Nur ein Neustart des Adapters löst das Problem. Ich könnte natürlich den Adapter über den Scheduler neu starten aber das ist ja nicht die wahre Lösung. Evtl. kann mir bzw. uns hier Bluefox weiter helfen. Ich verzweifel langsam und hoffe auf eure Ideen. Vielen Dank schon mal im Voraus.
-
Bei mir trat der Fehler auch wieder auf. Ich konnte das Problem aber jetzt eingrenzen.
Mein Raspberry im Keller teilt sich eine Aufputz Zweifachsteckdose mit meinem Zentralstaubsauger.
Jedesmal wenn der Staubsauger eingeschaltet wird, kommen die Fehlermeldungen vom Modubusadapter.
Der Adapter muss dann neugestartet werden und dann funktioniert wieder alles.
Ich hab jetzt den Staubsauger an einer anderen Steckdose angesteckt und seitdem läuft der Adapter super.
Es liegt also bei mir an einem Stromproblem vom Raspberry. Evtl hilft dir dies weiter.
-
In diesem Fall ist eine "gute" Spannungsversorgung für den Raspi wichtig.
Also kein altes Handy/Tablet Ladegerät verwenden sondern etwas gescheites. Seit ich meine beiden PI's mit einem Hutschienennetzteil betreibe schnurren die beiden auch was Modbus betrifft-