NEWS
Modbus adapter
-
Bei mir kann ich, wenn ’Serial‘ gewählt ist, nicht von ’Master’ auf ’Slave’ umstellen.
18084_5545d6f6-a762-4ddd-9feb-43f9136ebdd4.jpeg -
Ok.
Dann reden wir über etwas anderes.
Bei mir ist die Modbus Instanz immer der MASTER und das Gerät welches ich Auslese quasi der Slave.
Meine PIs laufen als Slaves in einer ioBroker Multihost Umgebung.
Warum willst das die Instanz als Slave laufen lassen?
Gesendet von iPhone mit Tapatalk Pro
-
Ok. Danke für die Info.
Ich benutze ein übergeordnetes System, was ich lieber als Modbus-Master betreiben würde.
Ich möchte den ioBroker quasi als Datensammler bzw. Gateway benutzen. Sodass die eigentlichen Funktionen übergeordnet bearbeitet werden.
Wenn nun weitere Geräte/2.ioBroker dazu kommt, wird es schwieriger diese Signale an das übergeordnete System durchzureichen.
-
Hier ist ein ähnliches Problem.
Modbus Adapter in aktueller Version mit einem Energiezähler (SDM120 von B+G) (soll an sich mal mehr werden).
Die Kommunikation läuft auch nach dem Start des Adapters sauber. Irgendwann gibt es dann timeouts und nichts geht mehr. Lasse ich den Adapter einfach in Ruhe, wird irgendwann wieder kommuniziert. Die genauen Zeitlichen Abstände oder einen Zusammenhang konnte ich leider noch nicht ausmachen.
Hat dazu noch jemand eine Idee? Aufgrund der teilweise Stundenlangen funktionalität bin ich geneigt erst mal Kabel oder Widerstände auszuschließen. Oder denke ich da zu kurz?
Genutzt wird hier ein RS485 HAT auf einem Raspberry im Slave betrieb.
Ich habe jetzt auch mal einen RS485 USB Stick bestellt. Dann kann ich mal direkt an den Iobroker Master unter Debian gehen.
Haben die Leute mit den Verbindungsabbrüchen auch immer Raspberrys im Einsatz? Und was nutzen die, bei denen es problemlos läuft?
-
Ich habe PI's im Einsatz und immer den Stick von Digitus. Dazu Verbindung mit CAT6 Kabel und Anschlußwiderstände.
-
Ich habe PI's im Einsatz und immer den Stick von Digitus. Dazu Verbindung mit CAT6 Kabel und Anschlußwiderstände. `
Ich habe mir jetzt zusätzlich auch den Digitus Stick bestellt. Vielleicht muss ich auch noch 120 Ohm Widerstände besorgen. Ich habe momentan je 2 Widerstände mit rechnerisch 121 Ohm… aber das sollte ja nicht weiter relevant sein.
Ist es eigentlich egal welche Art Widerstand man verwendet?
-
Die Art des Widerstandes sollte egal sein.
-
Hi!
Der Modbus Adapter trennt ja relativ fix die Verbindung wenn ein Fehler aufgetreten ist. So auch bei Registern die aktuell nicht geschrieben werden können. Bei meinem Zähler muss vorher das Schreiben am Zähler temporär aktiviert werden.
Sobald der Schreibvorgang fehlschlägt, ist die Verbindung weg. Damit kann ich leben. Leider wird dann aber auch nicht neu verbunden. Erst wenn ich den Adapter neu starte, läuft die Kommunikation wieder.
Ist das beabsichtigt, bzw. muss das so? Ich glaube das dies auch bei jedem anderen Fehler der Fall ist. Das sorgt früher oder später zu einem Kommunikationsabbruch. Eventuell ist das ein Problem des Adapters? Oder Generell ein Modbus "Feature"?
Edit: Kann es sein, dass der Raspberry zwischendurch den /dev/ttyAMA0 für eine andere Anwendung missbraucht und deswegen die Verbindung abbricht? Und bei einem Neustart des Adapters holt sich iobroker das Interface wieder? die Serielle Konsole habe ich schon deaktiviert, aber sonst wüsste ich nicht wo und wie ich suchen soll….
-
Hallo Wendy!
Da ich so wie Du B+G Energiezähler abfrage, aber dabei leider nicht so erfolgreich bin:
Kannst Du hier nochmal deine aktuellen Einstellungen schicken? Einmal die Adaptereinstellungen und auch mal Beispielhaft die Register.
Ich habe in einem anderen Beitrag von dir gelesen, dass Du die "Holding register" nutzen musst damit es geht. Leider erhalte ich da zwar keine Fehler, aber auch nur "0" als Wert.
Mit den Input Registern erhalte ich Werte, aber nach einer gewissen Zeit verliert der Adapter die Verbindung und kann nicht neu verbinden.
Ich habe sämtliche Hardware Varianten durch. Den Digitus Adapter, diverse Kabel, Widerstände sind auch drin… Ich weiss einfach nicht mehr woran es liegen soll. Mittlerweile glaube ich schon an einen Fehler des Adapters, aber dann dürfte es bei Dir ja nicht gehen.
btw: Welchen Zähler genau liest Du aus? Ich habe hier aktuell diverse SDM120 zum testen...
Warum kann der Adapter sich nicht neu verbinden? Es gibt einen Fehler... OK... aber warum muss ich den kompletten Adapter neu starten? Was wird beim Neustart gemacht, was nicht auch beim wiederherstellen der Verbindung passieren kann?
-
Werde versuchen das morgen zu erledigen…
Hoffentlich vergesse ich das nicht [emoji51]
Gesendet von iPhone mit Tapatalk Pro
-
Werde versuchen das morgen zu erledigen…
Hoffentlich vergesse ich das nicht [emoji51]
Gesendet von iPhone mit Tapatalk Pro `
Ich werde dich notfalls dezent erinnern! :lol:
Vielen Dank schon mal!
-
Hi,
ich habe diesen Zähler: PRO380-Mod Inepro
Settings:
Register:
Noch einen zweiten Zähler den ich aber aus Zeitgründen bisher nur mit einem Register zum Testen versehen habe. Meine der ist vom EMH… sicher bin ich aber nicht :oops:
-
Danke für die Screenshots!
Läuft der Adapter bei Dir schmerzfrei durch, oder machst Du automatische Neustarts?
Ich bekomme einfach keine Kommunikation hin, die länger als ein paar Minuten steht.
Unter windows kann ich den Zähler abfragen wie ich will, das juckt den nicht. Der Adapter scheint irgendwo nicht ganz rund zu laufen. Ich habe nur keinen blassen Schimmer wo…
-
Läuft seit Monaten ohne Probleme.
Versuche es erstmal mit nur einem Register und schaue ob das stabil läuft.
Wenn es Probleme mit mehreren hat vermute ich ein timing Problem.
Gesendet von iPhone mit Tapatalk Pro
-
Ich habe jetzt mal einen RS485 Converter an meine Windows 10 VM durchgereicht und dort mit dem Tool QModMaster den Zähler permanent abgefragt.
Das klappt genauso wie in IOBroker eine Weile ohne Probleme. Irgendwann (einer in mehreren Minuten) ist mal ein Poll dazwischen, der in ein Timeout läuft. Hier pollt QModMaster aber einfach weiter und der nächste Poll ist direkt wieder erfolgreich.
An diesem Punkt scheint mit dem Modbus Adapter irgendwas falsch zu sein. Denn sobald hier ein Timeout erfolgt, gehen alle folgenden Abfragen schief und der Adapter muss erst neu gestartet werden.
Vielleicht kann ja einer der Entwickler mal was dazu sagen. Ist es wirklich ein "Design Problem" in dem Adapter? Ich habe mal bei Guthub ein Issue aufgemacht… Vielleicht ist es keiner, aber ich kann es anders nicht mehr erklären...
Lasse ich größere Abstände zwischen den Abfragen, läuft es tendenziell länger. Allerdings verringert das offensichtlich einfach nur die Wahrscheinlichkeit für ein Timeout.
-
Ich habe PI's im Einsatz und immer den Stick von Digitus. Dazu Verbindung mit CAT6 Kabel und Anschlußwiderstände. `
Ich habe mir jetzt zusätzlich auch den Digitus Stick bestellt. Vielleicht muss ich auch noch 120 Ohm Widerstände besorgen. Ich habe momentan je 2 Widerstände mit rechnerisch 121 Ohm… aber das sollte ja nicht weiter relevant sein.
Ist es eigentlich egal welche Art Widerstand man verwendet? `
Die Art der Widerstände ist egal. Modbus kann auch mit 130 Ohm abgeschlossen werden. Es muss nicht präzise 120 Ohm sein.
Zur Verbindung benutze ich eine verdrillte Zweidrahtleitung ohne Schirm, verlegt im Verdrahtungskanal der Unterverteilung, teils gekreuzt mit div. Einzeladern, welche 230V führen.
Als Stick benutze ich den von Digitus.
-
Ich starte jetzt automatisch alle 2 Minuten den Modbus Adapter neu. Das liefert zuverlässig Werte. Die Unterbrechung von 3-4 Sekunden für den Neustart kann man ja vernachlässigen…
Natürlich wäre eine Optimierung des Adapter trotzdem schön...
-
Hallo zusammen,
ich versuche gerade meine Wärmepumpe (Waterkotte Ai1+ mit WPCU-Regler) über Modbus RTU einzubinden.
Grundsätzlich funktioniert die Verbindung sowohl über ioBroker als auch testweise über qmodbus.
Zum Einen erhalte ich bei jeder Anfrage die timeout Meldung zum Anderen erhalte ich eine Meldung "unknown funktion code: 132".
Bei der ersten Abfrage nach dem Einschalten der Instanz erscheint nur die timeout Meldung. Dabei werden die Variablenwerte auch aktualisiert. Ab der zweiten Abfrage erfolgt keine Aktualisierung mehr.
modbus.0 2019-02-03 14:21:00.894 info Disconnected from slave modbus.0 2019-02-03 14:20:59.884 warn Poll error count: 12 code: {"err":"timeout"} modbus.0 2019-02-03 14:20:59.883 error Request timed out. modbus.0 2019-02-03 14:20:59.883 warn Error: undefined modbus.0 2019-02-03 14:20:54.984 error unknown function code: 132 modbus.0 2019-02-03 14:20:54.865 info Connected to slave modbus.0 2019-02-03 14:19:57.610 info Disconnected from slave modbus.0 2019-02-03 14:19:56.602 warn Poll error count: 11 code: {"err":"timeout"} modbus.0 2019-02-03 14:19:56.602 error Request timed out. modbus.0 2019-02-03 14:19:56.601 warn Error: undefined modbus.0 2019-02-03 14:19:51.705 error unknown function code: 132 modbus.0 2019-02-03 14:19:51.595 info Connected to slave
Hat jemand eine Idee?
Viele Grüße
Bastian
-
Hi!
Das steht bei mir auch noch auf dem Zettel… Aber erst muss die Waterkotte geliefert werden. Irgendwann Ende September/Anfang Oktober...
Zum Thema:
Versuch doch erstmal die Eingangsregister zu lesen. Das schreiben per Holding Register ist dann die nächste Hürde...
Funktioniert das dann sauber?
Wie ich oben schon schrieb, ist es aber ein generelles Problem, dass der Adapter bei einem Fehler keine Daten mehr abfragen kann. Das dürfte aus meiner Sicht so nicht passieren. Unabhängig ob nun eine Adresse falsch konfiguriert ist oder nicht...
-
Mir fällt noch ein das ich noch mit der Version 2.07 vom Adapter unterwegs bin. Und das bisher ohne Probleme.