Forum: Mikrocontroller und Digitale Elektronik RS485 Problem beim Empfang


von Serge M. (russy)


Lesenswert?

Hallo,

Ich komme seit 3 Wochen mit dem folgenden Problem nicht weiter:

Ich habe ein Sensor (S),ein PC und ein programmierbares Gerät(G). Die 3 
sind kommuniziert über eine RS485 Schnittstelle.
Wobei dienst der PC nur als Überwachung er empfängt alle Daten die auf 
dem Bus fließen.
Befehle werden von der (G) zum Sensor gut gesendet. Der Sensor antwortet 
auch korrekt. Leider erkennt das Gerät abwechselnd entweder die erste 12 
Byte oder maximal die erste 24 Byte der Antwort des Sensor. Obwohl mehr 
als 5000 Byte als Antwort gesendet werden(Dies kann ich auf dem PC 
sehen). Allerdings wenn ich die 5000 Bytes von der PC sendet ließt das 
Gerät aller 5000Bytes.

Wenn der Sensor kleinere Antwort sendet, z.B. eine 50 Bytes Große, 
erkennt das Gerät alle 50 Byte.
Bei deutliche Große antwort (mehr als 1000 Byte) erkennt er nur die 
erste Byte.

Meine Frage: Woran kann das liegen?

Hab mir die Antwort des Sensors mit einem Oszilloskop angeschaut, und es 
passt mit der eingestellten Konfiguration.
Baudrate: 115,2K
Parität: Gerade
Stopbit: 1


Kann Mir Bitte jemand dabei helfen. Ich stehe seit Wochen wirklich 
fest!!

Ich bedanke mich sehr im Voraus.
Lg

von Helmut -. (dc3yc)


Lesenswert?

Liegt wahrscheinlich am Widerstand R1234 in Zusammenhang mit C4711 oder 
am Code des Steuerprozessors in Zeile 13!

Wie du aus meiner Antwort entnehmen kannst, braucht meine Glaskugel noch 
ein paar Daten, damit sie ein Ergebnis ausspuckt.

von Serge M. (russy)


Lesenswert?

Helmut -. schrieb:
> Liegt wahrscheinlich am Widerstand R1234 in Zusammenhang mit C4711 oder
> am Code des Steuerprozessors in Zeile 13!
>
> Wie du aus meiner Antwort entnehmen kannst, braucht meine Glaskugel noch
> ein paar Daten, damit sie ein Ergebnis ausspuckt.

Danke für deine Antwort aber hab leider nicht verstanden.
Wenn du mit R1324 der Abschlusswiederstand meinst der habe ich nach der 
folgende Schaltung aufgebaut 
https://www.mikrocontroller.net/articles/RS-485

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Serge M. schrieb:
> Wenn du mit R1324 der Abschlusswiederstand meinst [...]

Nein, er meinte einfach, dass Deine Informationen sehr wenig sind.

R1234: Fehlendes Schaltbild
Zeile 13: Fehlender Programm-Code

von Sabberlotte (Gast)


Lesenswert?

Ich vermute das von (G) die Baudrate nicht korrekt eingehalten wird.

von W.A. (Gast)


Lesenswert?

Sabberlotte schrieb:
> Ich vermute das von (G) die Baudrate nicht korrekt eingehalten wird

Bei zu großen Abweichungen der Baudrate werden die letzten Bits falsch 
erkannt. Da bei jedem Startbit neu synchronisiert wird, dürften davon 
nicht die Folgebytes betroffen sein.

Das sieht IMHO eher so aus, als ob der Empfänger mit der Verarbeitung 
nicht nachkommt. Was passiert, wenn man die Baudrate verringert?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Vermutlich ist dein 'programmierbares Gerät', also (G), nicht in der 
Lage, die lange Antwort des Sensors zu verarbeiten, weil
* der serielle Buffer überläuft
* der Empfang und die Parityprüfung nicht hinterherkommt
* eine andere Routine im 'Programmierbaren Gerät' dazwischen funkt und 
was anderes tun will

So wird das aber nix. Wie alle anderen schon gesagt haben, reichen die 
Infos einfach nicht aus, um da sinnvoll zu helfen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Serge M. schrieb:
> Ich habe ein Sensor (S),ein PC und ein programmierbares Gerät(G). Die 3
> sind kommuniziert über eine RS485 Schnittstelle.
 Was ist ein programmierbares Gerat(G) ?

> Wenn der Sensor kleinere Antwort sendet, z.B. eine 50 Bytes Große,
> erkennt das Gerät alle 50 Byte.

> sehen). Allerdings wenn ich die 5000 Bytes von der PC sendet ließt das
> Gerät aller 5000Bytes.
 Dann liegt es am Sensor.

> Baudrate: 115,2K
 Geht das auch langsamer ?

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.