LabVIEWForum.de - Steuerung der Messdatenaufzeichnung mit Elapsed-Time-SubVI

LabVIEWForum.de

Normale Version: Steuerung der Messdatenaufzeichnung mit Elapsed-Time-SubVI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin neu in LabView und versuche gerade, meine erste Anwendung zu schreiben. Um zu verdeutlichen, was ich machen möchte, habe ich ein Minimalbeispiel vorbereitet, anhand dessen ich gerne Hilfe aus dem Forum hätte.

Folgendes soll die VI tun:

  1. Vor dem Start der VI soll man einen Pfad auswählen, in dem die spätere Messdatei gespeichert wird. (funktioniert soweit)
  2. Während die VI läuft, soll einmal pro Sekunde eine zufällige Zahl erzeugt werden
  3. Es wird eine Tabelle erzeugt, welche die drei Spalten t[s] (von Elapsed Time), die aktuelle Generation der while-Schleife und die zufällig erzeugte Zahl enthalten soll
  4. Wenn der Schalter "Write Data" umgelegt wird, sollen einmal pro Sekunde für die in "Time Target(s)" festgelegte Zeitdauer ein Array aus den zuvor beschriebenen Werten in der n-ten Zeile des Spreadsheets gespeichert werden
  5. Ist die Zeit abgelaufen, soll der Timer und die Aufzeichnung der Messdaten stoppen
  6. Mit einem Klick auf den Schalter "Reset Timer" Soll der Timer auf 0 zurückgesetzt werden


Folgende Probleme habe ich noch mit der VI:
  • Ich weiß leider nicht, wie ich das zu speichernde Array mit den "Messdaten" korrekt erzeuge und in dem Spreadsheet speichere
  • Die Aufzeichnung der Messdaten hält nach Ablauf der Zeit nicht an, sondern der Timer fängt wieder von vorne an zu zählen

Im Anhang findet ihr die VI, sowie einen Screenshot des Block-Diagrammes und des FP, falls es euch nicht möglich ist, die Datei zu öffnern. Ich hoffe, dass ihr mit der Beschreibung, die ich gegeben habe, einigermaßen etwas anfangen könnt und freue mich auf das Feedback!
Hallo lempy,

herzlich willkommen im Forum!

Zitat:Folgende Probleme habe ich noch mit der VI:

Ich weiß leider nicht, wie ich das zu speichernde Array mit den "Messdaten" korrekt erzeuge und in dem Spreadsheet speichere
Die Aufzeichnung der Messdaten hält nach Ablauf der Zeit nicht an, sondern der Timer fängt wieder von vorne an zu zählen

Im Anhang findet ihr die VI, sowie einen Screenshot des Block-Diagrammes und des FP, falls es euch nicht möglich ist, die Datei zu öffnern. Ich hoffe, dass ihr mit der Beschreibung, die ich gegeben habe, einigermaßen etwas anfangen könnt und freue mich auf das Feedback!

Leider hast du die Attachments vergessen! (Du musst nicht nur die Dateien auswählen, sondern auch den Button zum Hochladen klicken…)

- Die "zu speichernden Daten" kann man mit BuildArray erzeugen…
- Speichern geht ganz einfach mit WriteDelimitedFile…
- Wenn der "Timer" wieder "von vorn anfängt", dann hast du wohl das ExpressVI falsch konfiguriert! Glas1 Hast du etwa den AutoReset aktiviert??? Glas1
Hallo GerdW,

vielen Dank für die Begrüßung! Ich habe hier nochmal die Anhänge angefügt, ich hoffe, sie tragen zu einem besseren Verständnis meines Problems bei!

[attachment=62009][attachment=62010]
Hallo lempy,

kannst du das VI nochmal für LV2017 speichern? (File -> Save for previous)

Zum Bild:
- Kannst du das Blockdiagramm erst noch mal aufräumen? Drähte von links nach rechts, etc.!? Wenn der Code "unleserlich" ist, dann ist er auch "schwer verständlich"!
- Verwende BuildArray, wenn du ein Array bauen willst. InsertIntoArray ist da fast immer die falsche Funktion!
Hallo GerdW,

schonmal vielen Dank für deine Hinweise! Ich hoffe, die Version im Anhang hat jetzt ein angemessenes Maß an Übersichtlichkeit. Ich habe es außerdem einmal für die Version 17.0 gespeichert. Vielen Dank für die Hilfe!
Hallo lempy,

Zitat: Ich hoffe, die Version im Anhang hat jetzt ein angemessenes Maß an Übersichtlichkeit.
Nun ja…
Grundregel: Wenn die AutoCleanup-Funktion das Blockdiagramm besser aussehen lässt, dann hast du vorher nicht gut genug gearbeitet! Big Grin

Schau mal hier:
[attachment=62019]

Du solltest dir bewusst machen, wie das ElapsedTime-ExpressVI arbeitet!
Und daraus lernen, dass es keine gute Idee ist, dieses VI in einer Case-Struktur zu verstecken…
Hallo GerdW,

es war mir nicht bewusst, dass es eine Funktion gibt, um das BD automatisch aufzuräumen. Ich werde das in Zukunft nutzen, bevor ich eine Frage im Forum poste. Ich werde versuchen eine Lösung zu finden, bei der die ElapsedTime-ExpressVI nicht in einer Case-Structure steck. Vielen Dank für den Hinweis!
Referenz-URLs