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?
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.

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.

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?

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

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.
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!

[
attachment=26975]
[
attachment=26976]
Grüße,