Entwickler-Ecke

Sonstiges (Delphi) - Kommunikation über RS232 mithilfe des CPort


Pow - So 27.06.10 15:04
Titel: Kommunikation über RS232 mithilfe des CPort
Hallo,

ich habe bei Borland Delphi 7 die Komponente CPort installiert.
Dadurch hab ich schon fertige Bausteine, mit denen man relativ simpel auf serielle Schnittstellen zugreifen kann (ich hoffe, das kennen einige bereits)

Nun hab ich das Problem, dass bei mir leider nur Unsinn ankommt, aber kein für mich lesbarer String.
Ich habe ein Beispielprogramm, das bei diesem CPort beilag, benutzt, das quasi so ein Terminal ist, wo man etwas senden kann und eine Antwort bekommt.

Ich möchte mit einer Waage kommunizieren und diese hat einen RS232 Anschluss, da mein Rechner sowas nicht mehr hat, benutze ich also RS232 zu USB (ich hoffe das macht keinen Unterschied für später, wenn es an einem anderen Rechner über richtiges RS232 läuft)
Die Baud-Rate usw. ist alles richtig eingestellt.

Allerdings bekomme ich auch keine Antwort, wenn ich etwas sende.
Und wenn ich auf kontinuierliche Antwort bei der Waage einstelle kommt nur sowas bei mir an: "þÿÿÿA¦É"

Meine Frage also:
Wird bei einem Comport nur ein einfacher String gesendet, oder muss dieser irgendwie als anderer Datensatz gesendet werden bzw. später wieder entschlüsselt werden? (ASCII oder was auch immer)


jaenicke - So 27.06.10 15:23

user profile iconPow hat folgendes geschrieben Zum zitierten Posting springen:
Nun hab ich das Problem, dass bei mir leider nur Unsinn ankommt, aber kein für mich lesbarer String.
[...]
Und wenn ich auf kontinuierliche Antwort bei der Waage einstelle kommt nur sowas bei mir an: "þÿÿÿA¦É"
Du wartest doch nicht im Ernst auf sowas wie "1125 Gramm", oder?

Die Waage wird vermutlich nur Zahlen senden. Und wenn du die als Ascii-Codes interpretierst und als String anzeigst, dann kommt halt nix brauchbares heraus.

Insofern musst du dir wenn, dann die Zahlenwerte selbst anschauen. Und statt Reverse Engineering wäre natürlich noch besser, wenn du direkt Informationen zum verwendeten Protokoll findest.


Boldar - So 27.06.10 15:46

Warte mal: Bist du der Typ von da??? [http://board.gulli.com/thread/1571381-digitale-waage-mit-usb/]
Welche Waage hast du denn?
Da wirst du wohl auf der herstellerseite nach dem protokoll schauen müssen.


Pow - So 27.06.10 15:50

Ich habe zumindest gedacht, dass da wenigstens ein Zahlenwert rübergeschickt wird.
Die Waage hat nämlich unterschiedliche Modi und ich habe auch einen ausprobiert, der nicht auf eine Anweisung vom PC wartet, sondern direkt kontinuierlich 6 Ziffern liefert (vom Gewicht)
Da kamen jedoch genauso solche Sondersymbole an

Also im Handbuch steht was zum Übertragungsprotokoll ( hier nachzulesen ab Seite 36 [http://karikato.lima-city.de/DMS/DWI05_DWI06_DWIZG_DWI06ZR_03.05_09.12_DE_T_DMS.pdf] )
Allerdings, wenn ich das richtig verstanden habe, müsste es als String an den PC gesendet werden.

Deshalb hab ich mich gefragt, ob ich nicht einen Fehler gemacht habe, im Bezug auf RS232




user profile iconBoldar hat folgendes geschrieben Zum zitierten Posting springen:
Warte mal: Bist du der Typ von da??? [http://board.gulli.com/thread/1571381-digitale-waage-mit-usb/]
Welche Waage hast du denn?
Da wirst du wohl auf der herstellerseite nach dem protokoll schauen müssen.

Nein, das bin ich nicht.


jaenicke - So 27.06.10 16:13

Ok, ein solches Protokoll hatte ich nicht erwartet. Dann hast du natürlich Recht was das Auslesen angeht.

Hmm, vielleicht lohnt es sich das einmal mit einem echten COM-Port zu testen. Wobei normalerweise dabei kein Unterschied auftreten sollte, aber man weiß ja nie.


Nersgatt - Mo 28.06.10 08:53

Fang mal an, indem Du erst mal mit Putty versucht, mit der Waage zu sprechen. Wenn Du das hast, dann hast Du schon mal die Waage korrekt eingestellt. Dann erst würde ich mit Delphi anfangen.
So fange ich immer an, wenn ich mit irgendwelchen Geräte kommunizieren.

Ob die Waage mit einem RS232 zu USB-Wandler angeschlossen ist, macht meiner Erfahrung nach keinen Unterschied. Wir setzen Waagen unter anderem von PESA und Kern (SICS-Protokoll) ein und es funktioniert problemlos mit diesen Wandlern. Sogar RS232 -> Bluetooth-Wandler funktionieren problemlos.


bummi - Mo 28.06.10 10:26

an den Einstellungen liegt es nicht?
Baudreate, Parity etc.?


Pow - Mo 28.06.10 18:42

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
an den Einstellungen liegt es nicht?
Baudreate, Parity etc.?

Yep, Baudrate etc. sind korrekt eingestellt.


Danke für den Tipp Nersgatt, habe es nach einigen Komplikationen nun geschafft.
Lag irgendwo letztendlich am Format des Übertragungsprotokoll.
Nun sendet er mir das richtige und ich weiß, welche Befehle dort hin sollen :)