Forum: Mikrocontroller und Digitale Elektronik Probleme mit Modbus


von Denis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

Ich habe ein Problem mit Modbus. Ich bin bei Bus-Systemen nicht 
übertrieben bewandert. Ich versuche zur Zeit, dass mein Smart-Meter mit 
meinem chinesischem Wechselrichter spricht. Da das leider nicht direkt 
funktioniert versuche ich mich gerade an einer Art Protokoll-Wandler mit 
einem µC. Die Kommunikation mit dem Wechselrichter über rs232 läuft 
einwandfrei. Beim Smart-Meter habe ich Can-Bus und Modbus zur Auswahl. 
ICh habe mich für Modbus entschieden, das hat für mich als Laie bei dem 
Thema einfacher gewirkt. Ich habe bei e*ay ein einfaches fertiges Board 
gekauft mit dem Max485 drauf und ein paar Stiftleisten und zwei 
Schraubanschlüsse. Smart-Meter ist von der technischen Alternative der 
Can-EZ3. Bisher habe ich aber noch keine Daten am Uart empfangen.

Mein erstes Problem ist, dass bei dem fertigen Board die 
Modbus-Anschlüsse mit A und B gekennzeichnet sind, wie ich es oft 
gesehen habe, beim Smart-Meter allerdings Mod+ und Mod- steht. Ich bin 
mir immer noch nicht sicher, ob Mod+ nun an A muss, oder an B.

Ich habe jetzt um zuerst die Hardware zu klären das Board einfach mit 5V 
versorgt und habe DE und RE mit auf Masse gelegt, um "Daten" zu 
empfangen. Das Oszibild ist am RO gemessen, DI scheint die ganze Zeit 
auf Masse zu liegen. Mich wundert, dass ich das gleiche Bild bekomme, 
wenn ich die Anschlüsse an A und B vertausche.

Außerdem verstehe ich da zwei Sachen nicht richtig. Zum einen dieser 
regelmäßige Takt, der scheinbar keine Daten beinhaltet. Und zum zweiten 
dieser seltsame Spannungsverlauf in dem Bereich, in dem vermutlich Daten 
vom Smart-Meter gesendet werden. Ich habe aktuell eine Baud-Rate von 
2400 eingestellt, um evtl Probleme mit meinem einfachen JY(ST)Y Kabel 
auszuschließen.

Denis

von Max M. (Gast)


Lesenswert?

Das MAX485 Modul ist Mist.
RS485 braucht auch die GND Verbindung.

Du hast beim Oszi viel zu grob aufgelöst und siehst höchstens gerade an 
den wg. fehlenden GND Anschluss an den Poller laufenden RS485 Treiber.
Das tut der im Takt der Netzfrequenz oder der Störungen die der 
Wechselrichter macht.

von Sebastian R. (sebastian_r569)


Lesenswert?

Denis schrieb:
> A und B gekennzeichnet sind, wie ich es oft
> gesehen habe, beim Smart-Meter allerdings Mod+ und Mod- steht. Ich bin
> mir immer noch nicht sicher, ob Mod+ nun an A muss, oder an B.

Nunja. Gibt eine Fifty-Fifty-Chance, dass es nicht funktioniert und es 
nach Umtauschen der Leitungen klappt.

Allgemein ist A aber - und B ist +.

Denis schrieb:
> DI scheint die ganze Zeit
> auf Masse zu liegen.

DI ist ein Eingang ("Driver Input"), wenn du etwas auf dem Bus senden 
willst. Dein TX sozusagen.

Dabei ist RS485 aber Halb-Duplex, du musst also !RE/DE auf high setzen, 
damit du etwas senden kannst. Aber ich denke, soweit bist du noch nicht.

Denis schrieb:
> Außerdem verstehe ich da zwei Sachen nicht richtig. Zum einen dieser
> regelmäßige Takt, der scheinbar keine Daten beinhaltet.

Das finden wir vielleicht später heraus. Sieht aber nach 50Hz-Brummen 
aus.

Denis schrieb:
> Und zum zweiten
> dieser seltsame Spannungsverlauf in dem Bereich, in dem vermutlich Daten
> vom Smart-Meter gesendet werden.

Steht dein Oszilloskop auf AC-Kopplung? Sieht irgendwie so aus. 
Jedenfalls sieht die Messung nicht wirklich korrekt/informativ aus.

Mach mal ein paar Fotos von deinem Aufbau und/oder mal mit Paint, wie du 
was verbunden hast und was du mis(s)t)

: Bearbeitet durch User
von Denis (Gast)


Lesenswert?

Hallo Zusammen,

Ich habe es hin bekommen. Auf die Gnd Verbindung hätte ich auch alleine 
kommen können.

Außerdem hatte ich noch eine kalte Lötstelle. Jetzt löst ein Interrupt 
aus und ich bekomme sinnvolle Daten.

Danke für eure Tips..


Denis

von Pepe T. (pepe_t)


Lesenswert?

Denis schrieb:
> mein Smart-Meter mit
> meinem chinesischem Wechselrichter spricht

Welchen hast du denn?
Meinen SoyoSource kann ich per RS485 steuern.

von Hmmm (Gast)


Lesenswert?

Sebastian R. schrieb:
> Allgemein ist A aber - und B ist +.

So wurde es zwar eigentlich mal festgelegt, in der Praxis verwenden die 
meisten (alle?) Transceiver-Hersteller A für den non-inverting ("+") und 
B für den inverting ("-") Pin.

https://www.mikrocontroller.net/articles/Datei:RS485.svg

Um Missverständnisse zu vermeiden, sollte man für Beschriftung und 
Dokumentation gar nicht erst A und B verwenden.

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.