No Response RS-232 mit PuTTY

IzmyrWayne

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte einen Servo-Motor mit integrierter Bremse ansteuern (die Bremse ist stromlos fest). Die dazugehörige Platine ist etwas veraltet und diese soll auch nicht durch eine neuere Variante ersetzt werden.

Um z.B.: eine Initialization der Bremse bzw. des Motors durchzuführen ist das command "RS0\r\n" zu senden. (RS > reset, 0 > device Nr, 0 bis 9 möglich alle getestet) > Antwort soll sein "1:OK\r\n"
Zum versenden nutze ich PuTTY und einen USB adapter mit (TxD, RxD und GND; mehr ist laut Datasheet nicht nötig) > geprüft mit Oszilloskop, das Signal ist ok und die bits sind klar erkennbar, leider keine Antwort am RxD Kontakt (auch in PuTTY wird nur der gesendete Befehl angezeigt)


Hier eine Syntax Beschreibung und die PuTTY settings (habe da schon etwas rumprobiert, scheint der Platine aber egal zu sein, ich denke da fehlen ein paar Zeichen damit sie versteht was ich möchte)

Spannungsversorgung Platine +-24VDC
TxD, RxD, GND

RD text in all capital letters and numbers are sent to the device exactly as shown
1 the exact contents in reply messages are also indicated by all capital letters
<command> two-letter code for a command
<#> single digit number that designates device. default is zero
number is referred to as the unit number.
<parameter> placeholder for a required parameter value. with some commands, parameters are required only if the initial parameter that specifies read/write operation is included
\r\n represents carriage return and linefeed characters. these are required characters at
the end of each comand string. carriage return is ASCII 13 (decimal) or 0x0D (hex)
linefeed is ASCII 10 (decimal) or 0x0A (hex)
[parameter] brackets indicate an optional paramater or value
... ellipses indicate that additional items such as parameters can follow the first item

standard command syntax is the following:
<command><#> <parameter>...[:checksum]\r\n

all command strings, a single space follow the unit number <#> before a parameter value if a unit number is included


PuTTY:
Session > Serial line "COM5" (laut Geräte Manager wenn der USB adapter verbunden ist, Treiber usw aktuell etc., andere COMs getestet und 6, 7, 8 eingegeben keine Änderung)
Session > Connection type > Serial / Session > Speed > 9600 (wie Datasheet)

Terminal > Line discipline options > Local echo: > Force on / Local line editing: > Force on

Connection > Serial > Serial line connect to > "COM5"
Connection > Serial >Configure the serial line > Speed > 9600 / Data bits > 8 / Stop bits > 1 /
Parity > None / Flow control > None (alles gemäß Datasheet, mit Parity und Flow control experimentiert, ohne Erfolg)

danach schwarzer screen mit grünem viereck, Eingabe wie folgt:
RS0\r\n Enter-Taste > Oszilloskop zeigt gesendete bits auf TxD an, kein Signal auf Rxd (2Kanal Osz)
auch getestet habe ich unter anderem "RD1 RS0\r\n" "RD1RS0\r\n" uvm.
(hier eine Randfrage: muss der screen reseted werden?, er sendet in dieser Einstellung ja nur die Zeile beim betätigen der Enter-Taste)

Wenn ihr Ideen habt, die Kommunikation herzustellen, wäre das wunderbar! Bin leider kein Software-Fachmann. Bitte ggf. Fachbegriffe oder ähnliches mit erklären.


Grüße
 
Ähm, sendest du das '\r\n' als 2 Steuerzeichen 16#D 16#A oder als 4 normale ASCII-Zeichen?
'\r\n' sind 2 nicht-druckbare Steuerzeichen, die nur für die Anzeige jeweils als 2 Zeichen dargestellt werden.
'\r' = CHAR '$R' = 16#D = 13 dez
'\n' = CHAR '$N' oder '$L' = 16#A = 10 dez

 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

guter Punkt! eingeben wird alles über die Tastatur, heißt für:
"RS0\r\n"
shift+r, shift+s, 0, altgr+ß, r, altgr+ß, n, enter-Taste

verstehe ich das richtig, dass ich die Tabelle durchsuchen und die hex bzw. dez kombinationen ohne Leerzeichen eingeben müsste?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

danke für die Ideen!
habe HTerm und anderes probiert, ohne Erfolg.
Auch die gesendeten Daten habe ich auch über die ASCII Tabelle mal als codes eingegeben und als Text verschickt bzw. den Standardbefehl "RS0\r\n" nur als dec, hex etc. gesendet.

Ich habe noch ein älteres Manual gefunden. Auch alles ohne response durchprobiert.
(pdf siehe Anhang)

Sind die commands so richtig eingegeben?

Hier der Auszug aus dem älteren Manual, da sind die commands etwas anders (vielleicht ist dieses passender als das neuere Manual trotz selber Teilenummer)

The Command syntax is as follows:
{command}{unit number}[<SP>parameters...][<:> checksum]<CR>[<LF>]

The controller transmits a reply message after receiving a command.
The reply syntax is as follows:
{unit number}<:>{parameter......}[<:>checksum]<CR><LF>

NOTE: [] optional
{} string(command or parameter)
<> ASCII digit

Communication Example:
host RS1<CR>
controller 1:OK<CR>
 

Anhänge

- Ist eventuell Tx und Rx vertauscht oder sonstwie falsch angeschlossen? Überprüfen und ggf. tauschen. Müssen weitere RS232-Steuersignale verbunden oder gebrückt werden?
- Baudrate, Anzahl Datenbits, Parität etc. richtig eingestellt?
- Was für eine RS232-Schnittstelle verwendet dein Computer? Vielleicht einen USB-RS232-Adapter? Funktioniert die Schnittstelle/Adapter? Testen mit anderem Kommunikationspartner, z.B. zweiter Computer oder zweite Terminal-Instanz an zweiter RS232-Schnittstelle oder "Loopback-Adapter" (einfach Tx mit Rx verbinden).
- Weil ich "Checksum" lese: ist die gesendete Checksum korrekt? Was macht das Gerät, wenn die Checksum falsch ist - keine Antwort oder Antwort mit Fehlermeldung? Kann die Verwendung der Checksum testweise deaktiviert werden?
- Ist in einer Dokumentation des Gerätes ein Command + Reply Beispiel genau angegeben, was funktionieren muss? (z.B. eine Art Hello-Funktion, z.B. das erwähnte "Communication Example") Dann verwende dieses, um zu analysieren, wo deine Kommunikation stecken bleibt. Zum Kennenlernen des Terminalprogramms verwende als Kommunikationspartner einen anderen Computer (oder weitere RS232-Schnittstelle), ebenfalls mit einem Terminalprogramm, und vergleiche die Erkenntnisse mit dem Kommunikations-Flow mit dem Servo-Gerät. Isr das Terminalprogramm so eingestellt, dass es beim Enter-Tastendruck automatisch ein <CR>-Zeichen sendet (0x0D)?

Communication Example:
host RS1<CR>
controller 1:OK<CR>
Das Beispiel funktioniert auch nicht? Spiele das Beispiel mal mit 2 Terminals durch.
 
Zurück
Oben