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 

Benutzerereignisse zwischen VIs austauschen



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!

17.06.2008, 14:33
Beitrag #1

Christoph_
Unregistered


 







Benutzerereignisse zwischen VIs austauschen
Hallo!

Ich möchte Daten zwischen einem Erzeuger und beliebig vielen Empfängern austauschen. Dazu habe ich bis jetzt Ereignisse benutzt, da die Zahl der Empfänger unbekannt ist. Während der Tests in einem großen VI klappte das hervorragend. Nun möchte ich die Funktionalität in übersichtliche Sub-VIs aufspalten.

Und da kommt auch schon das Problem: Wie kann ich Benutzerereignisse an VIs übergeben?

Zur Verdeutlichung des Problems hänge ich vier Test-VIs an. Lasst euch dabei nicht von irgendwelchen Abbruchbedingungen oder einem tieferen Sinn verwirren. Es geht nur um die Ereignisse.

Gruß,
Christoph


Die VIs sind aus LabVIEW 7.1


Angehängte Datei(en)
Sonstige .vi  Erzeuger.vi (Größe: 34,06 KB / Downloads: 178)

Sonstige .vi  Init.vi (Größe: 33,61 KB / Downloads: 154)

Sonstige .vi  main.vi (Größe: 13,04 KB / Downloads: 163)

Sonstige .vi  Verbraucher.vi (Größe: 33,4 KB / Downloads: 156)
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.06.2008, 18:24
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Benutzerereignisse zwischen VIs austauschen
' schrieb:Ich möchte Daten zwischen einem Erzeuger und beliebig vielen Empfängern austauschen.
Du benutzt zum Datenaustausch Benutzerereignisse und nicht Melder/Queues? Du kannst schon Ereignisse auch verwenden - nur: ich glaube Ereignisse können nur ein einziges Mal bearbeitet werden. Von den vielen Empfängern kann immer nur genau einer ein Ereignis bearbeiten.

Zitat:Dazu habe ich bis jetzt Ereignisse benutzt, da die Zahl der Empfänger unbekannt ist.
Wie kann in einem fertigen Programm die Anzahl der Empfänger unbekannt sein? Auf ein Ereignis wird mit einer Ereignisstruktur reagiert. Und die Anzahl derer liegt fest. (Ich hoffe nur, ich hab dich nicht irgendwie falsch verstanden).

Zitat:Nun möchte ich die Funktionalität in übersichtliche Sub-VIs aufspalten.
Da mir der Sinn deines Vorgehens noch nicht ganz klar ist, sag ich hier vorerst nur: Ich würde nur ein SubVI machen.

Ich hab mal was zusammengestellt. In dem VI werden die Handle der Ereignisse verwaltet. Wer immer ein Ereignis haben will, kann sich einen entsprechenden Handle holen.

Leider hab ich kein 7.1 mehr. Nur 8.5, das in 8.0 konvertiert. Vielleicht konvertiert dir der eine oder andere die VI's runter.


Angehängte Datei(en)
Sonstige .zip  PSP_UserEvent_StartStoppSubVI_Ordner.zip (Größe: 27,6 KB / Downloads: 185)

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
18.06.2008, 10:08
Beitrag #3

Christoph_
Unregistered


 







Benutzerereignisse zwischen VIs austauschen
Hallo!

' schrieb:Wie kann in einem fertigen Programm die Anzahl der Empfänger unbekannt sein? Auf ein Ereignis wird mit einer Ereignisstruktur reagiert. Und die Anzahl derer liegt fest. (Ich hoffe nur, ich hab dich nicht irgendwie falsch verstanden).

Meine Aufgabe ist es Daten aus einem Messaufbau in den PC einzulesen. Andere Leute schreiben dann später verschiedene Algorithmen zur Auswertung der Daten. Diese sollen parallel laufen können, damit die Unterschiede besser erkennbar werden. D.h. beim Testen läuft nur ein Algorithmus, während einer Messreihe laufen 2, 3 oder 4 Algorithmen.
Um das Einlesen und Aufbereiten der Daten vor den Anwendern zu kapseln soll es in ein eigenes VI.

' schrieb:Da mir der Sinn deines Vorgehens noch nicht ganz klar ist, sag ich hier vorerst nur: Ich würde nur ein SubVI machen.
Das ist das Ziel. Ein VI, dass die Anwender einfügen können und dann daraus die Messdaten erhalten.


' schrieb:Ich hab mal was zusammengestellt. In dem VI werden die Handle der Ereignisse verwaltet. Wer immer ein Ereignis haben will, kann sich einen entsprechenden Handle holen.

Leider hab ich kein 7.1 mehr. Nur 8.5, das in 8.0 konvertiert. Vielleicht konvertiert dir der eine oder andere die VI's runter.
Das wäre prima. Wir haben hier im Institut nur 7.1. Daher bin ich auf Hilfe aus dem Forum angewiesen... Cool

Ich schau mir deine Lösung an, sobald mir jemand eine konvertierte Version zur Verfügung stellen kann. Danke.

Gruß,
Christoph
Diese Nachricht in einer Antwort zitieren to top
18.06.2008, 10:54
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Benutzerereignisse zwischen VIs austauschen
' schrieb:Um das Einlesen und Aufbereiten der Daten vor den Anwendern zu kapseln soll es in ein eigenes VI.
Genau so soll es sein.
Der Anwender kennt nur ein einziges SubVI, respektive eine einzige Schnittstelle, wie er an seine Daten kommt. Wie die Schnittstelle aussieht, ist wieder etwas anderes.

Zitat:Das ist das Ziel. Ein VI, dass die Anwender einfügen können und dann daraus die Messdaten erhalten.
Ohne jetzt auf genaue Details einzugehen, kann man doch sagen: Das würde so funktionieren.

Ich mach das immer so:
In einem Melder stehen die gerade aktuellen Daten. Jeder der will (also im Prinzip für den Ersteller der Daten eine unbekannte Anzahl Empfänger) kann den Melder lesen. Hierfür muss er sich lediglich einmalig eine Referenz des Melders holen und kann dann mit dieser Referenz die Standard-VIs für Melderbearbeitung verwenden. Dieses Verfahren ist für eine bestimmte Art der Datenbereitstellung respektive Weiterverarbeitung geeignet. Ich kann mir auch andere Arten der Bereitstellung/Weiterverarbeitung vorstellen - dann wird es mit Melder aber vielleicht schwierig. In meinen Falle hier brauche ich also keine expliziten Benutzerereignisse (Hinweis: Ein Melder kann als implizites Benutzerereignis gesehen werden).

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
18.06.2008, 18:24
Beitrag #5

Christoph_
Unregistered


 







Benutzerereignisse zwischen VIs austauschen
Hallo!

Bei deinem Verfahren ist aber nicht sichergestellt, dass alle Empfänger alle Datensätze bekommen. Das ist für meine Anwendung aber Vorraussetzung, damit die Ergebnisse der Algorithmen vergleichbar bleiben. So wie es aussieht wird es wohl doch eine Offlinevariante. Messung durchführen, Daten abspeichern, nach und nach jedem Algorithmus die Daten vorspielen und dann gemeinsam anzeigen.

Oder kennt vielleicht noch jemand eine Queue-Variante bei der ich verhindern kann, dass Datensätze zu früh aus der Queue entfernt werden, jedoch auch nicht ewig dort verbleiben?

Gruß,
Christoph
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  2 Objekte gegeneinander austauschen Just-Me 2 3.727 20.10.2011 13:17
Letzter Beitrag: eb
  Wert in Array verrechnen und austauschen JoBlau 7 7.114 23.12.2009 11:03
Letzter Beitrag: dimitri84
  Daten zwischen zwei while-Schleifen austauschen freezer 7 8.703 08.12.2008 12:51
Letzter Beitrag: eg

Gehe zu: