03.01.2008, 10:59
Hi
Ich hab mir jetzt mein Messprogramm zusammengestellt bräuchte da einen kleinen Tipp für die elegante Lösung des Problems.
In einer Schleife(mit Schieberegister) wird einen Wert(nennen wir die Variable halt VAR_FUNC) auf einen Funktionsgenerator ausgebe, dann von 2 anderen Messgeräten meine Daten geholt, und danach der Wert (VAR_FUNC) um 0.001 erhöht.
Das Problem ist, ich beginne mit meinem Wert bei 0.002, erhöhe dann immer um 0.001 und beende das ganze wenn ich bei 12.0 bin.
Wär ja alles nicht so schlimm... wenn meine Messung nicht 0.5s dauern würde ;-).. Also würd die gesamte Messung in meinem Fall so ca. 100min dauern.... und dass ist zu viel.. und ausserdem ist es zu genau.
Nunja... ich würd jetzt gern folgendes machen:
Im Bereich von 0.002 bis 0.020 würd ich gern immer um 0.001 erhöhen.
Von 0.020 bis 0.050 um 0.005
Von 0.050 bis 0.100 um 0.010
von 0.010 bis 0.500 um 0.050
von 0.500 bis 1.000 um 0.100
von 1.000 bis 5.000 um 0.500
und von 5.000 bis 12.00 um 1.000.
In C würd ich das ganze bei mir so aussehen:
if (VAR_FUNC>= 0.002 && VAR_FUNC<0.020)
VAR_FUNC = VAR_FUNC + 0.001;
if (VAR_FUNC>=0.02 && VAR_FUNC<0.05)
VAR_FUNC = VAR_FUNC + 0. 005;
........
Wie kann ich nun das gleiche elegant in LabVIEW programmieren?
Ich hab mir schon gedacht, die ganzen Bereiche über Vergleichsfunktionen und mit Gater aufzubauen... und danach über eine Case-Struktur die Abfrage zu machen und halt in dem jeweiligen Bereich die gewünschte Zahl addieren. Da tritt nur das problem auf, dass ich nicht weis wie ich von der boolschen ausgabe, zu einer Dezimalzahl komme,die ich dann für die Case-Struktur verwenden kann.
Wie löse ich das?
Ich glaub, dass müsste ja über die Funktion "Boolean Array to number" funktionieren... nur wie komme ich zu meinem Boolean Array?
mfg Schoasch
PS.: Ich werd mal meine gedanken zu einem Programm formen und danach posten.
Ich hab mir jetzt mein Messprogramm zusammengestellt bräuchte da einen kleinen Tipp für die elegante Lösung des Problems.
In einer Schleife(mit Schieberegister) wird einen Wert(nennen wir die Variable halt VAR_FUNC) auf einen Funktionsgenerator ausgebe, dann von 2 anderen Messgeräten meine Daten geholt, und danach der Wert (VAR_FUNC) um 0.001 erhöht.
Das Problem ist, ich beginne mit meinem Wert bei 0.002, erhöhe dann immer um 0.001 und beende das ganze wenn ich bei 12.0 bin.
Wär ja alles nicht so schlimm... wenn meine Messung nicht 0.5s dauern würde ;-).. Also würd die gesamte Messung in meinem Fall so ca. 100min dauern.... und dass ist zu viel.. und ausserdem ist es zu genau.
Nunja... ich würd jetzt gern folgendes machen:
Im Bereich von 0.002 bis 0.020 würd ich gern immer um 0.001 erhöhen.
Von 0.020 bis 0.050 um 0.005
Von 0.050 bis 0.100 um 0.010
von 0.010 bis 0.500 um 0.050
von 0.500 bis 1.000 um 0.100
von 1.000 bis 5.000 um 0.500
und von 5.000 bis 12.00 um 1.000.
In C würd ich das ganze bei mir so aussehen:
if (VAR_FUNC>= 0.002 && VAR_FUNC<0.020)
VAR_FUNC = VAR_FUNC + 0.001;
if (VAR_FUNC>=0.02 && VAR_FUNC<0.05)
VAR_FUNC = VAR_FUNC + 0. 005;
........
Wie kann ich nun das gleiche elegant in LabVIEW programmieren?
Ich hab mir schon gedacht, die ganzen Bereiche über Vergleichsfunktionen und mit Gater aufzubauen... und danach über eine Case-Struktur die Abfrage zu machen und halt in dem jeweiligen Bereich die gewünschte Zahl addieren. Da tritt nur das problem auf, dass ich nicht weis wie ich von der boolschen ausgabe, zu einer Dezimalzahl komme,die ich dann für die Case-Struktur verwenden kann.
Wie löse ich das?
Ich glaub, dass müsste ja über die Funktion "Boolean Array to number" funktionieren... nur wie komme ich zu meinem Boolean Array?
mfg Schoasch
PS.: Ich werd mal meine gedanken zu einem Programm formen und danach posten.