LabVIEWForum.de - RS232 Little Endian

LabVIEWForum.de

Normale Version: RS232 Little Endian
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute!

Ich bin LabView-Neuling und habe ein kleines Problem zur Kommunikation über die serielle Schnittstelle. Und zwar möchte ich alle 5 ms einen 16 Bit Wert im Little-Endian Format übertragen und darstellen. Da LabView Big-Endian ist, muss ich das MSB mit dem LSB vertauschen. Das klappt auch soweit ganz gut. Nur ab einem gewissen Zeitpunkt funktioniert das nicht mehr und LabView vertauscht dann falsch, d.h. die 16 Bit Werte liegen wieder im Big-Endian Format vor.

Das erkenne ich gut daran, dass quasi standardmäßig Werte von 0 bis ca. 100 übertragen werden. Nachdem die dann falsch interpretiert werden, wird mir z.B. statt 100 25600 angezeigt, d.h. nach einer gewissen Zeit, in der alles einwandfrei läuft, bekomme ich sehr hohe Werte, die jedoch falsch sind.

Wie kann man das vermeiden?
Ich habe es mir schon gedacht, bevor ich dein VI angeschaut habe: Termination Character aktiv.
Das kann beim Versenden/Empfang von Binärdaten einfach nicht gut gehen, denn der Termination Character kann immer auch Teil der Binärdaten sein, und dann wird der Lesevorgang bei VISA Read mglw. schon nach dem ersten (von eigentlich 2 geforderten) Bytes beendet. Und schon bist du außer Tritt.

Gruß, Jens
Hallo Fry,

Zitat:Nur ab einem gewissen Zeitpunkt funktioniert das nicht mehr und LabView vertauscht dann falsch
Der Fehler dürfte nicht bei "LabVIEW" zu suchen sein…

Du hast den seriellen Port mit TermChar initialisiert. Du liest (angeblich) 2 Zeichen vom Port.
Was passiert, wenn eines der beiden Zeichen zufällig deinem TermChar entspricht?

Hast du eine genaue Beschreibung des Datenformats? Wieviele Zeichen pro Botschaft? TermChar vorhanden? Wenn ja: welches?

Nachtrag zu deinem VI:
[attachment=51066]
So geht es auch…

Oder auch so:
[attachment=51067]
Vielen Dank für eure schnellen Antworten!

Den Termination Char hatte ich völlig vergessen, den VISA Config-Teil hatte ich einfach aus einem vorherigen VI kopiert und nichts angepasst, peinlicher Fehler...Wink

@GerdW:
Danke für die Anregung mit der Umstellung von Little auf Big Endian!
Referenz-URLs