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!
16.06.2018, 12:08 (Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2018 14:00 von J.B.)
Hallo beisammen,
Ich habe den LabviewCore 1 besucht und nutze LabView nun seit knapp 4 Wochen.
Im Rahmen meines großen Belegs muss ich ein LabView Programm zur Messwertaufzeichnung und Anlagensteuerung schreiben. Die Daten werden über RS232 Schnittstellen mit den VISA Elemente ausgelesen. Die Messwerte werden aufbereitet und als String in eine txt-Datei geschrieben. Das Programm funktioniert soweit auch schon. Momentan erstelle ich zu Beginn eine Textdatei und zeichne alle Messwerte auf. Über die Stopp-Schaltfläche wird das Programm beendet.
Nun möchte ich das Programm dahingehend ändern, dass ich einen Beobachtungsmodus zur Werteüberwachung habe und auf einen Knopfdruck die Messung starten kann. Dabei soll eine Textdatei erstellt werden(Pfad soll auswählbar sein) und die Messwerte aufgezeichnet werden. Wird nun der Knopf "Messung stoppen" gedrückt soll die Werteaufzeichnung gestoppt werden, die Datei geschlossen und das Programm kehrt in den Beobachtungszustand zurück.
Leider trete ich nun auf der Stelle. Ich freue mich auf mögliche Ideen.
Im Anhang habe ich das bisherige Programm angehängt(2017 Version). Das Main-VI heißt: "Messwertabfrage und Aufzeichnung.vi".
Viele Grüße
Jan
16.06.2018, 13:43 (Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2018 14:10 von J.B.)
Habe das Problem jetzt doch gelöst bekommen. Vielleicht gibt es noch eine elegantere Lösung aber sie funktioniert erstmal.
Für alle die vor dem gleichen Problem stehen habe ich die Lösung als Minimalbeispiel angefügt.
Gruß Jan
Ja, dein Programm erfüllt seinen Zweck. Mir sind da aber ein paar Sachen aufgefallen, die ich dir mitteilen will.
1. File-Referenz.
So wie du die Verdrahtung der Referenz gemacht hast, funktioniert zwar das mit dem Schreiben in das File und das mit dem Schließen des Files. Aber: So wie du das programmier hast, ist das ganz schlecht. Dass du kein Schieberegister verwendest, sondern eine Lokale Variable, ist noch halbwegs in Ordnung. Schlecht ist das mit dem Tunnel, der einen Standardwert in die Referenz schreiben könnte (aber wegen des definierten Ablaufes nicht tun kann!). Sobald da der Standardwert drinnen steht, geht nämlich das Schreiben und Schließen nicht mehr.
2. Programm hängt.
LabVIEW hat die dumme Angewohnheit, jeden Buttonklick zu sampeln und gegebenenfalls so lange zwischenzuspeichern, bis er ausgewertet wird. Das kann zur Folge haben, so wie in deinem Falle, dass sich das Frontpanel aufhängt. Du musst hierfür lediglich, während die Messschleife läuft, dreimal auf den Button "Messung starten" klicken.
3. Und dann noch die Kleinigkeiten:
3.1 Warum File-Öffnen und File-Schließen in der Event-Sequenz? Wegen des definierten Ablaufes einfach vor und nach der Messschleife ...
3.2 Die Messschleife durchzuführen, wenn der Öffnen-Dialog abgebrochen wird, ist auch umsonst ...
3.3 Eine Event-Sequenz in einen Datenfluss einzubinden gefällt mir selbst gar nicht. Das würde nämlich bedeuten, dass die Event-Sequenz ihre Aufgabe nicht erledigen kann, wenn die nachfolgende While-Schleife dauernd arbeitet ...
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
ich habe leider erst jetzt wieder in das Forum geschaut und deine Antwort gesehen.
Ich werde mir deine Anmerkungen zu Herzen nehmen und versuchen sie in meinem aktuellen Projekt umzusetzen(speziell Punkt 2).
Die While-Schleife wurde im eigentlichen Programm nicht mehr genutzt. Anstatt wurden die Messwertabfragen im While-Schleife des main.vi(Messwertabfrage und Aufzeichnung) durchgeführt.
Zu Punkt 3.3 hätte ich noch eine Frage:
Der erste Schritt in meinem Programm war die Eventstruktur. Verläuft der Programmablauf entlang der Fehlerstruktur? Damit sollte doch theoretisch sichergestellt sein, das die Eventstruktur zuerst ausgeführt wird und die Messung keine Messwerte mehr aufzeichnet.
Soweit ich mich noch erinnere wurde die Messwertaufzeichnung in dem Durchlauf, in dem die Schaltfläche Messung stoppen gedrückt wurde, noch durchgeführt und erst im nächsten Durchlauf ging das Programm in den Beobachtungszustand.
Ich hänge das fertige Projekt nochmals an, damit die Ablaufstruktur aufgezeigt wird und es vllt einfacher ist die Frage zu beantworten. Aber bitte mache dir nicht die Mühe das Programm nochmals komplett durchzugehen. Es gibt sicher noch einige Punkte, die ich besser machen könnte, aber das Programm lief zuletzt 3-4 Tage ohne Fehler durch. Desweiteren wurde es bereits abgegeben und weitere Änderungen sind somit nicht mehr möglich.
Vielen Dank.
Gruß Jan
PS: Sind .zip Dateien in Ordnung oder sollte ich die Dateien einzeln einfügen?