LabVIEWForum.de - Messzeit im Diagramm darstellen und speichern

LabVIEWForum.de

Normale Version: Messzeit im Diagramm darstellen und speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo SeBa, beim Datenfluss ist mir ein Fehler unterlaufen. Habe jetzt nur einen Eingang in die CASE gelegt. Leider ohne Erfolgt. Meintest du den Fehler?
' schrieb:Mit dem TDMS habe ich noch nicht gearbeitet. Werde mich dazu mal belesen. Habe in Mess1 hochgeladen mit dem TDMS. Wie kann ich die Dateispeicherung realisieren?Momentan zeigt er ungültige Datireferenz an. Fällt euch ein einfaches Beispiel dazu ein?
Ein Beispiel zum Speichern auf Knopfdruck.
1)
Du weißt aber, das es einen Unterschied zwischen Graph und Diagramm gibt?
Der Graph zeigt dir das an, was du rein gibst... vergisst aber alles was vorher da drin war.
Das Diagramm hängt die neuen Daten zeitlich hinten an die alten an, das Diagramm wächst also von links nach rechts.

2)
Deine Case-Struktur um das Speichern ist total überflüssig. Innerhalb der Loop hast du keine Möglichkeit des Case zu wechseln und gibst von Außen ein True vor. Die Loop in der sich das Speichern befindet, wird sowieso nur gestartet, wenn an allen Eingängen Daten anliegen (Trifft auf alles in LV zu -> Datenflussprinzip). Da die vorherigen Loops bei True stoppen und du diese True in der genannten Loop verwendest um das Speichern zu aktivieren, ist es überflüssig.




Gruß SeBa
Stimmt da gibt es einen Unterschied. Gibt es zu 2) eine Möglichkeit die Daten zu speichern?
Das Speichern klappt doch, oder? Lediglich die Case-Struktur ist überflüssig.


Gruß SeBa
Wenn ich die Case wegnehme speichert er folgende Werte- Messung.txt. Zuvor läuft der Counter runter, Ton ertönt und die Messzeit startet. das funktioniert alles. Ich möchte das während der Messzeit meine Kraftkurven in echtzeit gezeigt werden. Und das er in die Datei (txt) die Messpaare schreibt von 0,01 bis 10. Momentan wird nur die Zeit "10" gespeichert. Sobald ich gespeichert habe läuft das Programm weiter und speichert ab dem Schließen der Speicheraufforderung kontinuielich Zeitwerte. Auch der Graph zeigt die Kurven. Woran kann das liegen?

Könnt Ihr mir bitte auf die Sprünge helfen wie ich die Zeit in das Array bekomme. Ist mein Ansatz mit dem Zeitstempel richtig? Geht es einfacher? Habe mir die Signalverlauf-Palette angeschaut. Mir fehlt aber jeglicher Ansatz.
Lv09_img2
Da fehlen zig SubVIs und außerdem würde ich mal grundsätzlich die Struktur meines Programms überlegen. Sieben (!) verschachtelte Whileschleifen sind nicht gerade wenig. Big Grin
Kannst Du Dein Problem mit einem einfachen Bsp. beschreiben? Da blicke ich nicht mehr durch, was Du machst und vorhast.

Gruß Markus
Ok, machen wir Schritt für Schritt. Habe fast das ganze VI hochgeladen, sehe ein das es so keinen Sinn macht und die Übersichtlichkeit verloren geht. :rolleyes:Habe mal eine Version mit Zufallszahlen erstellt. Möchte die angezeigte Messzeit ins Array einfügen und auf folgende Weise speichern:

Zeit; Messwert1; Messwert2;

Bei diesem SpeicherVI wird die Zeit automatisch erstellt. Kann ich die Zeit des SpeicherVI verändern? Sodass ich statt 1,000 0,01 habe.

Die Laufzeit=Messzeit des Beispieles wird als Konstante in jede Zeile geschrieben. Wie wird 0,01 Messwert; 0,02 Messwert1 usw. gespeichert?

Wie kann ich es schaffen, dass jeweils verschiedene Zufallszahlen in eine Spalte geschrieben werden?

Lv09_img2
Moin Moin,

habe jetzt willkürlich Zufallszahlen erstellt und in Array´s geschrieben. Wie kann ich es schaffen das die Zeit nicht nur ein Werte pro Spalte hat?

Habt ihr eine Idee für eine einfache Zeitfunktion mit der die Zeitwerte in das Array geschrieben werden können? Änlich wie der Counter, das ich bei Stop dann die Werte in das Array ziehe.

Grüße Wanze

Lv09_img2
Edit: Diese Antwort bezieht sich auf den Post von Wanze am 8. Juni 2010, 15:56 Uhr.

Hallo Wanze,

Ich habe mir jetzt nicht die ersten MessVIs von dir angeschaut, da du dort ja schon hinreichend Feedback bekommen hast.Tongue

Ich persönlich würde eher auf das ExpressVI verzichten, da du nun einmal mehr siehst, weshalb diese Art von VIs (mit wenigen Ausnahmen) verpöhnt ist: Sie sind zu unflexibel und niemand weiss genau was da überhaupt passiert.

Wenn du die Messwerte speichern möchtest, dann kannst du dieses beispielsweise mit dem WriteToSpreadsheet.vi machen.
Ich habe dein Einfach.VI einmal entsprechend umgestaltet und aufgeräumt. Generell solltest du auch bei einfachen Beispielen auf die Übersichtlichkeit achten und nicht allzu viele Ecken, Überkreuzungen usw deiner Signalwege haben. Ein guter Programmierstil ist es ausserdem Beschriftungen der Signal mitzuführen, wie ich es in dem Beispiel zeige. Auch das Einrahmen und Kommentieren von Programmbereichen dient der Übersicht und Lesbarkeit.

Das Beispiel speichert jetzt "Messwert 1 Messwert 2 Zeit" in die angegebene Datei "C:logfile.txt". Die Reihenfolge der Werte kann leicht durch Ändern der Reihenfolge der Arrays beim Zusammenfassen angepasst werden.

Ich hoffe dies hilft dir weiter und gibt dir einen kleine Impuls in Richtung sauberes Programmieren!Big Grin

Lv09_img2
[attachment=26975]
[attachment=26976]

Grüße,
Seiten: 1 2 3 4
Referenz-URLs