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!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Datenformat von Visa umwandeln
Stimmt, das ist noch ein Schritt weiter, aber natürlich ein sehr guter Vorschlag.
Das Block-Diagramm sieht ja dann danach richtig aufgeräumt aus.
Gruß Markus
' schrieb:Hi,
ein wenig , aber:
Warum machst du aus den VIs/Funktionen, die im Bild rot umrandet sind, nicht ein SubVI mit zwei Eingängen? Du würdest dein BD sehr viel übersichtlicher und natürlich auch leichter wartbar machen!
Gruss
Achim
EDIT: @Markus: Gut gebrüllt, Löwe!
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Ja ich sende es ja zur Zeit per ASCII und nutze die Funktion DTOS im atmel. Leider ist das umwandeln sehr speicheraufwendig. Auftrennen tue ich dann den Stream einfach immer nach je 7 Stellen und empfange nur 42 Byte. Daher möchte ich es per HEX senden und einfach die Werte in LabVIEW Trennen.
Zur Zeit: (habe ich als Bild ascii.jpg angehängt)
17.723_17.235_17.345_13.777 ( der "_" dient nur zu lessbarkeit und fällt weg...). Diesen ASCII String trenne ich dann einfach auf und der Punkt wird weggelassen. Also der Atmel sendet die Daten alle 4s neu. ich lasse immer die gewünschte Anzahl der Zeichen aufnehmen und warte bis nur nächsten Messung...
Habe den Ansatz von dir zu Beginn noch mal getestet da ich auf der Suche nach cast type das vermisste Symbol gefunden hatte.
habe jetzt folgendes Aufgebaut:
Leider ist der Ausgabewert von I32 (wird noch gewndelt in FLieskomma) scheinbar eine Summe der gesamten Eingabe... habs als Bild LV.jpg angehängt.
Also jetzt verstehe ich gar nichts mehr. Ist dein Protokoll ASCII? Kannst du die Zahlen in einem Hyperterminal sehen? Oder siehst du nur merkwürdige Zeichen im Terminal?
Wenn du also ein String und kein binärer Stream empfangst, dann brauchst du keinen Cast Type VI. Dann sollte dir die String Palette ausreichen. Da kannst du dein String aufteilen und nach Zahlen konvertieren. Ich würde dir schon helfen, nur beschreibe dein Problem genauer. Was siehst du wenn du einen normalen String Indicator an das VISA Read VI anschliesst?
Sorry aber arbeite das erst mal damit :-) und das ganze mit dem ASCII "Empfang" sollte auch nur als Übergang dienen...
Also ich habe jetzt den Block: String in Daten wandeln.
Den String bekomme ich ja direkt von der VISA Schnittstelle. Was muss ich an "TYP" anschließen?
eingehenden Daten am COM1 Port:
02EF 03DD 0AAA 0BBBB 0CCC 0DDD
Jedes der 6 Pakete (je 4 HEX) sollte je in einem Cluster landen und die weiterverarbeitung müsste ich dann mal schauen... Was muss ich als Typ an "String in DAten Wandeln" anschließen um das zu erreichen?
Mach ich grundsätzlich was falsch oder ist das so kompliziert?
25.01.2007, 14:22 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2007 14:42 von eg.)
Das VI Unflatten From String macht nichts anderes, als den String am Eingang so zu interpretieren, wie du es im Typ angegeben hast. Wenn du sagst, du empfängst ein Paket mit 8 Bytes und sagst das sollen 4 X Unsigned Word sein, dann macht das VI aus dem String 4 Integers und wenn es mal nicht klappt, dan gibt das VI eine Fehlermeldung raus.
Gruss, Eugen
Ach ja, der Typ ist übrigens ein Cluster mit vier Unsigned Words, wie du es im ersten Post gesagt hast.
Die Konvertierung macht übrigens jeder Base Converter und sogar der Windows Calculator auch.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Datenformat von Visa umwandeln
Mal eine Verständnisfrage:
06A4 im Hex-Display ergibt aber im Normal-Display nicht 1700, sondern zwei seltsame Zeichen.
1700 (ASCII) entspricht doch 3137 3030 (hex).
Habe ich da was falsch verstanden?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Mal eine Verständnisfrage:
06A4 im Hex-Display ergibt aber im Normal-Display nicht 1700, sondern zwei seltsame Zeichen.
1700 entspricht doch 3137 3030 (hex).
Habe ich da was falsch verstanden?
Gruß Markus
Eine Frage mal an alle:
weiss jemand was eine ASCII-Tabelle ist?
0x30 ist eine ASCII 0
0x31 ist eine ASCII 1
...
0x39 ist eine ASCII 9
Das ist nur die am meisten verbretete Interpretation. Es gibt noch andere, wie Unicode u.s.w.
Im "Hex-Display" wird nur der ASCII-Code der dargestellten Zeichen (Buchstaben etc.) dargestellt (z.B. A=41 ASCII, 10="1"+"0" = 31ASCII + 30 ASCII), dass hat nix mit dem wirklichen Zahlenwert zu tun! Das ist nur ne Darstellungssache! Wenn du im FP die Anzeige umstellst, ändert sich ja im BD das Datenformat nicht...
also ich sende in HEX. Je 4 Zeichen Hex Wert pro "Zahl" von denen wird jede "zahl" in je 8Bit Schritten übertragen. Das heißt je 1Byte = 1 Zeichen. Aus dem Wert dieses Zeichens oder zweier macht er dann ein ASCII Zeichen nach der Tabelle...
Noch mal zum umwandeln. also ich habe folgendes probiert und mal gleich mit angezeigt, was rein geht.. ich habe eine Array angeschlossen und als Typ eine Zahl bzw Zeich versucht reinzuziehen aber es klappt nicht. siehe anhang. (15 ist der Eingang von String nach Data)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Datenformat von Visa umwandeln
OK. Klingt logisch.
Er hat also seine Zeichen erhalten, als Hex dargestellt (weil als ASCII nur 4 Quadrate erscheinen) und wollte diese Zahlen in Dezimalwerte (Integer) umwandeln?
Ist es aber nicht auch oft so, dass viele Geräte die Zahlen schon "richtig" (als Integer) zurückschicken (z.B. im Hex-Display 3438, also im ASCII-Display 48)?
Das hat mich etwas verwirrt.
Gruß Markus
' schrieb:Im "Hex-Display" wird nur der ASCII-Code der dargestellten Zeichen (Buchstaben etc.) dargestellt (z.B. A=41 ASCII, 10="1"+"0" = 31ASCII + 30 ASCII), dass hat nix mit dem wirklichen Zahlenwert zu tun! Das ist nur ne Darstellungssache! Wenn du im FP die Anzeige umstellst, ändert sich ja im BD das Datenformat nicht...
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------