![]() |
Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation (/Thread-Mehrer-Wertebereiche-0-02-0-01-0-01-0-9-und-jeweils-andere-Inkrementation) |
Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Schoaschi - 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. Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Y-P - 03.01.2008 13:06 Hilft Dir das.....? [attachment=10498] ![]() [attachment=10499] Gruß Markus Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Schoaschi - 03.01.2008 13:36 Besten Dank. So ähnlich hab ich es auch programmiert. Funktioniert jetzt einwandfrei. mfg SChoasch Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Achim - 03.01.2008 13:59 ' schrieb:In C würd ich das ganze bei mir so aussehen: Und warum machst du es nicht? Du kannst diesen Code im Formelknoten einfügen und evtl. noch ein bisschen anpassen...und dann brauchst du die relativ aufwendige Programmierung in "G" (LabVIEW) mit der Case-Struktur nicht... Das wär m. E. mal ne sinnvolle Anwendung des Formelknotens...wenn man den Code eh schon "hat" Gruß Achim Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Lucki - 03.01.2008 14:24 Also wenn ihr mich fragt: ich würde hier überhaupt nichts programmieren. Insgesamt handelt es sich hier um lächerliche 36 Werte, und die kann man alle in eine Arraykonstante schreiben (deren Werte ich vorher mit einem kleinen Hilfsprogramm erzeugt habe) ![]() Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Grobi - 03.01.2008 14:36 Kann man nicht in die Case-Struktur die Wertebereiche direkt reinschreiben? Ja steinigt mich, ich weiß selber dass ich planlos bin ![]() Ich hab glaub ich nen Fehler drin im Bereich oder irgendein Komma ist falsch, aber so als Grundgedanke mein ich nur.. Mehrer Wertebereiche (0.02-0.01;0.01-0.9;..) und jeweils andere Inkrementation - Lucki - 03.01.2008 16:54 ' schrieb:Kann man nicht in die Case-Struktur die Wertebereiche direkt reinschreiben?Das ist doch wohl nur Rethorik, insgeheim weiß Du doch selbst, daß Dein eigener Ansatz das beste Programm in diesem Threat ist! Ich habs mal so gemacht, daß es funktioniert. Allerdings, wie ich schon sagte, würde ich diese Programm nur als einmalig zu verwendendes Hilfsprogramm verwenden, um alle Werte in ein Array reinzuschreiben. Das wird dann im Hauptprogramm als Array-Konstante benutzt, durch Indexierung steht Dir dann jeder Wert zur Verfügung. ![]() |