Forum: PC-Programmierung RS232 DataReceived tritt nicht ein


von Christoph (Gast)


Lesenswert?

Hallo Leute!

Ich habe ein Programm geschrieben, das Daten von einer RS232 
Schnittstelle empfängt. Das Programm funktioniert auf meinem Desktop PC 
einwandfrei. Wenn ich es jedoch auf meinem Laptop betreiben möchte habe 
ich ein Problem. Und zwar hat der Laptop keine RS232 Schnittstelle. Also 
habe ich mir einen Adapter besorgt, den Treiber installiert und mein 
Gerät angeschlossen. In der Gerätesteuerung ist dann auch sofort COM3 
aufgetaucht, schön. Wenn ich nun mit meinem Prog COM3 öffne kommt keine 
Fehlermeldung oder so, wenn ich nach dem öffnen einen Haltepunkt setze, 
wird auch angezeigt das der Port open ist. Aber es kommen einfach keine 
Daten an. Das DataReceived Ereignis tritt einfach nicht ein. Also, mal 
schnell Hyperterminal gestartet und geschaut was da ankommt. Nur Schrott 
mit dem ich nichts anfangen kann. Aber dieser Schrott muß doch 
eigentlich reichen um das DataReceived auszulösen, oder nicht? Ich weis 
gerade nicht weiter, hatte schon mal jemand das Problem, oder hat eine 
Idee was ich noch versuchen könnte? Weis jemand was genau das 
DataReceived auslöst?

Ich nutze das FW 2.0 und VB.2005

Gruß
Christoph

von thomas (Gast)


Lesenswert?

hi,
soweit ich mich erinnern kann, wird es durch den endchar ausgelöst.
also ein CR oder LF.

von Bobby (Gast)


Lesenswert?

Hallo,

wenn "nur Schrott" ankommt: Baudrate und Zeichenrahmen kontrollieren.

>Aber dieser Schrott muß doch
>eigentlich reichen um das DataReceived auszulösen, oder nicht?

Eher nicht: Die Zeichen kommen zwar an der Schnittstelle an, da sie aber 
fehlerhaft sind, werden sie verworfen (und eventuell ein Fehlerbit 
gesetzt).
0 valid characters received..., wo soll da das "Ereignis" herkommen ?

von Christoph (Gast)


Lesenswert?

Hallo zusammen!

Was meinst du mit "Zeichenrahmen" ? Das sagt mir jetzt nichts....


Gruß
Christoph

von Bobby (Gast)


Lesenswert?

Zeichenrahmen:
Anzahl der Datenbits, Parität, Anzahl der Stopbits.
Gängig ist zb 8N1, 8 Datenbits, N(o) Parity, 1 Stopbit.

von Christoph (Gast)


Lesenswert?

Aso, das passt aber alles. Das habe ich schon 1000* verstellt und 
abgeglichen. Wenn ich das ganze dann auf einem Rechner mit RS232 
Schnittstelle(also ohne Adapter & USB) teste funktioniert alles. Es 
scheint also ein Hardware Problem zu sein, oder?

Gruß
Christoph

von Christian R. (supachris)


Lesenswert?

Vielleicht ist der USB-Serial Konverter kaputt, vielleicht unterstützt 
er die verwendete Baudrate nicht, vielleicht ist die Baudrate zu 
hoch....kann vieles sein.

von AGA (Gast)


Lesenswert?

Ich vermute mal, dass du über ein Card-Bus-Interface (bzw. PCMCIA) die 
serielle Schnittstelle an den Laptop bekommst.
Damit hatte ich auch schon Probleme.

Problem bei diesen Adaptern: Hardware-Handshakes sind nicht unterstützt 
(RTS und CTS Signale, DSR und DTR Signal ist auch Problem).
RS232-Schnittstellentreiber brauchen am PC in der Regel aber CTS-Signal, 
damit Zeichenempfang erfolgt. In VB MUSS RTS explizit HIGH gesetzt 
werden, damit Schnittstelle überhaupt funktioniert.

Wenn Schrottzeichen ankommen, gibt es ein elektrisches Potentialproblem.
Die V24-Schnittstelle benötigt +/- 12 V Pegel. Am PC klappen manchmal 
auch Pegel bis +/- 7V.
Entscheidend ist wohl die Ground-Leitung. Wenn es da 
Potentialunterschiede zwischen den angeschlossenen Geräten gibt, kann es 
bei niedrigen Spannungspegeln Schrott geben.
Versuche mal, das Netzteil am Laptop abzuhängen, so dass Laptop nur auf 
Batterie läuft. Dann die Masse (oder Ground) der beiden Geräte 
verbinden,
damit Laptop gleiches Potential wie externer Sender hat.
Notfalls mit Oszi die Pegel checken.
Wie man definiertes 0V-Potential an die Adapterkarte bringt, weiss ich 
auch nicht.

Bin kein echter 'Elektriker', deshalb meine evtl. ungenaue 
Ausdrucksweise.


von Christoph (Gast)


Lesenswert?

So, ich habe es heute rausgefunden.

MyRS232..DtrEnable  = True

Ich hatte das auf false stehen. Jetzt läuft es :-)
Das war mal wieder eine schwere Geburt, dafür konnte ich mich aber um so 
mehr freuen......

Vielen Dank an euch!

Gruß
Christoph

von retep (Gast)


Lesenswert?

Ich habe derzeit ein gleiches problem wie du. nur das mein rs232 adaptor
am usb bus sitzt. und ich die software im alten powerbasic schreibe.

nun zum problem.
ich habe zwei adaptor und drei Laptop.

so auf einem Labtop laeufen beide adaptor und auch die Software.
auf den anderen beiden Labtop bekommt eine nur receive aber kann nicht 
senden. Der andere Labtop da geht weder recceive noch transmitt.

alle Labtop haben XP Pro und alle in der selben version.

was kann das sein?

Was meintest du mit

MyRS232..DtrEnable  = True

wo ist das zum einstellen?

kann sein das da bei mir noch solch probleme sind.

danke fuer die antwort!

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.