Forum: Mikrocontroller und Digitale Elektronik Tasmota RS485 Modbus ESP-01+ WLan WiFi Bridge Modul


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von R. H. (r_h515)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein Tasmota RS485 Modbus ESP-01+ WLan WiFi Bridge Modul der 
Firma ei-ot.de gekauft. Ziel ist es, via Modbus die Heizungsdaten 
(Easyfire 1) auszulesen. Leider komme ich hier nicht wirklich zum Ziel, 
ich brauche (Eure) Hilfe. Das Modul arbeitet, aber es scheint keine 
Daten zu senden. Auch ein Tausch der beiden A-B Kabel brachte keinen 
Erfolg. Das Register-Schema habe ich, Auszug anbei. Meine Frage ist, was 
muss ich konkret tun, damit Daten von der Heizung auf der Konsole 
angezeigt werden.

Vielen Dank!
von Stephan S. (uxdx)


Lesenswert?

Hast Du A mit A und B mit B verbunden oder A mit B über Kreuz?
von Rainer W. (rawi)


Lesenswert?

R. H. schrieb:
> Das Modul arbeitet, aber es scheint keine Daten zu senden.

Woran siehst du das?
Hast du dir mit einem Oszi die Signale auf den Busleitungen angesehen?

Sind die RS485-Schnittstellen isoliert?
Falls "nein", hast du Ground verbunden?
von S. M. (lichtmensch)


Lesenswert?

Baud Rate? Parity? und so richtig eingestellt?
von R. H. (r_h515)


Lesenswert?

Ich habe kein Oszi. In der Tasmota Konsole empfange ich einen Request. 
Dieser enthält jedoch keine Daten.

Modbus A-B-G alle angeschlossen und isoliert
von R. H. (r_h515)


Lesenswert?

S. M. schrieb:
> Baud Rate? Parity? und so richtig eingestellt?

9600 und 19600 getestet. Macht leider keinen Unterschied.
von Daniel F. (foxi_the_daywalker)


Lesenswert?

Bist du dir sicher, dass die Registeradressen stimmen?
Typisches Problem: Software startet bei 1 mit dem Zählen, Modbus intern 
aber mit 0. Dann hängt es immer davon ab, wer die Tabelle geschrieben 
hat.

Hast du die richtige Unit-Adresse? Ich vermute einfach mal 1 bei einer 
Heizung.

Welchen Function Code hast du verwendet? Holding Register lesen wird FC3 
gemeint sein.

Ich habe irgendeine Modbus-Tabelle zu einer KWB Easyfire gefunden, die 
24576 als Adresse für Kessel AN/AUS angibt.

Hast du ein Laptop und RS485 Adapter so dass du erst einmal die 
grundsätzliche ModbusRTU Kommunikation testen kannst?

Wenn die Kommunikation Laptop <-> Heizung funktioniert, nutzt du den 
Laptop  um die Heizung zu simulieren, also Laptop <-> ESP32.

Dann kann man genauer beurteilen, wo es zu Unstimmigkeiten kommt.
: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Daniel F. schrieb:
> Typisches Problem: Software startet bei 1 mit dem Zählen, Modbus intern
> aber mit 0.

Und nicht nur das; es gibt eines komplett schwachsinnige Konvention, daß 
die Registerart (Coil, Holding Register etc.) als 10000er-Offset auf die 
Registernummer addiert wird.

Coil 1  (Function Code 1, 5 und 10)
Discrete Input 10001 (Function Code 2)
Input Register 30001 (Function Code 4)
Holding Register 40001 (Function Code 3, 5, 16, 22 und 23)

Alle Werte bedeuten auf dem Bus aber den gleichen Wert, nämlich 0.

Eine Erweiterung (aber nicht Verbesserung) des Schwachsinns ist die 
Gruppierung nicht in Zehntausendern, sondern in Hunderttausendern. Da 
die Registernummer als 16-Bit-Wert übertragen wird (d.h. nur den 
Wertebereich von 0 bis 65535 zulässt), ist auch das nicht hilfreich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.