Hallo,
kann ich über die serielle schnittstelle in LabVIEW nur Strings bzw. AsciiZeichen senden? Ich habe noch keine Möglichkeite gefunden, ein Byte -Zahl zwischen 0 und 255- eben so wie sie ist zu senden und dann eben gleich binär auszuwerten.
Mir scheint, man kann nur einen String bzw. ein ASCII-Zeichen (als Byte) senden?
Gruß
Thomas
Dein String, bzw. ASCII-Zeichen wird auch binär geschickt.
Was genau dahinter steckt, siehst Du, wenn Du bei Deinem String-Eingabeelement einen Rechtsklick machst und HEX-Display auswählst.
Da kannst Du dann Hexwerte eingeben. In Deinem Fall 0 - FF (255).
Gruß Markus
' schrieb:Mir scheint, man kann nur einen String bzw. ein ASCII-Zeichen (als Byte) senden?
Nunja, du kannst mit "Flatten to String" quasi jedes beliebiege Datum in einen String wandeln und dann eben dieses String über VISA senden. (Strings zu senden ist eben praktisch, auch wegen der Überwachung, siehe Post von Markus.) Also: Siehe Funktion "Flatten to String".
Hast du mal probiert eine Zahl direkt an das VISA-VI anzuschließen? Das sollte eigentlich gehen. Geht das nicht?
...ja, jetz hab ich es. Was ich meinte war 'Zahl nach Hexadezimal-String'. So kann ich eine vorzeichenlose Zahl als Eingabe nehmen und in einen hexadezimalen String wandeln und dann ganz normal als Byte über die Leitung schicken, so wie es Markus schon angedeutet hatte.
...das war zu schnell gefreut, dieses 'Zahl nach HexadezimalString' konvertiert mir wieder jede Ziffer einzeln, so dass aus 11 dezimal zwei StringBytes werden. Mri scheint Byte-Array-nach-String wäre besser, es verlangt allerdings ein Bytearray, auch wenn aus meiner Sicht eine Zahla auch schon ein einelementiges Array darstellt, funktioniert es nicht
...
Ich seh' gerade, ich kann noch ein 'Array erstellen' zwischenschieben und dann geht's. Ein wenig unschön (weil ich ja nur ein Element habe), vielleicht weiß jemand noch etwas?
Thomas
' schrieb:...das war zu schnell gefreut, dieses 'Zahl nach HexadezimalString' konvertiert mir wieder jede Ziffer einzeln, so dass aus 11 dezimal zwei StringBytes werden. Mri scheint Byte-Array-nach-String wäre besser, es verlangt allerdings ein Bytearray, auch wenn aus meiner Sicht eine Zahla auch schon ein einelementiges Array darstellt, funktioniert es nicht...
Ich seh' gerade, ich kann noch ein 'Array erstellen' zwischenschieben und dann geht's. Ein wenig unschön (weil ich ja nur ein Element habe), vielleicht weiß jemand noch etwas?
Thomas
Nicht schon wieder, die gleiche Disskussion, wie immer:
Darstellung ASCII und Binär.
http://www.LabVIEWforum.de/index.php...ost&p=21453
Eugen
P.S. Zahl nach HEX-String macht aus 11 dezimal eine 3131 hexadezimal, weil das ZEICHEN 1 in der ASCII Tabelle 31 HEX bedeutet. Wie ich es verstanden habe, willst du deine Zahl direkt so abschicken wie es ist ohne nach ASCII-Zeichen umzuwandeln. Dann kannst du mit Flatten To String oder Type Cast die Zahl in ein Byte-Stream umwandeln und abschicken. Bytestreams werden in LV (und auch anderen Sprachen) als String, also Zeichenkette "dargestellt". Es soll dich nicht irritieren, es ist ein Byte-Array, nur rosa dargestellt.
Das schreit doch nach einem Tutorial, so wie Du es auch schon mal vorgeschlagen hast.
Gruß Markus
' schrieb:Nicht schon wieder, die gleiche Disskussion, wie immer:
@Thomas
Ein Array ist doch praktisch. So kann man dann auch alle Bytes auf einmal senden.
Ich mache das so:
[
attachment=5851]