RS232 Schnittstelle. Wie lauten die Steuerzeichen?
Hallo,
ich habe hier eine etwas spezielle Frage, die aber ein relativ erfahrene Programmierer, der schon man was mit RS-232 gemacht hat, mir beantworten kann.
Ich soll eine Kommunikation zw. SPS S7 und einem Controller (HCX Völkel) über RS-232 herstellen. Leider habe ich absolut keine Erfahrung mit jeglicher Art von seriellen Schnittstellen. Darum habe ich zunächst allgemeine Fragen zur RS-232:
-
Ich weiß, dass die Kommunikation der RS232 wie folgt aufgebaut ist. Zunächst wird eine Steuerzeichen (z.B. STX) gesendet, danach folgen Daten und anschließend kommen noch Abschlusszeichen, um die Kommunikation abzuschließen. Frage: Gibt es bei dem RS-232 Protokoll irgendwelche Standart-Steuerzeichen, die allgemeingültig sind? In der Anleitung zur Hardware steht eigentlich nichts zum RS232 Protokoll, nur eine Parameterliste für irgndwelche Befehle.
-
Wie werden die Steuerzeichen übertragen? Also, klar in Binärcode, aber müssen die Steuerzeichen, z.B. STX, direkt binär übersetzt werden? z.B. STX ist ja ein String. Und das sind ja 3 Zeeichen 'S' 'T' und 'X'. Aus der ASCII Tabelle entnommen wären das folgende hex-codes: 73 74 78. Oder gibt es für Steuerzeichen einen eigenen Code???
Danke!!!
1 Antwort
STX ist eine Abkürzung für einen einzigen 7-Bit-Zeichencode.
Steuerzeichen haben generell einen Code von 0 bis 0x1F (0 bis 31); daran werden sie erkannt.
Zur generellen Bedeutung der Steuerzeichen (sie sind älter als die RS-232-Spezifikation) siehe die Tabelle in https://de.wikipedia.org/wiki/Steuerzeichen
Beachte auch, dass viele Geräte einen "Handshake" erwarten, d. h.
- Sender sagt, dass er senden möchtet
- Sender wartet (eine bestimmte maximale Zeit) auf Reaktion vom Empfänger
- Empfänger sendet "Empfangsbereit" (oder "Nicht empfangsbereit" oder gar nichts)
- falls Empfänger kein "Empfangsbereit" innerhalb der Zeit sendet, Abbruch des Übertragungsversuchs
- Sender sendet gewünschtes Sendeformat (Anzahl der Start- und Stopbits, Parität, Länge der Datenblocks etc. oder eine Teilmenge hiervon)
- Empfänger sendet "kann ich verarbeiten" oder "kenne ich nicht - probier was anderes"
- Falls Empfänger das nicht verarbeiten kann/will, 2 Schritte zurück (nochmal fragen)
- usw.
Super! Danke! Das hilft mir natürlich weiter. Also so ein Handshake ist vom Gerät zum Gerät anders. Da muss man vorher die Kommunikation festlegen.
Ich hatte vorhin mit einem vom Völkel telefoniert und die sind dort sehr unkooperativ. Der Typ auf der anderen Seite der Telefonleitung meinte dass man eine Software von denen erwerben muss um mit den HCX-Controlllern kommunizieren zu können. Und das die SPS dafür nicht gedacht ist. Es kann ja nicht sein, dass der Controller RS232 Telegramme nur von bestimmen Teilnehmer auswerten kann. Was allerdings sein kann, ist dass der Controller zunächst parametriert werden muss, damit er weiß, welche Befehle was bedeutet.