LabVIEWForum.de
Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen (/Thread-Schleifenkommunikation-Melder-und-Benutzer-Ereignisse-oder-lokale-Variablen)



Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - lumaxo - 18.03.2015 18:42

Hallo Forum,

im angehängten VI habe ich zweimal ein Erzeuger-Verbraucher-Muster realisiert.
Links mit Meldern und Benutzerereignissen wie ich es immer mache.
Rechts nur mit lokalen Variablen.

Ich frage mich gerade ob ich in der linken Variante mit Kanonen auf Spatzen schieße.
Was spricht gegen die Verwendung von lokalen Variablen?

Vielen Dank.


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - Holy - 18.03.2015 19:31

Gegen die Verwendung von lokalen Variablen für den STOPP-Mechanismus in deinem Producer/Consumer-Aufbau spricht die Einschränkung auf exakt dieses eine VI. D.h. sobald du Producer und Consumer in eigene VIs (bzw. SubVIs) auslagerst, funktionert es mit lokalen Variablen nicht mehr. Weiterhin besteht bei lokalen Variablen eher die Möglichkeit Race Conditions einzubauen wie mit dem Melder.


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - Lucki - 18.03.2015 22:39

Habe mirs vor dem Zu-Bett-gehen nur kurz überflogen. Bei den beiden Verbraucherstrukturen wird zum Schluss immer ein falscher Wert ausgegeben. Abhilfe so:
[attachment=52565]


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - lumaxo - 19.03.2015 15:29

Danke für die Hinweise

Zitat:sobald du Producer und Consumer in eigene VIs (bzw. SubVIs) auslagerst, funktioniert es mit lokalen Variablen nicht mehr.
Gut. ich könnte das gleiche ja auch mit Referenzen auf den Stopp-Schalter realisieren. Dann kann ich es auch in eine SubVI packen.

Damit bleiben für mich nur noch die Race Conditions als Argument für die Realisierung mit Meldern und Benutzerereignisse. Gibt es noch weitere Bedenken?


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - GerdW - 19.03.2015 15:38

Hallo lumaxo,

Zitat:ich könnte das gleiche ja auch mit Referenzen auf den Stopp-Schalter realisieren. … Gibt es noch weitere Bedenken?
Referenzen mit PropertyNodes erfordern einen Threadwechsel und sind grob um den Faktor 100 langsamer als lokale/globale Variablen!

Den Stopp-Button verteile ich gern über eine FGV: nettes kleines Icon, Funktionalität in einem VI gebündelt, keine RaceConditions…
So sieht das bei mir aus:
[attachment=52574]
(Das "Stop?" kennt nur drei States: INIT, SET und READ. READ ist default…)


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - lumaxo - 19.03.2015 17:31

Zitat: Den Stopp-Button verteile ich gern über eine FGV

Habe noch nicht mit FGVs gearbeitet, passt mein VI so?

Sind FGVs der "beste" Weg um das was ich will zu erreichen?

PS.: Kann man die Icon Größe eigener VI selber bestimmen? Wenn ja, wie?


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - jg - 19.03.2015 17:44

Zwecks Größe Icon, so:
[attachment=52580]
Alles was durchsichtig (Farbe T) ist, gehört nicht zum Icon.

Gruß, Jens


RE: Schleifenkommunikation: Melder und Benutzer-Ereignisse oder lokale Variablen - lumaxo - 19.03.2015 17:49

wow danke, das hatte ich noch nie ausprobiert.