Vielen Dank für das Feedback.
Zitat:Allerdings sehe ich bisher keinen Nutzen darin, ein VI mit Frontpanel laufen zu lassen, ohne das Frontpanel anzuzeigen. Grundsätzlich lass ich VIs mit FP immer erst dann ausführen, wenn sie auch im SubPanel angezeigt werden.
Ich habe diese Variante gewählt, damit das Programm ein bisschen skalierbar ist. Das Beispiel für diese Struktur habe ich in den Beispielen (Find Examples) gefunden. Gibt es eine Möglichkeit ein Öffnen und Schließen von VIs umzusetzen ohne das es sich merkbar auf die Benutzung auswirkt?
Zitat:Nichtsdestoweniger kann man Programmteile, die zwar laufen müssen, aber nicht zwangsweise ein FP haben müssen, in ein weiteres VI auslagern, das dann grundsätzlich z.B. mit einer Schrittkette läuft.
Mache ich grundsätzlich auch so. Ist es nicht eh so, dass z.B. in der MeasurementSubVi die Consumer Loop erst läuft, wenn diese aus der Producer Loop ein Element bekommt? Dadurch laufen ja nur die Programmteile welche zu Abfrage der Variablen und Controls dienen???
Zitat:Zum einen steuert die GUI die SubVIs per Mitteilungen, die man ohne weiteres per Queue verschicken kann. Zum anderen würde ich Konfigurationsdaten, also ganze Datensätze, in einer sogenannten FGV vorhalten. Ein FGV ist eine While-Schleife mit Schieberegistern und einer Case-Sequenz, die Methoden abarbeiten kann.
FGV muss ich mir mal näher anschauen. Bisher habe ich das noch nie verwendet, aber ich habe hier irgendwo gelesen, dass man keine großen Datenarrays mit FGV speichern soll. Die Frage ist natürlich, was hier mit groß gemeint ist? Das Datenarray von mir kann im schlimmsten Fall auch über 1000 Elemente enthalten.
Was auf jeden Fall die Auslastung minimiert, ist das Entfernen der Shift-Register in er GUI zum lagern der Daten. Die Daten liegen ja sowieso in den Globals und damit sind diese Shift-Register überflüssig.
Ich hatte auch zuerst alles mit Queues gemacht, aber ich hatte das Lesen der globalen Variable mit der Schleifer des Queue-Elementes, was dazu geführt hat das die Daten beim Ausführen der Eventstruktur nicht angelegen haben.
Grundsätzlich würde mich interessieren, warum das Konzept mit den Referenzen nicht übergreifend drahtlos auf verschiedene VIs anwendbar ist? Wenn ich das Statisch mache und einen Draht anlegen, geht es... Also z.B. erstelle ich eine Referenz von einem Button aus dem Vertical Cluster. Speichere diese als Typedef Strict und kopiere diese in mein SubVI und greife mit einer Property Node drauf zu. Aber drahtlos geht es nicht (habe ich schon so ziemlich alle Varianten ausprobiert).
Zitat:Das liegt daran, weil du in den While-Schleifen, die dauernd laufen, keine Wartezeit von z.b. 50ms eingefügt hast.
Ich habe noch nie Wartezeiten in Schleifen verwendet, außer es musste ein definierter Zeitrahmen geschaffen werden. Gut zu wissen.
Macht man das immer so?