Forum: PC Hard- und Software Signal über RS232 an PC einlsesen


von Jörg T. (joerg1982)


Lesenswert?

Guten Tag,

ich brauche eure Hilfe bzgl. dem Einlesen von 2 Signalen über eine RS 
232 Schnittstelle. Die Problemstellung sieht wie folgt aus:
Ich habe ein PC Programm, das mir auf jeweils zwei Signale Werte 
kopiert. Da es sich um ein älteres Programm handelt, ist der Support 
über den Autor nicht mehr möglich. Alternativen hierzu gibt es jedoch 
hier auch nicht.
Die beiden Signale werden über eine RS 232 Schnittstelle eingelesen. 
Werden RTS und CTS, DCD und DTR jeweils verbunden, dann bekomme ich je 
ein Signal für das Programm. Da die meisten PCs keine RS232 
Schnittstelle mehr haben, läuft das ganze über einen USB Konverter.
Nun zur eigentlichen Problemstellung:
Das ganze funktioniert zu 95 % zuverlässig. Jedoch bekomme ich selten, 
aus welchen Gründen auch immer ein Signal an der Software, obwohl 
Hardwaremäßig die Pins „nicht“ verbunden werden.
Versucht habe ich schon performa die Kontakte der RS232 Schnittstelle 
mit einem Widerstand auf Masse zu ziehen, dies  hat jedoch keine Abhilfe 
geschaffen. Vielleicht hat jemand Tipps, was ich hierzu noch versuchen 
könnte.

Vielen Dank

von Christian B. (casandro)


Lesenswert?

1. Versuche mal Dein Problem verständlich zu beschreiben, dann kann man 
Dir vielleicht helfen.

2. Es gibt RS-232 Einsteckkarten für PCs die um Längen besser laufen als 
USB-Adapter (besonders unter Windows).

3. Mach Dich mit den RS-232 Spannungspegeln vertraut. Das ist da nicht 
wie TTL. 0V ist kein erlaubter Zustand. High und Low sind da positive 
und negative Spannungen.

4. Die von Dir beschriebenen Pins verbindet man um das Hardware 
Handshake zu simulieren, wenn man das nicht braucht. Es kann durchaus 
sein, dass das auch mal ohne diese Verbindungen geht, bau die aber 
lieber ein, dann ist das definiert.

von Wolfgang (Gast)


Lesenswert?

Jörg T. schrieb:
> Versucht habe ich schon performa die Kontakte der RS232 Schnittstelle
> mit einem Widerstand auf Masse zu ziehen, dies  hat jedoch keine Abhilfe
> geschaffen. Vielleicht hat jemand Tipps, was ich hierzu noch versuchen
> könnte.

Bei einer RS232-Schnittstelle irgendwelche Signale auf Masse zu ziehen, 
dürfte eher kontraproduktiv sein.
Normgerechte Spannungspegel für RS-232 müssten am Empfänger unterhalb 
von -3V bzw, oberhalb von +3V liegen. Signalpegel zwischen −3 V und +3 V 
gelten als undefiniert.
https://de.wikipedia.org/wiki/RS-232#Definition

Wie sieht deine Schaltung aus und was für Handshake ist von der Software 
gefordert?

von Jörg T. (joerg1982)


Lesenswert?

Vielen Dank für die schnelle Antwort.

1. Das Problem ist wie folgt. Ein Relais zieht an und somit erhält RTS 
CTS oder DCD und DTR Verbindung. Daraufhin bekomme ich in meiner 
Software ein Signal gesetzt. Nur bekommt die Software in seltenen Fällen 
auch anscheinend ein Signal, obwohl das Relais keine physikalische 
Verbindung herstellt.

2.Aber gibt es auch die RS-232 Einsteckkarten für Laptops???

3.Da fehlen mir die Kenntnisse.....da muss ich wohl ein wenig was 
auffrischen.

4. Es funktioniert ja nur mit diesen Pins.  """bau die aber
lieber ein, dann ist das definiert.""" in wie fern einbauen. Das 
verstehe ich nicht ganz.

von Christian B. (casandro)


Lesenswert?

Zu 2.: Natürlich gibts die: https://www.ebay.de/i/192213940269

Zu 1.: Wenn die Schaltung die eigentlichen Datenleitungen RX und TX 
nicht nutzt, dann ist das eine Spezialsache. Die funktionieren unter 
umständen mit USB-Seriell Wandlern grundsätzlich nicht zuverlässig.

Wie lange ist denn das Relais angezogen, nur kurzzeitig oder länger 
Zeit. Welche Pins verbindet das Relais.

Wenn da wirklich nur 2 Pins miteinander verbunden werden ist die 
Schaltung ziemlicher Murks, denn dann könnte man die Verbindung nur 
dadurch erkennen, dass wenn man einen Pin toggelt der andere mitgeht... 
was unter Umständen auch durch kapazitive Kopplungen passiert.

: Bearbeitet durch User
von Sebastian S. (amateur)


Lesenswert?

Hat sich irgend etwas geändert?
Relais sind toll, wenn es um galvanische Trennung geht, aber echt mies, 
wenn die elektrische Störfreiheit im Vordergrund herumhängt.

Hat sich bei den Treibern für den USB->RS-232 Konverter kein Fehler 
eingeschlichen, sollte es eigentlich gehen. Auch sind die heutigen 
Rechner schnell genug um mit dem zusätzlichen Overhead zurechtzukommen.
Ich hatte vor kurzem Probleme mit einem älteren Konverter, der unter 
Fenster 10 zickte, unter Fenster 7 aber problemlos lief.

Falls Du es mit Ersatz versuchen willst, spare nicht zu sehr. Ich 
schätze mal, dass Du alle Signale brauchst, also nicht nur rx und tx und 
dabei auch einen vernünftigen Pegel.

Übrigens: Hast Du mal bei den Device-Treibern nachgesehen, ob nicht nur 
die Baudrate, sondern auch das Protokoll stimmen. Hier ist das Problem, 
dass es manche Updates zu gut meinen und gleich alles auf Start 
zurücksetzen und Du plötzlich Einstellungen hast, die Du aber gar nicht 
haben wolltest.

von Oliver R. (roliver75)


Lesenswert?

Hallo,

Nenn doch mal Ross und Reiter...

Welche Sotware? Welche Signal?

Vielleicht gibt es ja Alternativen...


Es gibt noch andere Usb zu seriel Chips ...



Gruß

Oliver

von Jörg T. (joerg1982)


Lesenswert?

Vielen Dank für die Antworten und eure Mithilfe.

Das das ganze Murks ist, dazu kann ich leider nicht viel sagen, da es 
eben so gemacht worden ist.
Ich werde mir mal eine serielle Karte zulegen und es damit versuchen.

Die Einstellungen der Treiber habe ich abgecheckt, da passt soweit alles 
von Baudrate zu Parity etc. passen soweit.

von Wolfgang (Gast)


Lesenswert?

Jörg T. schrieb:
> 2.Aber gibt es auch die RS-232 Einsteckkarten für Laptops???

Es gibt USB-Seriell-Wandler mit und ohne Handshake-Leitungen.
Vielleicht hast du das nicht berücksichtigt.

Einsteckkarten für Laptops würde ich eher exotisch einstufen, seit 
PCMCIA-Slots in Rechnern weitgehend durch ausreichend schnelle USB-Ports 
verdrängt worden sind.

von STK500-Besitzer (Gast)


Lesenswert?

Wir verwenden USB-RS232-Wandler mit FTDI-Chips ohne Probleme fuer 
derartige Steuerungsgeschichten (historisch gewachsene Messsysteme; 
Taster und LEDs an den Handshake-Leitungen)

Testen kann man sowas auch problemlos mit hterm, das auch die 
Handshake-Leitungen bedienen kann (Eingang wie Ausgang).

Generische Windows-Treiber haben aber leider gewisse Probleme, dass sie 
nicht ganz yuverlaessig sind.

von Christian M. (Gast)


Lesenswert?

Sebastian S. schrieb:
> Ich schätze mal, dass Du alle Signale brauchst, also nicht nur rx und tx
> und dabei auch einen vernünftigen Pegel.

Wolfgang schrieb:
> Bei einer RS232-Schnittstelle irgendwelche Signale auf Masse zu ziehen,
> dürfte eher kontraproduktiv sein.

Es geht hier ausschliesslich um die Handshake Eingänge, die aus den 
Ausgängen gespiesen werden! RxD und TxD hat damit nichts zu tun!
Es wundert mich, dass das mit dem Wandler überhaupt funktioniert, aber 
ich hätte eher erwartet, dass ein Trigger verloren geht, denn Einer 
zuviele. So alt kann dann die Software doch nicht sein. Sauber über API 
programmiert. Mit einem guten Wandler (FT232) oder der genannten Karte 
hast Du gute Chancen, dass das läuft!
Und die Software willst Du nicht nennen?
Ist aber nicht etwa "Calimero"? Da hätte ich noch "Beziehungen"...

Gruss Chregu

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