INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

RS232 Little Endian



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

20.10.2014, 11:06 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2014 11:07 von Fry12.)
Beitrag #1

Fry12 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2014

10
2014
EN



RS232 Little Endian
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?


Angehängte Datei(en)
10.0 .vi  serial little endian.vi (Größe: 14,99 KB / Downloads: 280)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.10.2014, 11:40
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: RS232 Little Endian

Akzeptierte Lösung

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

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2014, 11:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2014 11:54 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: RS232 Little Endian
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:
   
So geht es auch…

Oder auch so:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2014, 12:07
Beitrag #4

Fry12 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2014

10
2014
EN



RE: RS232 Little Endian
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!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: