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.