Forum: Offtopic RS 485 verständnis


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 Matthias H. (vico255)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo,

ich habe ein Messgerät was laut beschreibung einen RS485 anschluss 
besitzt. Daraufhin habe ich mir einen USB Adapter gekauft der auch 
diesen anschluss besitzt und habe sie verbunden. Aus der Beschreibung 
des Messgerätes werde ich nicht schlau wie ich Daten verschicken 
soll/kann. Habe einige Programme gedownloadet und benutze gerade den 
"com port monitor".

kurz zur Verständnis = ich muss einen befehl schicken um eine Antwort zu 
bekommen (messergebnis), richtig ? Wenn ja wie muss ich das eingeben ?

rs485 -> usb 
http://i01.i.aliimg.com/wsphoto/v0/1436452315_6/Free-Shipping-10PCS-lot-USB-2-0-to-RS485-Serial-Converter-Adapter-CH340G-MAX485-or-SN75176.jpg

Wenn ich zum testen irgendwas eingebe bekomme ich immer irgendwelche 
nicht zeichen zurück. Warum ?

Bitte um Ganade, habe vor 2 Tagen mit angefangen und werde einfach nicht 
schlau draus.


LG

von Oliver R. (orb)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Wenn ich zum testen irgendwas eingebe bekomme ich immer irgendwelche
> nicht zeichen zurück. Warum ?

Falsche Geschwindigkeit/Parität/Stopbits

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
In der Beschreibung steht 9600 bps, 8 bit, parity = 0 und stopbit 1.
Das habe ich so übernommen.

von Oliver R. (orb)


Bewertung
0 lesenswert
nicht lesenswert
Dann tausch doch mal die beiden Drähte.

Wenn im Handbuch zum Messgerät nichtsteht, wie Du das Messgerät 
ansprichst kann es sein, daß der Herstelller das für sich behält und 
lieber seine eigene Software verkauft. Was für ein Messgerät ist es 
denn?

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
http://www.mb-systemtechnik.de/download/beschreibung_co2_messgeraet_weiss.pdf

Da steht was dazu nur ich weiß leider nicht genau wie ich es anstellen 
muss um mein Ergebnis angezeigt zu bekommen. Was und wie muss ich das 
bei "com port monitor" eingeben ?

Vielen Dank

PS: Die Drähte sind richtig rum angeschlossen. Sind nur 2.

: Bearbeitet durch User
von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> PS: Die Drähte sind richtig rum angeschlossen. Sind nur 2.

Failsafe-Widerstände auch angeschlossen? Ohne die geht nix. Terminierung 
jedoch wirds wohl nicht brauchen bei 9600 und nur wenigen Metern.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
habe nur die beiden geräte mit 2 drähten miteinander verbunden, brauch 
ich dazwischen noch einen widerstand ? wo muss der denn hin ?

vielen dank

PS: die kabellänge beträgt nur 10 cm :)

: Bearbeitet durch User
von Oliver R. (orb)


Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das Datenblatt richtig lese bekommst Du auch keine lesbaren 
Zeichen zurück.
Du schickst eine Bytefolge nach dem Aufbau in den Tabellen 2-5 zum 
Messgerät und bekommst eine Antwort wie in Tabelle 7 beschrieben zurück.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
wie muss ich die bytefolge schicken ? was muss ich bei "com port monitor 
eingeben". ich poste dann mal das ergebnis.

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> habe nur die beiden geräte mit 2 drähten miteinander verbunden, brauch
> ich dazwischen noch einen widerstand ? wo muss der denn hin ?

Ist Dir eigentlich schon mal in den Sinn gekommen einfach mal "rs485" zu 
googlen nur um wenigstens mal nen ganz groben Überblick zu bekommen was 
das überhaupt ist, so daß Du wenigstens nicht komplett unvorbereitet 
hier ins Forum reinstolperst?

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Ja natürlich, die letzten 2 Tage wenns hoch kommt 15 Stunden. Ich 
bekomme immer irgendwelche Sonderzeichen als Antwort und das verstehe 
ich nicht. Ich gebe bestimmt den Befehl falsch ein oder kann das 
Datenblatt nicht richtig deuten und deshalb dachte ich, frage ich euch 
einfach mal. Ich weiß was Google ist und auch wie man es benutzt !

Danke für deine nicht Hilfreiche antwort :/


Hilfreich wäre gewesen...

Gib es so ein "0x03 0x06 usw." oder "binär" so oder du musst die befehle 
so oder so schreiben und evtl. das beachten.

Vielen Dank

: Bearbeitet durch User
von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> ch
> bekomme immer irgendwelche Sonderzeichen als Antwort und das verstehe
> ich nicht.

* Erstens: Ist der Bus richtig rum angeschlossen, also d+ nach d+, d- 
nach d- (denn auf die Bezeichnungen A und B kann man sich nicht 
verlassen, da gibt es zwei gegensätzliche Konventionen)?

* Zweitens: Hast Du die Ruhepegel gemessen? Brauchst Du vielleicht 
(höchst wahrscheinlich) noch die Failsafe-Widerstände?

* Drittens: was für "Sonderzeichen"? Laut Datenblatt erwartet das Ding 
Binärdaten und antwortet mit Binärdaten. Also schreibst Du ein kleines 
Programm das die gewünschte Anfrage erstellt samt Prüfsumme, das dann an 
das Gerät hinschickt und die Antwort entgegennimmt und dann zeigst Du 
uns genau was Du hingeschickt hast und was zurückkommt (und den 
Quelltext dieses Testprogrammes zeigst Du uns bitte auch).

von Max M. (jens2001)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Wenn ich zum testen irgendwas eingebe

Dann solltest du mal anfangen etwas sinnvolles zu übertragen!

Hast du eigendlich irgend etwas verstanden von dem was in dem PDF steht?

1. Jede Übertragung startet mit Startbyte 0x03
2. Dann die Slave ID 0x01-0x07
3. Die gesamtlänge der Übertragung 0x06
4. Das Komando an den Slave. z.B. 0x0A für Aufforderung zur 
Messwertübertragung
5. Checksumme über 1.-4.
6. Stopbyte 0x04

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


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Habe einige Programme gedownloadet und benutze gerade den
> "com port monitor".

Nimm mal HTerm. Das kann problemlos mit dem HEX Format umgehen und dir 
auch mal einen vorkonfigurierten String ans Gerät schicken.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Max Mustermann schrieb:
> Hast du eigendlich irgend etwas verstanden von dem was in dem PDF steht?
>
> 1. Jede Übertragung startet mit Startbyte 0x03
> 2. Dann die Slave ID 0x01-0x07
> 3. Die gesamtlänge der Übertragung 0x06
> 4. Das Komando an den Slave. z.B. 0x0A für Aufforderung zur
> Messwertübertragung
> 5. Checksumme über 1.-4.
> 6. Stopbyte 0x04

Ja ein wenig schon. Wie muss ich das eingeben ? "0x03 0x01 0x06 0x0A 
0x04" ? (Das habe ich so ja schon probiert)

Wenn die antwort ein Messwert ist muss ja egal was ich als Antwort 
bekomme, immer anders aussehen. Tut es ja aber nicht :(

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


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Ja ein wenig schon. Wie muss ich das eingeben ? "0x03 0x01 0x06 0x0A
> 0x04" ? (Das habe ich so ja schon probiert)

Da fehlt aber die Prüfsumme. Das Messgerät wird dir zurückschicken, das 
da was faul ist. Und natürlich nicht als ASCII Zeichen, sondern als 
Zahl. 0x0A z.B. wäre dann CTRL-J , 0x06 wäre dann Ctrl-F usw.:
http://www.asciitable.com/

Einfacher ists mit HTerm.

: Bearbeitet durch User
von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Ich verzweifel so langsam.

Habe mir jetzt HTerm geholt und alles auf HEX gestellt und "0x03 0x01 
0x06 0x0A 0x00 0x04" und raus kommt "F69F999F9D9FDF usw" auch Decimal 
bringt mich das auch nicht weiter.

Wo steht die Prüfsumme ? ist das 0x00 ?

Warum ist das so kompliziert ?

Danke für die Mühe

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Warum ist das so kompliziert ?

Weil Du Dir gleich für den Anfang etwas ausgesucht hast was eigentlich 
erst in ungefähr einem Jahr drankommt. Du solltest erst mal bei Kapitel 
1 anfangen.

Deshalb kommt Dir das so kompliziert vor.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Das wird wohl so sein aber ich habe jetzt diesen Ausgang und ich möchte 
ihn gerne nutzen, ich weiß nicht was in Kapitel 1 dran kommt und ein 
Jahr möchte ich nicht warten :) Wäre schön wenn sich einer mal kurz Zeit 
nimmt und mir diese PDF aufschlüsselt. Wenn ich einer Antwort von Slave 
bekomme, müsste doch die verbindung soweit richtig sein oder gibt es da 
noch Fehlerquellen ?

Danke trotzdem für die Antworten

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


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> Wo steht die Prüfsumme ? ist das 0x00 ?

Die Stelle stimmt schon, aber die Prüfsumme von 0x03 + 0x01 + 0x06 + 
0x0a ist doch nicht 0x00, sondern 0x14 (= 0d20).

: Bearbeitet durch User
von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal eine Frage, brauche ich nicht Punkt 6. in meiner PDF ? Ich 
sitze da jetzt wieder seit heute Mittag vor und komme einfach zu keinem 
Ergebnis (sage ja nicht das es leicht sein würde)

Kann mir nicht einer bitte als Beispiel Punkt 1 - 13 aufschreiben was 
ich in den HTerm eintragen muss um an mein Messergebnis zu kommen ?

Wäre echt zu tiefst Dankbar darüber.

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> müsste doch die verbindung soweit richtig sein oder gibt es da noch
> Fehlerquellen ?

Ja, die gibt es. Zum Beispiel könnten die beiden Drähte vertauscht sein, 
dann käme nur Datenmüll an. Oder Du hast immer noch nicht die Failsafe 
Widerstände eingebaut, auch dann kommt Datenmüll wenn du Pech hast. Mach 
dich hierzu bitte mit der korrekten Verdrahtung und Aufbau eines RS485 
Busses vertraut. Das ist unverzichtbar.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
wenn ich die beiden Drähte vertausche empfange ich nichts und brauche 
ich die Widerstände bei 10 cm Kabellänge ?

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Failsafe brauchst Du immer. Das hat nichts mit der Kabellange zu tun 
sondern mit dem Ruhepegel. Hast Du mal gegoogelt?

Welche Programmiersprache gedenkst du eigentlich zu verwenden für die 
fertige Anwendung, hast Du schon angefangen? Zeig doch mal was Du bisher 
schon hast.

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen

Ja habe schon gegoogelt. 120 Ohm zwischen A und B brauche ich dann wohl.

Möchte meine Daten in Excel weiterverarbeiten und benutzte das hier 
(http://michael-schwimmer.de/vba072.htm), vba verstehe ich aber damit 
wollte ich erst anfangen wenn ich auch wirklich weiß wie ich an die 
Messdaten komme.

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> 120 Ohm zwischen A und B brauche ich dann wohl.

Du brauchst vor allem die pullups und pulldowns nach 0 und 5V

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Außerdem:

> "F69F999F9D9FDF usw"

Da sind mir erstens zu viele F drin (überhaupt überproportional viele 1 
bits in Folge) für das was man erwarten würde was es zurücksenden sollte 
(es sollten eigentlich auch ein paar nullen zu sehen sein) und zweitens 
fängt das Telegramm scheinbar auch überhaupt nicht mit einem 03 an wie 
es sollte)) und das bedeutet irgendwas stimmt noch grundsätzlich nicht 
mit der Verbindung (entweder Baudrate oder A und B vertauscht oder 
er steigt falsch ein (verpasst ein Startbit) durch fehlenden 
Failsafe-Bias oder mehrere der obigen Gründe kombiniert).

: Bearbeitet durch User
von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt 120 Ohm zwischen a und b. gesendet habe ich "03 01 06 0A 
14 04" und empfangen "7E 7F BE BD DD 1F"

von Matthias H. (vico255)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
selbst wenn ich die baud änder, ändert sich nicht das empfangene 
Ergebnis, gebe ich was falsch ein ?

Was schickt er mir da eigentlich als antwort ? er antwortet ja scheinbar 
auf Sachen die er auch nicht versteht. Das schlussfolgert doch das er 
mich nicht versteht oder ich es falsch verschicke oder ?

zwischen a und gnd und b und gnd habe ich -2,5 Volt
zwischen a und gnd und b und gnd auch jeweils 1K Ohm

Hilft das evtl. weiter ?

: Bearbeitet durch User
von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
Matthias H. schrieb:
> ich habe jetzt 120 Ohm zwischen a und b.

Ich spreche nicht von der Terminierung sondern vom FAILSAFE BIAS, 
spreche ich etwa chinesisch?

Hier zum Beispiel: http://www.ti.com/lit/an/snla031/snla031.pdf im 
Ruhezustand muss eine 1 erkannt werden, A und B müssen entsprechend 
vorgespannt sein. Du brauchst widerstände nach +5V und 0V wie in den 
Bildern zu sehen. ZWISCHEN A und B muss eine kleine Spannung liegen 
(0.2V mindestens, und zwar richtig rum!)

Zeig mal ein Oszillogramm von jeweils beiden Leitungen, einmal wenn Du 
sendest und einmal wenn das Gerät sendet!

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Bernd K. schrieb:
> Zeig mal ein Oszillogramm von jeweils beiden Leitungen, einmal wenn Du
> sendest und einmal wenn das Gerät sendet!

Kann es evtl. sein, das dieser spassige Chinesenadapter überhaupt nicht 
mit dem Halbduplex klarkommt? Gibts da ausser dem Bild des Teils noch 
irgendeinen Waschzettel zu, in dem wenigstens ein bisschen was zu den 
Specs steht?

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Besitze leider kein oszilloskop, lese es gerade durch aber schon 
hardcore für einen der sowas noch nie gemacht hat. Ich weiß nicht, habe 
dich noch nie sprechen gehört :)

von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Kann es evtl. sein, das dieser spassige Chinesenadapter überhaupt nicht
> mit dem Halbduplex klarkommt? Gibts da ausser dem Bild des Teils noch
> irgendeinen Waschzettel zu, in dem wenigstens ein bisschen was zu den
> Specs steht?

Nein, im Umschlag war nur das Teil, ohne Packungsbeilage :(

Das habe ich noch gefunden :

 Dieser Konverter ermöglicht den einfachen Anschluss von seriellen 
Geräten über einen USB-Port.



Technische Daten

    USB 2.0 - RS85 Konverter
    Abwärtskompatibel zu USB 1.1
    Anschluss erfolgt über Schraubklemmen

    Unterstützte Baudrate: 75bps - 115200 bps / bis zu 6 Mbps
    Niedriger Stromverbrauch, benötigt kein externes Netzteil
    Unterstützte Betriebssysteme: Windows XP  Vista  7 / 8 # Mac # 
Linux # Windows CE 5.0
    Abmessungen: 60 x 18 x 14 mm
    Gewicht: 9g
    Farbe: Schwarz / Grün
    Betriebstemperatur: -40 - +85° C





Wir haben diesen Adapter mit dem Raspberry Pi unter Raspbian getestet 
und können die Kompatibilität bestätigen. In unserem Test war für den 
Betrieb keine Treiberinstallation notwendig (Plug and Play).

: Bearbeitet durch User
von Matthias H. (vico255)


Bewertung
0 lesenswert
nicht lesenswert
http://www.mb-systemtechnik.de/download/produktkatalog.pdf Seite 15
Ich habe viel für das ding bezahlt und möchte es ungern kaputt machen, 
habe keine 5V vcc aber an klemme GND, kann ich das benutzen ? Was für 
Widerstände muss ich da benutzen ?

Danke euch weiterhin für eure Mühe

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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.