Unterschied zwischen serieller Software und seriellem Terminal
Herkömmliche Software für serielle Schnittstellen überträgt und empfängt einfach rohe Bytes über TX (Senden),
RX (Empfangen) und Masse (GND). In diesem Fall wird der Datenstrom nicht als Textschnittstelle interpretiert:
Er wird lediglich "wie er ist" angezeigt.
- ASCII (druckbare Zeichen)
- Hexadezimal (Byte-für-Byte-Analyse)
- Binär (wenn eine Bit-Ebene-Ansicht benötigt wird)
Ein VT-100-Terminal hingegen muss auch
ANSI-Escapesequenzen (ESC) interpretieren,
um Cursor, Farben, Bildschirmreinigung und Formatierung korrekt zu verwalten. Hier reicht das Drucken von Bytes nicht aus: Emulation ist erforderlich.
Ein wesentlicher praktischer Unterschied zwischen den beiden Terminaltypen ist zum Beispiel das Erstellen einer neuen Zeile auf dem Bildschirm.
In einem VT-100-Terminal wird konventionell eine neue Zeile eingefügt, wenn die Byte-Sequenz 0x0D 0x0A empfangen wird, die dem Terminal mitteilt, dass es Zeit ist, eine neue Zeile zur Anzeige hinzuzufügen.
Dieser Standard wird bei proprietären seriellen Protokollen nicht unbedingt eingehalten.
Da Daten im industriellen Modbus-Kommunikationsprotokoll roh sind und nicht für die ASCII-Anzeige bestimmt sind, enden Pakete nicht mit einer bestimmten Sequenz.
Aus diesem Grund ermöglicht SerialTool das Setzen einer neuen Zeile im klassischen Terminal bei Ankunft eines Pakets durch Verwendung der auswählbaren Option "Packet Mode" (Paketmodus), die im folgenden Screenshot gezeigt wird.
Auswahl des klassischen Terminalmodus im Paketmodus
Auf diese Weise generiert das Terminal bei Empfang einer Byte-Sequenz von einer bestimmten seriellen Schnittstelle eine neue Zeile, wenn das Paket beendet ist.
Um zu bestimmen, wann ein Paket beendet ist, ist es wichtig, den "Last Byte Timeout" (Zeitüberschreitung des letzten Bytes) im Bildschirm für die verwendete serielle Schnittstelle einzustellen (typischerweise 50ms).
Hinweis: Wenn Sie den unten erwähnten VT-100-Terminalmodus verwenden möchten, hat der eingehende Datenverkehr kein spezifisches Timeout und hängt vom Master-Gerät ab, mit dem Sie verbunden sind.
Aus diesem Grund ist es wichtig, den "Last Byte Timeout" auf 1ms einzustellen, um eine flüssige Visualisierung zu gewährleisten. In diesem Fall wird jeder eingehende Byte-Strom sofort zur Interpretation an das VT-100-Terminal gesendet.
Es passiert nichts, wenn das Timeout bei 50ms bleibt, aber es besteht die Gefahr, dass einige Animationen verlangsamt werden oder nicht dem vom Entwickler beabsichtigten Effekt entsprechen.
Ein Beispiel ist die Simulation eines Fortschrittsbalkens mit ANSI-Zeichen, der auf dem Bildschirm falsch dargestellt würde, wenn das Timeout zu hoch wäre.
Diese Beispiele sind kleine Anpassungen, die etwas Erfahrung erfordern, aber SerialTool wurde speziell entwickelt, um jede Art von Betrieb der seriellen Schnittstelle zu ermöglichen. Sie haben daher die Möglichkeit, bis zur Analyse einzelner Bytes zu gehen und verschiedene Zeitabläufe zu bewerten, mit denen die serielle Schnittstelle arbeitet.