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 

Jeweiliges High und Low Byte richtig zusammenfügen



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!

25.10.2012, 15:31
Beitrag #1

rookieNo.x Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2012

11
2012
DE_EN



Jeweiliges High und Low Byte richtig zusammenfügen
Hallo zusammen,

ich bin Labview Anfänger und beschäftige mich mit Folgendem.
Über USB-Port (RS232 to USB-Converter) erhalte ich kontinuierlich 8N1 Daten (High und Low Byte im Wechsel).
Hierbei handelt es sich um 12Bit-Daten im Zweierkomplement rechtsbündig.
D.h. das LSB liegt im Low Byte Bit0 und das MSB liegt im Highbyte Bit 3.

Diese werden dann zusammengesetzt und visualisiert.
Funktioniert wunderbar, doch leider fehlen bei den gesendeten Daten ab und zu das High, bzw. Low-Byte.
Demzufolge setzt mein derzeitiges VI dann z.B. 2 High Bytes zusammen was schlecht ist und zu falschen Werten führt.

Um dies zu lösen habe ich jetzt meine 8N1 Daten anders zusammengesetzt damit eine Unterscheidung zwischen High und Low Byte möglich ist. Ein High Byte bekommt als MSB eine 1 und ein Low Byte dementsprechend eine 0. Im High Byte nutze ich zusätzlich noch die 2 freien Bytes für Status Meldungen später.

Wenn ein Fehler Auftritt soll mein Programm den Wert wegwerfen und dann den nächsten auf Richtigkeit prüfen und erst dann zusammensetzen/visualisieren. Ausserdem soll es so sein, dass die beiden falschen Bytes verworfen werden.

Mir stellt sich an dieser Stelle die Frage, wie ich es am besten löse, dass mein VI Die einzelnenen Bits quasi verarbeitet, also die High Low Kennung rausmaskiert, die 2 Status Bits verarbeitet und dann die Daten richtig zusammen setzt.

Kennt jemand vielleicht eine einfache Lösung, gibt es vielleicht besondere Bausteine?
Besteht vielleicht die Möglichkeit Bits zu shiften und zu maskieren?

Mein VI habe ich hier als png angehängt.

Wenn ich mit meiner derzeitigen Methode "Case und Vergleichoperatoren" weiterarbeite schleichen sich sicher schnell Fehler ein, es wird richtig kompliziert und unübersichtlich.

Ich bin für jede Hilfe dankbar.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.10.2012, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2012 16:14 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Jeweiliges High und Low Byte richtig zusammenfügen
Hallo rookie,

so könnte man die Daten (deiner Beschreibung nach) auswerten:
   
Um das richtige Zuordnen von Hi/Lo-Byte musst du dich aber noch selbst kümmern, im Bild ist nur das Maskieren und Shiften von Bits gezeigt...

Wenn du wirklich Bytes zwischendrin "verlierst", ist es wenig sinnvoll, den erhaltenen Datenstrom stur nach I16 zu typecasten. ich würde besser den U8-Datenstrom filtern und bei "fehlenden" Bytes dort nach einer gültigen Folge von Lo/Hi-Bytes suchen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.10.2012, 18:43
Beitrag #3

rookieNo.x Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2012

11
2012
DE_EN



RE: Jeweiliges High und Low Byte richtig zusammenfügen
Hallo GerdW,

danke für die schnelle Antwort.
Habe nicht mit so einer schnellen Antwort gerechnet.

Das Maskieren klappt wunderbar, aber mit dem Filtern der richtigen High-Low-Byte Folge tue ich mich noch etwas schwer.

Habe Deinen Rat befolgt und den Type-Cast verworfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  dynamische Byte-Anzahl einer Nachricht Gottimp 6 4.997 23.03.2021 18:15
Letzter Beitrag: GerdW
  2 Einzelprogramme zusammenfügen tatnau 33 21.685 12.08.2015 10:33
Letzter Beitrag: tatnau
  Problem: Empfangene Byte Anzahl ändert sich MKVH28 7 6.667 26.03.2015 17:39
Letzter Beitrag: Lucki
  Byte (hex) erzeugt Timeout im VISA Lolleg 2 4.305 06.06.2014 13:26
Letzter Beitrag: Lolleg
  Spezielles Byte nach Eingang weiterverarbeiten, RS232 Maxix 16 14.306 06.02.2012 16:34
Letzter Beitrag: Maxix
  Delay nach jedem gesendeten Byte hans75 5 6.101 21.09.2010 16:13
Letzter Beitrag: GerdW

Gehe zu: