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 

UART Register (getrennt) auslesen



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.01.2013, 21:43 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2013 21:44 von GerdW.)
Beitrag #11

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: UART Register (getrennt) auslesen
Hallo smarties,

Zitat:Jedenfalls zeigt der Weg über Array indizieren und nach I16 konvertieren das richtige Ergebnis an. Legedlich der rote Punkt am Multiplikationsblock deutet an, dass die Datentypen noch nicht ganz stimmen. Bin aber skeptisch, ob das das der richtige Weg ist?
Wenn du auch unbedingt einen Integer mit einem DBL multiplizieren willst, ist wohl der rote Punkt erklärbar...
Wenn das gewünschte Ergebnis herauskommt, wird's wohl auch "der richtige Weg" sein! Es mag kürzere geben, aber danach hast du nicht gefragt. Big Grin

Zitat:Dein Weg halte ich für nachvollziehbar, so ists auch intivitiv logisch, aber als Ergebnis wird eine 0 vom Default Eingang (Datentyp hierI16) weitergegeben.
So langsam (nach all den Fragen) müsstest du doch gemerkt haben, dass die Funktion HexadezimalStringNachZahl nach einem ASCII-kodierten Hexstring (d.h. lesbarer Text) erwartet. Wie soll bitte der String "ê(" (ASCII-Zeichen für die Bytes EA28) in eine Zahl umgesetzt werden? Siehst du da eine?
Außerdem kann man Konstanten auch bestimmten Datentypen zuordnen (Rechtsklick!), da braucht man keine extra Funktion "Zu I16" für...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2013, 22:25 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2013 22:29 von smarties.)
Beitrag #12

smarties Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Oct 2012

2011
2012
DE_EN



RE: UART Register (getrennt) auslesen
Sehr gut. In der Tat - selbes Ergebnis!
Herzlichen Dank! Happy

Manche Daten (z.B. die Drehung um die x/y Achse) werden im selben Register geliefert. Das beduetet, dass der Antworts-String im Hex Format hier z.B. E9DB 343A lautet (konstruiertes Beispiel).
Mit dem Array Indizieren Block bin ich jetzt so vorgegangen, dass ich diesen einfach auf 4 Ausgänge aufgezogen habe und die oberen respektiven unteren beiden dann über "Nummern Verbinden" und Wandlung auf I16 die richtigen Werte anzeigen.

Wie würde man dies alternativ also mit dem Typecast machen?
String splitten und für jeden gesplitteten String einmal das Verfahren mit Typecast?

@GerdW: Ich ging davon aus, dass es dem HexadezimalStringNachZahl egal ist, wie der Eingang-String kodiert ist. Dass er ASCII erwartet wusste ich nicht - wieder was gelernt!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2013, 22:33 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2013 22:36 von GerdW.)
Beitrag #13

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: UART Register (getrennt) auslesen
Hallo smarties,

wenn man ein Array von I16 erwartet, dann sollte man auch in eines wandeln:
   

Zitat:Ich ging davon aus, dass es dem HexadezimalStringNachZahl egal ist, wie der Eingang-String kodiert ist.
Und ich ging davon aus, das würde die Kontexthilfe erläutern:
Zitat:Interpretiert die Zeichen 0 bis 9, A bis F und a bis f in String beginnend am Offset als eine ganze Hexadezimalzahl und zeigt diese in Zahl an.
Wenn du die Funktionen nicht kennst, warum lässt du dann die Kontexthilfe nicht offen (Ctrl-H)?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2013, 22:50
Beitrag #14

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: UART Register (getrennt) auslesen
Ein Punkt ist in den letzten Beiträgen übersehen worden, nämlich die Aussage, dass dein String im "Little Endian" Format kommt:
(23.01.2013 22:24 )smarties schrieb:  Dieser Wer ist lt. Datenblatt als 16 Bit Integer, 2er Komplement, Little Endian die eigentliche Drehrate.
Also "verschmelze" ich den 8 Bit Wert FE mit dem 8 Bit Wert EA zum 16 Bit Wert FE EA.
LabVIEW arbeitet mit Big Endian Darstellung.
Für eine korrekte Darstellung musst du also die beiden Bytes bei einer Typecast-Umwandlung noch drehen, bei deinem Vorgehen per JoinNumbers in umgekehrter Reihenfolge zusammensetzen.
Sieht dann z.B. so aus:
   
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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Modbus RTU - Read Holding Register Alb 1 5.285 20.12.2017 12:15
Letzter Beitrag: Freddy
  250HZ Signal über UART von PC zu MCB2300 und zurück ? amin 10 11.897 14.08.2009 12:47
Letzter Beitrag: amin

Gehe zu: