Hallo liebe Leute, mit einem Rigol-Oszi möchte ich ein RS485-Signal Entziffern, welches von einem pH-Sensor generiert wird. Der Sensor hat vier Litzen: gelb: Signal (RS485-A) blau: Signal (RS485-B) braun: positive Versorgung (12...24V DC) schwarz: negative Versorgung (0V) Kann ich diese abgebildete Spitze verwenden um das RS485-Signal abzutasten? Ist die kleine Krokodilklemme in diesem Fall Ground oder "nur" um Impedanz-Probleme vorzubeugen? Bisher verwendete ich immer nur für langsame, analoge Signale mit BNC. Mit seriellen Schnittstellen kenn ich mich nur wenig aus. Vielen Dank
:
Verschoben durch Moderator
> Ist die kleine Krokodilklemme in diesem Fall Ground oder > "nur" um Impedanz-Probleme vorzubeugen? Diese doofen Krokoklemmen sind GND und muessen selbstverstaendlich mit Ground deines Signals verbunden sein. Bei Signalen von hoher Frequenz ist diese Verbindung wegen der Impedanz der 10cm Zuleitung nicht ausreichend, deshalb gehoert zu einem Tastkopf auch immer so eine kleine Massefeder. Bei RS485 wirst du vermutlich nur so 9600 bis 115200Baud uebertragungsrate haben. Also wirst du Signale bis maximal 1Mhz Bandbreite sehen wollen und deshalb ist dann die Krokoklemme ausreichend und erforderlich. Wenn man mit mehreren Tastkoepfen misst dann sollte man eigentlich auch jeden irgendwo mit der Krokoklemme an GND anklemmen. Allerdings wenn man weiss was man da macht und keine sauberen Bilder rumzeigen muss, dann kann man da schon mal etwas vernachlaessigen. .-) Ich empfehle dir mal die unterschiedlichen Klemmungen, auch mit Massefeder, auszuprobieren damit du den Unterschied siehst und ein Gefuehl dafuer bekommst wann man etwas locker sehen kann und wann nicht. Vanye
Die "richtige" Methode, ein differenzielles Signal wie RS-485 zu messen, ist zwei Kanäle für A und B (jeweils relativ zur Masse) zu benutzen und das Oszilloskop A−B berechnen zu lassen. Aber wenn du nicht viele Störungen hast, dann geht auch einfach nur A.
> Die "richtige" Methode, ein differenzielles Signal wie RS-485 zu messen, > ist zwei Kanäle für A und B Ach komm, das ist die richtige Methode um stoerungsfreien Betrieb fuer ein 1000m langes Kabel im harten Industrieeinsatz sicher zu stellen. Aber um mit dem Oszi ein paar Daten abzuschnorcheln reicht es einfach nur A oder B zu belauschen. Vanye
Und wenn schon richtig dann richtig richtig mit einem richtigen Differenztastkopf SCNR ;-)
Vielen Dank schon mal. Langsam tut sich etwas (s. Foto) Leider sieht man noch nicht scharfe Kanten und Pulse, wie erwartet...und der RX-Decoder zeigt zwar Zahlen an, aber noch keine Wörter.. Irgendwelche Ideen?
> Irgendwelche Ideen?
Nun, als erstes mal schalte den Eingang deines Oszi auf DC um. :-D
Vanye
Und es könnte Sinn machen, die GND-Klemme des Tastkopfs auch auf GND zu legen. Da es sich da um PE der Steckdose handelt in der das Oszi steckt, könnte es je nach Restschaltung und Netzteil schlecht sein, A oder B nach PE kurzzuschließen...
Jens M. schrieb: > Da es sich da um PE der Steckdose handelt in der das Oszi steckt, könnte > es je nach Restschaltung und Netzteil schlecht sein, A oder B nach PE > kurzzuschließen... Die Gnd-Klemme hat weder an A noch an B irgendetwas zu suchen. Sonst muss der RS485-Treiber den ganzen Aufbau mit durch die Gegend schleifen.
Rainer W. schrieb: > Die Gnd-Klemme hat weder an A noch an B irgendetwas zu suchen. Ja ach. Die Klemme ist klar an "blau", und das ist Lysandros schrieb: > blau: Signal (RS485-B) Ups... Rainer W. schrieb: > Sonst muss der RS485-Treiber den ganzen Aufbau mit durch die Gegend > schleifen. Chuck Norris macht auch keine Pushups, er drückt die Erde runter. Sieht man hier auch am Skopbild.
Laut einige im Internet zu findender Beschreibungen sprechen diese Bodensensoren offenbar Modbus RTU, vermutlich als Slave. Dementsprechend sollte sich gar nichts auf den Datenleitungen tun. Je nachdem, ob die EIA-485 korrekt abgeschlossen und mit Failsafe-Beschaltung versehen ist, sollte A dann irgendwo zwischen ca. 1,5 V und 5 V hängen und B zwischen 0V und ca. 2,5 V, wobei A immer positiver als B sein dürfte. Folglich muss der Sensor also an einen Modbus Master angeschlossen sein, der ihn periodisch mit der richtigen Baudrate, Übertragungsparametern und Adresse abfragt. Auf dem Oszilloskop kann man meist Master und Slave sehr gut daran unterscheiden, dass sie leicht unterschiedliche Signalpegel treiben.
> Folglich muss der Sensor also an einen Modbus Master angeschlossen sein,
Sicher, ohne Arme keine Kekse. Datenuebertragung muss schon da sein
wenn man was sehen will.
Vanye
Lysandros schrieb: > Irgendwelche Ideen? Du misst Mist (aka. Störungen). Kein Wunder bei dem Messaufbau. Als Tipp: um zu sehen, was da grade so an Störungen unterwegs ist, halte ich kurz vor der Messung die Tastspitze mal kurz an die angeklemmte Masseklemme. Wenn du dann keine schnurgerade Linie auf 0V siehst, sind eh schon Störungen ubterwegs. > und der RX-Decoder zeigt zwar Zahlen an Und so gut wie jede Zahl endet mit einem Fragezeichen... Kurz: der wird aus jedem Signal irgendwas herausrechnen. Halt einfach mal nur den Finger an die Spitze. Du wirst die Lottozahlen sehen.
Der Decoder bemühst sich, aus den 50mV-Spitzen zu machen was er kann. Normal sollten da eher ganze Volt rauskommen, und nicht so schön regelmäßige Elkonachladekurven.
Ein USB RS485 Adapter und eine Modbus Software helfen da. Da dein Rigol auch 16 Digitaleingänge hat hilft vllt. auch ein Blick ins Manual.
Tatsächlich steht in der Anleitung (aus Fernost, die Übersetzung ist so-la-la), dass man ein Modbus-RTU einsetzen soll. Verstehe ich es richtig, dass ich die Messwerte über einen "Host" aktiv abfragen muss, über Leitung "B" ? Ich hatte gehofft, dass der Sensor mit einer festen Rate die Werte liefert...
Ja, wenn es ModbusRTU ist musst du den Sensor abfragen. Aber nicht über B, A & B gehören zusammen, das ist eine differentielle Übertragung, d.h. "A+ und B-" ist ein Bit, "A- und B+" das andere. Im Prinzip eine normale Halbduplex Serielle Schnittstelle, nur mit anderen Spannungspegeln.
Lysandros schrieb: > Tatsächlich steht in der Anleitung (aus Fernost, die Übersetzung ist > so-la-la), dass man ein Modbus-RTU einsetzen soll. Verstehe ich es > richtig, dass ich die Messwerte über einen "Host" aktiv abfragen muss, > über Leitung "B" ? Ich hatte gehofft, dass der Sensor mit einer festen > Rate die Werte liefert... Das ist bei Modbus unüblich. Der Sensor ist höchstwahrscheinlich als Slave implementiert und sendet von sich aus nichts. Wenn Du eine Doku des Sensors hast, stelle sie hier doch mal ein
Vanye R. schrieb: >> Die "richtige" Methode, ein differenzielles Signal wie RS-485 zu messen, >> ist zwei Kanäle für A und B > > Ach komm, das ist die richtige Methode um stoerungsfreien Betrieb fuer > ein 1000m langes Kabel im harten Industrieeinsatz sicher zu stellen. > Aber um mit dem Oszi ein paar Daten abzuschnorcheln reicht es einfach > nur A oder B zu belauschen. > > Vanye Außer irgendwer sendet Stuss auf der Leitung wodurch das Signal nicht korrekt ist.
> Ich hatte gehofft, dass der Sensor mit einer festen > Rate die Werte liefert... Nein, du hoffst komplett falsch. Lies dir irgendwo ein paar Grundlagen zu Modbus an! Oder kauf dir dieses Kabel. (teuer aber stressfrei) https://ftdichip.com/products/usb-rs485-we-1800-bt/ Oder in billig: https://de.aliexpress.com/item/1005006003176867.html Wenn du dann Modbus kapiert hast kannst du mit hterm einfach ein paar Bytes senden und er wird dir antworten. Wenn du auf bloed spielen willst kannst du auch noch das hier kaufen: http://www.simplymodbus.ca/download.htm Noch ein Wort zur Aufmunterung: Modbus gilt als der einfachste der industriellen Feldbusse. .-) Vanye
Lysandros schrieb: > Ich hatte gehofft Aus eigener Erfahrung: das ist keine geeignete Basis für erfolgreiche Elektronikentwicklung. Wenn man ein Bussystem verwenden will, dann muss man sich zuallererst mal die Grundlagen dieses Bussystems aneignen. Dann kann man versuchen, selber mit diesem Bus zu fahren. Aber einfach nur "reinsitzen" und hoffen, dass der Bus dorthin fährt, wo man gerne hinwill, führt in den allermeisten Fällen nicht zum gewünschten Ziel. Lysandros schrieb: > welches von einem pH-Sensor generiert wird. Probieren wirs mal so: von welchem pH-Sensor soll da was gesendet werden? Gibt es da auch ein Manual dazu? Oder wenigstens eine Typbezeichung?
Lothar M. schrieb: > Gibt es da auch ein Manual dazu? Ich hatte den TO auch schon gebeten alle Unterlagen einzustellen. Denn er hat welche: "Tatsächlich steht in der Anleitung (aus Fernost, die Übersetzung ist so-la-la), dass man ein Modbus-RTU einsetzen soll"...
Und hier mein Setup, daraus soll ich eine Industrie-4.0-Telemetrie MacGyvern :/ Das kleine Board ist: https://www.conrad.de/de/p/max485-ttl-to-rs485-switch-schalter-5v-modul-fuer-arduino-raspberry-pi-802243984.html#productDescription
:
Bearbeitet durch User
In der Anleitung sind doch die meisten wichtigen Parameter beschrieben. Und wie zu erwarten war, handelt es sich um einen Modbus Slave. Und noch einmal die wichtige Frage: Was glaubst Du denn mit dem Oszilloskop messen zu können, wenn der Sensor nicht von einem Host abgefragt wird? Die einzigen Informationen, die man darüber herausbekommen kann, sind gg. die Terminierung und die Fail-Safe-Pegel.
Gut, jetzt ist einiges klarer. Vielen Dank euch allen Habe gerade über Minicom (ähnlich wie PuTTy) versucht eine Verbindung aufzubauen aber es passiert nichts; ich kann keine Commands über den Rechner an den Sensor senden...Es ist als ob der USB/RS485-Converter den Sensor nicht bemerkt. Ich versuche es womöglich jetzt mit einem Microcontroller.
Lysandros schrieb: > Es ist als ob der USB/RS485-Converter den > Sensor nicht bemerkt. Du kannst aber auf der RS485-Seite mit dem Oszi messen, ob sich auf der Leitung etwas tut. Vielleicht schickst du auch nur das falsche Kommando!?
> ich kann keine Commands über den Rechner an den Sensor senden...
Warum glaubst du wohl hab ich oben hterm gesagt? Du glaubst doch nicht
im Ernst das ein Empfaenger die Ewigkeiten warten welche die glibbrige
Masse zwischen deinen Ohren braucht um einzelne Zeichen zu tippen oder?
Du must eine korrekte Nachricht mit korrekter Pruefsumme an einem Stueck
schicken.
Vanye
Lysandros schrieb: > Habe gerade über Minicom (ähnlich wie PuTTy) versucht eine Verbindung > aufzubauen aber es passiert nichts; ich kann keine Commands über den > Rechner an den Sensor senden... Hast Du mittels Oszilloskop verifiziert, dass Minicom keine Zeichen an den Sensor schickt? Wie erzeugst Du die binären(!) Zeichenfolge mit dem Befehl? Wie erzeugst und sendest Du die korrekte CRC? Woher stammt das zugehörige Generatorpolynom? Hast Du verifiziert, dass die Zeichen schnell genug gesendet werden, d.h. Modbus T35 einghalten wird? > Es ist als ob der USB/RS485-Converter den > Sensor nicht bemerkt. Das hast Du wie verifiziert? > Ich versuche es womöglich jetzt mit einem Microcontroller. Um Dir die nächsten Probleme einzuhandeln, ohne dass Du die Ursache der Fehlversuche mit dem PC geklärt hast? Hast Du denn die offizielle Modbus-RTU-Spezifikation konsultiert und verstanden, was darin enthalten ist?
:
Bearbeitet durch User
Dietrich L. schrieb: > Vielleicht schickst du auch nur das falsche Kommando!? Ich vermute ja sehr stark, dass er händisch ein paar ASCII-Zeichen schickt, inklusive der Zeichenfolge "CRC". Und T35 läuft zwischendurch jeweils hundertmal ab.
Lysandros schrieb: > Habe gerade über Minicom (ähnlich wie PuTTy) versucht eine Verbindung > aufzubauen aber es passiert nichts; ich kann keine Commands über den > Rechner an den Sensor senden...Es ist als ob der USB/RS485-Converter den > Sensor nicht bemerkt. Ich versuche es womöglich jetzt mit einem > Microcontroller. Ist das wirklich die serielle Schnittstelle /dev/tty.usbserial-AK966VDV Schau mal mit ls -la /dev/tty* nach, was es da alles gibt Und ja: Linux unterscheidet zwischen Gross- und Kleinschreibung, also auch ls -la /dev/*USB* und ls -la /dev/*ACM*, denn serielle Schnittstellen können auch /dev/ttyACMx heissen
:
Bearbeitet durch User
Hey zusammen, aktuell sende ich keine Befehle an den Sensor. Bin noch nicht soweit. Hatte erwartet, dass im Minicomputer etwas wie "waiting for commands" erscheint, und ich dann eine Zeichenreihe rausschicken kann. Ich hänge jetzt den Oszi drann. Viele Grüße
Lysandros schrieb: > Hatte erwartet, dass im Minicomputer etwas wie "waiting > for commands" erscheint, und ich dann eine Zeichenreihe rausschicken > kann. Wo genau hast Du das in der offiziellen Modbus-Spezifikation gelesen? > Ich hänge jetzt den Oszi drann. Das ist generell eine gute Idee, um zu schauen, ob überhaupt Zeichen geschickt werden. Aber ohne Kenntnisse des Protokolls wirst Du nicht beurteilen können, ob das einigermaßen Modbus RTU entspricht.
Lade Dir QModMaster runter, stelle ModbusRTU und 9k6 8N1 ein und lese die in der Doku angegebenen Register aus. Wenn das dann klappt kannst du dir die Kommunikation gerne mit dem Oszi ansehen. Ist aber eigentlich unnötig, ModBusRTu ist sehr gut dokumentiert. Ob Du dann einen eigenen Modbus-Master programmieren willst oder lieber was fertiges nimmst kannst Du dir dann überlegen. Ach so: Modbus-Frames müssen am Stück geschickt werde. Zeichenweises eintippen klappt nicht. Wenn Du das Modbus-Telegramm von Hand erzeugen möchtest musst Du es vorher zusammentippen und dann am Stück abschicken. Für solche Sachen nehme ich gerne Realterm, einfach weil ich das schon seit Ewigkeiten benutze :-)
:
Bearbeitet durch User
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.