Sonstiges Anschaltung von RS232 TTL Messung an RS485 Schnittstelle

steinche

Level-2
Beiträge
112
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

hoffe dass ich hier nicht ganz falsch bin ;)

Eigentlich ist es eine recht einfache Aufgabenstellung. Ein Bekannter hat eine VIPA314C und für seinen Öltank eine kleine Ultraschall-Füllstandsmessung (LevelJET von ProJET). Dieses kleine Multitalent hat auch eine RS232 Schnittstelle mit TTL Pegel die wir dazu verwenden wollten, um die Daten in die Steuerung einzulesen. Die 12 Byte Daten werden im Sekundentakt mit 19200/8/N/1 gesendet.
Erster Gedanke, mit einem fertigen Modul, das einen MAX485 besitzt von RS232 TTL auf RS485 und damit auf die Schnittstelle der VIPA, die als PtP parametriert war. Dazu über die Bucht eine Hand voll aus Fernost bezogen und die Tests gingen los. Die erste Hürde war die Hardwareverkabelung. Der Schnittstellenwandler hat auf der "TTL-Seite" die Anschlüsse DI/DE/RE/RO und auf der RS485-Seite A/B. Mit dem RS485 Anschluss sind wir auf A/B an der CPU. Vom LevelJET haben wir den GND auf DE und den TXD auf DI des Schnittstellenwandlers angeschlossen.
Soweit so schlecht - es kommen keine Daten in der CPU an :( Die Schnittstelle ist mit dem vipaspezifischen SFC216 (SER_CFG) parametriert und mit dem SFC218 (SER_RCV) empfangsbereit.

Mit einem Oszi kommt das Signal schön aus dem LevelJET, nach Anschluss des MAX485 sieht es schon etwas unschön aus und auf der RS485 Seite ist es ganz kreuz und quer, aber vielleicht messen wir da auch falsch. Wir haben schon mehrere Anschlussmöglichkeiten durchprobiert und auch die Wandler getauscht.

Hat jemand Tips zur Fehlersuche oder Lösungsvorschläge?

Viele Grüße
Eric
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo simon.s

Danke für Deine Antwort. Es ist ein MAX485, wie von Dir beschrieben. Was ich nicht verstehe, wieso soll das nicht funktionieren . Der MAX485 wandelt doch das RS232 TTL Signal in ein RS485 Signal um, oder? Die Auswertung der Kommunikation erfolgt über die PtP Schnittstelle der CPU. Wo liegt unser Denkfehler?

Viele Grüße
Eric
 
Mal zur Klarstellung:
- Deine Schnittstelle ist keine RS232 sondern eine serielle Schnittstelle mit TTL-Pegel.
- RS485 ist ein Bus mit Senden und Empfangen auf den selben Leitungen. Da reicht eine simple Pegelanpassung normalerweise nicht, da gehört noch eine Zugangslogik und Sende-/Empfangs-Richtungslogik dazu. Und es gehören dazu Abschlußwiderstände und eine Biasschaltung für definierte Pegel auf dem Bus wenn kein Teilnehmer sendet. (RS485-Physik mit getrennten Sende- und Empfangsleitungen wie die serielle Schnittstelle wäre eine RS422).

Du kannst Glück haben, wenn die VIPA niemals in Senden geht.
- Du müßtest an Deinem MAX485 /RE und DE zusammen an VCC (+5V) legen, dann steht der Chip fest auf Senden.
- Du müßtest mindestens an einem Kabelende die 3 Abschlußwiderstände einbauen - am besten nimm einen Profibus-Stecker auf der VIPA-Seite, da ist die Widerstandsschaltung schon mit drin.
- eventuell ist es nötig, die zwei Busleitungen A und B zu vertauschen

Übrigens braucht man die 485-Treiber-Chips nicht aus Asien importieren, die gibt es für ein paar Euro in jedem guten deutschen Elektronik-Internetshop.

Harald
 
Hallo Harald,

Danke für die Aufklärung und die vielen Tipps!!
Die VIPA wird nie in Senden gehen, einen Profibusstecker haben wir schon getestet, eben wegen des Busabschlusses. Aber /RE und DE war noch nicht auf 5V gelegt, wird noch getestet und berichtet :D Die Leitungslänge des RS485 Abschnitts sind ca. 10m brauche ich da auch beiden Seiten die 3 Abschlusswiederstände, oder soll über die 10m besser der TTL Pegel geführt werden und die RS485 Strecke nur ein paar cm?

Eine Frage stellt sich noch mit dem TTL Pegel, kommt der GND auf DE und TXD auf DI? Widerspricht sich das nicht in Bezug auf das Brücken von /RE und DE auf 5V?

Die Chips wurden deshalb aus Asien importiert, da sie schon auf fertigen kleinen Platinchen mit Anschlüssen waren ;)

Viele Grüße
Eric

Anbei noch ein Schaltplan des verwendeten Platinchens. Eigentlich müsste nur GND des TTL Pegels auf GND des Chips und TXD auf DI, oder?
 

Anhänge

  • MAX485-Module-Schematic.pdf
    59 KB · Aufrufe: 18
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Frage stellt sich noch mit dem TTL Pegel, kommt der GND auf DE und TXD auf DI? Widerspricht sich das nicht in Bezug auf das Brücken von /RE und DE auf 5V?
Nein, der TTL-GND kommt auf GND vom Platinchen, und der TXD auf DI. Die anderen Eingänge sind durch die Widerstände schon richtig beschaltet.
Gruß
Erich
 
Zuletzt bearbeitet:
Die Platine kommt so nahe wie möglich an die TTL-Schnittstelle. Du mußt nur VCC (+5V), GND und DI (TXD) anschließen. Die RS485-Seite (A und B) kann 50m lang sein (Siemens-Empfehlung bei nicht potentialfreier RS485).
Ich glaube, bei Deiner Platine sind die Widerstände R5 und R6 falsch geschaltet - A wird nach VCC(+) gezogen und B nach GND(-). Bei Siemens/VIPA wird B nach (+) gezogen und A nach (-).

Harald
 
Hallo,

die Widerstände sind schon genau richtig so.
Man muss dazu berücksichtigen, dass die Baustein (Chip) Anschlüsse A+B !!!NICHT!!! den
allgemein üblichen RS485 Anschlussbezeichungen entspricht.
Bei dauernd eingeschaltetem Sender ist die Widerstandskombination aber eh überflüssig.

TTL GND kommt auf GND, TTL TxD kommt auf DI;
-RE kommt auf +5V, DE kommt auf +5V; Machen die Widerstände auf der Platine schon.
Platine gehört nah an TTL-Schnittstelle (<1m); RS485 kann bis zu 1000m oder mehr.

Dann muss man noch berücksichtigen, dass MAX485 A auf Siemens/Vipa B gehört und
MAX485 B auf Siemens/Vipa A. Dann klappt das auch.

mfg
Erdmann
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald Hallo Erdmann,

mein Name ist Jürgen und ich habe das Problem mit der Schnitstelle, Eric hat mich Tatkräftig unterstüzt.

Ich habe eure Vorschläge durch gearbeitet leider ohne Erfolg, im Moment glaube ich, dass die Schnitstellen einen Schlag weg haben (2 werden Heiß 2 bringen nur wirres Zeug).
Ich werd mir eine neue Schnitstelle zulegen, habt ihr einen Tip für mich mit welchem Modul es funktionieren könnte.

Gruß
Jürgen
 
Hallo Jürgen,

Deine MAX485-Module müssten grundsätzlich geeignet sein.

Du kannst die Module gegenseitig testen, ob sie noch funktionieren. Dazu ein Modul als Sender mit einem Modul als Empfänger verbinden.

Sendemodul:
- VCC: +5V anschließen
- GND: GND anschließen
- DI, RO, DE und RE nichts anschließen
- A und B mit A und B des Empfänger-Moduls verbinden

Empfänger-Modul:
- VCC: +5V anschließen
- GND: GND anschließen
- DE und RE mit GND verbinden
- DI nichts anschließen
- an RO Spannungsmesser gegen GND oder Leuchtdiode mit Vorwiderstand mind. 470 Ohm bis 1 kOhm gegen VCC anschließen
- A und B sind mit A und B des Sender-Moduls verbunden

Testen:
- Sender.DI nichts angeschlossen --> Empfänger.RO sollte ca. 4,5V haben, LED dunkel
- Sender.DI mit GND verbinden --> Empfänger.RO sollte ca. 0,2V haben, LED leuchtet
- Sender.DI den TxD von Deinem LevelJET anschließen und Ground mit GND verbinden --> Empfänger.RO die LED sollte im Sekundentakt kurz aufblitzen/flackern (die LED leuchtet bei L-Bits)

Harald
 
Hallo Harald,

vielen Dank für die ausführliche Beschreibung, dadurch konnte ich wirklich einen Defekt der Module ausschließen.
Habe nun alles verdrahtet, Sender an den LevelJet, A/B-Leitung über Profibus an die Vipa (A/B vertauscht) und siehe da keine Daten :cry:

Ab jetzt wird kurios, habe den Fehler dann am SFC 216 gesucht und mit den Perameter etwas experimentiert, beim Parameter STOPBIT habe ich den Wert von 1 auf 1,5 (laut LevelJet 19200 Baut, 8 Bit, None-Parity, 1 Stop-Bit) gesetzt und soforf Daten erhalten, der Rückgabewert REDVAL melded nun Stopbitfehler, aber die Daten die ich erhalte sind Plausibel.

Damit kann ich Leben und Danke allen die mich hier untersützt haben.

Gruß
Jürgen
 
Zurück
Oben