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 

Byte-Daten nach ASCII



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!

02.01.2011, 12:39
Beitrag #1

Herby07 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Mar 2010

2011
2010
kA


Deutschland
Byte-Daten nach ASCII
Hallo,
ich möchte Roh-Messdaten (Byte-Werte: 0 - 255) über die serielle COM-Schnittstelle übertragen.
An die Funktion ´VISA:Schreiben´ müssen die Daten ja in Form von ASCII-Zeichen (String) übergeben werden (=Schreibpuffer).
Gibt es unter LabVIEW eine einfache Funktion, die mir aus den Zahlen (0 .. 255) ASCII-Zeichen macht ?

Meine bisherige Lösung erscheint mir etwas umständlich: ich erschaffe mir ein 1*1-Array und initialisiere dieses permanent mit meinem Messwert (Funkton: ´Initialize Array´).
Am Ausgang dieser Funktion habe ich dann ein 1*1-Array mit dem Messwert. Daran schließe ich die Funktion ´Byte-Array to String´an und erhalte so einen einstelligen String mit dem ASCII-Zeichen, das meinem Messwert entspricht.
Diesen String kann ich dann über die VISA-Funktion aussenden.
Das klappt zwar, erscheint mit aber etwas aufwendig.

Vielen Dank für die Hilfe

Herby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.01.2011, 13:55
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
Byte-Daten nach ASCII
Hi Herby
ein Beispiel als LV2009 VI Snippet:
   

1. Irgendeinen Datatentypen, am besten als .ctl-Typedef, in einen String casten, die Datenstringlänge davor hängen und mit VISA Write versenden.
2. Länge des Datenstrings lesen und danach die entsprechnende Anzahl an Datenbytes.
3. Typecast in den gewünschten Typdef.

Damit kannst Du die Konversion in ASCII komplett vermeiden. Du musst Dir aber über die Version des Typedefs Gedanken machen, falls du gezwungen sein solltest, in Zukunft mit verschiedenen Versionen des Typedefs zu arbeiten. Um ein solches möglichesProblem zu lösen, könnte LVOOP in Frage kommen.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.01.2011, 14:14
Beitrag #3

Herby07 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Mar 2010

2011
2010
kA


Deutschland
Byte-Daten nach ASCII
Hallo Holger,
vielen Dank ür die Antwort.
Deine Lösung sieht aber auch recht aufwendig aus.
Wenn ich z.B. einen einfachen Meßwert habe, z.B. den Wert 70, so muß ich daraus ja eigentlich nur das ASCII-Zeichen ´F´ machen, das ich dann mit ´VISA: Schreiben´ aussende.
Mehr will ich eigentlich nicht machen.
Ich dachte, es gäbe irgendwo versteckt eine ganz einfache Funktion: ´Byte-Zahlenwert rein --> ASCII-Zeichen (String) raus´, die ich dann direkt an die VISA-Funktion anschließen kann.

Viele Grüße
Herby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.01.2011, 14:34
Beitrag #4

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
Byte-Daten nach ASCII
Hi Herby,

der Typecast ist genau da was Du suchst. Ich habe in meinem Beispiel nur illustrieren wollen, was möglich ist, und welche Probleme auftauchen können, wenn man komplexe Daten mit variabler Länge übertragen will.

Du kannst in Deinem Fall natürlich der einen Seite nur den U8 in den String casten und auch der anderen Seite genau ein Byte(Character) lesen und wieder in den U8 zurück casten. Fertig.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.01.2011, 18:06 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2011 18:07 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Byte-Daten nach ASCII
Hallo Herby,

es geht auch ohne ArrayInit:
   

Erscheint mir kürzer als das TypeCast - und wenn man nur einzelne Bytes bearbeitet, dürfte beides ähnlich (in)effizient sein...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.01.2011, 19:22
Beitrag #6

Herby07 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Mar 2010

2011
2010
kA


Deutschland
Byte-Daten nach ASCII
Hallo GerdW,
vielen Dank für Deine Hilfe.
So etwas habe ich gesucht.
Da ich allerdings noch nicht allzu fit bin in LabVIEW, kenne ich die erste Funktion nach der U8-Konstanten noch nicht.
Wo kann ich diese finden ? (bzw. wie macht man aus solch einem Bild ein Blockdiagramm (dann könnte ich die Funktion ja ermitteln).
Das Rest ist mir klar.

Viele Grüße
Herby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.01.2011, 00:32 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2011 00:40 von Lucki.)
Beitrag #7

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Byte-Daten nach ASCII
Verstehe nur nicht, warum die Beispiele alle so künstlich verumständlicht sind. Hier mal drei einfache Vorschläge:
   
Das funktioniert mit anderen Zahlenformaten ebenso, als z.B mit I32, oder wenn eine Gleitkommazahll als String über der Serielle Schnitstelle gesendet werden soll. Die Rückkonvertierung ist ähnlich einfach.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.01.2011, 08:31
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Byte-Daten nach ASCII
Hallo Herby,

das ist ein BuildArray - eine der an die Anzahl der eingänge anpassbaren Funktionen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.01.2011, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2011 14:10 von Herby07.)
Beitrag #9

Herby07 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Mar 2010

2011
2010
kA


Deutschland
Byte-Daten nach ASCII
Hallo Lucki,
vielen Dank für diese sehr kompakte Lösung.
Was mich hier allerdings wieder einmal verblüfft ist die Tatsache, daß am Anschluß ´Typ´ von der Typumwandlungsfunktion keine "Ziel-Typ-Festlegung" angeschlossen werden muß.
Auch in der Hilfebeschreibung zu dieser Funktion steht eigentlich nicht, was passiert, wenn man diesen Anschluß offen läßt.
Aber es funktioniert ja (irgendwie).

Vielen Dank
Herby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.01.2011, 15:29 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2011 15:30 von Lucki.)
Beitrag #10

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Byte-Daten nach ASCII
' schrieb:Was mich hier allerdings wieder einmal verblüfft ist die Tatsache, daß am Anschluß ´Typ´ von der Typumwandlungsfunktion keine "Ziel-Typ-Festlegung" angeschlossen werden muß.
Das ist ja öfters so, daß bei Nicht-Anschluß ein Default-Wert gilt. Mit Kontext-Menü "Erstellen/Konstante" erzeugt man eine leere String-Konstante, also könnte man davon ausgehen, daß dieser Typ der default-Wert ist. Du hast aber Recht, da sollte auch in der Hilfe so angegeben werden - ist es aber nicht. Im Gegenteil: Es gibt einen Unterschied zwischen Kontext-Hilfe und ausführlicher Hilfe. In der Kontext-Hilfe ist am "Typ"-Eingang ein String-Draht angeschlossen, in der ausführlichen Hilfe ein Gleitzahl-Draht.
Also ich kann letztlich nur dieses sagen: Es hat sich bewährt, bei Konvertierung nach String den Typ nicht anzuschließen. Möglicherweise war es sogar genau dieser fehlende Anschluß, der Dich veranlasste, meinen Vorschlag wegen seine besonderen Einfachheit zu loben.Mellow
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
  CRC8 Berechnung aus byte Empfangspuffer Roter Milan 2 2.954 29.09.2023 06:55
Letzter Beitrag: Roter Milan
  CancaseXL mit Labview senden/empfangen 8 byte Botschaft luna 7 6.226 05.07.2021 16:47
Letzter Beitrag: luna
  Umwandlung von Hex to Ascii Flogge154 1 6.590 02.03.2012 09:24
Letzter Beitrag: GerdW

Gehe zu: