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:

Resourcen schonende Kommunikation



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!

06.04.2020, 12:13
Beitrag #1

LV-New Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Apr 2020

2016
2019
DE



Resourcen schonende Kommunikation
Hallo LAbview Forum,
Als “Neuling” besser gesagt Wiedereinsteiger in Labview (Programmiererfahrung aus Praktikum) benötige ich eure Hilfe.
Es sind mehre Dinge die ich für eine gute Kommunikation zwischen Schleifen bräuchte, aber starten wir erstmal mit dieser Frage hier:
Ich habe mehre Schleifen, die miteinander kommunizieren sollen (exemplarisches Beispiel im Anhang), dies soll möglichst PC-Resourcen schonen erfolgen. D.h: Die Schleife soll eigentlich wie immer durchlaufen und nur wenn besondere Ereignisse eintreten dann auch einen speziellen Zustand einnehmen.
Also dachte ich mir ich benutze eine Erzeugnisstruktur dafür. Leider reagiert diese aber nur auf wirklich Knopf drücke des Benutzers und nicht auf „programmieret Knopfdrücke“. Jemand eine Idee für einen „Workaround“? Eine FGV will ich nicht nehmen, weil diese ja ständig abgefragt würde und nicht nur bei bestimmten Veränderungen.


Soweit erstmal….


Angehängte Datei(en)
16.0 .vi  Communication.vi (Größe: 32,05 KB / Downloads: 36)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.04.2020, 12:43
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 695
Registriert seit: Aug 2008

2019, 2020, NXG 5.0
1996
DE

76275
Deutschland
RE: Resourcen schonende Kommunikation
Hallo LV-NEW,
dass sieht nach einer klassischen Queue Verarbeitung aus.

Wenn Du das Prinzip sehen möchtest, starte ein neues Projekt und wähle die Vorlage "Handler für Nachrichten-Queues" aus.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 14:14 (Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2020 14:37 von LV-New.)
Beitrag #3

LV-New Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Apr 2020

2016
2019
DE



RE: Resourcen schonende Kommunikation
An Queues hatte ich schon gedacht....
Die Herausforderung ist dass die Queues aus unterschiedliche Schleife kommen /ausgehen und das finde ich extrem unübersichtlich. Mit dieser Ereignisstruktur ist es wirklich schön übersichtlich...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2020 15:06 von Freddy.)
Beitrag #4

Freddy Offline
Oldtimer
****


Beiträge: 695
Registriert seit: Aug 2008

2019, 2020, NXG 5.0
1996
DE

76275
Deutschland
RE: Resourcen schonende Kommunikation
Jetzt habe ich mal das VI angeschaut.
Das geht nicht.
Pro VI nur eine Ereignisstruktur und auch nur wenn die VI's MODAL sind.

Eigentlich für ein Programm nur eine Ereignisstruktur verwenden.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 15:19
Beitrag #5

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: Resourcen schonende Kommunikation
(06.04.2020 14:14 )LV-New schrieb:  An Queues hatte ich schon gedacht....
Die Herausforderung ist dass die Queues aus unterschiedliche Schleife kommen /ausgehen und das finde ich extrem unübersichtlich. Mit dieser Ereignisstruktur ist es wirklich schön übersichtlich...

ein Cluster schafft eventuell Abhilfe. Das bringt Übersicht ins Queue Gewusel. Anbei ein Beispiel.

Gruß
NoWay


Angehängte Datei(en)
16.0 .vi  Queue.vi (Größe: 12,64 KB / Downloads: 21)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 15:21 (Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2020 15:28 von LV-New.)
Beitrag #6

LV-New Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Apr 2020

2016
2019
DE



RE: Resourcen schonende Kommunikation
Das Interessante ist aber dass es beim "Emergency"-Knopf funktioniert....
Wäre halt wirklich genial wenn ich mittels einem Eigenschaftswert o.ä. auch die anderen Ereignisstrukturen so bearbeiten könnte.
Gibt es denn da wirklich kein Workaround?
Mit Queues habe ich es ausprobiert geht natürlich, aber ist eben unübersichtlich als mit mehreren Queues die ständig irgendwo da rein und rausgehen...
(Im echten Programm werden es wohl 5 Prozesse/Schleifen die untereinander kommunizieren sollen/müssen).

Gibt es noch andere Varianten außer Queues? FGV fallen raus, da diese ständig abgefragt werden.

@NoWay: Cluster ist ne schöne Lösung, muss ich mir mal anschauen... sind wie gesagt 5 Schleifen die teilweise 4 unterschiedliche "Datentypen" austauschen sollen....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.04.2020, 15:21 (Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2020 15:25 von Freddy.)
Beitrag #7

Freddy Offline
Oldtimer
****


Beiträge: 695
Registriert seit: Aug 2008

2019, 2020, NXG 5.0
1996
DE

76275
Deutschland
RE: Resourcen schonende Kommunikation
Wenn Du alle Ereignisaufrufe in eine Struktur schreibst funktioniert es.

Ein weiterer Punkt. Mit dem True zum Beenden der While Schleife wird die entsprechende Ereignisstruktur in der While Schleife nicht mehr verwendet.
Man beendet erst am Ende eines Programms diese Schleife. Dafür gibt es einige Möglichkeiten.
Dein End All wird kein Ereignis aufrufen. Dazu verwendet man "Wert (Signalisierend)".

Gruß
Freddy


Zitat:Das Interessante ist aber dass es beim "Emergency"-Knopf funktioniert....
Interessant dabei ist das Emergency am schnellsten war. Alle anderen Ereignisstrukturen kommen nicht zum Einsatz.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 16:34
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.560
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Resourcen schonende Kommunikation
(06.04.2020 15:06 )Freddy schrieb:  Jetzt habe ich mal das VI angeschaut.
Das geht nicht.
Pro VI nur eine Ereignisstruktur und auch nur wenn die VI's MODAL sind.

Eigentlich für ein Programm nur eine Ereignisstruktur verwenden.

Gruß
Freddy

Dem widerspreche ich: Max. eine Eventstruktur pro VI, damit kommt LabVIEW gut zu Rande.
Ich mach sowas immer wieder, z.B. wenn ich VIs in Subpanels lade und dann parallel zum Haupt-VI auf Events reagiere.
Klappt super.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2020, 16:42
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.650
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Resourcen schonende Kommunikation
(06.04.2020 12:13 )LV-New schrieb:  „programmieret Knopfdrücke“.
Das Teil heißt "Benutzerereignis". Damit kann man VI-Übergreifend Ereignisse auslösen, die von Eventcases abgearbeitet werden können.

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
06.04.2020, 16:55
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.560
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Resourcen schonende Kommunikation
(06.04.2020 12:13 )LV-New schrieb:  Hallo LAbview Forum,
Als “Neuling” besser gesagt Wiedereinsteiger in Labview (Programmiererfahrung aus Praktikum) benötige ich eure Hilfe.
Es sind mehre Dinge die ich für eine gute Kommunikation zwischen Schleifen bräuchte, aber starten wir erstmal mit dieser Frage hier:
Ich habe mehre Schleifen, die miteinander kommunizieren sollen (exemplarisches Beispiel im Anhang), dies soll möglichst PC-Resourcen schonen erfolgen. D.h: Die Schleife soll eigentlich wie immer durchlaufen und nur wenn besondere Ereignisse eintreten dann auch einen speziellen Zustand einnehmen.
Also dachte ich mir ich benutze eine Erzeugnisstruktur dafür. Leider reagiert diese aber nur auf wirklich Knopf drücke des Benutzers und nicht auf „programmieret Knopfdrücke“. Jemand eine Idee für einen „Workaround“? Eine FGV will ich nicht nehmen, weil diese ja ständig abgefragt würde und nicht nur bei bestimmten Veränderungen.


Soweit erstmal….

Wie meine Vorredner kann auch ich nur dringend von der Verwendung von mehreren Ereignisstrukturen innerhalb eines VI abraten. Die LabVIEW-Hilfe sagt zwar, dein Beispiel-Konstrukt geht so in Ordnung, die Erfahrung zeigt es anders. Das geht fast immer schief !!!

Außerdem kannst du so nicht modular programmieren, du musst ja immer alles in einem VI halten, um Events in anderen Schleifen auszulösen (ok, stimmt nicht ganz, es gibt benutzerdefinierte Events und man kann Controls aus anderen VIs für die Eventverarbeitung registrieren). Trotzdem, das Gelbe vom Ei ist das nicht, da ist ein Vorgehen mit Queues zu bevorzugen.

Übrigens, wenn du unbedingt ein Event programmatisch auslösen willst, dann musst du die PropertyNode "Value (Signaling)" verwenden, nur die löst Events programmatisch aus. Aber sieh diesen Hinweis bitte nicht als Erlaubnis dafür, mit dieser Struktur weiterzumachen...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: