Forum: Mikrocontroller und Digitale Elektronik RS232 - Parität?


von Krisch M. (krischan111)


Lesenswert?

Hoi! Ich hab ein Projekt mit der Datenarchivierung über RS232 zwischen 
SPS und PC. Ja ich weiß, total spannend. Jedenfalls ist mir aufgefallen, 
dass es gar keinen Unterschied mache, welche Einstellung ich für die 
Parität angebe. Ob ich Keine, Gerade oder Ungerade anwähle, die Daten 
kommen immer zuverlässig an. Da kann doch was nicht stimmen. Wird die 
Parität immer auf "Keine" gesetzt? Mit Parität müsste ein Byte-Diagramm 
ja um ein Bit länger sein.
Wenn ich eine falsche Angabe für die Stoppbits mache dann kommt 
Datenmüll an.
Ich benutze eine DLL mit C++, aber Hyperterminal macht genau das 
gleiche.

von Chrisi (Gast)


Lesenswert?

Kann mich auch nicht erinnern, dass HT jemals nen Parity-Fehler 
ausgeworfen hätte. Die Daten kommen in der Tat in jedem Fall an. Man muß 
halt nur den Fehler ignorieren.

Entscheidend für Deine Überlegungen ist, mit welchem Format Deine SPS 
die Daten sendet. Wenn z.B. 2 Stoppbits ohne Parity angehängt werden, 
also 8N2, hättest Du perfekten Empfang auch mit 8N1. Und bei 8E1 oder 
8O1 gibt's halt einen Fehler, um den sich niemand kümmert. Das wäre 
zumindest mal eine passende Konstellation.

von Krisch M. (krischan111)


Lesenswert?

Ok, hab's jetzt raus.

Datensätze mit falschem Paritybit werden nicht anerkannt.

Sende ich ein 'r' von einem 8N1 Sender an einen 8E1 Empfänger, wird es 
geblockt.

Sende ich ein 'a' von einem 8N1 Sender an einen 8E1 Empfänger, kommt es 
tatsächlich an.

Liegt einfach daran, dass das Stopbit den selben Pegel hat wie der 
Ruhepegel, der nach dem Stopbit kommt. Der Empfänger nimmt also das 
Stopbit als Paritybit und den Ruhepegel als Stopbit.
Das funktioniert natürlich nicht wenn die Parität nicht stimmt, also 
hier bei dem 'r'.

von eProfi (Gast)


Lesenswert?

Und es dürfte nicht funktionieren, wenn Du mit voller Geschwindigkeit 
sendest, weil es dann keinen Zwischenraum (Ruhepegel) gibt. Es folgt 
sofort das nächste Startbit.

Dann sollte es einen PE (Parity Error) und einen FE (Framing Error) 
geben.

von Krisch M. (krischan111)


Lesenswert?

Jepp, wenn ich ne Textdatei mit zwei 'a's schicke sind sie weg. Thanks, 
hätte nicht gedacht dass das so Knall auf Fall geht.
Kann ich die Fehler irgendwie auslesen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

HTerm gibt auf Wunsch Fehler aus (markiert die betreffende Stelle rot), 
findest Du im PC-Programmierung-Forum.

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.