07.04.2008, 07:12
Beitrag #1
|
geist07
LVF-Gelegenheitsschreiber
Beiträge: 127
Registriert seit: Dec 2007
8.5, 8.6, 2009SP1,2010,2011
2007
kA
994xx
Deutschland
|
String nach Zahl
Hallo,
ich habe ein Messgerät von dem ich Daten auslese und diese weiterverarbeiten will. Mein Problem ist, dass das Messgerät nur Stringwerte ausgibt. Ich benötige zur weiterverarbeitung aber fließkommawerte. Die Ausgabe des Gerätes sieht beispielsweise wie folgt aus:
5.678E1
Wenn ich jetzt das VI Dezimal-String nach Zahl verwende, wird der Wert gerundet, ich benötige ihn ungerundet. Hat jemand einen Vorschlag?
geist07
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen." (Albert Einstein)
|
|
|
07.04.2008, 07:16
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
String nach Zahl
So...
String_nach_Zahl.vi (Größe: 6,64 KB / Downloads: 383)
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
07.04.2008, 08:13
Beitrag #3
|
geist07
LVF-Gelegenheitsschreiber
Beiträge: 127
Registriert seit: Dec 2007
8.5, 8.6, 2009SP1,2010,2011
2007
kA
994xx
Deutschland
|
String nach Zahl
Danke für die schnelle Antwort,
und wie immer ist die Lösung des Probelms ganz einfach, man muss nur ersteinmal darauf kommen.
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen." (Albert Einstein)
|
|
|
07.04.2008, 08:57
Beitrag #4
|
geist07
LVF-Gelegenheitsschreiber
Beiträge: 127
Registriert seit: Dec 2007
8.5, 8.6, 2009SP1,2010,2011
2007
kA
994xx
Deutschland
|
String nach Zahl
' schrieb:So...
[attachment=39057:String_nach_Zahl.vi]
Gruß Markus
Habe bei dem VI gerade folgendes Problem festgestellt,
gebe einfach nacheinander mal folgende Werte ein und vergleich Sie
3.5E2
3.5
3.5E-2
dass sind alles Werte die ich als Ausgabe des Messgerätes erhalten kann. Die zugehörige Ausgabe zu oben genannten Werten sieht wie folgt aus
350,0
4,0
0,0
Wie kann ich diese groben rundungen beheben?
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen." (Albert Einstein)
|
|
|
07.04.2008, 09:02
Beitrag #5
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
String nach Zahl
Bei mir gibt's keine Rundungen....
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
07.04.2008, 09:11
Beitrag #6
|
geist07
LVF-Gelegenheitsschreiber
Beiträge: 127
Registriert seit: Dec 2007
8.5, 8.6, 2009SP1,2010,2011
2007
kA
994xx
Deutschland
|
String nach Zahl
Bei mir hat ers aber gemacht, habe aber die Lösung des Problems gefunden, Lag am Anzeigeelement, einfach unter Darstellung von Long auf dollpelte Genauigkeit stellen.
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen." (Albert Einstein)
|
|
|
07.04.2008, 12:47
(Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2008 12:48 von Y-P.)
Beitrag #7
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
String nach Zahl
Freut mich, wundert mich aber trotzdem, weil ich ja auch nichts geändert habe und es doch funktioniert hat. Vielleicht gibt es irgendwo eine Standardeinstellung, die ich irgendwann mal geändert habe (vielleicht ja auch Du bei Dir).
Gruß Markus
' schrieb:Bei mir hat ers aber gemacht, habe aber die Lösung des Problems gefunden, Lag am Anzeigeelement, einfach unter Darstellung von Long auf dollpelte Genauigkeit stellen.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
09.04.2008, 11:55
(Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2008 12:00 von rolfk.)
Beitrag #8
|
rolfk
LVF-Guru
Beiträge: 2.305
Registriert seit: Jun 2007
alle seit 6.0
1992
EN
2901GG
Niederlande
|
String nach Zahl
' schrieb:Habe bei dem VI gerade folgendes Problem festgestellt,
gebe einfach nacheinander mal folgende Werte ein und vergleich Sie
3.5E2
3.5
3.5E-2
dass sind alles Werte die ich als Ausgabe des Messgerätes erhalten kann. Die zugehörige Ausgabe zu oben genannten Werten sieht wie folgt aus
350,0
4,0
0,0
Wie kann ich diese groben rundungen beheben?
Wie wäre es mit dem lokalisierten Dezimalpunkt? Du scheinst ja Kommas zu benützen als Dezimalpunkt auf Deinem System. Instrumente schicken aber eigentlich immer einen Dxezmalpunkt und der grosse Rest der Welt ausser Deutschland und die Niederlanden scheint dies auch in den lokalen Einstelungen zu bervorzugen.
Die LabVIEW Fliesskommakonversionsfunktion verwenden bei Default aber eben auch das eingestellte lokale Format sowohl für die String->Fliesskommazahl Konvertierung als auch für die umgekehrte Richtung. Je nach dem welche Funktionen Du verwendest kannst Du das aber überschreiben:
Bei Formatstringfunktionen wie Format into String or Scan from String durch voranstellen von %.; an den Formatstring, und bei den Number to Fractional, Exponential, Engineering String und Fract/Exp String to Numeric Funktionen durch verbinden einer False Konstante an den entsprechenden Eingang. Für die Formatstringfunktionen kann man mit %,; vorangestellt auch expliziet ein Komma als Dezimalpunkt erzwingen. %; oder gar nichts verwendet die Einstellung des Systems.
Alternativ gibt es in den LabVIEW Optionen eine Einstellung wo man die Verwendung des lokal eingestellten Dezimalpunktes ausschalten kann so dass LabVIEW immer einen Punkt verwendet. Das resultiert dann aber auch in Fliesskommazahlen auf dem Frontpanel die den Dezimalpunkt verwenden und man muss auch nicht vergessen für Executables die entsprechend INI File Einstellung von LabVIEW.ini in die eigene INI Datei zu übernehmen.
Selber programmiere ich immer so dass im Frontpanel und bei Imports/Exports in Datafiles die lokale Einstellung verwendet wird um die Zusammenarbeit mit z.B. Excel zu ermöglichen und wo das nötig ist (Instrumentkommunikation) explizit den geforderten Dezimalpunkt einstelle.
Rolf Kalbermatter
|
|
|
| |