Wie kann man die Signale an der seriellen Schnitts

Hallo alle zusammen,

und zwar handelt es sich hier um einen Microcontroller, der über den seriellen Anschluss (auch COM-Port bzw. RS232) angeschlossen wird. Ich bräuchte da die Signale, die von einem Steuerprogramm zum Controller geschickt werden. Man müsste die doch irgendwie auslesen können.
Am besten in binär oder hexadezimal.

Der zweite Punkt ist es mit diesen Informationen ein kleines Programm zu schreiben, das in der Lage ist die vorhin rausgefundenen Signale wieder an den seriellen Anschluss zurück schickt.
Welche Programmiersprache eignet sich da am besten?
Und wie funktioniert das dann?

LG, Chrissmat

Hallo,

welche Programmiersprache: Dies hängt u.a. von verwendeten Micro-Prossezor ab. Für viele Baureihen gibt es eigene Lösung. Dann natürlich vom Einsatzbereich …

Für den Arduino z.B. empfiehlt sich „Arduino“ und „Processing“ usw.

Zur Kontrolle (welches Betriebssystem?) schau mal hier:

http://www.heise.de/software/download/o0g0s3l11k334

mfg, tf

Vielen Dank schonmal!

Ich habe Windows XP.
Die erste Frage wäre jetzt schon mal geklärt:

Mein Steuerprogramm sendet zuerst diese Reihe von Hexadezimalzahlen an den Controller
21 53 43 00 00 E2 04 0D 21 53 43 00 00 E2 04 0D
und dann diese hier:
21 53 43 00 00 FA 00 0D 21 53 43 00 00 FA 00 0D

Nun frage ich mich, wie ich mit diesen Hexadezimalzahlen ein Programm schreibe, mit dem ich diese dann zum COM-Port schicke. Schreiben kann ich nur Delphi, jedoch denke ich, dass dieses Programm nicht in der Lage ist, diese Zahlen zum COM-Port zu schicken. Weiß jemand Bescheid?

Hallo,

wenn du die serielle Kommunikation korrekt initialisiert hast, ist es mehr oder minder $%5!-egal, mit welchem Programm du du weitermachst, sofern die Programmsprache diese Art der kommunikation unterstützt.

Zum Ausprobieren recht jedes beliebige „Terminal-Programm“.

Zum Bleistift:

http://www.cc5x.de/COM-Terminal/

Ohne wissen daüber, was Du wie mit was machen willst, ist es schwer, Dir weitere Tipps zu geben.

Soll nur der String versendet werden? Willst Du die Antwort empfangen? Soll diese - und wenn ja wie - ausgewertet werden usw.

mfg, tf

Hallo
Das sollte ziemlich einfach sein.
Selbst wenn Du in Delphi keine Com Schnittstelle haben solltest, kannst Du den Port als Datei ansprechen und einfach in diese Datei(spezielle Bezeichnung) schreiben.
Aber wie schon gesagt wurde, kommt es einfach darauf an, was Du machen möchtest.
Bei VB hab ich ein Steuerelement, mit welchem ich schreiben und lesen und welches mir Ereignisse einer Com(n) Schnittstelle liefern kann und man kann sie auch einstellen, was man evtl. auch noch machen muß.
So ein Steuerelement solltest Du auch haben, oder Dir eins besorgen.
Was ein Problem darstellen könnte, (was ich aber mangels Erfahrung so nicht weiß) ist, das normalerweise nicht mehrere Programme auf einen Port zugreifen können.
MfG
Matthias

Hallo,

Ich habe Windows XP.
Die erste Frage wäre jetzt schon mal geklärt:
Mein Steuerprogramm sendet zuerst diese Reihe von
Hexadezimalzahlen an den Controller
21 53 43 00 00 E2 04 0D 21 53 43 00 00 E2 04 0D
und dann diese hier:
21 53 43 00 00 FA 00 0D 21 53 43 00 00 FA 00 0D
Nun frage ich mich, wie ich mit diesen Hexadezimalzahlen ein
Programm schreibe, mit dem ich diese dann zum COM-Port
schicke. Schreiben kann ich nur Delphi, jedoch denke ich, dass
dieses Programm nicht in der Lage ist, diese Zahlen zum
COM-Port zu schicken.

Natürlich geht das auch mit Delphi. Allerdings mußt du dir dafür eine
passende Komponente besorgen, den den COM-Port ansteuert.
Sowas gibt es in entsprechenden Delphi-Foren aber zu Hauf und kostenlos.

Wenn du diese in Delphi eingebunden hast, brauchst du nur noch die
Hex-Daten abschicken.

Natürlich solltest du vorher das COM-Port passend parametrieren,
also Baudrate, Anzahl Bits, Parität und Anzahl Stoppbits.
Dazu sollte geklärt sein, ob Handshake nötig ist und wenn ja, welches.
Weitere Spezialitäten hängen dann eng an der Anwendung, also z.B.
längere Timings zwischen Zeichen und Zeilen, Timeouts für Antworten
und evtl. Einschränkungen für bidirektionalen Betrieb (z.B. für Verwendung
per Funk, wie Bluetooth usw).

Noch spezieller wird es, wenn spezielles Timing bei Handshakes RTS/CTS
benötigt wird, oder Signalleitungen z.B. für Stromversorgung eines
Empfängers einen definierten Pegel haben müssen.
RS232 ist einerseits leicht, aber auch unendlich vielfältig und manchmal
sehr mühseelig.
Gruß Uwi

Vielen Dank,

also ich hab das soweit mit Delphi als Konsole hinbekommen. Allerdings bin ich nicht ganz erfahren in dem Gebiet und weiß nicht was Handshaken mit dem COM-port ist.
Außerdem hänge ich gerade daran, das ganze als Anwendung zu schreiben.
Ich bekomme es nicht mal hin ein Bild in das Formularfenster zu bringen!

O

Aber Vielen Dank für eure Hilfe.

Hallo,

also ich hab das soweit mit Delphi als Konsole hinbekommen.
Allerdings bin ich nicht ganz erfahren in dem Gebiet und weiß
nicht was Handshaken mit dem COM-Port ist.

Dann wirst du dich womöglich damit mal beschäftigen müssen.
http://de.wikipedia.org/wiki/Handshake
Belegung der Stecker siehe auch hier:
http://www.kabelfaq.de/
In wie weit du überhaupt Handshake brauchst, weiß ich nicht.
Meine Geräte arbeiten üblicherweise nur mit den 2 Signalen Rxd und Txd.

Außerdem hänge ich gerade daran, das ganze als Anwendung zu schreiben.
Ich bekomme es nicht mal hin ein Bild in das Formularfenster zu bringen!

???
Gruß Uwi

Hallo
Dann würde ich vorschlagen, doch einmal im Forum Delphi&amp:stuck_out_tongue_winking_eye:ascal zu posten.
Viele Beispielprogramme auf diesem Level sind in C, von da könnte man bestimmt was portieren.
MfG
Matthias