19.03.2007, 16:15
Beitrag #1
|
ThomasB
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2007
2010 SP1
2006
DE
90411
Deutschland
|
Byte über die serielle Schnittstelle senden
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
|
|
|
19.03.2007, 16:22
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Byte über die serielle Schnittstelle senden
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
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
19.03.2007, 18:53
Beitrag #3
|
IchSelbst
LVF-Guru
Beiträge: 3.700
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Byte über die serielle Schnittstelle senden
' 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?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
20.03.2007, 09:33
Beitrag #4
|
ThomasB
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2007
2010 SP1
2006
DE
90411
Deutschland
|
Byte über die serielle Schnittstelle senden
...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.
|
|
|
20.03.2007, 11:26
Beitrag #5
|
ThomasB
LVF-Grünschnabel
Beiträge: 16
Registriert seit: Feb 2007
2010 SP1
2006
DE
90411
Deutschland
|
Byte über die serielle Schnittstelle senden
...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
|
|
|
20.03.2007, 11:39
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2007 11:51 von eg.)
Beitrag #6
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Byte über die serielle Schnittstelle senden
' 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.
|
|
|
20.03.2007, 13:10
Beitrag #7
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Byte über die serielle Schnittstelle senden
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:
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
22.03.2007, 16:15
Beitrag #8
|
danielsan
LVF-Grünschnabel
Beiträge: 39
Registriert seit: Mar 2007
2011-SP1
2006
DE
22000
Deutschland
|
Byte über die serielle Schnittstelle senden
@Thomas
Ein Array ist doch praktisch. So kann man dann auch alle Bytes auf einmal senden.
Ich mache das so:
send.vi (Größe: 24,02 KB / Downloads: 507)
|
|
|
11.04.2007, 18:09
Beitrag #9
|
|
|
| |