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 

Anzeigen eines Wertes welcher von RS232 kommt



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!

24.02.2009, 21:09 (Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2009 21:17 von IchSelbst.)
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Anzeigen eines Wertes welcher von RS232 kommt
' schrieb:Ich hab mich da jetzt mal ein bisschen eingelesen aber verstehe trotzdem nicht warum in dem SubVi dieser C-Code verwendet wird.
Der Code macht aus jeweils vier Stück U8 ein Stück U32. Das U32 ist dann formatmäßig gesehen ein SGL.

Zitat:Im endeffekt werden da ja nur die einzelnen Bytes mit einer Oder MAskierung verglichen und dann auf die ausgangsvariable geschrieben. Aber ich verstehe nicht wieso?
Verglichen wird da nix. Da werden Bits verschoben und diese verschobenen Werte logisch verodert.

Es liegen ja aufgrund des Lesens von VISA nur Werte im Format U8 vor und zwar vier Stück pro Messgröße. Diese vier Stück müssen nun so verknüpft werden, dass der richtige Messwert herauskommt. Und das geht eben nun mal so wie hier programmiert: Der Exponent z.B. (das ist X4, X8 und X12) muss an die oberste Stelle einer Zahl. Und an die oberste Stelle kommt man, indem man die Zahl (z.B. X4) um 24 Bitpositionen verschiebt. Im Code "((x4 << 16) << 8)". Das ist mit (x4 << 24) identisch. "<<" ist C-Syntax und heißt "Bitweise schieben". Die anderen U8-Werte (also X1, X2 und X3) sind die Mantisse. Und auch diese drei U8-Werte müssen nun an die jeweils richtige Position geschoben werden. Die verschobenen Werte werden nun logisch veroder (ist das Zeichen "|". Das doppelte Zeichen "||" wäre ein boolsche Veroderung). Jetzt muss die entstandene Zahl nur noch von Format U32 in das SGL-Format umgewandelt werden - das geht mit der LV-Typkonvertierung.

Zum allgemeinen Aufbau einer SGL-Zahel siehe auch in WikiPedia unter Fließkommazahl.


Nachtrag:
In wie fern das dritte Bild (Mantisse.bmp) mit dem Code identisch ist, hab ich nciht überprüft. Ich gehe mal davon aus, das der Code richtig funktioniert.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Anzeigen eines Wertes welcher von RS232 kommt - IchSelbst - 24.02.2009 21:09

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  woher kommt diese Meldung? gottfried 2 2.933 14.09.2020 14:48
Letzter Beitrag: gottfried
  Beim vergleich kommt anscheinend schon kein boolscher Wert raus noled 3 4.631 04.12.2015 09:35
Letzter Beitrag: Lucki
  Vergleich simple PID und LV PID - woher kommt der Unterschied? hans_p 4 4.643 02.03.2015 13:29
Letzter Beitrag: dali4u
  Auswahl eines Arrays anhand des Wertes eines zweiten Arrays treffen alan 2 4.592 19.02.2015 16:12
Letzter Beitrag: alan
  letzte Zeile eines Strings anzeigen greglemond 20 15.671 01.08.2012 14:35
Letzter Beitrag: fabqu
  Werte eines Clusters im Array anzeigen lassen Flogge154 3 4.680 26.03.2012 15:31
Letzter Beitrag: jg

Gehe zu: