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!
möchte meine Messdaten in eine Datei speichern. An sich kein Problem. Nur startet die Aufforderung zum Speichern gleich nach der Messung. Ich bin mir im klaren das das Tool zum speichern in der Schleife ist.Das Speicher-Tool muss sich allerdings in der Schleife befinden da ansonsten keine Werte in die Datei gehen. Habe auch die Verzögerung ausprobiert sowie Warten(ms). Leider ohne Erfolg. Wißt ihr eine Alternative?
Dachte an einer Alternative mit einer boolschen Konstante die bei True die Schleife zum Speichern ausführt. Leider auch ohne Erfolg.
Ich habe das VI "Write To Spreadsheet File.vi" noch nie benutzt, aber ich denke ohne Pfadangabe wirst du nicht weit kommen. Oder woher soll das VI wissen wo die Daten abgelegt werden müssen?
' schrieb:Ich bin mir im klaren das das Tool zum speichern in der Schleife ist.
Was hast du denn da programmiert? So wird das nix. Wenn über den Tunnel ein false in die While-Schleife reinkommt, wird die ewig laufen. Das hat zur Folge, dass die äußere While-Schleife nur ein einziges Mal durchlaufen werden kann.
Zitat:Dachte an einer Alternative mit einer boolschen Konstante die bei True die Schleife zum Speichern ausführt. Leider auch ohne Erfolg.
Warum muss es eine Schleife um das SpeicherVI sein? Das geht auch ohne.
Dass mit dem Boolschen Schalter ist schon eine geeignete Idee - halt auf eine Case-Sequenz, nicht in eine While-Schleife rein.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:mit einem Pfad öffnet sich die ReadTo... immer noch
Dann, tippe ich mal, existiert die Datei nicht. Selbstverständlich muss das, was am Anschluss "Pfad" verdrahtet wird, eine Datei sein. Ein Pfad alleine wird immer zu einer Nachfrage führen.
Zitat:habe eine CASE verwendet. Es wird immer noch mehrmals aufgefordert zum Speichern bzw. die Daten stehen nicht in der Datei.
Ohne Datei (!), immer Nachfrage.
Zitat:Siehst du wo der Fehler ist?
Ja.
Du hast den Errorcluster nicht verdrahtet. Schau dir beim SpeicherVI den Errorcluster-Ausgang an. Wenn was nicht passt, steht das im Errorcluster.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
der Errorcluster ist von einem anderen VI, das nichts mit dem Speichern zu tun hat. Pfad hin oder her. In meinem Fall erfordert er leider mehrmals zur Speicherung auf(auch mit Pfad). Vermute das es an der Schleife liegt in der die Messwerte aufgenommen werden.
Also ich würde es wohl eher so machen:
Natürlich kannst du auch das Datei öffnen und schliessen mit in die Case-Struktur legen.
Generell würde ich aber das Dateihandling in eine eigene While-Schleife parallel zur Datenerfassung und -Verarbeitung legen und mittels einer Queue oder eines Melders ansprechen und die Daten übergeben. Aber danach hast du ja nicht gefradgt...
Habe zwei Varianten meines VI ´s hochgeladen wo alle Strukturen zusehen sind die ich verwende.
1) Habe den Vorschlag mit der CASE modelliert. funktioniert sehr gut. In diesem Fall werden Volt-Daten in die Datei geschrieben, aber nicht die gewünschten. Gewünscht sind die umgerechnetten Kraftwerte (* -200). Er speichert die Daten von der Quelle also nur Voltwerte.
2) Bei der zweiten Variante werden zwar mehrere Aufforderungen zum Speichern aufgrufen, aber für den kurzen Moment der Messung speichert er die gewünschten Daten.
Liegt es an den verwendetten Strukturen?
1. While umhüllt Gesamt VI zur Steuerung
2. Case zur Steuerung des Programms nach Buttondruck
3. While zur Erfassung der Signale von der Quelle
4. While zur Erzeugung der Daten
5. Speichern ???
Wenn ich das richtig verstanden würde eine Melder registrieren wenn die Messung beendet wurde. Die neue Referenz fordert dann zum Speichern auf?
Grüße Wanze
03.06.2010, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2010 09:55 von GerdW.)
zu 1)
Es sieht so aus, als ob die Daten nach dem "* -200" benutzt werden. Da du aber mal wieder nicht die Aufräumfunktion benutzt hast (und die Drähte wie wild verlegt wurden), könntest du ebenso einen Verdrahtungsfehler haben und gar nicht das Ergebnis der Multiplikation verwenden...
zu 2)
Momentan speicherst du genau dann einmal, wenn die DAQ-Schleife ihre letzte Iteration durchläuft - du hast den STOP-Button der Schleife als Bedingung fürs Speichern verwendet...
Tipp:
Man kann auch direkt mit Timestamps rechnen und muss sie dazu nicht erst nach DBL umwandeln...
ich räume zwar ungern auf. Aber hatte bei beiden Bildern den Knopf gedrückt. Ein Verdrahtungsfehler kann ausgeschlossen werden, da ja die Vollwerte gespeichert werden .
Habe zu Fall 2 sowohl Case als auch While-Schleife benutzt und die Bedingung für das Speichen über einen Button gelöst, auch Konstante ergab in der Speicherdatei nur Voltwerte. Habt ihr noch einen Rat?
Wie kann ich das Speichern in Fall 2 herrauszögern? Getestet habe ich schon einiges, aber alles ohne Erfolg. Hatte auch eine Verzögerung (außerhalb) in eine While Schleife gepackt. Resultat: dann wartet das vorrige Ereignis mit der Zeit der Verzögerung. Trotzdem startet das Speichern sofort.