Hallo! Ich muss Befehle über eine RS232 Schnittstelle an einen Kontroller senden (19200 Baud, 8Datenbit, 1 Stoppbit, keine Parität und kein Handshake). Ich würde dies mit dem Hyperterminal machen. Der Aufbau der Kommandostrings ist wie folgt: Mnemonic (2 Großbuchstaben), Leerzeichen, Parameter, Carriage Returen als Abschlusszeichen. Als Quittierung wird ein Antwortstring zurückgesendet. Beispielbefehl: AB {Parameter1, Parameter2) Habe das noch nie gemacht, deswegen meine Fragen dazu: Kann ich hier den Befehlsstring einfach im Fenster des Hyperterminal eingeben und Enter drücken, dann wird er Befehl gesendet? Was genau ist das Carriage Return, ist das das normale Enter, mit dem ich das Senden bestätige? Wie wird zwischen dem String zum Senden und dem empfangenen unterschieden? Welche Pins der RS232 Schnittstelle benötige ich dazu? Reichen hier RX, TX und GND oder muss ich sonst noch welche berücksichtigen? Gibt es sonst noch etwas,das ich hier beachten muss? Vielen Dank für Eure Hilfe! Gruß
@ Bernd (Gast) >Kann ich hier den Befehlsstring einfach im Fenster des Hyperterminal >eingeben und Enter drücken, dann wird er Befehl gesendet? Ja. Genauer, die einzelen Zeichen werden schon gesendet, wenn du sie eintippst. > Was genau ist >das Carriage Return, ist das das normale Enter, mit dem ich das Senden >bestätige? Ja. > Wie wird zwischen dem String zum Senden und dem empfangenen >unterschieden? Gar nicht, es wird immer empfangen. >Welche Pins der RS232 Schnittstelle benötige ich dazu? Reichen hier RX, >TX und GND Ja. >oder muss ich sonst noch welche berücksichtigen? Meist nicht.
Befehlsstring kannst du so senden, musst aber darauf achten dass du ihn richtig dekodierst. Carriage return ist "\r" das bedeutet dass der cursor zum anfang der zeile springt. Zu dem rest verweise ich dich auf das tutorial hier auf der Seite.
Dex schrieb: > Carriage return ist "\r" das bedeutet dass der cursor zum anfang der > zeile springt. Genau DAS sendet eine vernünftige Terminal-Emulation, wenn man die dicke Carriage-Return-Taste (CR, unterhalb von Backspace, oberhalb der rechten Shift-Taste) drückt. Unter Umständen tut das Gleiche auch die eigentliche ENTER-Taste (ganz rechts neben dem Nummerntasten-Feld), wenn die Terminal-Emulation nicht gerade auf "Application Keypad" umgeschaltet ist. Bei den meisten Terminal-Emulationen kann man das Verhalten der CR-Taste aber einstellen. Richtig wäre "CR sendet CR" und nicht etwa "LF" bzw. "CRLF". Ich empfehle aber statt HyperTerminal besser PuTTY. Das arbeitet auf jeden Fall korrekt in dieser Hinsicht (Default-Einstellung). Ausserdem muss man nicht erst das Hardware-Handshaking (RTS/CTS) explizit abschalten, damit es auch mit einer Dreidrahtverbindung (RX/TX/GND) funktioniert. Bei Hyper-Terminal sind da schon einige Leute drüber gestolpert.
Frank M. schrieb: > Dex schrieb: >> Carriage return ist "\r" das bedeutet dass der cursor zum anfang der >> zeile springt. > > Genau DAS sendet eine vernünftige Terminal-Emulation, wenn man die dicke > Carriage-Return-Taste (CR, unterhalb von Backspace, oberhalb der rechten > Shift-Taste) drückt. Unter Umständen tut das Gleiche auch die > eigentliche ENTER-Taste (ganz rechts neben dem Nummerntasten-Feld), wenn > die Terminal-Emulation nicht gerade auf "Application Keypad" > umgeschaltet ist. ja das stimmt, mal angenommen er möchte aber irgendwann befehle automatisch senden, ohne sie selbst erstmal einzutippen, dann ist das wissen über die bedeutung von \r nicht verkehrt;-)
Danke zunächst für eure antworten! Falk Brunner schrieb: > Ja. Genauer, die einzelen Zeichen werden schon gesendet, wenn du sie > eintippst. Das bedeutet, dass das erste Zeichen schon gesendet wurde, bevor ich das zweite eintippe? Was ist denn dann, wenn ich das ganz langsam eintippe, ist das egal? Falk Brunner schrieb: >> Wie wird zwischen dem String zum Senden und dem empfangenen >>unterschieden? > > Gar nicht, es wird immer empfangen Ich meine, ich sehe dann im Fenster den Befehl, den ich gesendet hab. Nach einen Befehl kommt eine Bestätigung zurück (ein einfacher String). Wo steht der dann? Auch im Fenster gleich nach dem gesendeten Befehl? Dann würden beide Strings (gesendet und empfangen) dastehn, das meinte ich... Dex schrieb: > Befehlsstring kannst du so senden, musst aber darauf achten dass du ihn > richtig dekodierst. Was meinst du damit? THX für eure Hilfe!
Bernd schrieb: > Was ist denn dann, wenn ich das ganz langsam eintippe, > ist das egal? Das must du selber wissen wie du das auf der anderen Seite gelöst hast. Ich kenne da Protokolle die erlauben keine Pausen zwischen den Zeichen, anderen ist das egal. Bei den meisten Terminalprogrammen kann man was wie "Echo" einstellen. Ist das eingeschaltet werden die eigenen Zeichen mit dargestellt. Es gibt Gegenstellen die empfangene Zeichen zurück senden, da hat man dann DDooppeelleeffffeekkttee am Terminalfenster :)
Jürgen D. schrieb: > Das must du selber wissen wie du das auf der anderen Seite gelöst hast. > Ich kenne da Protokolle die erlauben keine Pausen zwischen den Zeichen, > anderen ist das egal. Kann man das im Hyperterminal oder PuTTy auch einstellen, dass die Befehle erst mit Enter gesendet werden? Jürgen D. schrieb: > Bei den meisten Terminalprogrammen kann man was wie "Echo" einstellen. > Ist das eingeschaltet werden die eigenen Zeichen mit dargestellt. Ja, das habe ich schon eingestellt, jetzt sieht man auch die eingegebenen Zeichen; deswegen auch meien Frage, was man alles sieht, wenn eine Bestätigung zurückgesendet kommt... Dank, lG
Bernd schrieb: > Kann man das im Hyperterminal oder PuTTy auch einstellen, dass die > Befehle erst mit Enter gesendet werden? Bei Hyperterm auf keinen Fall, Putty weis ich nicht glaube aber auch nicht. Ich verwende für sowas gerne Term95. War mal beim Nortencomander dabei, damals zu DOS Zeiten :) Da kann man beliebige vorher zusamengebaute Telegramme auf die Funktionstasten legen. Aber da wird es bestimmt auch was neueres geben.
Bernd schrieb: > Kann man das im Hyperterminal oder PuTTy auch einstellen, dass die > Befehle erst mit Enter gesendet werden? Könnte in PuTTY unter dem Einstellungs-Menü "Terminal" funktionieren: Local Line Editing: Force on Da findest Du übrigens auch das "Local Echo".
@ Bernd (Gast) >> Ja. Genauer, die einzelen Zeichen werden schon gesendet, wenn du sie >> eintippst. >Das bedeutet, dass das erste Zeichen schon gesendet wurde, bevor ich das >zweite eintippe? Ja. > Was ist denn dann, wenn ich das ganz langsam eintippe, >ist das egal? Bei den meisten Geräten, ja. >Ich meine, ich sehe dann im Fenster den Befehl, den ich gesendet hab. >Nach einen Befehl kommt eine Bestätigung zurück (ein einfacher String). >Wo steht der dann? Auch im Fenster gleich nach dem gesendeten Befehl? Ja. >Dann würden beide Strings (gesendet und empfangen) dastehn, das meinte >ich... Ist auch so. Kann man ggf. umstellen, je nachdem, was das angeschlossene Gerät macht. 1. Möglichkeit. Das Gerät sendet jedes empfangene Zeichen direkt auch zurück. Dann sieht man immer eingegebene Zeichen + Antwort vom Gerät 2. Möglichkeit. Das Gerät sendet nur seine Antwort zurück. Dann sieht man im Normalfall nur die Antwort vom Gerät 3. Möglichkeit. Das Gerät sendet nur seine Antwort zurück, im Terminalporgramm ist aber "Lokales Echo" eingestellt. Dann sieht man eingegebene Zeichen + Antwort vom Gerät
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.