Hallo Zusammen, Ich baue grade einen kleinen Schaltschrank der Daten von 2 Sensoren (Drucksensor 0-10V, Laser Distanzsensor RS-485) empfängt. Der Lasersensor sendet direkt ein RS-485 Signal. Die Analog-Spannung des Drucksensors wird von einem Waveshare Analog Acquistion Module in RS-485 gewandelt. Beide RS-485 Signale gehen dann an einen Waveshare RS-485-zu-USB Wandler, dieser wird durch einen Raspberry angesprochen. Der Analog-Digital-Wandler und der RS-485-zu-USB Wandler sitzen dabei beide im Schaltschrank nah beieinander. Beide verfügen über zuschaltbare 120Ohm Terminierungswiderstände sodass sie sich für die jeweiligen Enden des Busses eignen würden. Der Laser-Sensor kommt mit einem vorkonfektionierten Kabel und verfügt offenbar nicht über einen Terminierungswiderstand (konnte keinen Widerstand über A und B messen). Nach Lesen der RS-485 Artikel habe ich mitgenommen dass ein ideales RS-485-Setup als Daisy-Chain verdrahtet und mit 120 Ohm Widerständen an beiden Enden terminiert sein sollte. Wenn ich aber nun alles in einer Daisy-Chain verdrahten möchte, würde das ja bedeuten dass ich eine neue 4-Adrige Leitung bis Laser-Sensor legen müsste um dann die Leitungen für A und B wieder zurück zum Analog-Digital-Wandler zu führen, andernfalls käme ich ja sonst auf einen einzigen Sternpunkt der effektiv an den Klemmen des RS-485-zu-USB-Wandlers säße. So wie im anghehängten Schaltbild dargestellt. Die Andere möglichkeit sehe ich darin, das Kabel kurz vor dem Sensor zu kappen, dort mit 120 Ohm-Widerstand zu terminieren und den Sensor an das Ende des Busses zu legen und das Analog-Digital-Modul auf 0 Ohm zu jumpern. Sind das meine einzigen Möglichkeiten oder übersehe ich hier etwas? Hier noch die Links zu den verwendeten Geräten: AD-Wandler: https://www.waveshare.com/modbus-rtu-analog-input-8ch.htm RS-485-USB-Wandler: https://www.waveshare.com/usb-to-rs485-422.htm Laser-Sensor: https://www.phoskey.com/fb07992f814/u8b56d841f159da16.html Vielen Dank im Vorraus.
Der spannende Punkt ist die Steilheit der Signalflanken. Denn die bestimmt wie kritisch die Terminierung ist. Daher schau mal was für RS485-Transceiver bei Deinen 3 Bus-Teilnehmern eingesetzt werden und dann in deren Datenblatt für was für eine Geschwindigkeit die maximal vorgesehen sind. Der tatsächliche Bustakt spielt weniger eine Rolle, es geht um die Flankensteilheit und die hängt vom maximal möglichen Bustakt ab. Alternativ kannst Du es natürlich auch mit der 3m Stichleitung ausprobieren und das Überschwingen mit dem Oszi ausmessen. Vermutlich wird es mit der Stichleitung funktionieren, RS485 ist recht robust und Dein Bus insgesamt ziemlich kurz.
Zoni B. schrieb: > Der Laser-Sensor kommt mit einem vorkonfektionierten Kabel und verfügt > offenbar nicht über einen Terminierungswiderstand (konnte keinen > Widerstand über A und B messen). Dann misst du entweder falsch oder die Chinesen malen Mal wieder falsche Bilder (Link von dir, Wiring Diagramm). Bei so kurzen Strecken vermutlich alles halb so wild.
Zoni B. schrieb: > Der Lasersensor sendet direkt ein RS-485 Signal. Das heißt der sendet ohne Aufforderung? Also als Master sozusagen? Wie verhindert du dann Kollisionen?
N. M. schrieb: > Zoni B. schrieb: >> Der Laser-Sensor kommt mit einem vorkonfektionierten Kabel und verfügt >> offenbar nicht über einen Terminierungswiderstand (konnte keinen >> Widerstand über A und B messen). > > Dann misst du entweder falsch oder die Chinesen malen Mal wieder falsche > Bilder (Link von dir, Wiring Diagramm). > > Bei so kurzen Strecken vermutlich alles halb so wild. Ich messe mit Multimeter mit den Prüfspitzen an Data+ und Data- (schw. und weißes Kabel).
N. M. schrieb: > Zoni B. schrieb: >> Der Lasersensor sendet direkt ein RS-485 Signal. > > Das heißt der sendet ohne Aufforderung? Also als Master sozusagen? > Wie verhindert du dann Kollisionen? Nein, das ist vlt. Missverständlich ausgedrückt. Ich meinte damit lediglich dass der Sensor direkt digital über RS-485 ansprechbar ist im Gegensatz zum Drucksensor dessen Signal ich erst über den ADC in RS-485 wandle. Um ihn auszulesen muss ich einen modbus-Request senden. Er bietet allerdings tatsächlich eine Funktion bei der er kontunierlich von alleine ein Signal sendet, aber bei mehreren Teilnehmern natürlich nicht sinnvoll diese Funktion einzuschalten.
Zoni B. schrieb: > Nach Lesen der RS-485 Artikel habe ich mitgenommen dass ein ideales > RS-485-Setup als Daisy-Chain verdrahtet und mit 120 Ohm Widerständen an > beiden Enden terminiert sein sollte. Je nach Länge und Baudrate ist das vollkommen irrelevant. Länge scheint bei Dir kein Thema zu sein; und solange Du nicht auf die Idee kommst, irgendwelche Geschwindigkeitsrekorde mit Baudraten im drei- oder vierstelligen Kilobitbereich aufzustellen, ist das ziemlich schnurz. Interessanter ist die in Deiner Zeichnung nicht eingezeichnete Masse; werden alle drei Geräte vom gleichen Netzteil versorgt? Wenn nicht sichergestellt ist, daß alle drei Geräte den gleichen Massebezug haben, kann es Probleme geben; RS485 ist zwar eine differentielle Übertragung, aber nicht potentialfrei. Wenn alle RS485-Transceiver galvanisch getrennt sind und mit einer Vorspannung (Pullup/-Down an den Datenleitungen gegen Versorgungsspannung bzw. Masse) gearbeitet wird, dann ist so ein massebezugloser Bus möglich.
Zoni B. schrieb: > Sind das meine einzigen Möglichkeiten oder übersehe ich hier etwas? Ich habe den Eindruck, du hast genau verstanden wie ein solcher Bus funktioniert und aufgebaut werden muss. Also kein Stern und mit Terminierung an den Enden. Mein Rat: Mache das auch so! Ja, RS485 mag einiges an Fehlkonfiguration wegstecken, z.B. kurze unterminierte Stichleitungen, aber betriebssicher und reproduzierbar, mag ich das nicht nennen wollen. Wenn ich hier lese, dass 3m 4-adrige (oder 2 * 2-adrig) Leitung zu einer Kostenexplosion führen, dann frage ich mich was da sonst noch für fragwürdige Designentscheidungen getroffen wurden/werden.
Gerd E. schrieb: > Der spannende Punkt ist die Steilheit der Signalflanken. Denn die > bestimmt wie kritisch die Terminierung ist. > > Daher schau mal was für RS485-Transceiver bei Deinen 3 Bus-Teilnehmern > eingesetzt werden und dann in deren Datenblatt für was für eine > Geschwindigkeit die maximal vorgesehen sind. Der tatsächliche Bustakt > spielt weniger eine Rolle, es geht um die Flankensteilheit und die hängt > vom maximal möglichen Bustakt ab. > > Alternativ kannst Du es natürlich auch mit der 3m Stichleitung > ausprobieren und das Überschwingen mit dem Oszi ausmessen. > > Vermutlich wird es mit der Stichleitung funktionieren, RS485 ist recht > robust und Dein Bus insgesamt ziemlich kurz. Vom Laser-Sensor kenne ich leider nicht den verwendeten Transceiver (China, Aliexpress, Datenblatt gibt das nicht her). Das beiden Waveshare-Geräte verwenden den SP485EEN. Der maximale Bustakt den alle Geräte unterstützen länge bei 115200Baud. Der LaserSensor kann zwar schneller, aber die höheren Raten sind dann 230400, 312500, 458800Baud, etc. Diese Raten können die Waveshare-Geräte aber nicht. Wenn es also wegen der recht kurzen Buslänge mit Stichleitung funktionieren sollte, wie gehe ich dann mit der Terminierung an den Geräten wo ich sie einstellen kann um? Gar keine?
Zoni B. schrieb: > wie gehe ich dann mit der Terminierung an den > Geräten wo ich sie einstellen kann um? Gar keine? Du terminierst an beiden Enden des Busses. So ist es für RS485 vorgesehen. Aus meiner Sicht ist das ohne jede Alternative.
Arduino F. schrieb: > Zoni B. schrieb: >> Sind das meine einzigen Möglichkeiten oder übersehe ich hier etwas? > > Ich habe den Eindruck, du hast genau verstanden wie ein solcher Bus > funktioniert und aufgebaut werden muss. > > Also kein Stern und mit Terminierung an den Enden. > > Mein Rat: Mache das auch so! > > Ja, RS485 mag einiges an Fehlkonfiguration wegstecken, z.B. kurze > unterminierte Stichleitungen, aber betriebssicher und reproduzierbar, > mag ich das nicht nennen wollen. > > > Wenn ich hier lese, dass 3m 4-adrige (oder 2 * 2-adrig) Leitung zu einer > Kostenexplosion führen, dann frage ich mich was da sonst noch für > fragwürdige Designentscheidungen getroffen wurden/werden. Danke dir! Dass ein anderes Kabel mit 4Adern um das Daiyschain korrekt aufzubauen zu einer Kostenexplosion führt habe ich aber gar nicht geschrieben, das ist überhaupt kein Problem. Da mir bei dem Thema aber noch die Praxis-Erfahrung fehlt wollte ich nur wissen ob dieser Aufbau dann dem entsprechen würde wie ihr und andere Profis das angehen würden.
Harald K. schrieb: > Zoni B. schrieb: >> Nach Lesen der RS-485 Artikel habe ich mitgenommen dass ein ideales >> RS-485-Setup als Daisy-Chain verdrahtet und mit 120 Ohm Widerständen an >> beiden Enden terminiert sein sollte. > > Interessanter ist die in Deiner Zeichnung nicht eingezeichnete Masse; > werden alle drei Geräte vom gleichen Netzteil versorgt? > Fairer Punkt, habe ich zunächst nicht eingezeichnet da mir hier vorranging der Aufbau von Daisy-Chain und Terminierung im RS-485 Bus im Fokus stand. Habe jetzt mal einen weitesgehend vollständigen Plan erstellt und angehangen. Ich hoffe der schafft Klarheit. Alle Geräte werden vom selben Netzteil, ein Meanwell RD-50B mit 24 und 5V Ausgang versorgt, es hat zwar zwei COM-Ausgänge, aber die haben Durchgang zueinander. https://www.meanwell.com/Upload/PDF/RD-50/RD-50-SPEC.PDF Das Waveshare RS485-zu-USB modul ist nach Herstellerangaben galvanisch getrennt. Einen ersten Aufbau nur mit dem Laser-Sensor angeschlossen habe ich bereits erfolgreich testen können, Kommunikation bei 115200 Baud funktioniert problemlos. Mein Thread geht jetzt eben dahin alle 3 Geräte korrekt in den RS-485 Bus zu integrieren.
Arduino F. schrieb: > Ja, RS485 mag einiges an Fehlkonfiguration wegstecken, z.B. kurze > unterminierte Stichleitungen, aber betriebssicher und reproduzierbar, > mag ich das nicht nennen wollen. Selbst bei CAN-Bus sind kurze Stichleitungen zulässig. "Kurz" bedeutet hier für 250 kBit/s "kleiner als 10 m". Bei RS485 ist die Stichleitungslänge genauso durch die Signalreflektionen begrenzt. Also brauchst du bei 3m und 115.2 kBd nicht gleich die Panik ins Gesicht zu kriegen.
:
Bearbeitet durch User
Zoni B. schrieb: > Das beiden Waveshare-Geräte verwenden den SP485EEN. Wenn Du in dessen Datenblatt schaust ist das ein 10 MBit/s Transceiver. Also mit knackig steilen Flanken. Eher ungut für unsaubere Verkabelung. > Der maximale Bustakt den alle Geräte unterstützen länge bei 115200Baud. Das ist die digitale Seite. Die spielt hier keine Rolle. Es geht um die Flankensteilheit die die Transceiver liefern, denn die macht hinterher die Reflexionen am Busende bzw. Stichleitungen. > Wenn es also wegen der recht kurzen Buslänge mit Stichleitung > funktionieren sollte, wie gehe ich dann mit der Terminierung an den > Geräten wo ich sie einstellen kann um? Gar keine? Die sauberste Lösung dürfte sein direkt am Laser-Sensor die Leitung zu öffnen und eine Terminierung zu machen. Vielleicht auch aufschrauben und auf der Platine ist schon ein Footprint für vorgesehen oder ähnliches. Innerhalb des Schaltschranks ist die Verkabelung ja einfach anzupassen. Das machst Du in Reihe und setzt an einem Gerät die Terminierung, z.B. an dem USB-Gateway. Wenn das aufwendig ist kannst Du ja mal probieren die Terminierung nur an den beiden anderen Geräten zu setzen und mit der Stichleitung zu leben. Dann mit dem Oszi die Signalflanken prüfen.
Gerd E. schrieb: > Das ist die digitale Seite. Die spielt hier keine Rolle. Es geht um die > Flankensteilheit die die Transceiver liefern, denn die macht hinterher > die Reflexionen am Busende bzw. Stichleitungen. > Ok, verstehe. Habe den Sensor jetzt mal geöffnet, verbaut ist ein MAX33070E der laut Datenblatt (https://www.analog.com/media/en/technical-documentation/data-sheets/MAX33070E-MAX33074E.pdf) max 0.5Mbps hat, aber ich nehme an der Transceiver mit der höchsten Rate im Bus ist dann ausschlaggebend? > Die sauberste Lösung dürfte sein direkt am Laser-Sensor die Leitung zu > öffnen und eine Terminierung zu machen. Vielleicht auch aufschrauben > und auf der Platine ist schon ein Footprint für vorgesehen oder > ähnliches. Habe mal den Deckel aufgemacht, aber einen jumper oder Footprint für einen Terminierungswiderstand erkenne ich auf Anhieb nicht. Foto im Anhang. Ich denke ich werde dann die leitung eben außen am Gerät öffnen und terminieren. > Wenn das aufwendig ist kannst Du ja mal probieren die Terminierung nur > an den beiden anderen Geräten zu setzen und mit der Stichleitung zu > leben. Dann mit dem Oszi die Signalflanken prüfen. Da das relativ einfach zu verproben ist würde ich das initial versuchen. Sonst wie oben beschreiben terminieren und den Sensor ans Ende des Busses setzen. Danke für deine hilfreichen Antworten.
Zoni B. schrieb: > Gerd E. schrieb: > >> Die sauberste Lösung dürfte sein direkt am Laser-Sensor die Leitung zu >> öffnen und eine Terminierung zu machen. Vielleicht auch aufschrauben >> und auf der Platine ist schon ein Footprint für vorgesehen oder >> ähnliches. > > Habe mal den Deckel aufgemacht, aber einen jumper oder Footprint für > einen Terminierungswiderstand erkenne ich auf Anhieb nicht. Foto im > Anhang. Muss mich korrigieren, dort ist ein leerer Footprint zwischen den A und B Pins des Chips zu erkennen. Da ich aber derzeit keine vernünftige Ausrüstung zum Platinen/SMD löten besitze würde ich den Widerstand dennoch außen am Kabel anbringen.
Zoni B. schrieb: > aber ich nehme an der Transceiver mit der höchsten Rate > im Bus ist dann ausschlaggebend? korrekt > Habe mal den Deckel aufgemacht, aber einen jumper oder Footprint für > einen Terminierungswiderstand erkenne ich auf Anhieb nicht. Doch, Footprint ist da. Sieht nach 0402 aus. Ich weiß nicht ob Du Dir zutraust das zu löten. Wenn nein, dann könntest Du die Terminierung auch an die Pins der Common-Mode-Drossel setzen. Oder halt außen ans Kabel.
:
Bearbeitet durch User
Wenn das A/B ist, warum ist da dazwischen ein Kondensator? Und so wie es aussieht geht es auf etwas Optokoppler artiges 🤔 Oder ist das eine Gleichtaktdrossel?
:
Bearbeitet durch User
N. M. schrieb: > Wenn das A/B ist, warum ist da dazwischen ein Kondensator? > Und so wie es aussieht geht es auf etwas Optokoppler artiges 🤔 > Oder ist das eine Gleichtaktdrossel? Ist höchstwahrscheinlich eine Gleichtaktdrossel. Und damit die richtig filtern kann, braucht es einen kleinen Kondensator dahinter.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.