RS232 Little Endian - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: RS232 Little Endian (/Thread-RS232-Little-Endian) |
RS232 Little Endian - Fry12 - 20.10.2014 11:06 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? RE: RS232 Little Endian - jg - 20.10.2014 11:40 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 RE: RS232 Little Endian - GerdW - 20.10.2014 11:40 Hallo Fry, Zitat:Nur ab einem gewissen Zeitpunkt funktioniert das nicht mehr und LabView vertauscht dann falschDer 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] RE: RS232 Little Endian - Fry12 - 20.10.2014 12:07 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... @GerdW: Danke für die Anregung mit der Umstellung von Little auf Big Endian! |