INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Kommunikation zwischen SubVis im Subpanel und GUI



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!

29.10.2017, 10:57
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Kommunikation zwischen SubVis im Subpanel und GUI
(28.10.2017 17:47 )Rene123 schrieb:  Ich habe diese Variante gewählt, damit das Programm ein bisschen skalierbar ist.
Der Gedanke an sich ist sehr gut! Top1 Ich bin aber der Meinung, auch andere Verfahren sind gut genug skalierbar.

Zitat:Gibt es eine Möglichkeit ein Öffnen und Schließen von VIs umzusetzen ohne das es sich merkbar auf die Benutzung auswirkt?
Da die Benutzung eines VIs nach dem Öffnen beziehungsweise vor dem Schließen stattfindet, kann sich Öffnen oder Schließen eigentlich gar nicht so sehr auf die Benutzung auswirken. Oder was meinst du genau? Huh

Zitat: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?
Das ist richtig. Aber: Was ist mit dem Rest des VIs?
Mir sind mehrere Sachen eingefallen, was an der Kombination SubPanel und Queue-gesteuert möglicherweise schlecht ist:
* Geht denn ein solches SubVI zu debuggen? Kommt man an das BD, wenn das FP im SubPanel läuft?
* Wenn man ein solches VI standalone ausführt, also nicht in SubPanel, kann man es nur schwer steuern. Dazu bräuchte man parallel ein VI, das die Queue bedient. Ist denn das praktikabel?

Zitat: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.
* 1000 Elemente ist relativ: Array of DBL => völlig irrelevant. Array of Cluster of (...) => kompliziert.
* Arrays, die z.B. Messdaten enthalten, würde ist gegebenenfalls auch nicht in einem FGV verwalten.
* Ich verwende FGV z.B. als "Globale Variable". Da ein FGV, das per Enumerator gesteuert werden kann, auch Methoden für die Manipulation der Daten enthalten kann, kann so eine FGV als Klasse im klassischen Sinne verstanden werden.
Hinweis: Die FGV würde die globale Variable, die in den Dauer-While-Schleife gelesen bzw. geschrieben wird, ersetzen. Die FGV wird immer dann gelesen bzw. geschrieben, wenn das auch so notwendig ist. Geschreiben wird sie z.B. dann, wenn infolge eines Benutzer-Events die Lokale Variable (das FP-Element) geändert wurde.

Zitat:Was auf jeden Fall die Auslastung minimiert, ist das Entfernen der Shift-Register in er GUI zum lagern der Daten.
Das bezweifle ich sehr! Denknach
Du solltes zuerst in die While-Schleifen eine z.B. 50ms-Wartezeit (Metronom) einfügen. Ich gehe sehr davon aus, dass dein Programm dann 0% (Max.Max 5%) Auslastung hat. Danach kannst du das mit den Schieberegistern nochmals prüfen.
Hinweis: Auch wenn LV eine Datenfluss-Sprache ist, kann man doch hervorragend Event-Gesteuert arbeiten => Auslastung geht gegen Null.

Zitat:Die Daten liegen ja sowieso in den Globals und damit sind diese Shift-Register überflüssig.
Globale Variablen? Das sind "Ressourcen-Fresser"!

Zitat: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.
Auch wenn LV nach Datenfluss arbeitet, muss du dieses Verfahren natürlich auch dort einhalten, wo kein expliziter Datenfluss besteht: Erst Daten in FGV schreiben, dann Queue beschreiben, dann im Consumer beim Queue-Event Daten aus FGV lesen. Excl

Zitat:Grundsätzlich würde mich interessieren, warum das Konzept mit den Referenzen nicht übergreifend drahtlos auf verschiedene VIs anwendbar ist?
Diese Frage kann ich nur ganz allgemein beantworten, weil ich nicht genau weiß, was du meinst.
Selbstverständlich kannst du Referenzen auch drahtlos applikationsweit verwenden: Die Referenz sollte auf ein strict-typisiertes Element (Cluser, VI) gehen. Diese Referenz kann man in einer FGV vorhalten ...

Zitat: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).
Eine Referenz ist auch nur eine Variable (im klassichen Sinne) und enthält einen Wert. Dieser Wert allerdings kann nur zur Laufzeit(!) erzeugt werden (weil das Objekt, das referenziert werden soll, erst zur Laufzeit seinen Wert bekommt).
Das Kopieren einer Referenz (beachte: du kopiert den Wert der Referenz mit!) zur Programmerstellungszeit funktioniert nicht, da bei der nächsten Laufzeit die Referenz einen anderen Wert haben kann. Du musst also z.B. in einem Init-Case den Wert der Referenz in eine FGV (oder bäh Globale Variable schreiben) und kannst den dann wo du willst verwenden.


Zitat:Macht man das immer so?
Ja, wenn es keine andere Möglichkeit gibt ... Wink

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Kommunikation zwischen SubVis im Subpanel und GUI - IchSelbst - 29.10.2017 10:57

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Subpanel Kommunikation ares2013 3 3.649 04.12.2019 12:23
Letzter Beitrag: Lien_Alere
  Bestimmen, ob das VI ein eigenes Frontpanel hat oder im Subpanel angezeigt wird wladimir s 8 6.101 11.11.2016 10:31
Letzter Beitrag: wladimir s
  Subpanel und Splitter Pane GT123 15 9.533 09.09.2016 14:23
Letzter Beitrag: GT123
  Kommunikation zwischen LabView und SEW Umrichter Joe23 13 8.639 09.05.2016 10:40
Letzter Beitrag: GerdW
  Kommunikation bei mehrfach ausgeführten SubVis (Melder) I3erry 3 3.884 24.06.2015 13:01
Letzter Beitrag: GerdW
  Sub-VIs in Subpanel laden Scuba 16 11.824 28.08.2014 13:39
Letzter Beitrag: jg

Gehe zu: