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!
im Rahmen meiner BA arbeite ich nun mit Labview und habe nun mitlerweile ein VI, was eine Kamera ansteuert, ein Livebild ausgiebt (Laserprofil) , Plots erstellt und schließendlich einen Wert für den Strahldurchmesser ausspuckt, der sich immer leicht ändert, da ja ein Laser nicht 100% konstant ist.
Jetzt versuche ich mich an einer Methode, mit der ich es schaffe, auf Knopfdruck den momentan angezeigten Wert für den Strahldurchmesser in einem Array zu speichern. Wenn ich dann nochmal auf den Knopf drücke, soll der aktuelle Wert wieder gespeichert werden usw, so dass ich nachher beim Verschieben meiner Kamera immer auf den Knopf drücken kann und somit später ein Array aus den vescheidenen Werten für den Strahldurchmesser habe.
Ich hab mich schon hier im Forum und anderen Foren umgeschaut und habe dabei auch VIs zum Abspeichern von Daten gefuden , aber das ist nicht ganz das richtige was ich suche und ich bin momentan mit meinem Latein am Ende.
Das angehängte VI zeigt den Teil mit meinen Versuchen dazu, nur das klappt nich so richtig.
Hier sollte das z.B. Array 5 verschiedene Zufallszahlen anzeigen und zwar jedesmal, wenn ich bei einer Zahl die mir "gefällt" auf einen Speicherknopf gedrückt habe und das dann insgesamt 5 mal. Eine eventuell nötige Schleife sollte direkt nach dem Schreiben des Wertes in das Array wieder abbrechen, da fast das komplette restliche VI mit Bild erzeugen, anzeigen und Weiterverarbeitung bereits in einer riesigen Schleife hängt und somit das VI an dieser "abspeichern" Schleife hängen würde.
also, wenn ich das ganze "Build Array" Teil in die case structure unter true einbaue passiert rein garnichts, wenn ich den Knopf drücke. Das Array ist die ganze Zeit scheinbar nicht initialisiert.
Dann schau dir mal genau den Ausgangterminal deines Cases an! Was passiert im False-Case? Auch das Schaltverhalten des Button ist entscheidend. Am besten findest du den Fehlern, wenn du das ganze mit Sonden debuggst
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
Ok, schonmal Danke an die Hinweise bis jetzt. Jetzt hab ich noch folgende 2 Probleme:
1) Da wie im OP beschrieben das ganze sich in einer Über-Schleife befindet, darf sich halt die "Abspeichern-Schleife" nicht im Kreis drehen. Im Moment hab ich das noch sehr umständlich, aber ich hab schon mit ziemlich vielen Boole'schen Schaltern rumgespielt, irgendwie passiert nie das, was ich will
Um aus der außenstehenden Randomzahl-Schleife in das Array einen Wert abzuspeichern muss ich jetzt folgendes drücken:
1. Boole An
2. Ok
3. Boole Aus
4. save value
Dann steht im Array "saved value" der Wert.
Dann kommt Problem Nummer 2:
Jetzt wird logischerweise beim Neustarten der Speichern-Schleife der alte Wert überschrieben. Es soll halt einfach den nächsten Wert dadrunter packen. Hab schon versucht, das Array weiter nach außen zu ziehen, nur das wollte auch nicht so richtig.
Ich hab echt noch irgendwie Probleme mit den Schleifen und Cases, obwohl ich mir schon massig Guides durchgelesen hab.
03.05.2012, 14:24 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2012 14:25 von GerdW.)
im Anhang mal eine geringfügig geänderte Variante. Sie geht in Richtung einer FGV (aka AE), zumindest vom Konzept her...
Du hast jetzt eine Auswahl für den Arbeitsmodus (clear/init, add value, read values). Um Werte hinzuzufügen, musst du immer noch "OK" drücken. Außerdem kannst du nun relativ leicht alles in eine Event-driven-Statemachine umwandeln, die Grundlagen sind gelegt
danke erstmal für deinen Lösungsvorschlag, funktioniert soweit super damit. Ich hab zwar keine Ahnung, was FGV, AE oder Event-driven-Statemachine sein soll (bitte nicht hauen), aber bin trotzdem sehr zufrieden damit.
ich hab doch noch ein Problem und zwar wie kann ich es machen, dass das Array NUR gelöscht wird, wenn man "init/clear" auswählt, weil momentan dies halt auch logischerweise passiert, wenn man das Programm stoppt, dann wieder startet und futsch ist das array wieder leer.