NEWS
Modbus adapter
-
Für alle, die es interessiert: ABB A43 212-100, die Leitungen müssen verdreht werden (RS485 USB Adapter für 2 Eur mit CH341). Also A mit B und B mit A verbunden. Ohne Abschlusswiderstände funzt alles (1m twisted aus einem LAN cat6 Kabel).
-
@Vod Das ist ein beliebtes RS485 Thema. Es gibt eine Spezifikation zu RS485 und eine einheitlich widersprüchliche Auslegung der Halbleiterhersteller. Mehr dazu in https://en.wikipedia.org/wiki/RS-485#Signals . Texas Instruments nimmt dazu verschwurbelt Stellung ttp://e2e.ti.com/cfs-file/__key/telligent-evolution-components-attachments/13-143-00-00-00-26-49-60/RS485-2D00-Polarity-Conventions.pdf
Die in Fragen von Richtlinien, Gesetzen und Normen geplagten und geübten Europäischen Hersteller von Elektroinstallationsmaterial halten sich indes streng an die Norm und stehen damit ganz unpragmatisch quer im Stall.
Die Halbleiterhersteller sind sich wohl dieser Misere bewußt (siehe "Texas Instruments, Polarity Conventions") und neuere Bausteine wie der THVD1505 erkennen und korrigieren eine Vertauschung automatisch - änlich wie bei das bei Ethernet schon lange der Fall ist. Aber diese Bausteine sind noch nicht in den Chinesischen DIY Modulen angekommen. Und gerade diese Bausteine verwenden wir häufig in unseren Wandlern und vertrauen deren Beschriftung.
Fazit: Bei RS485 muß man sich zwar nicht wie bei RS232 die Frage stellen, ob der Entwickler das Gerät als DTE oder DCE eingestuft hat. Allerdings gibt es leider auch da Verwirrung bei der Bezeichnung der Signalleitungen A und B. -
Guten Morgen zusammen. Ich habe eine Nilan Wärmepumpe und werde aus der Doku nicht schlau. Da stehen nur 20tausender Registernummern. Die gibt es doch gar nicht, oder? Kann mir jemand auf die Sprünge helfen?
Hier der Link zur Doku: https://de.nilan.dk/Admin/Public/DWSDownload.aspx?File=%2FFiles%2FFiler%2FDownload%2FDanish%2FDokumentation%2FSoftware+vejledninger%2FModbus%2FCTS700_Modbus_protokol.pdf
Gruß Stephie -
@kleine_kuh Wieso soll es die nicht geben? Meinst du der Hersteller schreibt die zum Spaß in seine Doku oder wie kommst du darauf?
-
@wendy2702 Ich dachte mir schon, dass er es nicht zum Spaß reinschreibt. Deswegen frage ich ja. Aber ich dachte es gibt 0-9999, 10001-19999, 30001-39999 und 40001 bis 49999. Dass einige nur lesen und andere lesen und schreiben können ist mir klar. Nur weíß ich leider nicht, wo ich die eintragen muss im Adapter. Kann mir da jemand auf die Sprünge helfen? (Selbstverständlich will ich auch nicht alle von denen verwenden)
-
@kleine_kuh Konfiguriere mal den Modbus Adapter mit den richtigen Kommunikations Einstellungen.
Suche die ein Register aus das nur lesbar ist.
Trage das dann bei Holding oder Eingangsregister mit der entsprechenden Kodierung z.B. 16bit unsigned ein
Stelle das loggen für die Instanz auf Debug.
Starte den Adapter und poste dann das logfile hier in Code Tags </> und poste Screenshots deiner Einstellungen und der Register Karte.
-
@wendy2702 Ok, danke. Heute und morgen komme ich nicht mehr dazu. Aber ich poste es, sobald ich es schaffe
-
Servus!
Ich habe irgendwie Probleme mehrere Werte parallel auszulesen, wenn diese zu weit auseinander liegen.
Ich verwende einen USB Stick zum seriellen Auslesen.
Unter Windows mit CAD Modbus Scanner kann ich auch alle Werte korrekt auslesen.Nutze aktuell: Modbus 3.3.1
Ich hatte aber auch die Modbus Version von Github installiert zum Testen. Hier konnte ich nicht mehr meinen USB0 auswählen. Es wurde mir nur COM1 angezeigt, was nicht funktionierte. Oder Soll COM hier = den USB Devices sein?
Diese Abfrage funktioniertmodbus.0 2021-06-13 11:04:25.224 debug (16668) Poll holdingRegs DevID(2) address 346 - 6 bytes modbus.0 2021-06-13 11:04:25.223 debug (16668) Poll device 2 modbus.0 2021-06-13 11:04:24.144 debug (16668) Poll holdingRegs DevID(2) address 346 - 6 bytes modbus.0 2021-06-13 11:04:24.143 debug (16668) Poll device 2 modbus.0 2021-06-13 11:04:23.065 debug (16668) Poll holdingRegs DevID(2) address 346 - 6 bytes modbus.0 2021-06-13 11:04:23.064 debug (16668) Poll device 2 modbus.0 2021-06-13 11:04:21.971 debug (16668) Poll holdingRegs DevID(2) address 346 - 6 bytes modbus.0 2021-06-13 11:04:21.971 debug (16668) Initialization of scale factors done! modbus.0 2021-06-13 11:04:21.969 debug (16668) Poll device 2 modbus.0 2021-06-13 11:04:21.968 info (16668) Connected to slave modbus.0 2021-06-13 11:04:21.955 debug (16668) connect to serial /dev/ttyUSB0 with 115200 modbus.0 2021-06-13 11:04:21.586 debug (16668) Add holdingRegisters.40385_Code_Störung: {"_id":"holdingRegisters.40385_Code_Störung","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit" modbus.0 2021-06-13 11:04:21.585 debug (16668) Add holdingRegisters.40352_Innenlufttemperatur: {"_id":"holdingRegisters.40352_Innenlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true," modbus.0 2021-06-13 11:04:21.585 debug (16668) Add holdingRegisters.40351_Frischlufttemperatur: {"_id":"holdingRegisters.40351_Frischlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true modbus.0 2021-06-13 11:04:21.584 debug (16668) Add holdingRegisters.40349_Bypass_Status: {"_id":"holdingRegisters.40349_Bypass_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit modbus.0 2021-06-13 11:04:21.584 debug (16668) Add holdingRegisters.40348_Filter: {"_id":"holdingRegisters.40348_Filter","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native" modbus.0 2021-06-13 11:04:21.583 debug (16668) Add holdingRegisters.40347_Filter_Status: {"_id":"holdingRegisters.40347_Filter_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit modbus.0 2021-06-13 11:04:21.583 debug (16668) Add holdingRegisters.40260_Bypass_Modus: {"_id":"holdingRegisters.40260_Bypass_Modus","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit" modbus.0 2021-06-13 11:04:21.582 debug (16668) Add holdingRegisters.40258_Geschwindigkeit: {"_id":"holdingRegisters.40258_Geschwindigkeit","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0, modbus.0 2021-06-13 11:04:21.582 debug (16668) Initialize Objects for holdingRegs: [{"_address":40258,"name":"Geschwindigkeit","description":"","unit":"","type":"uint16be","len":1,"factor":"1","offset":"0","formula":"","role":"state","room modbus.0 2021-06-13 11:04:21.581 debug (16668) Initialize Objects for inputRegs: [] modbus.0 2021-06-13 11:04:21.581 debug (16668) Initialize Objects for coils: [] modbus.0 2021-06-13 11:04:21.580 debug (16668) Initialize Objects for disInputs: [] modbus.0 2021-06-13 11:04:21.273 info (16668) starting. Version 3.3.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16
Dise Abfrage funktioniert nicht, weil diese Modbus in zwei Abfragen aufteilt?
Der Adapter wechselt danach sofort auf GELBmodbus.0 2021-06-13 11:07:07.885 debug (20689) Cleaning up request fifo. modbus.0 2021-06-13 11:07:07.884 debug (20689) Clearing timeout of the current request. modbus.0 2021-06-13 11:07:07.877 info (20689) Disconnected from slave modbus.0 2021-06-13 11:07:06.877 warn (20689) Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.0 2021-06-13 11:07:06.876 error (20689) Request timed out. modbus.0 2021-06-13 11:07:06.875 warn (20689) Error: undefined modbus.0 2021-06-13 11:07:01.872 debug (20689) Poll holdingRegs DevID(2) address 346 - 6 bytes modbus.0 2021-06-13 11:07:01.837 debug (20689) Poll holdingRegs DevID(2) address 257 - 1 bytes modbus.0 2021-06-13 11:07:01.837 debug (20689) Initialization of scale factors done! modbus.0 2021-06-13 11:07:01.835 debug (20689) Poll device 2 modbus.0 2021-06-13 11:07:01.834 info (20689) Connected to slave modbus.0 2021-06-13 11:07:01.819 debug (20689) connect to serial /dev/ttyUSB0 with 115200 modbus.0 2021-06-13 11:07:01.479 debug (20689) Add holdingRegisters.40385_Code_Störung: {"_id":"holdingRegisters.40385_Code_Störung","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit" modbus.0 2021-06-13 11:07:01.479 debug (20689) Add holdingRegisters.40352_Innenlufttemperatur: {"_id":"holdingRegisters.40352_Innenlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true," modbus.0 2021-06-13 11:07:01.478 debug (20689) Add holdingRegisters.40351_Frischlufttemperatur: {"_id":"holdingRegisters.40351_Frischlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true modbus.0 2021-06-13 11:07:01.478 debug (20689) Add holdingRegisters.40349_Bypass_Status: {"_id":"holdingRegisters.40349_Bypass_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit modbus.0 2021-06-13 11:07:01.477 debug (20689) Add holdingRegisters.40348_Filter: {"_id":"holdingRegisters.40348_Filter","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native" modbus.0 2021-06-13 11:07:01.477 debug (20689) Add holdingRegisters.40347_Filter_Status: {"_id":"holdingRegisters.40347_Filter_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit modbus.0 2021-06-13 11:07:01.476 debug (20689) Add holdingRegisters.40260_Bypass_Modus: {"_id":"holdingRegisters.40260_Bypass_Modus","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit" modbus.0 2021-06-13 11:07:01.475 debug (20689) Add holdingRegisters.40258_Geschwindigkeit: {"_id":"holdingRegisters.40258_Geschwindigkeit","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0," modbus.0 2021-06-13 11:07:01.474 debug (20689) Initialize Objects for holdingRegs: [{"_address":40258,"name":"Geschwindigkeit","description":"","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"" modbus.0 2021-06-13 11:07:01.474 debug (20689) Initialize Objects for inputRegs: [] modbus.0 2021-06-13 11:07:01.473 debug (20689) Initialize Objects for coils: [] modbus.0 2021-06-13 11:07:01.472 debug (20689) Initialize Objects for disInputs: [] modbus.0 2021-06-13 11:07:01.147 info (20689) starting. Version 3.3.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16
Wenn ich 40258 alleine oder auch in Kombination mit 40260 abfrage, dann werden auch diese Werte korrekt ausgelesen.
Hat jemand eine Idee was ich noch probieren könnte?
Danke euch! -
Ich konnte das Problem selbst durch einen quick&dirty 50ms Warteschritt zw. den Abfragen lösen, den ich in den Code eingebaut habe.
Issue und Lösung hierzu hier
Vielleicht kann man das so oder auch gerne sauberer in den Adapter integrieren. -
Hi, ich bin gerade dabei von Admin 4 auf 5 alles manuell umzuziehen.
Dabei habe ich auch den neuen Modbus Adapter 3.4.4 installiert.
Bei einigen Registern meiner Dimplex Wärmepumpe habe ich alles mir erdenkliche ausprobiert, ich bekomme sie nicht zum laufen:
modbus.1 2021-06-20 00:14:33.149 debug (2308) Closing client on purpose.
modbus.1 2021-06-20 00:14:33.097 warn (2308) Poll error count: 6 code: {"errorCode":129,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"}
modbus.1 2021-06-20 00:14:33.097 debug (2308) Received pdu describes an error.
modbus.1 2021-06-20 00:14:33.093 debug (2308) Poll coils DevID(1) address 4 - 0 bits
modbus.1 2021-06-20 00:14:33.092 debug (2308) Poll device 1oder:
modbus.1 2021-06-20 00:21:44.174 debug (2719) Closing client on purpose.
modbus.1 2021-06-20 00:21:44.122 warn (2719) Poll error count: 6 code: {"code":"ERR_OUT_OF_RANGE"}Mit modbus 3.2.6 lief das alles einwandfrei. Ich habe es 1:1 übernommen.
Leider bekomme ich 3.2.6 nicht mehr als mögliche Version angeboten.
Hat mir jemand einen Tipp, woran das liegen kann? -
... wenn die betroffenen Register in einem eigenen Adapter aufsetzt, selbes Problem, ändere ich dann von Unsigned auf Signed gehten 6 von 7, versuche ich das auf den anderen Adpater zu übertragen, wieder bei allen der gleiche Fehler. Da stimmt wohl irgendwas im Adapter nicht oder ist marginal. Ich bin hilflos.
-
@matis sagte in Modbus adapter:
....... alles manuell umzuziehen.
Wie zieht man denn manuell um ?
@matis sagte in Modbus adapter:
Hi, ich bin gerade dabei von Admin 4 auf 5 alles manuell umzuziehen.
Dabei habe ich auch den neuen Modbus Adapter 3.4.4 installiert.Also Betatester ....
@matis sagte in Modbus adapter:
Leider bekomme ich 3.2.6 nicht mehr als mögliche Version angeboten.Logo ... da dein Verwahrungsort auf Beta steht und nicht auf stable.
-
Habe wegen des "issue with the scale factors" über Github ein Update auf die neuste Version 3.4.5 durchgeführt.
Dieser Fehler schein beseitigt. Auch sind die gelegentlichen Verbindungsabbrüche weg.Bei erweitern der Registerliste gabs anschließend Probleme:
Es entsteht ein ERROR, da laut LOG -107 bytes (negative Zahl) gelesen werden sollen.
-
... neue Installation, Modbus, Views und Java importieren und dann sollte es neue saubere Inst. sein.
Ich hab's aber wegen zu viel Aufwand aufgegeben, stable neu installiert und iobroker aus dem backup drüber kopiert, läuft einwandfrei, fertig.Seit irgendeinem Adapter Update ist die "Übersicht" leer.
War es aber komischer Weise auch mit der 5er Installation, sobald altes GUI gewählt war. -
Hallo zusammen!
Ich habe den Modbus-Adapter nun schon eine ganze Weile erfolgreich am Laufen. Da mein Raspi3 nun an seinen Grenzen kam, habe ich ein frisches System auf einem Raspi4 mit 8Gb aufgesetzt. Soweit so gut. Beim Gerät das ich Abfrage handelt es sich um eine Pluggit Ap 310 (zentrale Lüftungsanlage für Wohngebäude).
Genau wie auf dem Alten ist Modbus auf dem Neuen in der Version 3.4.11 installiert. Ebenso nutze ich auf dem neuen wieder Admin 5.
Nun wollte ich recht simpel die TSV-Datei aus der alten Installation in die neue eintragen. Beim Import selber kommen keine Fehler, jedoch dann im Log selbst. Der Adapter beendet dann auch recht zeitnah die Verbindung zur Pluggit.Folgendes steht im Log
modbus.0 2021-09-15 19:10:57.364 info Disconnected from slave 192.168.178.25 modbus.0 2021-09-15 19:09:56.362 warn Poll error count: 4 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.0 2021-09-15 19:09:56.354 info Connected to slave 192.168.178.25 modbus.0 2021-09-15 19:08:56.350 info Disconnected from slave 192.168.178.25 modbus.0 2021-09-15 19:07:55.288 warn Poll error count: 3 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.0 2021-09-15 19:07:55.278 info Connected to slave 192.168.178.25 modbus.0 2021-09-15 19:06:55.275 info Disconnected from slave 192.168.178.25 modbus.0 2021-09-15 19:05:54.273 warn Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.0 2021-09-15 19:05:54.265 info Connected to slave 192.168.178.25 modbus.0 2021-09-15 19:04:54.260 info Disconnected from slave 192.168.178.25 modbus.0 2021-09-15 19:03:53.175 warn Poll error count: 1 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"} modbus.0 2021-09-15 19:03:53.158 info Connected to slave 192.168.178.25 modbus.0 2021-09-15 19:03:52.451 info starting. Version 3.4.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.17.5, js-controller: 3.3.15
Die Daten stimme 1zu1 mit denen der alten Installation überein, habe sie ja direkt kopiert. Ebenso läuft der Modbus-Adapter auf der alten Installation nicht, wenn ich mit der Neuen teste.
Jemand eine Idee woran das noch liegen kann?
Danke und Grüße
-
@puppet1912 sagte in Modbus adapter:
Die Daten stimme 1zu1 mit denen der alten Installation überein,
Was passiert , wenn du nur ein Register abfragst , also nur ein Eintrag in der TSV
-
@glasfaser said in Modbus adapter:
Was passiert , wenn du nur ein Register abfragst , also nur ein Eintrag in der TSV
Das klappt in der Regel. Habe auch schon mal zwei Einträge zum Laufen bekommen. Aber ein Schema erkenne ich da einfach nicht.
-
dann ist ein Fehler drin .
Ich weiß ja nicht wieviel du abfragst !?
,Teile doch beim einfügen den Inhalt in den TSV , nach und nach den falschen
Eintrag suchen . -
Ich frage insgesamt 17 Register ab.
Auch das habe ich bereits versucht. Leider ohne Erfolg. Ich frage mich halt, wie da ein Fehler rein kommen kann. Ich kopiere die TSV ja aus einem Adapter der mit genau dieser Config läuft und keinerlei Fehler bringt.
-