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!
23.08.2016, 12:35 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2016 07:26 von jg.)
ich habe ein Programm zum Auswerten von Messdaten.
Ich möchte gern, dass der Programmstart erst nach dem Einlesen der entsprechenden CSV möglich ist.
Ich dachte mir, dass entweder die Schaltfläche für den Start erst nach Auswahl der Datei sichtbar ist oder dass beim Drücken der Schaltfläche eine Meldung mit der Aforderung zur Dateiauswahl erscheint.
Wie könnte ich das programmiererisch am besten lösen, gibt es ein VI was dies erledigt?
Offenbar hast du kein Programm sondern allerhöchstens ein VI. Unter einem Programm verstehe zumindest ich eine Exe, bei der kein "LabVIEW VI Start-Button" mehr sichtbar ist.
Meine Antwort lautet deshalb: Programmier es halt einfach, z.B. könntest du ein VI mit einem "Öffnen-Button" erstellen. Nach Betätigen dieses Button wird ein File-Dialog aufgerufen (s. Palette File I/O -> Advanced), bei korrekter File-Auswahl wird dieser Pfad an dein Auswerte-VI übergeben. Oder, oder, oder...
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
danke für Eure Tipps. Ich bin mit den Ereignisstrukturen nicht so vertraut.
Ich habe Freddy´s Gedankenstütze mal in meinem VI adaptiert nur funktioniert es noch nicht hundertprozentig.
Ich hätte es gern so, dass der execute-Button (Start) erst sichtbar ist noch der Dateiauswahl. Zudem wäre es schön wenn der Boolesch-Button alles wieder zurücksetzen könnte damit man eine neue Datei einlesen kann.
Sorry, ist bestimmt trivial für Euch aber jeder fängt mal im Urschleim an.
Zitat:Ich hätte es gern so, dass der execute-Button (Start) erst sichtbar ist noch der Dateiauswahl.
Dann musst du das eben genau so programmieren!
Für alle diese Dinge gibt es Eigenschaften der Bedienelemente:
Zitat:Zudem wäre es schön wenn der Boolesch-Button alles wieder zurücksetzen könnte damit man eine neue Datei einlesen kann.
Das habe ich im Snippet nicht integriert, ist aber ebenso einfach: mittels "boolesch" einfach die Pfadanzeige (so wie im Snippet gezeigt) wieder auf "leerer Pfad" setzen!
Erzeuge dafür einen neuen Eventcase - und gib dem Button einen besseren Namen!
ich hab es jetzt nach meinen Fähihkeiten angepasst. Funktioniert aber nicht so wie ich will.
Der Start nach Dateiauswahl funktieniert schonmal.
Nur den Reset bekomm ich nicht hin. die Anzeigen und Arrays lassen sich erst nach einem erneuten start reseten.
Ich möchte die Anzeige aber während des laufenden VI zurücksetzen.
Ich habe das VI mal angehängt. Könnt Ihr mir weiterhelfen?
Damit Deine Sequenz Struktur startet, muss die Event Struktur (rechts unten) einmal durchlaufen. Du übergibst da ein Boolen Wert an die Sequenz den keiner benutzt.
Zwei Event Strukturen in einem VI bilden immer eine Gefahr.
Wenn ein Event die Aktion aufnimmt aber nichts mit anfangen kann, das andere Event aber schon nur die Aktion wurde bereits abgearbeitet.
Schau Dir doch mal die das Projektbeispiel Handler für Nachrichten-Queues. Da siehst Du wie eine Event Struktur alles steuert.
danke für deine Antwort. wo finde ich das Projektbeispiel?
Ich habe jetzt die linke Event Struktur entfernt und nur die rechte zum zurücksetzen beibehalten. Besser läuft es dadurch nicht.
immer hängt sich das vi auf. bin mit meinem latein am ende...
ich bin meinem Ziel näher gekommen und enttäuscht das ich mit damit solange rumschlagen muss
Ich kann das VI die gewünschte Datei nun erst einlesen wenn diese entsprechend ausgewählt habe, check!
Ich kann die Anzeigen meines VI zurückstzen und eine neue Datei einlesen, check!
Ich kann das Programm stoppen (trivial aber es klappt), check!
Ein Problem hab ich aber noch. Wenn ich nach Prorammstart die Werte zurücksetze hängt sich das VI auf, ich kann es nicht stoppen.
Woran liegt das, Habt ihr eine Lösung dafür?