LabVIEWForum.de
Benutzerabfragen / Schleifen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Benutzerabfragen / Schleifen (/Thread-Benutzerabfragen-Schleifen)



Benutzerabfragen / Schleifen - Masterg4941 - 28.08.2013 13:37

Hallo Leute,

ich habe da mal wieder ein Anliegen Ahrg1
Ich denke mal für erfahrene User unter euch wird das Problem zum Lachen sein.

Ich steuer ein Messgerät an, dass zunächst initialisiert und konfiguriert wird und anschließend die Messwerte in einem Array sowie einem Graph darstellt.
Nun habe ich das Problem, dass ich bei laufendem Programm die Konfiguration (z.B Autorange on/off) nicht hin bekomme. Irgendwie funktioniereh die Benutzerabfragen nicht so wie sie sollen.

Die Initialisierung soll nur zu Programmstart für 300ms laufen und dannach direkt an die "Berechnungsschleife" übergeben. Bei Änderungen auf dem Frontpanel soll die "Initialisierungsschleife" wieder angesprochen und abgearbeitet werden.
Sitze heute schon den ganzen Tag, doch meine Ansätze waren vergeblich Ahrg1

Für einen Tipp wäre ich sehr dankbar!

LG


RE: Benutzerabfragen / Schleifen - jg - 28.08.2013 13:51

THINK Dataflow! (das hatten wir schon im letzten Thread)

Wie soll das Programm jemals mehr als 1x deine Init-Case-Struktur durchlaufen, wenn du die Berechungs- und Ausgabeschleife NIEMALS beendest, außer durch einen hartes Abort Execution?

Gruß, Jens


RE: Benutzerabfragen / Schleifen - Trinitatis - 28.08.2013 19:18

Hallo Masterg4941,

ich habe dir doch im letzten Thread schon ein Beislpiel mit einer Eventstruktur geschickt.
Dort könntest du als neues Event einfach eine Initialisierung implementieren, die du beim Programmstart einfach über das signalisierende Setzen eines Controls ausführten lässt.

Gruß, Marko


RE: Benutzerabfragen / Schleifen - Masterg4941 - 29.08.2013 12:35

(28.08.2013 19:18 )Trinitatis schrieb:  Dort könntest du als neues Event einfach eine Initialisierung implementieren, die du beim Programmstart einfach über das signalisierende Setzen eines Controls ausführten lässt.

Gruß, Marko

Genau das ist es ja, was ich nicht hin bekomme. Ich weiß nicht wie ich das angehen soll. Kannst du mir das genauer erklären?



(28.08.2013 13:51 )jg schrieb:  Wie soll das Programm jemals mehr als 1x deine Init-Case-Struktur durchlaufen, wenn du die Berechungs- und Ausgabeschleife NIEMALS beendest, außer durch einen hartes Abort Execution?

Gruß, Jens

Ich habe es schon auf einige Weisen probiert (z.B Melder, Ereignisstruktur),aber war bisher alles nur Mist. So langsam weiß ich nicht mehr weiter Bahn


RE: Benutzerabfragen / Schleifen - jg - 30.08.2013 12:07

Das sieht doch schon besser aus, wir nähern uns dem Konzept einer event-gesteuerten Producer-Consumer-Struktur.

Überflüssig sind Rube-Goldbergs wie hier:
[attachment=46087]

Aktuell musst in einer sehr bestimmten Reihenfolge Buttons betätigen, um eine Messung wirklich sauber zu starten.

Wie wäre folgendes: Einführung einen "Messung-Start Buttons", dann kann der User erst einmal in aller Ruhe die Einstellungen vornehmen und dann die Messung starten.

Gruß, Jens


RE: Benutzerabfragen / Schleifen - Masterg4941 - 02.09.2013 07:02

(30.08.2013 12:07 )jg schrieb:  Das sieht doch schon besser aus, wir nähern uns dem Konzept einer event-gesteuerten Producer-Consumer-Struktur.

Überflüssig sind Rube-Goldbergs wie hier:


Aktuell musst in einer sehr bestimmten Reihenfolge Buttons betätigen, um eine Messung wirklich sauber zu starten.
Ja das habe ich beim Debuggen dann auch endlich gemerkt Angel_not . Da hätte ich auch mal früher drauf kommen können.


Zitat:Wie wäre folgendes: Einführung einen "Messung-Start Buttons", dann kann der User erst einmal in aller Ruhe die Einstellungen vornehmen und dann die Messung starten.

Gruß, Jens

Ja so hatte ich das vorher gehabt. Allerdings finde ich es etwas lästig, wenn man die Messung immer wieder abbrechen muss, wenn man Parameter ändert. Somit wollte ich lieber die direkte Aktualisierung.


Danke für dn Denkanstoß Dais
Ich habe das Problem jetzt mit einer Ereignisstruktur gelöst. Diese befindet sich in der Main.vi und übergibt die nötigen Parameter mittels globalen Variablen. Ich habe schon gelesen, dass globale Variablen nicht die beste Lösung sind, aber es funktioniert Big Grin