LabVIEWForum.de
LV Style - Datenaustausch - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: LV Style - Datenaustausch (/Thread-LV-Style-Datenaustausch)



LV Style - Datenaustausch - oswald - 18.11.2010 13:00

Hallo zusammen,

ich habe mal eine grundsätzliche Frage. Wenn man eine größere Applikation erstellt, ist es doch so, dass man verschiedenste Informationen, die man in VIs auf Low-Level-Ebene erhält, an andere Stelle in der Appliaktion wieder verwenden möchte. Zum Beispiel Messdaten, die ein Measure-VI erfasst werden, sollen in Echtzeit auf dem MAIN Frontpanel erscheinen. Wie realisiert man sowas am besten?

Meine Vorgehensweise sieht bisher so aus, dass ich für viele Frontpanel-Elemete des Hauptprogramms Referenzen erstelle, diese dann z.B. in einer Funktionalen Globalen Variablen speicher und über Eigenschaftensknoten die Informationen austausche.

Gibt es hierfür bessere Alternativen?

Grüße O.


LV Style - Datenaustausch - kaiman - 18.11.2010 13:07

Moin!
Da LV auf dem Datenflussprinzip basiert, solltest du globale und lokale Variablen vermeiden. Wenn du ein Sub-VI z.B. für die Messwerterfassung gebaut hast, kannst du die Messwerte durch Terminals aus dem VI heraus führen. Ist auch wesentlich besser nachzuvollziehen, als unsichtbare Verbindungen... Außerdem kann die Verwendung von Variablen zu Race Conditions führen.
Ich hoffe, dass ich dir damit helfen konnte.
Gruß, Kai


LV Style - Datenaustausch - IchSelbst - 18.11.2010 21:34

' schrieb:sollen in Echtzeit auf dem MAIN Frontpanel erscheinen.
Echtzeit würde z.B. heißen, das Frontpanel mit 1kHz refreshen zu wollen. "Echtzeit auf dem Main-FP" ist unsinnig. Hier reicht eine Refreshrate von 200ms, oft sogar von nur 500ms. Normale Anwender kucken nicht schneller.

Zitat:Meine Vorgehensweise sieht bisher so aus, dass ich für viele Frontpanel-Elemete des Hauptprogramms Referenzen erstelle, diese dann z.B. in einer Funktionalen Globalen Variablen speicher und über Eigenschaftensknoten die Informationen austausche.
Klingt interessant, davon rate ich aber ab. Ich nehm zum Transportieren von Daten von einem Modul in ein anderes immer Queues, Melder und ggf. FGVs.



Referenzen nehme ich aus folgenden Gründen nicht:

Module sollen nach Möglichkeit so unabhängig sein wie es nur geht. Verbindest du nun zwei Module über eine Referenz, so haben diese beiden Module eine gewisse sehr enge Bindung. Das eine Modul (Anzeige), das die Referenz zur Verfügung stellt, ist darauf angewiesen, dass das andere Modul (Sample) die Daten per Referenz in ein Anzeigeelement überträgt. Und das andere Modul (Sample), das die Daten anzeigen soll, ist darauf angewiesen, dass eine Referenz (von Modul Anzeige) zur Verfügung gestellt wird.
Verwendest du Queues, Melder oder FGVs, so besteht zwar immer noch eine Bindung, aber keine so enge mehr. Die Bindung ist jetzt der Queuename. Das Sample-Modul schreibt in die Queue/Melder/FGV, ist es ihm aber völlig egal, was mit diesen Daten geschieht. Das Anzeige-Modul wiederum kann für sich entscheiden, mit welcher Refreshrate das FP aktualisiert werden soll.

Ein weiterer Punkt ist: Das Sample-Modul ist zum samplen da, nicht zum anzeigen. Und umgekehrt.