Abschlusszeichen in NI-VISA

Überblick

Verschiedene nachrichtenbasierte Busse verwenden Abschlusszeichen, um das Ende einer Nachrichtenübertragung anzuzeigen. Für VISA-Ressourcentypen, die einem vollständigen 488.2-Protokoll entsprechen (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr und TCPIP Instr), sind in der Regel keine Abschlusszeichen notwendig, da die Protokollimplementierung ebenfalls über einen integrierten Mechanismus zum Festlegen eines Nachrichtenendes verfügt. Sie müssen VISA nur mitteilen, wie Nachrichten beendet werden, wenn Sie andere VISA-Ressourcentypen (Serial Instr, USB Raw und TCPIP Socket) verwenden.

Sowohl eingehende als auch ausgehende Nachrichten können Abschlusszeichen haben. Zwei gängige Abschlusszeichen sind Zeilenvorschub (im Programmcode wird '\n' angezeigt).\n', 10 (ASCII-, Dezimalwert) oder 0x0A (Hexadezimalwert) angezeigt) und Wagenrücklauf (im Programmcode wird '\n', 13 (ASCII-, Dezimalwert) angezeigt).\r', ASCII-, Dezimalwert 13 oder Hexadezimalwert 0x0D).

Vier Haupteigenschaften von NI-VISA betreffen die Beendigung. Zwei fallen unter nachrichtenbasierte Einstellungen und die anderen beiden unter Einstellungen für serielle Schnittstellen. Die nachrichtenbasierten Eigenschaften sind Termination Character und Termination Character Enabled. Die speziell für serielle Schnittstellen geltenden Eigenschaften lauten Serial End Modes for Reads und Serial End Modes for Writes. Wir werden jede Eigenschaft im Detail besprechen und anschließend spezielle Überlegungen diskutieren.

Inhalt

Termination Character (TermChar)

Abschlusszeichen


Diese Eigenschaft verwendet einen vorzeichenlosen 8-Bit-Integer als Eingabe. Wenn Sie also den ASCII-Wert für Ihr Abschlusszeichen nicht kennen, empfiehlt es sich, den Wert wie oben gezeigt umzuwandeln, um die Eigenschaft festzulegen. Verwenden Sie diesen Eigenschaftswert als Abschlusszeichen für Lese- und Schreibvorgänge. Das Festlegen dieses Eigenschaftswerts hat keinen Einfluss darauf, ob er verwendet wird.

Obwohl "TermChar" nicht auf die serielle Kommunikation beschränkt ist, sollten Sie andere Beendigungsmechanismen verwenden, wenn Sie mit einem vollständigen 488.2-Protokoll auf Bussen kommunizieren, wie in der Einleitung beschrieben. Bei der Kommunikation über GPIB wird beispielsweise standardmäßig eine Hardwareleitung (EOI) zur Terminierung verwendet.

Hinweis: VISA Configure Serial Port.vi legt diese Eigenschaft über den Parameter Abschlusszeichen fest, der standardmäßig auf einen Zeilenvorschub (0x0A = '\n' = LF) eingestellt ist.

Abschlusszeichen aktiviert (Abschluss ein)


Abschlusszeichen aktiviert

Wenn diese Eigenschaft auf "True" gesetzt ist, weist VISA an, das Lesen zu beenden, wenn Abschlusszeichen gefunden wird. Beachten Sie, dass sie nicht auf serielle Daten beschränkt ist. Sie können diese Eigenschaft für das Beenden von Lesevorgängen auf anderen Bussen verwenden.

Wichtig: Diese Eigenschaft wird ignoriert und gibt keinen Fehler aus, wenn "Serial End Modes for Reads" (siehe unten) auf "Term Char" eingestellt ist.

Diese Eigenschaft hat keinen Einfluss auf das Abschlusszeichen für Schreibvorgänge.

Hinweis: VISA Configure Serial Port.vi legt diese Eigenschaft über den Parameter Abschlusszeichen aktivieren fest, der standardmäßig auf TRUE eingestellt ist.

Serielle Endmodi für Lesevorgänge (ASRL End In)

Serielle Endmodi für Lesevorgänge


Diese Eigenschaft gibt die Methode an, mit der ein Lesevorgang aus dem Softwarepuffer nur für die serielle Kommunikation beendet wird. Gültige Werte sind:

Wert
Beschreibung
Keine (0)Der Lesevorgang wird nicht beendet, wenn das Abschlusszeichen auftritt.
Letztes Bit (1)Der Lesevorgang wird beendet, wenn ein Zeichen mit festgelegtem letzten Bit (Last Bit) empfangen wird.
Abschlusszeichen (2)
(Voreinstellung)
Der Lesevorgang wird beendet, wenn das Abschlusszeichen auftritt. Das ist die Voreinstellung.


Wichtig: Wenn der Wert auf TermChar (2) eingestellt ist, wird die Eigenschaft Termination Character Enabled ignoriert.

Wenn die Byte-Anzahl (festgelegt durch VISA: Lesen) oder das Timeout (VISA-Eigenschaft) erreicht ist, wird der Lesevorgang beendet, unabhängig davon, auf welchen Wert diese Eigenschaft eingestellt ist.

Diese Eigenschaft kann deaktiviert werden, indem die Eigenschaft Ende unterdrücken aktiviert (Ende unterdrücken) auf TRUE gesetzt wird.

Hinweis: VISA Configure Serial Port.vi setzt diese Eigenschaft auf None, wenn der Eingang Termination Char aktivieren auf F gesetzt ist; es setzt sie auf TermChar, wenn der Eingang Termination Char aktivieren auf T gesetzt ist.

Serielle Endmodi zum Schreiben (ASRL End Out)

Serielle Endmodi zum Schreiben



Legt die Methode fest, mit der Schreibvorgänge beendet werden sollen. Gültige Werte sind:

Wert
Beschreibung
Keine (0)
(Voreinstellung)
An Schreibvorgänge wird kein Abschlusszeichen angehängt.
Letztes Bit (1)Während des Schreibvorgangs werden alle Daten bis auf das letzte Zeichen mit gelöschtem höchsten Bit gesendet. Dann wird das letzte Zeichen mit festgelegtem höchsten Bit übertragen.
Abschlusszeichen (2)Der Wert von Abschlusszeichen wird an das Ende aller Schreibvorgänge angehängt.
Unterbrechung (3)Nach jedem Schreibvorgang wird eine serielle Unterbrechung gesendet. Eine serielle Unterbrechung ist eine Folge kontinuierlicher Leerzeichenwerte, die oft verwendet werden, um ein Gerät entweder anzuweisen, den laufenden Vorgang zu stoppen oder Daten in der Ausgabebutter zu verwerfen. Verwenden Sie diese Methode mit Vorsicht.


Ältere Instrument Drivers können vor dem VISA: Schreiben ein Abschlusszeichen anhängen. Das liegt daran, dass ältere VISA-Versionen diese Eigenschaft nicht unterstützten, so dass Benutzer Abschlusszeichen explizit anhängen mussten. Dies ist nicht mehr notwendig, da das Festlegen dieser Eigenschaft für Sie erledigt wird.

Sie können diese Eigenschaft deaktivieren, indem Sie die Eigenschaft Ende senden aktiviert (Ende senden) auf FALSE setzen.

Hinweis: VISA Configure Serial Port.vi legt diese Eigenschaft nicht fest. Sie müssen sie über einen Eigenschaftsknoten festlegen, wie in der Abbildung oben gezeigt.

ASCII-Kommunikation


Legen Sie bei der ASCII-Kommunikation Ihre Abschlusseigenschaften und andere Buskommunikationseinstellungen am Anfang Ihrer Anwendung oder Treiber-Initialisierungsroutine fest. Abschlusszeicheneinstellungen müssen mit Ihrer Gerätekonfiguration übereinstimmen. Denken Sie daran, dass einige Geräte konfigurierbare Einstellungen haben. Lesen Sie das Benutzerhandbuch Ihres Geräts.

Empfehlung: Bei robusteren Anwendungen, die mit mehreren Bussen arbeiten, sollten Termination Character Enabled und Serial End Mode for Reads immer synchron sein (d. h. wenn Sie einen aktivieren/deaktivieren, setzen Sie den anderen auch).

Binäre Kommunikation


Bei der binären Kommunikation kann der Lesevorgang vorzeitig beendet werden, wenn ein Binärdatenwert die gleiche Binärdarstellung wie das Abschlusszeichen hat. Deaktivieren Sie daher das Abschlusszeichen, indem Sie Termination Character Enabled auf FALSE und Serial End Modes for Reads to None (0) setzen, wie unten dargestellt. Sie müssen sich auf eine andere Methode zum Beenden des Lesevorgangs verlassen, z. B. eine Hardwareleitung oder eine Byte-Anzahl.

Binärkommunikation


Hinweis: Wenn Sie VISA-Ressourcentypen verwenden, die einem vollständigen 488.2-Protokoll entsprechen (GPIB Instr, VXI/GPIB-VXI Instr, USB Instr und TCPIP Instr), da Abschlusszeichen in der Regel gar nicht erst aktiviert werden müssen, ist die binäre Kommunikation einfacher, da Sie sich keine Gedanken über das Deaktivieren der Abschlusszeicheneinstellungen machen müssen.

Geräte mit mehreren Abschlusszeichen


Manche Geräte senden mehrere Endzeichen, z. B. Wagenrücklaufleitungsvorschub (Codes zeigen '\r\n' oder ASCII hex 0x0D0A). Da VISA nur ein Abschlusszeichen zulässt, müssen Sie eine andere Lösung finden. Prüfen Sie zunächst, ob die Abschlussfolge des Geräts konfigurierbar ist. Wenn nicht, können Sie VISA so einstellen, dass es am letzten Zeichen beendet wird und mit Hilfe von In String suchen die anderen Zeichen aus der eigentlichen Nachricht analysiert werden. In der folgenden Abbildung sehen Sie Programmcode, der für\r\n' oder '\nAbbruch.

mehrere Abschlusszeichen


Hinweis: Um diese Konfiguration verwenden zu können, muss die Eigenschaft "Display Style" auf Backslash ('\') Codes gesetzt sein. Weitere Informationen zur Anzeige von Backslash-Codes ('\') finden Sie unter Anzeige von Backslash-Codes ('\') - LabVIEW Help.

 

Was this information helpful?

Yes

No