bg

Unleserliche serielle Daten: 7 Prüfungen der Reihe nach

Unleserliche serielle Daten bedeuten: Eine Seite liest nicht das, was die andere geschrieben hat. Die Bytes sind meist noch da; Rahmenparameter, Verkabelung oder Adapter machen daraus ÿ, Fragezeichen, Kästchen oder einen halben MODBUS-Frame. Diese Seite nennt die Prüfungen in der Reihenfolge, die den Fehler am schnellsten findet, von den Zwei-Minuten-Checks bis zu denen, die einen zweiten Adapter brauchen, und zeigt, wo ein serieller Port-Monitor jeden Schritt abkürzt.

Wie der Zeichensalat aussieht und was er meist bedeutet

Die Form des Zeichensalats grenzt die Suche ein, bevor man eine Einstellung anfasst. Suchen Sie Ihren Fall in der Tabelle und beginnen Sie mit der genannten Prüfung; der Rest der Seite geht alle sieben der Reihe nach durch.

Was Sie sehenWahrscheinlichste UrsacheBeginnen mit
Nur ÿ (0xFF), 0x00 oder dieselben wenigen Zeichen, egal was das Gerät tutBaudrate weit von der des Geräts entfernt; jedes Byte scheitert am RahmenPrüfung 1
Lesbarer Text mit einem falschen Zeichen alle paar WörterParität oder Stoppbits weichen vom Gerät ab, oder Störungen auf einer langen oder ungeschirmten LeitungPrüfungen 1 und 4
Text stimmt, aber Zeilen laufen zusammen, oder auf jede Zeile folgt eine leereZeilenende: das Gerät sendet CR, LF oder beides, und die Anzeige erwartet das anderePrüfung 6
Binärer Müll, wo Text erwartet wurdeDas Protokoll ist binär; noch ist nichts falschPrüfung 6
MODBUS-Frames kommen unvollständig an, oder der Master meldet CRC-FehlerRahmenparameter, Terminierung, fehlende gemeinsame Masse, zwei Slaves mit einer Adresse oder ein Konverter, der zu spät umschaltetPrüfungen 1, 4 und 7
Minuten- oder stundenlang sauber, dann Müll oder Stille bis zum NeuverbindenAdapter, seine USB-Energieverwaltung, das Kabel oder die BuchsePrüfung 5
Sauber auf einem PC, Müll auf einem anderen mit demselben GerätAnderer Adapter oder Treiber, andere StandardeinstellungenPrüfungen 1 und 5

Die sieben Prüfungen der Reihe nach

Prüfung 1: Baudrate und Rahmen auf beiden Seiten abgleichen

Vier Werte müssen übereinstimmen: Baudrate, Datenbits, Parität und Stoppbits. Das Gerätehandbuch hat das letzte Wort. Ist es verloren, ist 9600 8N1 die übliche Werkseinstellung, gefolgt von 19200 und 115200; manche Zähler und SPS werden mit gerader Parität ausgeliefert, und ein Gerät mit 8E1, das mit 8N1 gelesen wird, erzeugt genau das Muster „ein falsches Zeichen alle paar Wörter“.

Die Falle ist der Einstellungsdialog des eigenen Programms. Was er zeigt, ist nicht immer das, was er sendet: Eine Anwendung kann jeden der vier Werte nach dem Öffnen des Ports ändern, und ein falsches Profil, ein Rückfall auf einen Standardwert oder die Vorgabe eines Treibers kann den Dialog überstimmen. Zwei Wege zur Wahrheit:

  • Die Anwendung im Spy-Modus mit aktivierten Systemereignissen beobachten. Die ersten Zeilen der Aufzeichnung sind die Öffnungsanforderung und die Baudrate, Datenbits, Parität und Stoppbits, die die Anwendung wirklich angefordert hat. Die Seite Serial Port Sniffer (englisch) zeigt, wo man das einschaltet.
  • Selbst mit dem Gerät sprechen, im manuellen Modus. Alle vier Werte lassen sich bei geöffnetem Port ändern, sodass man die Standardraten durchgehen kann, während das Gerät weiter sendet, und bei der Rate stehen bleibt, bei der der Text lesbar wird. Bei einem MODBUS-Gerät mit unbekannter Geschwindigkeit geht das Device-Scan-Plugin die Standardraten selbst durch.

Symbolleiste des Serial Port Monitors mit Baudrate, Datenbits, Parität und Stoppbits, änderbar bei geöffnetem Port

Prüfung 2: Den richtigen Port und das richtige Gerät sicherstellen

Zeichensalat, der sich nicht ändert, wenn man das Gerät ausschaltet, kommt nicht vom Gerät. USB-Adapter wechseln ihre COM-Nummer nach einem Neustart oder Treiberupdate, zwei Adapter sehen in einer Portliste, die nur Nummern zeigt, gleich aus, und auf vielen PCs gehört COM1 der Management-Engine auf dem Mainboard und keinem Stecker. Öffnen Sie die Portliste in Advanced Serial Port Monitor: Sie zeigt jeden Port mit seinem Gerätenamen, zum Beispiel „COM7 - USB Serial Port (FTDI)“, sodass Adapter und Nummer auf einen Blick zusammenpassen. Den COM-Port einer Anwendung finden erklärt die anderen Wege. Lässt sich der Port öffnen, kommt aber gar nichts an, ist das ein anderer Fehler; siehe COM-Port funktioniert nicht.

Prüfung 3: Flusssteuerung abschalten, sofern das Gerät sie nicht braucht

Flusssteuerung verwürfelt keine Bytes; sie entfernt sie. Hardware-Flusssteuerung (RTS/CTS) über ein Kabel ohne diese Leitungen lässt PC oder Gerät auf ein Signal warten, das nie kommt: Daten kommen in Schüben mit Lücken an, oder gar nicht. Software-Flusssteuerung (XON/XOFF) ist bei binären Protokollen schlimmer: Die Bytes 0x11 und 0x13 werden als Steuerzeichen geschluckt, ein binärer Frame kommt ein oder zwei Bytes zu kurz an, und seine Prüfsumme scheitert. Setzen Sie die Flusssteuerung zuerst auf None und fügen Sie nur das wieder hinzu, was das Gerätehandbuch verlangt. Der Monitor zeigt den Zustand der Steuerleitungen und lässt RTS und DTR von Hand umschalten; so klärt sich, ob das Gerät auf eine Leitung wartet.

Einstellungen für Flusssteuerung und Steuerleitungen im Serial Port Monitor

Prüfung 4: Verkabelung, Masse und Bus

Stimmen die Einstellungen und die Daten sind trotzdem falsch, liegt der Fehler auf der Leitung, und keine Software-Einstellung behebt ihn. In dieser Reihenfolge prüfen:

  • RS232: gekreuzt oder gerade. PC zu Gerät braucht meist ein gerades Kabel; zwei Computer, oder zwei Geräte, die beide als Terminal auftreten, brauchen ein Nullmodemkabel mit gekreuzten TX und RX. Das falsche Kabel liefert eher Stille oder Echos als Zeichensalat, ein teilweise verdrahtetes Kabel aber beides. Pin 5 (Signalmasse) muss verbunden sein; ohne ihn hat der Empfänger keine Referenz und liest Rauschen. Siehe RS232-Pinbelegung und Signale.
  • RS485: A und B, Terminierung und Masse. Vertauschte A- und B-Leitungen invertieren das Signal. Lange Leitungen brauchen an jedem Ende, nicht in der Mitte, einen 120-Ohm-Abschlusswiderstand. Eine fehlende gemeinsame Masse zwischen Konverter und Gerät ist die klassische Ursache für Fehler, die mit dem Wetter oder dem Anlaufen eines Motors kommen und gehen; ziehen Sie eine dritte Ader für die Masse, auch wenn der Bus ohne sie „funktioniert“.
  • Ein Gerät nach dem anderen. Nehmen Sie alle Geräte bis auf eines vom Bus. Zwei Slaves mit derselben Adresse antworten gleichzeitig und zerstören sich gegenseitig die Frames, und ein defekter Sender blockiert den ganzen Bus. Liest sich das einzelne Gerät sauber, kommen die anderen einzeln wieder dazu.
  • Länge und Störungen. RS232 ist für etwa 15 Meter spezifiziert; darüber hinaus die Baudrate senken oder auf RS485 wechseln. Serielle Kabel von Netzleitungen und Frequenzumrichtern fernhalten und geschirmtes Kabel verwenden, dessen Schirm an einem Ende geerdet ist.

Die Seite RS485-Software (englisch) zeigt die Verdrahtung für einen PC an einem Zweidraht-Bus und für das Abhören eines bereits laufenden Busses.

Zweidraht-RS485-Bus mit PC-Konverter, Abschlusswiderständen an beiden Enden und gemeinsamer Masse

Prüfung 5: Adapter, Treiber und Kabel

Die meisten PCs erreichen ein serielles Gerät über einen USB-Seriell-Adapter oder einen USB-RS485-Konverter, und der Adapter ist am häufigsten schuld, wenn Daten eine Weile sauber sind und dann abbrechen. Was zu tun ist:

  • Tauschen. Der schnellste Test überhaupt. Liest ein zweiter Adapter mit anderem Chip dasselbe Gerät sauber, ist der Fehler gefunden. Adapter mit Chips von FTDI, Silicon Labs CP210x oder WCH CH340 und dem Treiber des Herstellers sind die verlässliche Wahl; der aktuelle Prolific-Treiber verweigert gefälschte PL2303-Chips, weshalb ein Adapter, der auf einem alten PC lief, auf einem neuen streikt.
  • Windows daran hindern, ihn abzuschalten. Im Geräte-Manager den USB-Hub des Adapters und den Port öffnen und auf der Registerkarte „Energieverwaltung“ das Häkchen bei „Computer kann das Gerät ausschalten, um Energie zu sparen“ entfernen. Ein Gerät, das nach einer Pause verstummt und nach dem Neuverbinden zurückkommt, ist oft genau das.
  • Hubs und lange USB-Kabel umgehen. Den Adapter direkt am PC anstecken. Hubs ohne eigenes Netzteil und dünne Verlängerungskabel lassen die Spannung einbrechen und setzen den Adapter unter Last zurück.
  • Den Treiber prüfen. Ein gelbes Zeichen im Geräte-Manager oder ein Port, der erscheint und verschwindet, braucht das Treiberpaket des Herstellers statt des generischen. USB-Seriell-Adapter funktioniert nach einem Windows-Update nicht behandelt die Treiberseite.
  • Belasten. Tritt der Fehler nur bei Dauerverkehr auf, den Port mit dem COM Port Stress Test laufen lassen und beobachten, ab welcher Rate Fehler beginnen.

Prüfung 6: Text, binär und Zeilenenden

Mancher Zeichensalat ist keiner. Schalten Sie den Monitor auf die HEX-Ansicht. Wiederholen sich die Bytes in einem Muster, beginnen sie mit demselben Header oder bilden sie gültige MODBUS-Frames mit korrekter CRC, sind die Daten binär, und falsch war nur, sie als Text zu lesen. Ist der Text lesbar, aber das Layout seltsam, liegt es am Zeilenende: Geräte senden CR, LF oder CR LF, und eine Anzeige, die das andere erwartet, hängt Zeilen aneinander oder verdoppelt sie. Die ASCII-Ansicht zeigt Steuerzeichen, und das Kontextmenü sendet CR, LF oder beides, sodass sich testen lässt, was das Gerät empfangen möchte. Zwei weitere Fälle: Ein Gerät mit 7 Datenbits zeigt jedes Byte über 127 als falsches Zeichen, und nicht-englischer Text braucht die Codepage des Geräts, um richtig angezeigt zu werden.

HEX-Ansicht empfangener serieller Daten neben ihrer ASCII-Darstellung

Prüfung 7: Timing und halbe Frames

Frames, die zweigeteilt oder ohne die ersten Bytes ankommen, sind ein Timing-Fehler, kein Datenfehler. Die üblichen Ursachen:

  • Richtungsumschaltung bei RS485. Ein Halbduplex-Konverter muss seinen Sender abschalten, bevor die Antwort beginnt. Ein Konverter, bei dem der PC die Umschaltung übernehmen muss, schneidet die ersten Bytes jeder Antwort ab, sofern das Programm RTS nicht im richtigen Moment ansteuert; Advanced Serial Port Monitor hat genau für solche Konverter einen RS485-Modus. Konverter mit automatischer Richtungssteuerung vermeiden das Problem.
  • Pause zwischen Frames. MODBUS RTU braucht zwischen Frames eine Pause von 3,5 Zeichenzeiten. Ein Master, der die nächste Anfrage sendet, bevor die Antwort zu Ende ist, oder ein Slave, der für den Konverter zu schnell antwortet, verschmilzt Frames.
  • Pufferung im Adapter. FTDI-Adapter reichen Daten standardmäßig alle 16 ms an Windows weiter (der Latency Timer in den erweiterten Porteinstellungen), sodass ein Frame an der Puffergrenze geteilt oder zwei kurze Frames zusammen geliefert werden können. Die Bytes sind intakt; die Anwendung muss nach Länge oder Trennzeichen zusammensetzen, nicht nach Leseaufruf.

Zeitstempel klären, welcher Fall vorliegt. Jedes Paket im Monitor trägt die Zeit auf die Millisekunde und die seit dem vorigen Paket verstrichene Zeit; ein geteilter Frame erscheint als zwei Pakete wenige Millisekunden auseinander, eine späte Richtungsumschaltung als Antwort, der ein Byte am Anfang fehlt. Für MODBUS zeigt das MODBUS-Plugin (englisch) die rohe Anfrage und Antwort neben den dekodierten Werten und markiert die CRC.

Aufgezeichnete serielle Pakete mit Zeitstempeln und der Zeit zwischen den Paketen

Software oder Leitung?

Ein Test trennt beides. Öffnen Sie das Gerät im manuellen Modus von Advanced Serial Port Monitor mit den Einstellungen aus Prüfung 1 und lesen Sie eine Minute lang mit.

  • Der Monitor liest sauber. Gerät, Adapter und Leitung sind in Ordnung. Der Fehler liegt in der Anwendung: Beobachten Sie die Anwendung im Spy-Modus und vergleichen Sie die angeforderten Parameter und die gesendeten Frames mit dem, was im manuellen Modus funktioniert hat. Eine falsche Baudrate in einer Konfigurationsdatei, eine vergessene Flusssteuerung oder eine Leseroutine, die Frames an der Puffergrenze teilt, zeigt sich auf dem ersten Bildschirm.
  • Der Monitor sieht bei jeder Einstellung denselben Müll. Der Fehler liegt unterhalb der Bytes. Zurück zu den Prüfungen 4 und 5: ein zweiter Adapter, eine Masseleitung, ein Abschlusswiderstand. Sind die ausgeschöpft, ist das nächste Instrument ein Logikanalysator oder ein Oszilloskop an der Leitung, das die Signalform zeigt, die Software nicht sehen kann.

Führen Sie während des Tests mit der Schaltfläche Write to file ein Protokoll. Ein Protokoll mit Zeitstempeln ist das, was der Support des Geräteherstellers anfordern wird, und es erlaubt einen Vergleich vor und nach einer Änderung, ohne sich auf das Gedächtnis zu verlassen.

FAQ

Warum zeigt mein serieller Port nur ÿ oder seltsame Zeichen?

Ein Byte, das mit falscher Baudrate empfangen wird, scheitert an der Rahmenprüfung, und der Empfänger meldet es als 0xFF, angezeigt als ÿ, oder als einen anderen festen Wert. Kommt jedes Byte gleich heraus, liegt die Rate weit daneben, zum Beispiel 9600 gegen 115200. Gehen Sie die Standardraten durch, während das Gerät sendet; bei der richtigen wird der Text lesbar. Ändern sich die Zeichen mit den Daten, sind aber nie richtig, liegt die Rate nahe dran und Parität oder Stoppbits sind falsch.

Kann die Baudrate stimmen und die Daten trotzdem unleserlich sein?

Ja. Parität und Stoppbits erzeugen einzelne falsche Zeichen; eine fehlende Signalmasse oder eine gestörte Leitung erzeugt Fehler, die kommen und gehen; Software-Flusssteuerung entfernt Bytes aus binären Daten; ein ausfallender Adapter liefert eine Weile saubere Daten und dann Müll. Die Prüfungen 3 bis 5 decken das der Reihe nach ab.

Warum bekomme ich auf RS485 Zeichensalat, auf RS232 aber nicht?

RS485 fügt denselben Bytes einen gemeinsamen Halbduplex-Bus hinzu. Vertauschte A- und B-Leitungen, ein fehlender Abschlusswiderstand auf einer langen Strecke, keine gemeinsame Masse zwischen Konverter und Geräten, zwei Slaves mit derselben Adresse oder ein Konverter, der zu spät umschaltet, erzeugen Fehler, die eine RS232-Punkt-zu-Punkt-Verbindung nie sieht. Reduzieren Sie den Bus auf ein Gerät und einen Konverter, und nehmen Sie die Geräte dann einzeln wieder dazu.

Warum fehlen Bytes in binären Daten?

Software-Flusssteuerung ist der erste Verdächtige: Mit aktiviertem XON/XOFF gelten die Bytes 0x11 und 0x13 als Steuerzeichen und erreichen die Anwendung nie. Hardware-Flusssteuerung über ein Kabel ohne RTS- und CTS-Leitungen verursacht Lücken statt Verluste. Ist keines von beiden aktiv, vergleichen Sie die HEX-Ansicht des Monitors mit dem, was die Anwendung empfängt; zeigt der Monitor die Bytes und die Anwendung nicht, verwirft die Leseroutine der Anwendung sie.

Ändert Windows serielle Porteinstellungen von sich aus?

Nein. Die Werte auf der Registerkarte „Anschlusseinstellungen“ im Geräte-Manager sind Vorgaben für Programme, die keine eigenen setzen; die meisten Programme setzen Baudrate und Rahmen bei jedem Öffnen des Ports selbst. Was Windows sehr wohl ändert, ist die COM-Nummer eines USB-Adapters nach einem Treiberupdate oder an einer anderen USB-Buchse, wodurch das Programm beim falschen Gerät landet. Prüfung 2 behandelt das.

Verwandte Seiten: fünf häufige COM-Port-Fehler, wenn sich der Port gar nicht öffnen lässt, der Serial Port Sniffer (englisch), wenn Sie sehen müssen, was ein anderes Programm sendet, und die Produktseite mit der vollständigen Funktionsliste und der 14-tägigen Testversion.

Siehe auch

COM-Port funktioniert nicht: 5 Lösungen für Windows 11 und 10
COM-Ports in Windows 11 auflisten und die App am Port finden
COM-Port lässt sich nicht öffnen, Zugriff verweigert: 5 Lösungen
COM-Port unter Windows 11 prüfen und testen: CMD, PowerShell
Unleserliche serielle Daten: 7 Prüfungen der Reihe nach