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 

Auswerten, zwischenspeichern und zusammenführen verschiedener Bytes



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!

21.12.2013, 17:44
Beitrag #1

KIttypie Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Dec 2013

13
2013
DE



Auswerten, zwischenspeichern und zusammenführen verschiedener Bytes
Hallo liebes Forum,

ich bin ein ziemlicher Neuling (1 Woche Erfahrung) was Labview angeht und stehe bereits vor einem riesigen Problem auf das ich keine Lösung im Forum oder bei Google finden konnte Angry.
Und zwar habe ich einen NI 9157 FPGA auf dem unter anderem eine NI 9871 RS 422 Schnittstelle aufgesteckt ist. Labview 13 und Rio Driver usw. habe ich installiert. Nun soll über die RS422 Schnittstelle der Wert eines Laser Sensors ausgelesen Werden. Der Messwert wird allerdings auf 3 Datenbytes verteilt also 3 Verschiedene Telegramme.
Die Datenbytes haben eine Wertigkeit welche an den ersten 2 Bits wie unten zu sehen ist erkannt.
Low BYTE [0 0 D5 D4 D3 D2 D1 D0]
Midle BYTE[0 1 D11 D10 D9 D8 D7 D6]
High BYTE[1 0 D17 D16 D15 D14 D13 D12]
Als Messwert sollte dann ein 16-18 Bit Integer rauskommen:
[Optional(D17 D16) D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D1 D0]
Das ganze soll auf dem FPGA laufen also nur mit der FPGA Palette an Elementen machbar. Also die 2 hinteren Bits erkennen Byte zwischenspeichern andere 2 Bytes der Wertigkeit nach erkennen zwischenspeichern und am Ende den gesamten Integer zusammensetzen und das ganze in Echtzeit und immer wieder. Ist sowas überhaupt mit der FPGA Palette an Labview Elementen machbar? Wenn ja in welche Richtung sollte ich denn grob vorgehen?
Vielen Dank im Voraus

Beste Grüße und ein frohes Fest Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.12.2013, 18:12 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2013 18:13 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.470
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Auswerten, zwischenspeichern und zusammenführen verschiedener Bytes
Hi KI,

weil Weihnachten kurz bevorsteht, gibt es einen fertigen Lösungsvorschlag:
    Big Grin
Das sollte auf dem FPGA lauffähig sein, kann's aber hier nicht testen. Es geht ja nur um etwas "Bit-Geschubse"...

Zitat:Also die 2 hinteren Bits erkennen
Ich habe nicht die "hinteren" (heißt für mich: LSB), sondern anhand deines Bitbeispiels die MSB zur Entscheidungsfindung genutzt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2013, 22:44
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Auswerten, zwischenspeichern und zusammenführen verschiedener Bytes
Da will ich doch auch nicht zurückstehen. Allerdings habe ich das FPGA-Modul nicht, ich kann also nur sagen, wie man das mit dem "normalen" Labview machen würde.
Es gibt keine einheitliche Löung für 16 und 18 bit. Eine 16bit-Integer Zahl mit "true" in allen 16 bits hat den Wert "-1". Dieselbe Zahl als 18bit, also 2*"false" und 16*"true", ist hingegen ein große positive Zahl. Man muß dem Programm also vorher sagen, ob die 3 Eingangsbyte als 16 oder 18 bit zu interpretieren sind. (Wenn das Resultat kein Integer sein soll, sondern einfach ein vorzeichenloser Wert, hätte man das Problem nicht)
Hier also je eine Lösung für 16 bit und für 18 bit:
   

11.0 .vi  16-18bit.vi (Größe: 7,95 KB / Downloads: 246)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: