Wandler rs232/rs482 <-> TTL halbduplex

Hallo,

Contollerboard, ...) wohl nicht wirklich in Betracht, weil die darauf

bedient wird.

Ich kenne mich mit den Details nicht wirklich aus, daher schildere ich etwas ausschweifenden meinen Gedankengang:

Nun spricht der AX-12A ein serielles Protokoll ("Half Duplex Asynchronous Serial Communication (8bit, 1stop, No Parity)"), das Robotis freundlicherweise offengelegt hat, aber mit TTL-Pegeln, d.h. Spannung zwischen 0 und 5 Volt.

Die RS232 hat RS232-Pegel, also zwischen -12V und +12V.

Ich brauche also einen Pegelumsetzer, typischerweise etwas wo der MAX232-IC drin arbeitet. Die gibt es fertig zu kaufen. Aber im Manual steht, dass es halbduplex sein soll, d.h. mit Richtungsumschaltung,

Schema in Kap. 5.4.1 im Manual, Link s.o.

Ich habe beim Googeln verschiedene einsatzfertige Umsetzer gefunden, aber nirgendwo habe ich etwas von halbduplex gelesen. Vermutlich sind die RX und TX einfach 1:1 mit den TTL-Treibern verdrahtet und

und Protokollen.

(damit nix durchbrennt, falls beide Enden dummerweise gleichzeitig senden) an den AX-12A weiterzureichen.

wegwerfen, und fertig.

Denkfehler gemacht?

N.

Reply to
Nico Hoffmann
Loading thread data ...

Am 26.06.2020 um 22:29 schrieb Nico Hoffmann:

r Software zu handeln sind, und den verschiedenen Signaltypen (Leitungstreiber).

DoDi

Reply to
Hans-Peter Diettrich

Motorola-Controllern ehedem:

formatting link

Es geht mit kurzem Kabel bei 9600 Baud mit Transistoren.

sein.

MfG JRD

Reply to
Rafael Deliano

formatting link

Die Stromquelle ist hier ca. 4mA. Wenn das

74HC-Sender an Kabel hat normalerweise einen

gegen Reflektion. Der hier aber erstmal 10 Ohm ist, wird durch den pullup unsauberer. Sollte man sich am Oszilloskop ansehen ob man da was optimieren kann.

MfG JRD

Reply to
Rafael Deliano

Am 26.06.2020 um 22:29 schrieb Nico Hoffmann:

d.h. High ist bei RS232 -12V und Low ist +12V.

Wobei der Bereich von -3V bis -12V geht und von + 3V bis + 12V. In der Regel findet man ca. + oder - 10V.

TTL-Schnittstelle miteinander verbinden willst.

Wenn deine SPS RS485 hat, dann ist das nochmal was ganz anderes, geht

Halbduplex bedeutet bei RS232 nur, dass entweder gesendet oder empfangen wird. Wenn der Umsetzer Vollduplex kann, was praktisch immer der Fall

Bei RS485 braucht man eine Sende-Emofangsumschaltung. Da hat man Halb-Duplex, d.h. es kann immer nur einer senden. Die Umschaltung macht

seinen Max485 (das ist der RS485 Treiberbaustein) auf Senden.

Kommt drauf an. Wenn du den Servo von einem Arduino aus ansteuern

und schaltet um. Das funktioniert aber nur meistens.

formatting link

Im Prinzip kann man das so machen. Wobei ich die Beschaltung dort seltsam finde.

Du schreibst, dass du eine SPS hast. Hat die RS485?

Wenn du nur senden musst, dann verbindest du einfach die d+ Leitung deiner RS485 Schnittstelle mit Data.

Vieleicht geht das hier:

Wenn du Daten aus dem Servo auslesen willst, dann brauchst du auf der D-

D+ gewinnen, also einen TTL inverter, z.B. (74HC04) vn D+ nach D-.

Eventuell geht es auch, den D- Eingang auf halbe Betriebsspannung zu

VCC nach GND und den Abgriff auf D-. Der RS485 Treiber in deiner SPS wertet die Differenz zwischen D+ und D- aus, also wenn D+ > 2,5V ist das Signal High, ist D+ kleiner, dann Low.

im Prinzip richtig

Mit einem Mikrocontroller ganz einfach...

von einem geisteskranken Entwickler designt wurde...

Reply to
stefan

Hallo Nico,

Du schriebst am 26 Jun 2020 20:29:35 GMT:

...

Bis hierhin soweit klar, wenn auch die "serielle Schnittstelle mit TTL- Pegeln" ohne weitere Angaben etwas eigenartig ist, zudem "Half-Duplex". Das passt mit der bekanntesten Variante, V.24 aka RS232 (wer kennt noch V.24?) nicht so recht zusammen - eine Schnittstelle, die mit solchen

le (GND und Datenleitung), oder doch eher drei (GND und sowas wie D+ und D-)?

das,

gel 0..5V, Empfangspegelbereich -2..+7V, Signal differentiell zwischen D+ und D-.

iell arbeiten kann. Sie kann zwar halbduplex, wenn halt immer nur eine Seite sendet, aber keine Richtungsumschaltung der Daten. BTW, kann man evtl. diese "Servomotor"en adressieren und mehrere davon

her eine andere Schnittstelle an Deiner SPS... (Man _kann_ auch mit RS232 _mit_ Handshake eine RS485 simulieren, indem man

(oder einen

mit

le bei den RS232-Schnittstellen auch alles andere als konsistent, deswegen

tion herausfinden...

le

ten anzusprechen ist.

--
--  


----------------------------------------------------------- 
 Click to see the full signature
Reply to
Sieghard Schicktanz

Am 27.06.2020 um 20:49 schrieb Sieghard Schicktanz:

chen

rwendet.

und verstehen :-)

ende

d

t loop (Optokoppler...).

DoDi

Reply to
Hans-Peter Diettrich

stefan schreibt:

Hm!

Ja, ich habe RS232 und RS485 an der SPS.

Moment... "Data" ist das TTL-Pin am AX-12A?

RS485 und TTL ab, oder habe ich was missverstanden?

Wikipedia sagt: "Die Schnittstelle benutzt in der Regel nur ein Adernpaar und wird halbduplex betrieben, mit zwei Aderpaaren ist

vielen Teilnehmern ist, muss auch die Senden/Empfangen-Umschaltung irgendwie mit integriert oder vorgesehen sein. Auch Teile deiner Antwort scheinen das anzudeuten.

Ich habe nur noch nicht begriffen, wie das technisch umgesetzt ist. Aber vermutlich muss ich das gar nicht wissen, weil mir die SPS

drin ist?

die RS485-Schnittstelle und einen RS485-TTL-Pegelumsetzer.

Wenn auch der AX-12A die Senden/Empfangen-Umschaltung hat (wovon ich

N.

Reply to
Nico Hoffmann

Sieghard Schicktanz schreibt:

Robotis gibt an, dass man mehrere Motoren hintereinander, also in Reihe, schalten kann. Dazu haben die Motoren zwei Stecker mit eben je

RS232 sein.

Sorry, wenn ich das nicht deutlich gemacht habe, aber meine Lernkurve

Ja, RS485TTL ist wohl das, was ich brauche.

N.

Reply to
Nico Hoffmann

Am 28.06.2020 um 12:10 schrieb Nico Hoffmann:

Unter Punkt 5.2 in dem von dir verlinkten Dokumnt ist der Stecker abgebildet. Dort gibt es GND, VDD und Data. Du hast also nur eine

abgewickelt wird.

RS485 hat TTL-Pegel, jedenfalls wenn man von einer 5V Stromversorgung ausgeht. Es gibt auch Treiber, die mit 3,3V arbeiten.

verbunden werden.

sowohl das nichtinvertierte als auch das invertierte Signal.

formatting link

RS485 ist ein Bussystem in dem man in der Regel einen Master und mehrere Slaves hat. Das ist aber eine Frage der Software.

Das Prinzip ist, dass man die Differenzspannung zwischen der D+ und der

meist gleich auf beide Leitungen auswirken, dass also die Differenzspannung bzw. die Vorzeichen der Potentialdifferenz auf der D+

Wenn du dir das Schaltsymbol des Max485 ansiehtst, dann siehst du dort einen Treiber mit einem invertierenden und einem nichtinvertierendem

Senderseitig ist das also ganz einfach, du musst nur die passende Leitung auf Data legen, also vermutlich D+.

Bei zwei Aderpaaren nennt man das RS422. Da wird auch viel Quatsch

in den USA unter RS485 etwas anderes versteht als in Europa. Da war das Problem, dass der Motor bei einem Factory Reset in den RS422 Modus geschaltet wurde und mit einem RS485 Adapter nicht wieder umkonfiguriert werden konnte. --> soviel zum Thema geisteskranke Entwickler...

in der Doku deiner SPS stehen.

Nein, den Pegelumsetzer brauchst du nicht. Deine RS485 Schnittstelle liefert dir das bereits.

Und auf der Motorseite hast du keine Sende-Empfangsumschaltung, denn

Davon ist auszugehen. Das Problem ist nur, die Empfangsseite der RS485 Schnittstelle der SPS dazu zu bringen, die Daten korrekt zu empfangen.

Wie schon geschrieben: Meine Idee ist, mit einem Spannungsteiler die D- Leitung auf 2,5V zu ziehen. Wenn nun auf D+ ein High-Signal mit +5V kommt, ist die Spannungsdifferenz zwischen D+ und D- positiv. Geht D+ auf 0V, dann ist die Spannungsdifferenz negativ.

Stefan

Reply to
stefan

Das bringt die Frage auf, an welcher SPS?

Reply to
markus philippi

Am 28.06.2020 um 12:42 schrieb stefan:

e,

n ist

Und deshalb kann RS-485 nicht funktionieren, weil die Module keine

Wenn man es schafft, RS-485 auf 1 Leitung mit offenem Kollektor zu legen, die dann als Datenleitung zu den Motoren geht.

eine Diode um Ein- und Ausgang auf die gemeinsame Datenleitung zu bringen. Vorausgesetzt die SPS arbeitet auch hier mit half-duplex, ignoriert also das Echo ihrer eigenen Ausgaben.

DoDi

Reply to
Hans-Peter Diettrich

Am 28.06.2020 um 15:58 schrieb Hans-Peter Diettrich:

Doch, durchaus. Der Controller im Motor steht normalerweise auf Empfang. Wenn er ein Kommando bekommt, auf das er antworten soll, sendet er auf derselben Leitung, auf der er zuvor empfangen hat.

Es ist aber kein RS485...

Zumindest muss die Seite, die auf Empfang geht hochohmig werden, damit die andere Seite senden kann.

Sollte sie, denn wenn sie selber sendet, sollte sie empfangsseitig taub sein.

Stefan

Reply to
stefan

Loopback des Bytes schadet nicht: wenn man das Protokoll selber programmiert hat man dann wenigstens den Selbsttest ob die Seifendose steckt.

MfG JRD

Reply to
Rafael Deliano

Am 28.06.20 um 16:44 schrieb stefan:

Warum?

mit einem anderen Sender mit zu bekommen um dann den Sendebetrieb einzustellen. Wenn es nur einen Master auf dem Bus gibt und nur jeweils

verzichten.

Gerald

Reply to
Gerald Oppen

Am 28.06.2020 um 18:05 schrieb Gerald Oppen:

Weil es bei RS485 eine Sende-Empfangsumschaltung gibt. Der Max485 oder

sind, meist sind aber RD* und DE miteinander verbunden, so dass man bei

ich den Sender eh deaktivieren muss damit ein anderer Teilnehmer auf dem Bus senden kann.

Ja, kann man machen. Es schadet zumindest nicht, macht es eventuell

Reply to
stefan

Hallo Hans-Peter,

Du schriebst am Sun, 28 Jun 2020 04:44:46 +0200:

chen

Eben, eine _interne_ Schnittstelle.

RS232 ist Punkt-zu-Punkt, ebenso RS422, RS485 ist Multi-Drop.

und

Richtig, avber vorher auch noch haben.

--
--  


----------------------------------------------------------- 
 Click to see the full signature
Reply to
Sieghard Schicktanz

Hallo Nico,

Du schriebst am 28 Jun 2020 10:10:19 GMT:

...

stelle (GND

...

Wenn das dann auch noch die Schaltung ist, die jemand hier (AFAIR "Stefan")

keinem Standard entspricht.

...

Naja, eine _sehr_ eigenwillig implementierte Variation einer an RS485 lose angelehnten Implementierung...

...

in

gsadern

tiv ist. Hat Deine SPS eine RS485, und hat die eine schaltbare Terminierung,

tung

lich D+ sein, sonst halt D-...) RS485 benutzt als Signalprotokoll dasselbe Verfahren wie RS232 mit

zum Senden die Leitung aktiv treiben. Ein Problem mit der Terminierung

t.

--
--  


----------------------------------------------------------- 
 Click to see the full signature
Reply to
Sieghard Schicktanz

Hallo Wolfgang,

Du schriebst am Sat, 27 Jun 2020 17:45:00 -0400:

...

25

Das gilt leider nicht nur bei PCs, wo. wie Du selber schreibst:

Steuerungen", wo man sich allenfalls auf die Datenrate und die Stopbits

zungen" implementiert worden (z.B. zur Unterscheidung zwischen Befehls- und Nutzdaten...). Die Handshake-Signal sind eh nur partiell vorhanden, und werden dann allenfalls versehentlich in ihrer standardkonformen Funktio benutzt...

Wobei es ein solches im Standard sowieso nicht gibt...

Ja, Du bist schon ein "toller Hecht", was Du nicht so alles fertiggebracht hast. Meine Geschichtchen dazu sind nicht so bedeutungsschwer (in DM/? ?/$),

Bzw. Leute, die sich mit der Sache befassen und nicht nur rumdilettieren...

--
--  


----------------------------------------------------------- 
 Click to see the full signature
Reply to
Sieghard Schicktanz

Hallo Nico,

Du schriebst am 28 Jun 2020 10:10:18 GMT:

...

Ja.

ich

Das kann man wohl so sehen... (Ist das wirklich eine "vorgeschlagene

ung? Der Unterschrift auf dem Bild nach doch eher letzteres?)

...

Ersteres ist korrekt - das Adernpaar ist theoretisch massefrei und wird _differentiell_ (oder auch gegenphasig) betrieben, d.h. der Pegel auf der einen Ader ist immer das Inverse zu dem auf der anderen Ader, wenn eine

Teilnehmer haben "die Schnauze zu halten". Der zweiteTeil ist "Schmarrn" - das ist ein System mit _zwei_ nur halb

Arbeitsrichtung benutzt werden. Wurde gelegentlich zur "Vereinfachung"

ellen"

Die Norwendigkeit zur Richtungsumschaltung kommt schon allein durch das Zusammenlegen der beiden Datenleitungen zustande.

lich

g im

mmer invers zueinander geschaltet werden. Allerdings sind die Sende-Treiber "Push-Pull"-Stufen, die auch einen hochohmigen Zustand (Tri-State) haben, in dem sie die Leitung nicht belasten. Empfangsseitig ist das dann eine

Signalleitungen auswertet und als TTL-Signal an seinem Ausgang zur

uch "stummgeschaltet" werden, um das Sende-Echo zu sperren, was gerne mit einem zum Sende-Freigabe-Signal inversen Pegel gemacht wird.

ehme

Du brauchst keinen Pegelumsetzer, RS485 benutzt bereits TTL-kompatible

n- und

verfallen soll...

--
--  


----------------------------------------------------------- 
 Click to see the full signature
Reply to
Sieghard Schicktanz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.